Глава 8

Логика предикатов и базы данных

[5/100%]
Показать
LaTeX
Задача 143

Для базы данных из примера 35 на стр. 162 построить выражение реляционной алгебры, задающее список фамилий сотрудников, в комнатах которых нет никакого оборудования. Построить формулу логики предикатов, определяющую то же отношение.

Пример 35: база данных имеет схему {Сотрудники(Номер,ФИО,Отдел,Должность,Оклад),Комнаты(НомерСотрудника,Этаж,НомерКомнаты),Оборудование(Этаж,НомерКомнаты,Название)}\left\{ \text{Сотрудники}(\text{Номер}, \text{ФИО}, \text{Отдел}, \text{Должность}, \text{Оклад}), \text{Комнаты}(\text{НомерСотрудника}, \text{Этаж}, \text{НомерКомнаты}), \text{Оборудование}(\text{Этаж}, \text{НомерКомнаты}, \text{Название})\right\}, а её состояние задано следующими таблицами:

?
Задача 144

Пусть есть отношения RR и SS со схемами (A1,,An,B1,,Bm)(A_{1}, \ldots , A_{n}, B_{1}, \ldots , B_{m}) и (B1,,Bm)(B_{1}, \ldots , B_{m}) соответственно. Частным R/SR / S от деления отношения RR на отношение SS называется наибольшее отношение QQ с атрибутами A1,,AnA_{1}, \ldots , A_{n}, каждый набор tt которого в соединении с каждым набором sSs \in S входит в RR, то есть Q×SRQ \times S \subseteq R. Построить выражение реляционной алгебры, эквивалентное R/SR / S, и формулу логики предикатов, определяющую это отношение.

?
Задача 145

Написать SQL-запросы и соответствующие формулы для получения следующей информации из базы данных из примера 35 на стр. 162, вычислить результат:

Пример 35: база данных имеет схему {Сотрудники(Номер,ФИО,Отдел,Должность,Оклад),Комнаты(НомерСотрудника,Этаж,НомерКомнаты),Оборудование(Этаж,НомерКомнаты,Название)}\left\{ \text{Сотрудники}(\text{Номер}, \text{ФИО}, \text{Отдел}, \text{Должность}, \text{Оклад}), \text{Комнаты}(\text{НомерСотрудника}, \text{Этаж}, \text{НомерКомнаты}), \text{Оборудование}(\text{Этаж}, \text{НомерКомнаты}, \text{Название})\right\}, а её состояние задано следующими таблицами:

?
(а)

найти всех сотрудников с окладом больше 5500 ;

(б)

найти все отделы, в которых есть сотрудники с окладом больше 8000 ;

(в)

составить список должностей и получаемых по ним окладов;

(г)

составить список сотрудников торгового отдела, получающих зарплату от 6000 до 6500 и работающих не на третьем этаже;

(д)

составить список комнат, где все сотрудники получают оклад меньше 7500.

Задача 146

Определить, какие из приведённых в примере 44 на предшествующей странице ограничений целостности выполняются для состояния базы данных из примера 35 на стр. 162.

Пример 35: база данных имеет схему {Сотрудники(Номер,ФИО,Отдел,Должность,Оклад),Комнаты(НомерСотрудника,Этаж,НомерКомнаты),Оборудование(Этаж,НомерКомнаты,Название)}\left\{ \text{Сотрудники}(\text{Номер}, \text{ФИО}, \text{Отдел}, \text{Должность}, \text{Оклад}), \text{Комнаты}(\text{НомерСотрудника}, \text{Этаж}, \text{НомерКомнаты}), \text{Оборудование}(\text{Этаж}, \text{НомерКомнаты}, \text{Название})\right\}, а её состояние задано следующими таблицами:

Пример 44: три ограничения целостности для базы данных из примера 35:

  1. ограничение на ключ отношения Сотрудники (атрибут Номер является ключом): (n)(x)(y)(z)(v)(x1)(y1)(z1)(v1)(Сотрудники(n,x,y,z,v)Сотрудники(n,x1,y1,z1,v1)xx1yy1zz1vv1)(\forall n)(\forall x)(\forall y)(\forall z)(\forall v)(\forall x_{1})(\forall y_{1})(\forall z_{1})(\forall v_{1})(\text{Сотрудники}(n, x, y, z, v) \wedge \text{Сотрудники}(n, x_{1}, y_{1}, z_{1}, v_{1}) \rightarrow x \approx x_{1} \wedge y \approx y_{1} \wedge z \approx z_{1} \wedge v \approx v_{1});

  2. ограничение на ссылку (каждый сотрудник, для которого определено помещение в отношении Комнаты, должен присутствовать в отношении Сотрудники): (ns)(x)(y)(Комнаты(ns,x,y)(z)(u)(v)(w)Сотрудники(ns,z,u,v,w))(\forall n s)(\forall x)(\forall y)(\text{Комнаты}(n s, x, y) \rightarrow (\exists z)(\exists u)(\exists v)(\exists w) \text{Сотрудники}(n s, z, u, v, w));

  3. ограничение на значение (оклад каждого сотрудника должен лежать в интервале (1000,25000)(1000, 25000)): (x)(y)(z)(v)(o)(Сотрудники(x,y,z,v,o)1000<oo<25000)(\forall x)(\forall y)(\forall z)(\forall v)(\forall o)(\text{Сотрудники}(x, y, z, v, o) \rightarrow 1000 < o \wedge o < 25000).

?
Задача 147

Написать формулы, выражающие следующие ограничения целостности для базы данных из примера 35 на стр. 162, определить, какие из них выполняются для приведённого её состояния:

Пример 35: база данных имеет схему {Сотрудники(Номер,ФИО,Отдел,Должность,Оклад),Комнаты(НомерСотрудника,Этаж,НомерКомнаты),Оборудование(Этаж,НомерКомнаты,Название)}\left\{ \text{Сотрудники}(\text{Номер}, \text{ФИО}, \text{Отдел}, \text{Должность}, \text{Оклад}), \text{Комнаты}(\text{НомерСотрудника}, \text{Этаж}, \text{НомерКомнаты}), \text{Оборудование}(\text{Этаж}, \text{НомерКомнаты}, \text{Название})\right\}, а её состояние задано следующими таблицами:

?
(а)

в отношении Комнаты набор атрибутов (НомерСотрудника, НомерКомнаты) является ключом;

(б)

для каждого человека из отношения Сотрудники в отношении Комнаты определено его место работы;

(в)

в отношении Комнаты номера всех комнат на втором этаже больше 10, но меньше 20, а номера всех комнат на третьем этаже больше 20.