Практическая часть Язык SQL – практическое использование Создать структуру базы 1. Таблица ITEM_GROUP (категория предметов) a. GROUP_ID – идентификатор записи i. Тип INTEGER ii. Первичный ключ b. NAME – название категории i. Тип VARCHAR(50) ii. Не может принимать нулевые значения c. PARENT_GROUP_ID – ссылка на родительскую категорию i. Внешний ключ на таблицу ITEM_GROUP ii. Может принимать нулевые значения 2. Таблица ITEM (предмет) со следующими колонками: a. ITEM_ID – идентификатор записей в таблице i. тип INTEGER ii. первичный ключ b. NAME – название предмета i. тип VARCHAR(50) ii. нулевые значения не допускаются c. PRICE – цена предмета i. тип INTEGER ii. нулевые значения не допускаются d. DESCRIPTION i. тип VARCHAR(255) ii. может принимать нулевые значения e. GROUP_ID – ссылка на категорию i. Внешний ключ – связь с таблицей ITEM_GROUP 3. Таблица CUSTOMER (клиент) со следующими колонками: a. CUSTOMER_ID – идентификатор записи i. Тип INTEGER ii. Первичный ключ b. EMAIL – адрес электронной почты клиента i. Тип VARCHAR(255) 1 Практическая часть ii. Нулевые значения не допускаются 4. Таблица ORDER со следующими колонками: a. ORDER_ID – идентификатор записи в таблице i. тип INTEGER ii. первичный ключ b. ITEM_ID – ссылка на предмет i. Внешний ключ – связь с таблицей ITEM ii. нулевые значения не допускаются c. CUSTOMER_ID – ссылка на клиента i. Внешний ключ, связь с таблицей CUSTOMER ii. нулевые значения не допускаются d. STATUS – статус заказа i. Тип VARCHAR(50) ii. Не может принимать нулевые значения e. TIME_OF_PLACING – время размещения заказа i. Тип TIMESTAMP ii. Не может быть NULL 2 Практическая часть Заполнить базу данными 1. Таблица ITEM_GROUP: a. Корневая категория 'Winter sport’ b. Категория ‘Snowboards’ с родительской категорией WINTER SPORT c. Категория ‘Skies’ с родительской категорией WINTER SPORT d. Корневая категория Games e. Категория ‘Football’ с родительской категорией Games f. Категория ‘Basketball’ с родительской категорией Games g. Категория ‘Volleyball’ с родительской категорией Games 2. Таблица ITEM: a. Burton Snowboard, 500 USD b. Fisher ski, 400 USD c. Mizuno volleyball shoes, 150 USD 3. Таблица CUSTOMER: a. Customer1@mail.com b. Customer2@mail.com 4. Таблица ORDER a. Заказы клиента 1 i. Burton Snowboard, дата ’05 Jan 2013’, статус INCOMPLETED ii. Mizuno volleyball shoes, дата ’01 Dec 2012’, статус COMPLETED b. Заказы клиента 1 i. Fisher ski, дата ’15 Jan 2013’, статус COMPLETED 3 Практическая часть Осуществить выборку данных 1. Найти все товары из категории SKI 2. Найти все товары, на которые есть незавершенные заказы. 3. Найти названия всех товаров, которые заказал Клиент 1 4. Найти идентификаторы клиентов, которые сделали больше одного заказа 5. Найти идентификаторы клиентов, которые имеют незавершенные заказы из категории WINTER SPORT (включая подкатегории) Используем реляционную базу данных Derby Сайт программы: http://db.apache.org Документация: http://db.apache.org/derby/manuals/index.html#latest https://builds.apache.org/job/Derby-docs/lastSuccessfulBuild/artifact/trunk/out/ref/index.html Для доступа к базе используем клиент Squirrel: http://db.apache.org/derby/integrate/SQuirreL_Derby.html Результат представить в виде трех файлов: 1. create_db.sql – c SQL запросами для создания структуры базы 2. init_db.sql – с SQL запросами для заполнения базы данными 3. select.sql – с SQL запросами для выборки данных 4