Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Базы данных.doc
Скачиваний:
114
Добавлен:
16.03.2016
Размер:
5.67 Mб
Скачать

Лекция 5. Базисные средства манипулирования реляционными данными: алгебра a Дейта и Дарвена

5.1. Введение

В этой лекции мы обсудим новый «минимальный» вариант алгебры, предложенный несколько лет тому назад Дейтом и Дарвеном [1.5]. Как уже отмечалось в предыдущей лекции, возможно, новая алгебра не очень практична, но зато красива и элегантна.

Обсуждавшаяся в предыдущей лекции алгебра Кодда в большей степени базируется на теории множеств. Базовыми операциями являются переименование атрибутов, объединение, пересечение, взятие разности, декартово произведение, проекция и ограничение. Операция соединения общего вида, хотя и включается в алгебру, является вторичной и явно представляется через другие операции. Фундаментальная же в реляционном подходе операция естественного соединения выражается через соединение общего вида и в алгебру не включается. В терминах алгебры Кодда проще всего определяются алгебраические черты языка SQL, в частности общая семантика оператора SELECT.

Базисом предложенной Крисом Дейтом и Хью Дарвеном Алгебры A являются операции реляционного отрицания (дополнения), реляционной конъюнкции (или дизъюнкции) и проекции (удаления атрибута). Реляционные аналоги логических операций определяются в терминах отношений на основе обычных теоретико-множественных операций и позволяют выражать напрямую операции пересечения, декартова произведения, естественного соединения, объединения отношений и т. д. Путем комбинирования базовых операций выражаются операции переименования атрибутов, соединения общего вида, взятия разности отношений. Алгебра A позволяет лучше осознать логические основы реляционной модели, хотя, безусловно, является в меньшей степени ориентированной на практическое применение, чем алгебра Кодда16). Даже сами авторы Алгебры A, Дейт и Дарвен, в своем учебном языкеTutorial D[1.5]используют не Алгебру A напрямую, а некоторое ее надмножество, в большей степени напоминающее алгебру Кодда.

5.2. Базовые операции Алгебры a

Материал этой лекции излагается на несколько более формальном уровне, чем в предыдущих лекциях. Используемые понятия определяются, по существу, так же, как и в лекции 3, но для удобства и обеспечения точности изложения мы повторим определения.

Пусть r– отношение,A– имя атрибута отношенияr,T– имя соответствующего типа (т. е. типа или домена атрибутаA),v– значение типаT. Тогда:

  • заголовком Hrотношенияrназывается множество атрибутов, т.е. упорядоченных пар вида<A, T>. По определению никакие два атрибута в этом множестве не могут содержать одно и то же имя атрибутаA;

16 Нельзя не упомянуть еще и о том, что «алгебра» Кодда в действительности не является алгеброй отношений в математическом смысле, поскольку ее операции применимы не ко всем отношениям. В отличие от этого Алгебра A – это «настоящая» алгебра, в которой отсутствуют какие-либо ограничения на операнды операций.

  • кортеж tr, соответствующий заголовкуHr, – это множество упорядоченных триплетов вида<A, T, v>, по одному такому триплету для каждого атрибута вHr;

  • тело Brотношенияr– это множество кортежейtr. Заметим, что (в общем случае) могут существовать такие кортежиtr, которые соответствуютHr, но не входят вBr.

Заметим, что заголовок – это множество (упорядоченных пар вида <A, T>), тело – это множество (кортежейtr), и кортеж – это множество (упорядоченных триплетов вида<A, T, v>). Элемент заголовка – это атрибут (т. е. упорядоченная пара вида<A,T>); элемент тела – это кортеж; элемент кортежа – это упорядоченный триплет вида<A, T, v>. Любое подмножество заголовка – это заголовок, любое подмножество тела – это тело, и любое подмножество кортежа – это кортеж.

Определим несколько основных операций (как будет показано далее, некоторые из них избыточны). Каждое из последующих определений состоит из: формальной спецификации ограничений (если они имеются), применимых к операндам соответствующей операции; формальной спецификации заголовка результата этой операции; формальной спецификации тела этого результата и неформального обсуждения формальных спецификаций.

Во всех формальных спецификациях existsобозначаетквантор существования;exists trозначает «существует такойtr, что». Символ «» означает принадлежность одного множества другому;trBrозначает, что элементtrпринадлежит множествуBr. ВыражениеtrBrозначает, что элементtrне принадлежит множествуBr. Операцииminusиunionявляются традиционными теоретико-множественными операциями взятия разности и объединения множеств.

Поскольку некоторые базовые операции Алгебры A имеют названия обычных логических операций, чтобы избежать путаницы, имена реляционных операций берутся в угловые скобки: <NOT>,<AND>,<OR>и т. д. В исходный базовый набор операций входят операции реляционного дополнения<NOT>, удаления атрибута<REMOVE>, переименования атрибута<RENAME>, реляционной конъюнкции<AND>и реляционной дизъюнкции<OR>.