Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
shpant / шпант / 24-27.docx
Скачиваний:
15
Добавлен:
15.04.2015
Размер:
514.23 Кб
Скачать

24. Базисные средства манипулирования реляционными данными. Реляционная алгебра. Операторы начальной алгебры. Неформальные определения и иллюстрации операций. Замкнутость. И операция переименования. Синтаксис реляционной алгебры (BNF –форма). Реляционная алгебра состоит из набора операторов, использующих отношения в качестве операндов и возвращающих отношения в качестве результата. "Начальная" алгебра  набор из восьми операторов, составляющих две группы, по четыре оператора в каждой:объединение, пересечение, вычитание и декартово Спец. реляционные операции: выборка, проекция, соединение и деление.Выборка:возвращает отношение, содержащее все кортежи из определенного отношения, которые удовлетворяют опред. условиям. Проекция:возвращает отношение, содержащее все кортежи определенного отношения после исключения из него некоторых атрибутов. Произведение:возвращает отношение, содержащее всевозможные кортежи, которые являются сочетанием двух кортежей, принадлежащих соответственно двум определенным отношениям.Объединение:возвращает отношение, содержащее все кортежи, которые принадлежат или одному из двух определенных отношений, или обоим. Пересечение:возвращает отношение, содержащее все кортежи, которые принадлежат одновременно двум определенным отношениям. Вычитание:возвращает отношение, содержащее все кортежи, которые принадлежат первому из двух определенных отношений и не принадлежат второму. Соединение:возвращает отношение, кортежи которого— это сочетания двух кортежей, имеющих общее значение для одного или нескольких общих атрибутов этих двух отношений. Деление:для двух отношений, бинарного и унарного, возвращает отношение, содержащее все значения одного атрибута бинарного отношения, которые соответствуют в другом атрибуте всем значениям в унарном отношении.

Замкнутость.Результат каждой операции над отношением также является отношением.Результат одной операции может использоваться в качестве исходных данных для другой. Необходим набор правил наследования имен атрибутов, встроенный в алгебру, чтобы можно было предсказывать имена атрибутов на выходе произвольной реляционной операции, зная имена атрибутов на входе этой операции.Причина:необходимость иметь возможность обращаться к именам атрибутов в последующих операциях. Задав такие правила для всех операций, можно гарантировать, что для выражения любой сложности будет вычисляться результат, с определенным набором атрибутов. Для достижения этой цели необходим новый оператор rename, предназначенный для переименования атрибутов в определенном отношении.

Пример: S RENAME CITY AS SCITY. С помощью этого выражения вычисляется отношение, имеющее то же самое тело, что и отношение S, но с именем атрибута SCITY вместо CITY:

Другие атрибуты этого отношения наследуют имена своих эквивалентов в отношении S без изменения. Синтаксис реляционной алгебры

  • BNF-грамматика. Обозначение "commalist" означает список, разделенный запятыми. Обозначения relation (отношение) и attribute (атрибут) определяются как идентификаторы, которые представляют собой соответственно имя отношения и имя атрибута.Обозначение condition - условие. В определенной выше грамматике для обеспечения правильного порядка в вычислениях сложных выражений необходимо использовать скобки.

25. Традиционные операции над множествами. Формальные определения. Примеры выполнения. Синтаксис упрощения.

Традиционные операции над множествами — это объединение, пересечение, вычитание и произведение. Операции объединения, пересечения и вычитания требуют от операндов совместимости по типу. Два отношения совместимы по типу, если у них идентичные заголовки, если каждое из них имеет одно и то же множество имен атрибутов; если соответствующие атрибуты определены на одном и том же домене.

Если необходимо выполнить операцию объединения, пересечения или вычитания двух отношений, которые почти совместимы по типу, можно использовать оператор rename, чтобы сделать эти отношения полностью совместимыми по типу, прежде чем выполнить необходимую операцию. Например, объединение множества кортежей поставщиков в отношении S и множества кортежей деталей в отношении Р является, несомненно, множеством. Однако, хотя такой результат и является множеством, он не является отношением; от­ношения не могут содержать смесь кортежей разных типов, они должны содержать одно­родные кортежи.Результат должен быть отношением, поскольку необ­ходимо, чтобы сохранилось свойство замкнутости

