- •Проектирование баз данных
- •Введение
- •1Задание и требования к типовому расчету
- •1.1Задание
- •1.2График выполнения
- •1.3Содержание пояснительной записки
- •1.4Защита типового расчета
- •2Теоретические сведения
- •2.1Термины и определения
- •2.2Теория нормальных форм
- •2.3Нормализация базы данных методом декомпозиции
- •2.4Проверка декомпозиции методом табло
- •2.5Нормализация базы данных с использованием модели er-диаграмм
- •2.6Основы реляционной алгебры.
- •3Пример выполнения типового расчета (с методическими указаниями и рекомендациями)
- •3.1Построить диаграмму функциональных зависимостей и найти минимальное покрытие отношения
- •3.2Нормализация базы данных
- •3.2.1Анализ предметной области
- •3.2.2Нормализация базы данных методом декомпозиции.
- •3.2.3Проверка нормализации методом табло.
- •3.2.4Нормализация базы данных с использованием модели er-диаграмм.
- •3.3Реляционная алгебра
- •Приложение а. Варианты заданий.
- •Приложение б. Титульный лист
- •Пояснительная записка к типовому расчету
- •Приложение в. Типовые вопросы для защиты
- •Приложение г. Заполненная база данных Учебный процесс
3.3Реляционная алгебра
Пример 1. Объединение, пересечение, разность.
Даны отношения R и S с заголовками R(А, В, С), S(А, В, С):
R |
||
A |
В |
С |
1 |
10 |
100 |
2 |
20 |
200 |
3 |
30 |
300 |
S |
||
A |
В |
С |
3 |
30 |
300 |
4 |
40 |
400 |
5 |
50 |
500 |
Решение. Отношения имеют одинаковые заголовки, поэтому над ними можно выполнить указанные операции.
В результат объединения войдут все кортежи обоих отношений, исключая дублирующиеся кортежи.
RS |
||
A |
В |
С |
1 |
10 |
100 |
2 |
20 |
200 |
3 |
30 |
300 |
4 |
40 |
400 |
5 |
50 |
500 |
Следует отметить, что кортеж {(3,30,300)} входит как в отношение R, так и в отношение S, но в результат включается только один раз.
В результат пересечения войдут кортежи, содержащиеся как в отношении R, так и в отношении S. Для отношений R и S такой кортеж один.
RS |
||
3 |
30 |
300 |
В результат разности войдут все кортежи отношения R, которые не входят в отношение S.
R-S |
||
A |
В |
С |
1 |
10 |
100 |
2 |
20 |
200 |
Если необходимо найти разность S-R, то результат будет другим.
S-R |
||
A |
В |
С |
4 |
40 |
400 |
5 |
50 |
500 |
Пример 2. Декартово произведение.
Даны отношения R и S с заголовками R(А, В, С), S(D, E):
R |
||
A |
В |
С |
1 |
10 |
100 |
2 |
20 |
200 |
3 |
30 |
300 |
S |
|
D |
E |
100 |
11 |
200 |
22 |
300 |
33 |
Решение:
R*S |
||||
A |
В |
С |
D |
E |
1 |
10 |
100 |
100 |
11 |
2 |
20 |
200 |
200 |
22 |
3 |
30 |
300 |
300 |
33 |
1 |
10 |
100 |
300 |
33 |
2 |
20 |
200 |
100 |
11 |
3 |
30 |
300 |
200 |
22 |
1 |
10 |
100 |
200 |
22 |
2 |
20 |
200 |
300 |
33 |
3 |
30 |
300 |
100 |
11 |
Пример 3. Дано отношение R заголовком R(А, В, С):
R |
||
A |
В |
С |
1 |
10 |
100 |
2 |
20 |
200 |
3 |
30 |
300 |
и предикат F: A>1. В результате выполнения ограничения отношения R по условию F получится отношение, содержащее кортежи, со значением в поле A, большем 1:
_(R) |
||
A |
В |
С |
2 |
20 |
200 |
3 |
30 |
300 |
Пример 4. Дано отношение R заголовком R(А, В, С):
R |
||
A |
В |
С |
1 |
10 |
100 |
2 |
20 |
200 |
3 |
30 |
300 |
Необходимо найти проекцию на набор атрибутов X={A,В}. В результате получится отношение, содержащее все значения атрибутов A и В. Следует отметить, что результат не содержит дублирующихся кортежей.
(R) |
|
A |
В |
1 |
10 |
2 |
20 |
3 |
30 |
Пример 5. Найти соединение отношений R и S из примера 2 по условию А>2.
Для получения результата в отношении R*S, полученном в примере 2, необходимо оставить только те кортежи, которые удовлетворяют условию А>2.
RcompS |
||||
A |
В |
С |
D |
E |
3 |
30 |
300 |
300 |
33 |
3 |
30 |
300 |
200 |
22 |
3 |
30 |
300 |
100 |
11 |
Пример 6. Найти эквисоединение отношений R и S из примера 2 по условию R.С=S.D.
Для получения результата в отношении R*S, полученном в примере 2, необходимо оставить только те кортежи, которые удовлетворяют условию R.С=S.D.
RcompS |
||||
A |
В |
С |
D |
E |
1 |
10 |
100 |
100 |
11 |
2 |
20 |
200 |
200 |
22 |
3 |
30 |
300 |
300 |
33 |
Пример 7. Найти естественное соединение отношений R и S с заголовками R(А, В, С), S(C, E):
R |
||
A |
В |
С |
1 |
10 |
100 |
2 |
20 |
200 |
3 |
30 |
300 |
S |
|
C |
E |
100 |
11 |
200 |
22 |
300 |
33 |
Сначала необходимо найти их декартово произведение.
R*S |
||||
R.A |
R.В |
R.С |
S.C |
S.E |
1 |
10 |
100 |
100 |
11 |
2 |
20 |
200 |
200 |
22 |
3 |
30 |
300 |
300 |
33 |
1 |
10 |
100 |
300 |
33 |
2 |
20 |
200 |
100 |
11 |
3 |
30 |
300 |
200 |
22 |
1 |
10 |
100 |
200 |
22 |
2 |
20 |
200 |
300 |
33 |
3 |
30 |
300 |
100 |
11 |
Теперь из отношения R*S нужно исключить кортежи, которые не удовлетворяют условию R.С=S.C.
RS |
||||
R.A |
R.В |
R.С |
S.C |
S.E |
1 |
10 |
100 |
100 |
11 |
2 |
20 |
200 |
200 |
22 |
3 |
30 |
300 |
300 |
33 |
И наконец, следует произвести проекцию отношения RS на набор атрибутов {A,В,С,E}.
RcompS |
|||
A |
В |
С |
E |
1 |
10 |
100 |
11 |
2 |
20 |
200 |
22 |
3 |
30 |
300 |
33 |
Пример 8. Даны отношения R и S с заголовками R(А, В, С), S(C):
R |
||
A |
В |
С |
1 |
10 |
100 |
1 |
10 |
200 |
1 |
10 |
300 |
2 |
20 |
200 |
2 |
20 |
300 |
2 |
20 |
100 |
3 |
30 |
300 |
3 |
30 |
200 |
3 |
30 |
200 |
S |
C |
100 |
200 |
300 |
Найти деление отношения R на отношение S. В результате получится следующее отношение.
R/S |
|
A |
В |
1 |
10 |
2 |
20 |