- •Лекция 2 «Реляционная модель данных»
- •Введение
- •2 Алгебраическая точка зрения
- •3 База данных
- •4 Запросы на данные
- •4.1 Стандартные теоретико-множественные операции
- •4.2 Операция декартова произведения
- •4.3 Специальные операции реляционной алгебры
- •4.3.1 Проекция
- •4.3.2 Операция ограничения (селекции)
- •4.3.3 Операция соединения
- •4.3.4 Операция деления
- •5 Ограничения целостности
4.2 Операция декартова произведения
Эта операция не накладывает никаких ограничений на структуру перемножаемых отношений. Степень результирующего отношения есть сумма степеней исходных, а мощность – произведение мощностей, это значит, что каждая строка одной таблицы должна быть конкатенирована с каждой строкой другой таблицы.
Студент_Группа(Ст.Nз,Ст.Фио,Ст.Nгр,Гр.Nгр,Гр.ВыпКаф,Гр.Спец) =
Ст(Nз,Фио,Nгр) * Гр(Nгр,ВыпКаф,Спец)
Таблица Ст
Nз |
Фио |
Nгр |
121 |
Иванов А.И. |
К2-221 |
125 |
Крутов И.И. |
К2-223 |
123 |
Петрова Т.В. |
К2-281 |
Таблица Гр
Nгр |
ВыпКаф |
Спец |
К2-221 |
22 |
Прикл_математика |
К2-223 |
22 |
Прикл_математика |
К2-281 |
28 |
Системный_анализ |
Таблица Студент_Группа
Ст.Nз |
Ст.Фио |
Ст.Nгр |
Гр.Nгр |
Гр.ВыпКаф |
Гр.Спец |
121 |
Иванов А.И. |
К2-221 |
К2-221 |
22 |
Прикл_математика |
121 |
Иванов А.И. |
К2-221 |
К2-223 |
22 |
Прикл_математика |
121 |
Иванов А.И. |
К2-221 |
К2-281 |
28 |
Системный_анализ |
125 |
Крутов И.И. |
К2-223 |
К2-221 |
22 |
Прикл_математика |
125 |
Крутов И.И. |
К2-223 |
К2-223 |
22 |
Прикл_математика |
125 |
Крутов И.И. |
К2-223 |
К2-281 |
28 |
Системный_анализ |
123 |
Петрова Т.В. |
К2-281 |
К2-221 |
22 |
Прикл_математика |
123 |
Петрова Т.В. |
К2-281 |
К2-223 |
22 |
Прикл_математика |
123 |
Петрова Т.В. |
К2-281 |
К2-281 |
28 |
Системный_анализ |
4.3 Специальные операции реляционной алгебры
Это операции проекция, ограничение (селекция), соединение, деление. Последние две операции – соединение и деление – не ортогональны остальным, то есть выражаются через ранее введенные.
4.3.1 Проекция
Это унарная операция.
Имеем схему исходного отношения R(A1, A2, … , Am)
Любое подмножество атрибутов {Ai, … , Ak}, принадлежащее множеству атрибутов исходного отношения {A1, A2, … , Am} может выступать в качестве атрибутов проектирования.
Синтаксисоперации:
Rрез(Ai, … , Ak) = R(A1, A2, … , Am)[Ai, … , Ak]
[ ] – квадратные скобки - операционные.
Пример. Рассмотрим отношение, представленное схемой
Сдавали_экзамены(Nз,Фио,Nгр,Курс) расширение (таблицу) которого мы получили ранее.
Запрос «Кто сдавал?» выражается операцией
Кто_сдавал(Nз,Фио) = Сдавали_экзамены(Nз,Фио,Nгр,Курс)[Nз,Фио]
Как это делается? Вычеркиваем все столбцы таблицы Сдавали_экзамены, не входящие в список атрибутов проектирования, получаем «срез» отношения:
-
Nз
Фио
121
Иванов А.И.
121
Иванов А.И.
121
Иванов А.И.
123
Петрова Т.В.
125
Крутов И.И.
125
Крутов И.И.
127
Скоркин О.И.
127
Скоркин О.И.
129
Доренко Е.С.
Вычеркивая дублирующие строки (оставляя по одной), получаем результирующую таблицу:
Таблица Кто_сдавал(Nз,Фио)
-
Nз
Фио
121
Иванов А.И.
123
Петрова Т.В.
125
Крутов И.И.
127
Скоркин О.И.
129
Доренко Е.С.