Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Реляционная алгебра А. Базовые операции подробно с примерами.




Идеи Кодда были переработаны несколько лет тому назад Дейтом и Дарвеном и была предложены новая алгебра А(притом этот алгебра в математическом смысле).

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

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

1) Реляционное дополнение. Пусть s обозначает результат операции <NOT> r. Тогда:

  • Hs = Hr (заголовок результата совпадает с заголовком операнда);
  • Bs = {ts : exists tr (tr Br and ts = tr) } (в тело результата входят все кортежи, соответствующие заголовку и не входящие в тело операнда).

Чтобы привести пример использования операции <NOT>, предположим, что в состав домена ДОПУСТИМЫЕ_НОМЕРА_ПРОЕКТОВ, на котором определен атрибут ПРО_НОМ отношения НОМЕРА_ПРОЕКТОВ с рисунка слева, входит всего пять значений {1, 2, 3, 4, 5}. Тогда результат операции <NOT> НОМЕРА_ПРОЕКТОВ будет таким, как показано на рисунке справа.

2) Удаление атрибута. Пусть s обозначает результат операции r <REMOVE> A. Для обеспечения возможности выполнения операции требуется, чтобы существовал некоторый тип (или домен) T такой, что <A, T> Hr (т. е. в состав заголовка отношения r должен входить атрибут A). Тогда:







Дата добавления: 2015-09-15; просмотров: 111. Нарушение авторских прав

Studopedia.info - Студопедия - 2014-2017 год . (0.015 сек.) русская версия | украинская версия