Следовательно, объединение в реля­ционной алгебре не полностью совпадает с математическим объединением, т.е., это особая форма объединения, в которой требуется, чтобы два исходных отношени, имели "одну и ту же форму". Это означает, например, что они оба содержат кортежи поставщиков или кортежи деталей, а не смесь обоих видов. Если два отношения имеют "одну и ту же форму", то их можно объединить и результат объединения будет от­ношением той же формы; иначе говоря, свойство замкнутости будет сохранено.

Объединением двух совместимых по типу отношений А и В (А union В) называется отношение с тем же заголовком, как и в отношениях А и В, и с телом, состоящим из множества всех кортежей t, принадлежащих А или В или обоим отношениям.Пример. Существуют отношения А и В. Отношение А представляет поставщиков из Лондона, а отношение В — поставщиков, которые поставляют деталь Р1. Тогда выражение a union в представляет поставщиков, которые или размещаются в Лондоне, или поставляют деталь Р1 (либо и то и другое). Результат имеет три кортежа.

Пересечением двух совместимых по типу отношений А и В (a intersect в) называется отношение с тем же заголовком, как и в отношениях А и В, и с телом, состоящим из множества всех кортежей t, принадлежащих одновременно обоим отношениям А и В. Пример. Пусть снова имеются отношения А и В. То­гда выражение a intersect в представляет поставщиков, которые размещаются в Лондоне и поставляют деталь Р1.

Вычитанием двух совместимых по типу отношений А и В (A MINUS B) называется отношение с тем же заголовком, как и в отношениях А и B , и с телом, состоящим из множества всех кортежей t, принадлежащих отношению А и не принадлежащих отношению В. Пример. Пусть существуют отношения А и В. Тогда выражение A MINUS B представляет поставщиков, которые размещаются в Лондоне и не поставляют деталь Р1, а B MINUS A представляет поставщиков, которые поставляют деталь Р1 и не размещаются в Лондоне.

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

{ <A1:a1>, <A2:a2>, …, <Am:am> }

и

{ <B1:b1>, <B2:b2>, …, <Bn:bn> }

сцепляются в один кортеж

{ <A1:a1>, <A2:a2>, …, <Am:am>, <B1:b1>, <B2:b2>, …, <Bn:bn> }

Если нужно построить декартово произведение двух отношений, которые имеют какие-то общие имена атрибутов, необходимо прежде для переименования соответствующих атрибутов применить оператор RENAME. Декартово произведение двух отношений А и В ( A TIMES B), где А и В не имеют общих имён атрибутов, определяется как отношение с заголовком, который представляет собой сцепление двух заголовков исходных отношений А и В, и телом, состоящим из множества кортежей t, таких что t представляет собой сцепление кортежа а, принадлежащего отношению А, и кортежа b , принадлежащего отношению В. Кардинальное число результата равняется произведению кардинальных чисел исходных отношений А и В, а степень равна сумме их степеней.На практике явное использование операции декартова произведения требуется только для сложных запросов. Декартово произведение требуется как промежуточный шаг при определении операции -соединения.

Пример. Пусть отношения А и В будут такими, что А представляет номера всех текущих поставщиков, а отношение В _ номера всех деталей, тогда A TIMES B - это все текущие пары поставщик-деталь и деталь-поставщик

Синтаксические упрощения. Операция объединения ассоциативна, т.е. если А, В и С— про­извольные выражения, то выражения (A UNION B) UNION C и A UNION (B UNION C) эквивалентны. Следовательно, можно упростить: A UNION B UNION C.

Аналогичные замечания можно сделать и для операций пересечения и декартова произведения (но не вычитания). Операции объединения, пересечения и декартова произведения (но не вычитания) еще и коммутативны, т.е. выражения A UNION B и B UNION A эквивалентны; точно так же и для операции пересечения и произведения.

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

