Необходимо создать БД, которая содержит следующие таблицы:
- developers (хранит данные о разработчиках)
- skills (навыки разработчиков – Java, C++, etc.)
- projects (проекты, на которых работают разработчики)
- companies (IT компании, в которых работают разработчики)
- customers (клиенты, которые являются заказчиками проектов в IT компаниях)
При этом:
- разработчики могут иметь 2 недели много навыков
- каждый проект имеет много разработчиков, которые над ним работают
- компании выполняют много проектов одновременно - заказчики имеют много проектов
Необходимо реализовать как таблицы, так и грамотные связи между ними.
Результатом выполнения задания являеются файлы initDB.sql (создание таблиц и связей между ними), populateDB.sql (заполнение таблиц данными)
Необходимо составить запросы, которые выполняют следующие задачи:
- Добавить разаработчикам поле (salary - зарплата).
- Найти самый дорогой проект (исходя из ЗП разработчиков).
- Вычислить общую ЗП всех Java разработчиков.
- Добавить поле (cost - стоимость) в таблицу Projects .
- Найти клиента (customer), которая приносит меньше всего прибыли компании (company) для каждой из компаний .
- Вычислить, среднюю ЗП программистов в проекте, который приносит наименьшую прибыль.
Результатом выполнения задания являются файлы 1.sql, 2.sql … 6.sql, каждый из который получает данные для каждого из пунктов задания.
Использование технологии MySQL / PostgreSQL на выбор.
Необходимо создать консольное приложение, которое:- использует БД, созданную в домашнем задании для пункта 1.2
- позволяет выполнять CRUD (CREATE, READ, UPDATE, DELETE) операции для таблиц: developers, skills, companies, customers, projects.
Пример: Создать разработчика, добавить ему навыки. Создать проект, и добавить в данный проект разработчиков. Разрешается использовать все возможности JDBC
Результатом выполнения должен быть созданный ОТДЕЛЬНЫЙ репозиторий на Bitbucket под названием ProjectManagementSystem
Неоходимо реализовать Hiberante реализацию слоя DAO для Домашнего задания модуля 2.Весь функционал и внешний вид приложения (view) должны оставаться без изменений.