Реляционная алгебра
Проекты и профессиональные вопросы
1) Побеседуйте с представителем большой организации, недавно руководившим проектом базы данных. Выясните ответы на следующие вопросы:
a. Каков был состав групп участников проекта? Сколько в ней было человек и каковы были их специальности? Был ли приглашен консультант?
b. Какую позицию заняло высшее руководство по отношению к проекту? Верило ли оно в возможность успешного завершения проекта или было настроено скептически? Какое влияние его позиция оказала на отношение остальных работников к проекту?
c. Каков был результат проекта? Была ли приобретена СУБД? Была ли спроектирована и установлена новая база данных? Сколько отделов и управленческих уровней обслуживает база данных и ее прикладные программы? Каковы планы организации на будущее, связанные с базой данных?
2) Изучите понятие жизненного цикла базы данных в данной книге и в профессиональных периодических изданиях. Попробуйте найти версии жизненного цикла базы данных, отличные от представленной в данной главе. Что общего в этих версиях? Попытайтесь синтезировать различные версии в единый общий жизненный цикл базы данных.
3) Создайте концептуальную модель данных для части организации. Ваша модель должна содержать как минимум пять объектных множеств, их отношения и атрибуты. Попытайтесь определить условия, при которых требуются конкретизированные множества.
4) Не пользуясь концептуальным моделированием, создайте реляционную схему базы данных для организации, с которой Вы контактировали или в которой Вы работали. Ваша схема должна содержать как минимум восемь реляционных таблиц, приведенных к четвертой нормальной форме.
5) Снова выполните проект (п. 4). На этот раз создайте концептуальную модель, которую затем преобразуйте ее в реляционную при помощи методов, рассмотренных в данной главе. Сравните результаты.
Глава 3 РЕЛЯЦИОННАЯ АЛГЕБРА И РЕЛЯЦИОННОЕ ИСЧИСЛЕНИЕ
Базовые механизмы работы с реляционными данными основаны на теории множеств реляционной алгебры и базируются на математической логике реляционного исчисления. Все эти механизмы обладают одним важным свойством: они замкнуты относительно понятия отношения. Это означает, что выражения реляционной алгебры и формулы определяются над отношениями и результатом их вычисления также являются отношениями.
Вообще в реляционной алгебре принято оперировать следующими понятиями:
В реляционной теории одним из главных понятий является отношение. Математически отношение определяется следующим образом. Пусть даны n множеств D1, D2, ..., Dn. Тогда R есть отношениенад этими множествами, если R есть множество упорядоченных наборов вида <d1, d2, ..., dn>, где: d1 – элемент из D1; d2 – элемент из D2; ..., dn – элемент из Dn. При этом наборы вида <d1, d2, ..., dn> называются кортежами, а множества D1, D2, ..., Dn – доменами. Каждый кортеж состоит из элементов, выбираемых из своих доменов. Эти элементы называются атрибутами, а их значения – значениями атрибутов.
По идее все эти понятия имеют разные названия, в зависимости от того, в какой области ими манипулируют. В таблице 3.1 приведено сопоставление терминологий, применяемых для обозначения общих понятий, но употребляемые в различных областях.
Таблица 3.1 - Сравнение понятий для разных областей
Теория БД | Практика | SQL Server |
Отношение (Relation) | Таблица (Table) | Таблица (Table) |
Кортеж (Tuple) | Запись (Record) | Строка (Row) |
Атрибут (Attribute) | Поле (Field) | Столбец (Column) |
Домен (Domain) | Общая совокупность допустимых значений | Количество столбцов |
Степень отношения | Кардинальное число отношения | Количество строк |
Обобщенное графическое представление некоторых из этих понятий схематично представлено на рисунке 3.1.
Рисунок 3.1 - Схематическое обозначение понятий реляционной
алгебры
Очень сложные запросы к базе данных могут быть выражены с помощью одного выражения реляционной алгебры или одной формулы реляционного исчисления. Именно по этой причине именно эти механизмы включены в реляционную модель данных. Конкретный язык манипулирования реляционными БД называется реляционно-полным, если любой запрос, выражаемый с помощью одного выражения реляционной алгебры или одной формулы реляционного исчисления, может быть выражен с помощью оператора этого языка.
Заметим, что крайне редко алгебра или исчисление принимаются в качестве полной основы какого-либо языка БД. Обычно (как, например, в случае языка SQL) язык основывается на некоторой смеси алгебраических и логических конструкций. Тем не менее, знание алгебраических и логических основ языков баз данных часто бывает полезно на практике и позволяет выражать конечные запросы к БД в виде совокупности операторов реляционной алгебры. Это упрощает понимание запросов и делает очевидным получаемые результаты.