Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
бд!.docx
Скачиваний:
31
Добавлен:
21.09.2019
Размер:
635.11 Кб
Скачать
  1. Реляционная алгебра как манипуляционная часть реляционной модели данных: общая характеристика, основные элементы, теоретико-множественные и специальные операции.

В основе реляционной модели данных (РМД) лежат некоторые разделы математической теории отношений и математической логики. Манипуляционную часть РМД составляют спецификационные операторы, естественные для РМД и базирующиеся на концепциях теории множеств. Языки запросов в РМД разбиваются на два класса:

  • алгебраические языки (реляционная алгебра), позволяющие выражать запросы с помощью специальных операторов, применяемых к отношениям;

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

Из приведенного определения следует:

  • языки реляционной алгебры показывают, как получить результат;

  • языки реляционного исчисления показывают, что должно быть получено.

Языки реляционного исчисления делятся на два класса: с переменными–кортежами и с переменными на доменах – в зависимости от того, что является примитивными объектами исчисления: кортежи или элементы доменов, являющиеся значениями некоторых атрибутов.

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

Все операции над отношениями можно разбить на две группы:

  • Теоретико-множественные операции – традиционные операции над множествами, определяемые теорией множеств; к ним относятся: 1)объединение, 2)вычитание, 3)пересечение, 4)прямое (декартово) произведение

  • Специальные реляционные операции; к ним относятся: 1)выбор (селекция), 2)проекция, 3)соединение, 4)деление, 5)переименование.

Результирующее отношение будет иметь, наряду с реализацией, и схему отношения.Схема отношения – это поименованная совокупность имен атрибутов.Обязательным условием для определения схемы отношения является уникальность имен атрибутов в схеме. Для того чтобы результирующее отношение имело правильную схему, содержащую правильные (уникальные в данной схеме) имена атрибутов, может быть востребована специальная операция переименования, позволяющая переименовать атрибут в некоторой схеме отношения.

Простые домены считаются совместимыми по объединению, если они состоят из элементов одного типа. Два отношения считаются совместимыми по объединению, если

  • оба отношения имеют одно и то же множество атрибутов,

  • одноименные атрибуты двух отношений определены на совместимых по объединению доменах.

Объединением двух отношений r1(R1) и r2(R2), совместимых по объединению, называется отношение s = r1  r2, для которого

  1. схема отношения совпадает с R1 или R2,

  2. реализация отношения представляет множество кортежей, принадлежащих реализации r1 и/или r2.

Формальная запись: Даны r1(R1), r2(R2), r1 = {t1i}, r2 = {t2i}, R1  R, R2  R.

s = r1  r2 = s(R), s = {ti | ti  r1 и/или ti  r2}

Свойства операции:

  • коммутативна – r1  r2  r2  r1

  • ассоциативна – r1  (r2  r3) = (r1  r2)  r3 = r1  r2  r3

Вычитанием двух отношений r1(R1) и r2(R2), совместимых по объединению, называется отношение s = r1 – r2, для которого

  1. схема отношения совпадает с R1 или R2,

  2. реализация отношения представляет множество кортежей, принадлежащих реализации r1, за исключением тех, которые имеются в r2.

Формальная запись: Даны r1(R1), r2(R2), r1 = {t1i}, r2 = {t2i}, R1  R, R2  R.

s = r1 – r2 = s(R), s = {ti | ti  r1 и ti  r2}

Свойства операции: не коммутативна и не ассоциативна.

Пересечением двух отношений r1(R1) и r2(R2), совместимых по объединению, называется отношение s = r1  r2, для которого

  1. схема отношения совпадает с R1 или R2,

  2. реализация отношения представляет множество кортежей, содержащихся и в r1, и в r2.

Формальная запись: Даны r1(R1), r2(R2), r1 = {t1i}, r2 = {t2i}, R1  R, R2  R.

s = r1  r2 = s(R), s = { ti | ti  r1 и ti  r2}

Свойства операции:

  • коммутативна – r1  r2  r2  r1

  • ассоциативна – r1  (r2  r3) = (r1  r2)  r3 = r1  r2  r3

Операцию пересечения можно выразить через операцию вычитания: r1  r2 = r1 – (r1 – r2)

Декартовым произведением двух отношений r1(R1) и r2(R2), у которых R1  R2 = 0, называется отношение s = r1  r2, для которого

  1. схема отношения определяется сцеплением (объединением) схем R1 и R2,

  2. реализация отношения представляет множество кортежей, которое получается путем сцепления каждого кортежа из r1 с каждым кортежем из r2.

