Вариант решения задания3

advertisement
Домашнее задание (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
Download