Домашнее задание (15 баллов): 1. (4 балла) Рассмотрим предметную область, связанную с записью студентов на курсы, которые они желают прослушать в текущем семестре. Студенты записываются на предметы, для которых определены название предмета, время начала занятий и аудитория. Пусть есть БД с отношениями: СТУДЕНТ (Номер студ. билета, Имя, Специальность, Курс) Номер студ. билета Имя Специальность Курс 100 Джонс История АС 150 Паркс БухУчет С2 200 Бейкер Математика АС 250 Гласс История С4 300 Джим БухУчет С4 350 Рассел Математика С3 400 Рай БухУчет С1 450 Мартин История С4 ЗАПИСЬ (Номер студ. Билета, Название предмета, Порядковый номер) Номер студ. билета Название предмета Порядковый номер 100 BD445 1 150 BA200 1 200 BD445 2 200 CS250 1 300 CS150 1 400 BA200 2 400 BF410 1 400 CS250 2 450 BA200 3 ЗАНЯТИЯ (Название предмета, Время, Аудитория) Название предмета Время BA200 9.00 BD445 13.00 BF410 9.00 CS150 11.00 CS250 11.00 Аудитория SC 110 SC 213 SC213 EA304 EB210 Напишите на языке РЕЛЯЦИОННОЙ АЛГЕБРЫ следующие запросы: a) Вывести имена студентов, записавшихся на один предмет. ИмяСтудента(СТУДЕНТЛичныйНомер=НомерСтудентаЗАПИСЬ) b) Вывести номера студентов, не записанных ни на один предмет. ЛичныйНомер(СТУДЕНТ) – НомерСтудента(ЗАПИСЬ) c) Вывести имена студентов, записанных на предмет «BD445». ИмяСтудента(НазваниеПредмета=’BD445’(СТУДЕНТЛичныйНомер=НомерСтудентаЗАПИСЬ)) d) Вывести названия предметов, на которые записан студент Паркс, и расписание занятий по эти предметам. ЗАНЯТИЯ.НазваниеПредмета, Время( (Имя=’Паркс’(СТУДЕНТ) ЛичныйНомер=НомерСтудента ЗАПИСЬ) ЗАПИСЬ.НазваниеПредмета= =ЗАНЯТИЯ.НазваниеПредмета ЗАНЯТИЯ) 2. (4 балла) Пусть есть база данных с отношениями: ПОСТАВЩИКИ (пос_номер, пос_имя, пос_статус, пос_город) ДЕТАЛИ (дет_номер, дет_название, дет_цвет, дет_вес, дет_город) РАБОТЫ (раб_номер, раб_наименование, раб_город) ПОСТАВКИ (пос_номер, дет_номер, раб_номер, поставки_количество) Напишите запросы на ЯЗЫКЕ РЕЛЯЦИОННОЙ АЛГЕБРЫ: (a) Выбрать все поставки, в которых количество деталей находится в диапазоне от 300 до 750 штук включительно. Указать имя поставщика, название детали и название работы. пос_имя,дет_название,раб_наименование(поставки_количество>=300 AND поставки_количество<=750 (((ПОСТАВКИ (b) ПОСТАВЩИКИ) ДЕТАЛИ) РАБОТЫ)) Выбрать названия работ, детали для которых поставляются поставщиком с номером S1. раб_наименование(пос_номер=’S1’(ПОСТАВКИ РАБОТЫ)) (c) Выбрать номера работ, в состав которых входит как минимум столько деталей, сколько поставляется поставщиком с номером S1. раб_номер (( раб_номер,количество1(раб_номер,COUNT(поставки_количество) (ПОСТАВКИ))) количество1>=количество2 ( пос_номер,количество2( пос_номер=’S1’(пос_номер,COUNT(поставки_количество)(ПОСТАВКИ)))) (d) Определить номера деталей, поставляемых либо для лондонской работы, либо лондонским поставщиком. (дет_номер(раб_город=’Лондон’ OR (ПОСТАВКИ ПОСТАВЩИКИ) 3. (4 балла) Пусть есть база данных с отношениями: ПРОДАВЕЦ(Имя, зарплата) Имя Зарплата Абель 120000 пос_город=’Лондон’ РАБОТЫ)))) Бейкер Мерфи Зенит Кобад Джонс 42000 36000 12000 34000 118000 ЗАКАЗ(Номер, Имя покупателя, Имя продавца, Сумма) Номер ИмяПокупателя ИмяПродавца 100 Abernathy Construction Зенит 200 Abernathy Construction Джонс 300 Manchester Lumber Абель 400 Amalgamated Housing Абель 500 Abernathy Construction Мерфи 600 Tri-City Builders Абель 700 Manchester Lumber Джонс ПОКУПАТЕЛЬ(Имя, Город, ТипПромышленности) ИмяПокупателя Город Abernathy Construction Виллоу Manchester Lumber Манчестер Tri-City Builders Мемфис Amalgamated Housing Мемфис Сумма 560 1800 480 2500 6000 700 100 ТипПромышленности B F B B 1. Имена всех продавцов, для которых имеется строка ЗАКАЗ ИмяПродавца(ЗАКАЗ) 2. Имена всех продавцов, которые не имеют строки ЗАКАЗ ПРОДАВЕЦ Продавец.Имя=Заказ.ИмяПродавца ЗАКАЗ 3. Имена продавцов, имеющих заказ от фирмы Abernathy Construction ИмяПродавца(ИмяПокупателя=’Abernathy Conctruction’ (ЗАКАЗ)) 4. Названия городов, в которых проживают покупатели, сделавшие заказ у продавца по имени Джонс Город(ИмяПродавца=’Джонс’(ЗАКАЗ) ЗАКАЗ.ИмяПокупателя=ПОКУПАТЕЛЬ.ИмяПокупателя ПОКУПАТЕЛЬ) 4. (3 балла) КОМПАНИЯ (НАЗВАНИЕ, ЧислоСотрудников, ОбъемПродаж) НАЗВАНИЕ ЧислоСотрудников Nike 1000 Adidas 1200 Reebok 900 ОбъемПродаж 15000000 13000000 12000000 ПРОИЗВОДИТЕЛИ(НАЗВАНИЕ, КоличествоЛюдей, Доход) НАЗВАНИЕ КоличествоЛюдей Adidas 1200 Puma 1000 Доход 13000000 11500000 1. Приведите пример объединения этих двух отношений КОМПАНИЯ ПРОИЗВОДИТЕЛИ НАЗВАНИЕ ЧислоСотрудников или КоличествоЛюдей Nike 1000 Adidas 1200 Reebok 900 Puma 1000 ОбъемПродаж или Доход 15000000 13000000 12000000 11500000 2. Приведите пример пересечения этих двух отношений КОМПАНИЯ ПРОИЗВОДИТЕЛИ НАЗВАНИЕ ЧислоСотрудников или КоличествоЛюдей Adidas 1200 ОбъемПродаж или Доход 3. Приведите пример разности этих двух отношений КОМПАНИЯ – ПРОИЗВОДИТЕЛИ НАЗВАНИЕ ЧислоСотрудников или КоличествоЛюдей Nike 1000 Reebok 900 ОбъемПродаж или Доход 13000000 15000000 12000000