Необходимо создать БД, которая содержит следующие таблицы:
- 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