Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
7-12.docx
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
52.78 Кб
Скачать
  1. Операции проекции, разности, пересечения, селекции.

Проекция.

Предположим, что отношение R имеет атрибуты X, Y, . . ., Z (а также, возможно, некоторые другие). В таком случае проекция отношения R по атрибутам X, Y, ..., Z, которая определяется с помощью следующего выражения

R { X, Y, . . . , Z }

является отношением, соответствующим описанным ниже требованиям.

  • Его заголовок формируется из заголовка отношения а путем удаления всех атрибутов, не указанных в множестве { X, Y, ... , Z }.

  • Тело состоит из всех кортежей { Х х , У у, ..., Z z}, таких, что в отношении а присутствует кортеж со значением х атрибута X, у атрибута Y... и (соответственно) z атрибута Z.

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

Разность отношений R1 и R2: R=R1-R2.

Если даны отношения R1 и R2 одного и того же типа, то разность отношений R1-R2 является отношением того же типа с телом, которое состоит из всех кортежей, присутствующих в R1, но не присутствующих в R2.

Можно это определение отобразить диаграммой Венна. Разность R отношений изображена в виде штрихованной области.

Пересечение r s.

Пересечением отношений R и S называется множество кортежей, принадлежащих R и S. Отношения R и S должны иметь одинаковую степень. Т.е., R S=R-(R-S).

Пример операции пересечения:

Селекцией отношения R является отношение с тем же заголовком, что и в R, и с телом, состоящим из всех кортежей отношения R, таких, что функция P принимает истинное значение для рассматриваемого кортежа. )

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

Результат выполнения селекции над отношением УЧЕТ, в котором задано условие F=ОКЛАД>2000:

  1. Операции объединения, декартова произведения, соединения, деления. Виды соединений.

Объединение r1ur2.

Если даны отношения R1 и R2 одного и того же типа, то объединение этих отношений R1 U R2 является отношением того же типа с телом, которое состоит из всех кортежей, присутствующих в R1 или R2 или в обоих отношениях.

Декартово произведение R1 R2 =R1хR2.

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

R1 = { A1 a1, A2 а2, . . . , Am am } , где Аi – атрибут, а ai – значение кортежа

и

R2 = { B1 b1, B2 b2, ..., Bn bn }, где Bi – атрибут, а bi – значение кортежа, то конкатенация этих двух кортежей представляет собой приведенный ниже единственный кортеж.

R = R1+R2 = { A1 a1, A2 а2, ... , Am am, B1 b1, B2 b2, ..., Bn bn }

Кардинальность декартова произведения будет равна k1+k2, где k1 кардинальность отношения R1, а k2 — кардинальность отношения R2.

Отсюда следует, что результирующее отношение может иметь очень большие размеры.

Можно привести пример с произведением самого на себя.

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

Соединение

Соединением М отношений R1 и R2 называется отношение, представляющее собой произведение R1 и R2, к которому применены операции проекции и селекции. В формуле P – это логическое условие, по которому производится селекция.

Виды соединений

Естественное соединение (Natural Join)

Допустим, что R1 {A1, A2, … Ai, B1, B2, … Bj}, R2 {C1, C2, … Ck, B1, B2, … Bj }, имеют общий набор атрибутов B1…Bj.

Тогда естественное соединение представляет собой соединение R1 и R2 с заголовком {A’, B’, C’} и телом, в котором в результате селекции оставлены только те кортежи, у которых значение атрибутов Bi из R1 соответственно равно значениям атрибутов Bi из R2 и соответственно равны значениям атрибутов Bi в результирующем отношении R. В данном определении для простоты были сгруппированы множества атрибутов Ai в A’, Bi в B’, Ci в C’.

θ-соединение (тетта)

θ – это операция, принимающая на вход значения двух атрибутов заданного типа и возвращающая истину или ложь. Типичными примерами θ-операции являются <, >, =, != и подобные.

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

Если θ — арифметический оператор равенства, то операцию называют эквисоединением.

Естественное соединение является случаем эквисоединения в случае, когда соединение происходит по одному атрибуту, т.е. множество B (из определения) состоит из одного атрибута.

Сначала получаем декартово произведение , затем в нем рассматриваем все кортежи и оставляем те из них, у которых значения атрибутов B и D совпадают. В примере остается только один кортеж. Столбец В остается, а одинаковый с ним столбец D вычеркивается.

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