Здесь отношения r1(R1) и r2(R2) могут иметь разные схемы, не обязательно совместимые по объединению. Перед выполнением операции декартова произведения необходимо переименовать схемы отношений R1 или R2 так, чтобы они не имели одноименных атрибутов.

Формальная запись:

Даны r1(R1), R1(A1, A2, …, Am), r2(R2), R2(B1, B2, …, Bn), r1 = {t1i}, r2 = {t2i}, R1  R2 = 0

s = r1  r2 = s(R), R(A1, A2, …, Am, B1, B2, …, Bn), s = {ui vj | ui  r1, vj  r2}

Свойства операции:

  • коммутативна – r1  r2  r2  r1

  • ассоциативна – r1  (r2  r3) = (r1  r2)  r3 = r1  r2  r3

Специальные операции определены только для нормализованных отношений. В этих операциях наряду с самими отношениями участвуют и их атрибуты. В отношениях РМД к атрибутам можно обращаться или по имени, или по их позиции в схеме отношения. Мы будем использовать обращение к атрибутам по имени.

Операция проекции является унарной операцией на отношениях, т.е. в этой операции участвует только одно отношение.

Проекцией отношения r(R), R = {Ai}, на некоторый список имен атрибутов (подмножество атрибутов) L из R, L  R, называется отношение s = L(r), для которого:

  1. схема отношения определяется списком L,

  2. реализация отношения есть множество кортежей, полученных из кортежей отношения r вычеркиванием элементов, соответствующих атрибутам R – L и исключением дубликатов.

Формальная запись: Дано r(R), R(A1, A2, …, Am), r = {<t1 : A1, t2 : A2…, tm : Am >}

s(L) = L(r), L  R, L(B1, B2, …, Bk), Bi  R, s = {<u1 : B1, u2 : B2, …, uk : Bk> | таких, что ui = tj, если Bi  Aj}

Проекция дает вертикальное подмножество отношения. Свойство проекции:

Если Y  X  R, то Y(X(r))  Y(r)

Операцию выбора называют еще ограничением и селекцией. Также унарная операция.

Выбором из отношения r(R) по условию F называется отношение s = F(r), для которого:

  1. схема отношения совпадает со схемой R,

  2. реализация отношения есть множество кортежей из r, удовлетворяющих условию F.

Формальная запись: Дано r(R), r = {ti}

s(R) = F(r), s = {ui | ui  R и F(ui) – истинно}

Условие (предикат) F записывается в соответствии со следующими правилами:

  • в качестве операндов могут быть указаны атрибуты отношения и/или константы;

  • в качестве операций могут быть использованы операции отношения (=,  и т.д.) и логические операции (, , ).

Для указания порядка вычисления предиката F в нем могут быть использованы круглые скобки. Выбор дает горизонтальное подмножество отношения. Свойства операции:

  • коммутативна – F1(F2(r)) = F2(F1(r)) = F1 F2 (r)

  • дистрибутивна относительно операций  = (, , –): F (r  s) = F (r)  F (s)

Операция выбора осуществляет ограничение кортежей исходного отношения до значений, удовлетворяющих условию.

В реляционной алгебре рассматриваются две модификации операции соединения: естественное соединение и соединение по условию (или  – соединение). Рассмотрим естественное.

Естественным соединением отношений r1(R1), R1 = XY, и r2(R2), R2 = YZ, где Y – общее подмножество атрибутов из R1 и R2, определенных на одних и тех же доменах, называется отношение s(R) = r1 r2, для которого:

  1. схема отношения R = R1  R2 = XYZ,

  2. реализация отношения есть множество кортежей {t}, для которых XY(t) r1 и YZ(t) r2.

Формальная запись: Даны r1(R1), R1 = XY, и r2(R2), R2 = YZ.

s(R) = r1 r2, R = R1  R2 = XYZ, s = {t | таких, что XY(t)  r1 и YZ(t)  r2}

Частным от деления отношения r1(R1) на отношение r2(R2), для которых R2  R1 и R2 не пусто, называется отношение s(R) = r1  r2, для которого:

  1. схема отношения R = R1 – R2,

  2. реализация отношения есть множество кортежей t таких, что для всех ti  r2 существует tj  r1 такой, что tj(R1 – R2) = t и tj(R2) = ti.

Формальная запись: Даны r1(R1), r2(R2), R2  R1, R2  0.

s(R) = r1  r2, R = R1 – R2, s = {tj |  u  r2 (tju  r1)}

Другими словами, s  r2  r1.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]