26. Специальные реляционные операции. Операции выборки, проекции и естественного соединения. Формальные определения. Свойства. Примеры выполнения. специальные реляционные операции: выборка, проекция, соединения (разных видов) и деление.Операция выборки также называется операцией ограничения. Выборка — это сокращенное название -выборки, где  обозначает любой скалярный оператор сравнения (=, >, > и т.д.). -выборкой из отношения А по атрибутам X и Y (в этом порядке) А WHERE X Y называется отношение, имеющее тот же заголовок, что и отношение А, и тело, содержащее множество всех кортежей t отношения А, для которых проверка условия A Y дает значение истина. Атрибуты X и Y должны быть определены на одном и том же домене, а оператор должен иметь смысл для этого домена. Скалярное литеральное значение может быть указано как вместо атрибута X, так и вместо атрибута Y (или, естественно, вместо обоих); на практике это обычный случай. Например: A WHERE X θ literal. В результате выполнения этого оператора выборки получим "горизонтальное" подмножество данного отношения. Допускаются простые сравнения в выражении where. Однако на основании свойства замкнутости можно однозначно расширить определение до формы, в которой условие в выражении where будет содержать произвольное число логических сочетаний таких простых сравнений благодаря следующим тождествам:

1. A WHERE c1 AND c2 = (A WHERE c1) INTERSECT (A WHERE c2)

2. A WHERE c1 OR c2 = (A WHERE c1) UNION (A WHERE c2)

3. A WHERE NOT c = A MINUS (A WHERE c)

Если условие может быть истолковано как истина или ложь для данного кортежа, то рассматривая такой кортеж как отдельный, это условие на­зывают условием выборки.

Примеры операций выборки

Проекция.Проекцией отношения А по атрибутам X, Y,..., Z, где каждый из атрибутов принадлежит отношению А (а [ X, y, ... , z ]), называется отношение с заголовком {X, Y,..., Z} и телом, содержащим множество всех кортежей {Х:х, Y:y,..., Z:z}, таких, для которых в отношении А значение атрибута X равно х, атрибута Y равно у, ..., атрибута Z равно z. Таким образом, с помощью оператора проекции получено "вертикальное" подмножество данного отношения, т.е. подмножество, получаемое исключением всех атрибутов, не указанных в списке атрибутов, и последующим исключением дублирующих кортежей из того, что осталось.Никакой атрибут не может быть указан в списке атрибутов более одного раза. Синтаксические замечания.Синтаксис позволяет опустить список атрибутов совсем (вместе с квадратными скобками). Действие такой операции эквивалентно указанию списка всех атрибутов исходного отношения, т.е. такая операция представляет собой тождественную проекцию. Другими словами, имя отношения является допустимым реляционным выражением. Проекция вида R[ ], т.е. такая, в которой список атрибутов не пропущен, но пустой, тоже допустима. Она представляет собой "нулевую" проекцию.Примеры операций проекции

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

Естественное соединение.Операция соединения имеет несколько разновидностей. Однако наиболее важным является естественное соединение. Для обозначения естественного соединения используется ключевое слово join. Пусть отношения А и В имеют заголовки { X1,X2,…Xm,Y1,Y2,…Yn} и {Y1,Y2,…Yn,Z1,Z2,…Zp} соответственно; т.е. атрибуты Yl, Y2,..., Yn только они) — общие для двух отноше­ний; Х1,Х2,... ,Хт— остальные атрибуты отношения A; Z1,Z2,... ,Zp— остальные атрибуты отношения В. Предположим также, что соответствующие атрибуты (т.е. атрибуты с одинаковыми именами) определены на одном и том же домене. Рассмотрим выражения {XI,Х2,... ,Хт}, {Yl, Y2,..., Yn) и {Zl, Z2,..., Zp) как три составных атрибута X, Y и Z соответственно. Тогда естественным соединением отно­шений А и В (a join в) называется отношение с заголовком {X, У, Z} и телом, содер­жащим множество всех кортежей {Х:х, Y:y,Z:z}, таких, для которых в отношении А значение атрибута X равно х, а атрибута Y равно у, и в отношении В значение атрибута Y равно у, а атрибута Z равно z.Пример естественного соединения

Замечание. Cоединения не всегда выполняются по внешнему ключу и соответствующему потенциальному ключу (возможно, соответствующе­му первичному ключу), хотя такие соединения весьма распространены и являются важным частным случаем. Соединение, как мы уже определили, обладает и свойством ассоциативности, и свойством коммутативности. Отсюда следует, что выражения (A JOIN B) JOIN C и A JOIN (B JOIN C}могут быть однозначно упрощены к следующему:

A JOIN В JOIN С. Кроме того A JOIN В и B JOIN A эквивалентны. Если отношения А и В не имеют общих имен атрибутов, то выражение a join в эквивалентно a times в

Соседние файлы в папке шпант