Практика по реляционной алгебре
Правила реляционной алгебры
Так как при исполнении алгебраических операций всегда формируется одно отношение, то последовательность их исполнения влияет на скорость создания r’, что важно для практического использования реляционных баз данных. Поэтому при исполнении алгебраических операций следует соблюдать некоторые ограничения и правила:
1. r’=δB1(δB2 (r)) =δB2(δB1 (r)) – операция выбора коммутативна,
2. r’=δB(r1∩r2)=δB(r1)∩δB(r2) – операция выбора над пересечением отношений равносильна пересечению операций выбора над каждым отношением, но δB(r1)∩δB(r2) более рациональна по времени,
3. r’=δB(r1∪r2)=δB(r1)∪δB(r2) – операция выбора над объединением отношений равносильна объединению операций выбора над каждым отношением, но δB(r1)∪δB(r2) более рациональна по времени,
4. r’=δB(r1\r2)=δB(r1)\δB(r2) – операция выбора над разностью отношений равносильна разности операций выбора над каждым отношением, но δB(r1)\δB(r2) более рациональна по времени,
5. r’=δB(r1>< r2)=δB(r1)><r2 – операция выбора над соединением отношений равносильна соединению одного отношения с операцией выбора над другим отношением, но δB(r1)><r2 более рациональна по времени, так как δB(r1><r2) обрабатывает все кортежи прямого произведения r1 и r2,
6. r’=δB(πrel(r1))=πrel(δB(r1)) – операция проекции коммутативна с операцией выбора,
7. r’=(r1><r2)= (r2><r1) - операция соединения коммутативна,
8. r’=(r1><r2)><r3=r1><(r2><r3) – операция соединения ассоциативна.
Даны отношения: r1 – учебный план по некоторой специальности, r2 и r3 – распределения учебной нагрузки между преподавателями кафедры1 и кафедры2 вуза (ключи подчеркнуты):
r1 | Дисциплина | Лекции | Практика | Отчетность |
Информатика | зачет | |||
Математика | зачет | |||
Программирование | экзамен |
r2 | Преподаватель | Дисциплина | Учебная группа |
Иванов И.И. | Информатика | 11-ИЭ | |
Петров П.П. | Информатика | 11-ВТ | |
Сухов С.С. | Математика | 10-ИЭ | |
Якушев Я.Я | Программирование | 11-ИЭ | |
Якушев Я.Я. | Информатика | 11-БУ |
r3 | Преподаватель | Дисциплина | Учебная группа |
Арбузов В.В. | Культурология | 11-ИЭ | |
Борисов Б.Б. | Философия | 11-ВТ | |
Кузьмин К.К. | История | 10-ИЭ |
1. Определитьпо распределению учебной нагрузки кафедры1 (отношение r2), какие преподаватели преподают информатику и каким учебным группам.
Решение:
Используем оператор выбора. Тогда новое отношение r’ определяется по формуле:
r’=δB(r2, (Дисциплина=Информатика)). Результат:
r’ | Преподаватель | Дисциплина | Учебная группа |
Иванов И.И. | Информатика | 11-ИЭ | |
Петров П.П. | Информатика | 11-ВТ | |
Якушев Я.Я. | Информатика | 11-БУ |
2. Определитьпо учебному плану специальности (отношение r1), у каких дисциплин нет практических занятий и форма отчетности - экзамен.
Решение:
Используем оператор выбора. Тогда новое отношение r’ определяется по формуле:
r’=δB(r1, ((Практика=0)&(Отчетность=экзамен)). Результат:
r’ | Дисциплина | Лекции | Практика | Отчетность |
Такой результат означает, что заданному условию не отвечает ни один кортеж.
Эту задачу можно решить с помощью того же оператора другой формы:
r’=δB(r1, ((Практика, Отчетность)=(0, экзамен))).
3. Определитьпо учебному плану (отношение r1), какие дисциплины изучают студенты данной специальности.
Решение:
Используем оператор проекции. Тогда новое отношение r’ определяется по формуле: r’=πrel(r1, Дисциплина). Результат:
r’ | Дисциплина |
Информатика | |
Математика | |
Программирование |
4. Сформироватьданныеоб учебных нагрузках преподавателей факультета (по отношениям r2 и r3).
Решение:
Используем оператор объединения. Тогда новое отношение r’ определяется по формуле: r’= È(r2,r3). Результат:
r’ | Преподаватель | Дисциплина | Учебная группа |
Иванов И.И. | Информатика | 11-ИЭ | |
Петров П.П. | Информатика | 11-ВТ | |
Сухов С.С. | Математика | 10-ИЭ | |
Якушев Я.Я | Программирование | 11-ИЭ | |
Якушев Я.Я. | Информатика | 11-БУ | |
Арбузов В.В. | Культурология | 11-ИЭ | |
Борисов Б.Б. | Философия | 11-ВТ | |
Кузьмин К.К. | История | 10-ИЭ |
5. Сформироватьпроект распределения учебной нагрузки по кафедре1, если учебный план – отношение r1, списочный состав преподавателей этой кафедры соответствует таблице (отношение r4):
r4 | Преподаватель |
Иванов И.И. | |
Петров П.П. | |
Сухов С.С. | |
Якушев Я.Я |
Предполагается, что каждый преподаватель кафедры1 может преподавать любую дисциплину из учебного плана.
Решение:
Используем оператор прямого произведения. Тогда новое отношение r’ определяется по формуле: r’=Ä(r4,r1). Результат:
r’ | Преподаватель | Дисциплина | Лекции | Практика | Отчетность |
Иванов И.И. | Информатика | зачет | |||
Иванов И.И. | Математика | зачет | |||
Иванов И.И. | Программирование | экзамен | |||
Петров П.П. | Информатика | зачет | |||
Петров П.П. | Математика | зачет | |||
Петров П.П. | Программирование | экзамен | |||
Сухов С.С. | Информатика | зачет | |||
Сухов С.С. | Математика | зачет | |||
Сухов С.С. | Программирование | экзамен | |||
Якушев Я.Я | Информатика | зачет | |||
Якушев Я.Я. | Математика | зачет | |||
Якушев Я.Я. | Программирование | экзамен |
6. Определить,какими учебными нагрузкамикафедра1 отличается от кафедры2.
Решение:
Используем оператор разности. Тогда новое отношение r’ определяется по формуле: r’=\(r2,r3). Результат:
r’ | Преподаватель | Дисциплина | Учебная группа |
Иванов И.И. | Информатика | 11-ИЭ | |
Петров П.П. | Информатика | 11-ВТ | |
Сухов С.С. | Математика | 10-ИЭ | |
Якушев Я.Я | Программирование | 11-ИЭ | |
Якушев Я.Я. | Информатика | 11-БУ |
7. Определитьодинаковыеучебные нагрузкипреподавателейкафедры1 и кафедры2.
Решение:
Используем оператор пересечения. Тогда новое отношение r’ определяется по формуле: r’= Ç(r2,r3). Результат:
r’ | Преподаватель | Дисциплина | Учебная группа |
8. Сформироватьпроект распределения учебной нагрузки по кафедре1, если учебный план – отношение r1 и предполагается, что каждый преподаватель кафедры1 может преподавать только ту дисциплину из учебного плана, которую преподает обычно (отношение r2).
Решение:
Используем оператор естественного соединения упомянутых отношений по названию дисциплины. Тогда новое отношение r’ определяется по формуле: r’=><(r2,r1). Результат:
r’ | Преподаватель | Дисциплина | Лекции | Практика | Отчетность | Учебная группа |
Иванов И.И. | Информатика | зачет | 11-ИЭ | |||
Петров П.П. | Информатика | зачет | 11-ВТ | |||
Сухов С.С. | Математика | зачет | 10-ИЭ | |||
Якушев Я.Я | Программирование | экзамен | 11-ИЭ | |||
Якушев Я.Я. | Информатика | зачет | 11-БУ |