Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ans.doc
Скачиваний:
4
Добавлен:
01.04.2025
Размер:
663.04 Кб
Скачать
  1. Реляционная модель данных: алгебраические операции.

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

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

Со слайдов Новикова (пять формальных операций):

  1. Ограничение: sigma_p (R) = { t ∈ R : P(t) }, предикат P состоит из условий вида xθy, θ ∈ {=, ≠, <, ≤, ≥, >, …}. Среди кортежей выбираем те, которые удовлетворяют определённому предикату (он строится из простых предикатов, которые являются логическими выражениями на значениях атрибутов).

  2. Проекция: R ⊂ A1 х A2, …, An, и Ai1, …, Aik ∈ {A1 , …, An }, тогда pi < Ai1, Ai2 ,…, Aik > (R) = {< ai1, …, aik >:< a1, …, an > ∈ R}. Проектором называется оператор, квадрат которого есть он сам. Проекция производится на подмножество множества атрибутов. При выполнении проекции надо устранить дубликаты, что является весьма трудоёмкой задачей.

  3. Произведение: R x S = {< r, s >: r ∈ R , s ∈ S}. При выполнении операции произведения результирующая таблица получается, как правило, очень большой.

  4. Соединение: R ⊳⊲ p S = sigma_p (R x S). Соединение — композиция произведения и селекции, играет важную роль в теории баз данных. Эта операция имеет два операнда, может иметь разные виды в зависимости от того, что происходит потом — кроме селекции может быть проекция.

  5. Естественное соединение: R ⊳⊲ S – по предикату равенства некоторых атрибутов. Эта операция важна, так как для неё существует эффективный алгоритм. Мы можем конструировать новые отношения из уже имеющихся. Другие операции тоже позволяют конструировать новые отношения, но они получаются меньше, чем исходные. Соединение же позволяет конструировать нетривиальные отношения, большие по размерам.

    • Тета-соединение: прямое произведение с последующей фильтрацией. = 4

    • Эквисоединение: соединение по предикату равенства.

    • Естественное соединение: исключается дублирующий атрибут.

1. Алгебра: селекция, проекция

Проекция - выборка некоторых столбцов.

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

2. Теоретико-множественные операции: объединение, пересечение, разность, произведение

Для выполнения теоретико-множественных операций операнды должны иметь одинаковый набор атрибутов. В реальных системах всегда присутствует объединение (union), а вот пересечение есть в Oracle, IBM, но отсутствует в Microsoft SQL Server. Пересечение можно получить при помощи and и предиката принадлежности; столь же очевидным образом выражается через другие операции разность.

3. Соединение: соединение по условию, эквисоединение, естественное соединение, полусоединение, внешнее (левое, правое) соединение

Операции соединения:

• Прямое произведение: нет никакого предиката.

• θ-соединение: соединение с предикатом произвольного вида, составленным из простых условий на атрибуты, соединённых логическими связками.

• Эквисоединение: соединение по предикату равенства атрибутов, при этом в результате присутствуют совпадающие атрибуты каждого из аргументов (колонки с равными значениями атрибутов).

• Естественное соединение: отличается от эквисоединения тем, что совпадающие значения атрибутов выписываются один раз.

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

• Антисоединение (обратное полусоединение): возвращается множество тех строк, для которых пары не найдётся. (Выражается через полусоединение и разность.)

Две последние операции избыточны. Однако их прямое выполнение можно сделать более эффективным, чем, если выражать их через другие операции.

4. Деление

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

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

Определение деления с лекций Алиева:

A divided by B per C - выбрать все значения из А так, что для них существуют все элементы из В в парах из С.

Универсальная алгебра с частичными операциями - ограничение (фильтрация, селекция), проекция, декартово произведение, соединение по условию, естественное соединение, полусоединение, антисоединение, объединение, пересечение, разность, деление.

Условия в операции ограничения: простые условия, связывающие значения двух атрибутов или атрибута и константы (Attr1 = c, Attr1 = Attr2, =, <, >, <=, <=, <> и др.), логические выражения (OR, AND, NOT), скобки.

Restr(cond1 AND cond2) = restr(cond1)restr(cond2);

Proj(A) restr(A=c)=restr(A=c)proj(A);

Restr(cond1 OR cond2) = union(restr(cond1), restr(cond2))

Соотношения между теоретико-множественными операциями.

Антисоединение: разность между первым операндом и полусоединением

Внешние соединения: в результат включаются строки из левого (правого) операндов, для которых не нашлось пары. В отличие от соединения, не исключает никакие строки левого (правого) операнда.

Произведение коммутативно и ассоциативно. Соединение коммутативно и ассоциативно. Дистрибутивность соединения и теоретико-множественных операций. Соединение может коммутировать с проекцией и ограничением.

Деление: аналог «деления с остатком» для целых чисел. Все атрибуты делителя являются атрибутами делимого. Частное: все атрибуты делимого, не входящие в делитель. Частное: максимальное множество такое, что произведение частного и делителя содержится в делимом.

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