База данных

Автор работы: Пользователь скрыл имя, 06 Января 2014 в 21:03, лекция

Описание работы

Системы управления базами данных (СУБД) – это специализированные программные продукты, позволяющие:
1) постоянно хранить сколь угодно большие (но не бесконечные) объемы данных;
2) извлекать и изменять эти хранящиеся данные в том или ином аспекте, используя при этом так называемые запросы;

Файлы: 1 файл

1.docx

— 453.70 Кб (Скачать файл)

 

r 1 × r 2 = r 2 × r 1.

 

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

4. Свойство ассоциативности:

1) для операции объединения:

 

(r 1 ∪ r 2) ∪ r 3 = r 1 ∪(r 2 ∪ r 3);

 

2) для операции пересечения:

 

(r 1 ∩ r 2) ∩ r 3 = r 1 ∩ (r 2 ∩ r 3);

 

3) для операции разности:

 

(r 1 \ r 2) \ r 3 ≠ r 1 \ (r 2 \ r 3);

 

4) для операции декартового  произведения:

 

(r 1 × r 2) × r 3 = r 1 × (r 2 × r 3);

 

5) для операции естественного  соединения:

 

(r 1 × r 2) × r 3 = r 1 × (r 2 × r 3).

 

И снова мы видим, что свойство выполняется для всех операций, кроме  операции разности. Объясняется это  таким же образом, как и в случае применения свойства коммутативности. По большому счету, операциям объединения, пересечения, разности и естественного  соединения все равно в каком  порядке стоят отношения-операнды. Но при «отнимании» отношений друг от друга порядок играет главенствующую роль.

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

4. Варианты  операций соединения

 

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

Первым таким вариантом  операций соединения является операция внутреннего соединения  по заданному условию соединения.

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

Запишем формульное определение  этой операции:

 

r 1(S 1) × P r 2(S 2) = σ  <P > (r 1 × r 2), S 1 ∩ S 2 = ∅;

 

Здесь P  = P  <S 1 ∪ S 2> – условие, накладываемое на объединение двух схем исходных отношений-операндов. Именно по этому условию и происходит отбор кортежей из отношений r 1 и r 2 в результирующее отношение.

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

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

Для наглядного иллюстрирования  работы операции внутреннего соединения, приведем следующий пример.

Пусть нам даны два отношения r 1(S 1) и r 2(S 2) с различными схемами отношения:

r 1(S 1):

 

r 2(S 2):

 

Следующая таблица даст результат  применения операции внутреннего соединения по условию P = (b1 = b2).

r 1(S 1) × P r 2(S 2):

 

Итак, мы видим, что действительно  «слипание» двух таблиц, представляющих отношения, произошло именно по тем  кортежам, в которых выполняется  условие операции внутреннего соединения P = (b1 = b2).

Теперь на основании уже  введенной операции внутреннего  соединения мы можем ввести операцию левого внешнего соединения  и правого внешнего соединения . Поясним.

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

Вопрос, чем же пополняются  результирующие отношения операций левого и правого внешнего соединения, вполне ожидаем. Кортежи одного отношения-операнда дополняются на схеме другого отношения-операнда Null-значениями .

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

Чтобы записать общие формулы  для операций левого и правого  внешнего соединений, проведем некоторые  дополнительные построения.

Пусть нам даны два отношения r 1(S 1) и r 2(S 2) с различными схемами отношений S 1 и S 2, не пересекающимися друг с другом.

Так как мы уже оговаривали, что операции левого и правого  внутреннего соединения являются производными, то мы можем получить следующие вспомогательные  формулы для определения операции левого внешнего соединения:

 

1) r 3 (S ∪ S 1) ≔ r 1(S 1) × P r 2(S 2);

 

3 (S ∪ S 1) –  это просто результат внутреннего соединения отношений r 1(S 1) и r 2(S 2).  Левое внешнее соединение является производной операцией именно от операции внутреннего соединения, поэтому мы и начинаем наши построения с нее;

 

2) r 4(S 1) ≔ r  3(S 2 ∪ S 1) [S 1];

 

Таким образом, с помощью  унарной операции проекции, мы выделили все соединимые кортежи левого исходного  отношения-операнда r 1(S 1).  Результат обозначили r 4(S 1) для удобства применения;

 

3) r 5 (S 1) ≔ r 1(S 1) \ r 4(S 1);

 

Здесь r 1(S 1) –  все кортежи левого исходного отношения-операнда, а r 4(S 1) – его же кортежи, только соединимые. Таким образом, при помощи бинарной операции разности, в отношении r 5(S 1) у нас получились все несоединимые кортежи левого отношения-операнда;

 

4) r 6(S 2)≔ {∅(S 2)};

 

{∅(S 2)} –  это новое отношение со схемой (S 2),  содержащее всего один кортеж, причем составленный из Null-значений. Для удобства мы обозначили это отношение r 6(S 2);

 

5) r 7 (S ∪ S 1) ≔ r 5(S 1) × r 6(S 2);

 

Здесь мы взяли полученные в пункте три, несоединимые кортежи  левого отношения-операнда (r 5(S 1)) и дополнили их на схеме второго отношения-операнда S 2 Null-значениями, т. е. декартово умножили отношение, состоящее из этих самых несоединимых кортежей на отношение r 6(S 2),  определенное в пункте четыре;

 

6) r 1(S1 ) →× P r 2(S 2) ≔ (r 1 × P r 2) ∪ r 7 (S 2 ∪ S 1);

 

Это и есть левое внешнее соединение , полученное, как можно видеть, объединением декартового произведения исходных отношений-операндов r 1 и r 2 и отношения r 7 (S 2 ∪ S 1), определенного в пункте пятом.

Теперь у нас имеются  все необходимые выкладки для  определения не только операции левого внешнего соединения, но по аналогии и  для определения операции правого  внешнего соединения. Итак:

1) операция левого внешнего соединения  в строгом формулярном виде выглядит следующим образом:

 

r 1(S 1 ) →× P r 2(S 2) ≔ (r 1 × P r 2) ∪ [(r 1 \ (r 1 × P r 2) [S 1]) × {∅(S 2)}];

 

2) операция правого внешнего соединения  определяется подобным образом операции левого внешнего соединения и имеет следующий вид:

 

r 1(S 1 ) →× P r 2(S 2) ≔ (r 1 × P r 2) ∪ [(r 2 \ (r 1 × P r 2) [S 2]) × {∅(S 1)}];

 

Эти две производные операции имеют всего два свойства, достойные  упоминания.

1. Свойство коммутативности:

1) для операции левого  внешнего соединения:

 

r 1(S 1) →× P r 2(S 2) ≠ r 2(S 2) →× P r 1(S 1);

 

2) для операции правого  внешнего соединения:

 

r 1(S 1) ←× P r 2(S 2) ≠ r 2(S 2) ←× P r 1(S 1)

 

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

1) для операции левого  внешнего соединения:

 

r 1(S 1) →× P r 2(S 2) = r 2(S 2) →× P r 1(S 1);

 

2) для операции правого  внешнего соединения:

 

r 1(S 1) ←× P r 2(S 2) = r 2(S 2) ←× P r 1(S 1).

 

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

1) для операции левого  внешнего соединения:

 

r 1(S1 ) = (r 1 →× P r 2) [S 1];

 

2) для операции правого  внешнего соединения:

 

r 2(S 2) = (r 1 ←× P r 2) [S 2].

 

Таким образом, мы видим, что  первое исходное отношение-операнд можно восстановить из результата операции левого правого соединения, а если конкретнее, то применением к результату этого соединения (r 1 × r 2) унарной операции проекции на схему S 1, [S 1].

И аналогично второе исходное отношение-операнд можно восстановить применением к результату операции правого внешнего соединения (r 1 × r 2) унарной операции проекции на схему отношения S 2.

Приведем пример для более  подробного рассмотрения работы операций левого и правого внешних соединений. Введем уже знакомые нам отношения r 1(S 1) и r 2(S 2) с различными схемами отношения:

r 1(S 1):

 

r 2(S 2):

 

Несоединимый кортеж левого отношения-операнда r 2(S 2) – это кортеж {d, 4}. Следуя определению, именно им следует дополнить результат внутреннего соединения двух исходных отношений-операндов.

Условие внутреннего соединения отношений r 1(S 1) и r 2(S 2) также оставим прежнее: P = (b1 = b2). Тогда результатом операции левого внешнего соединения  будет следующая таблица:

r 1(S 1) →× P r 2(S 2):

 

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

И аналогично результатом правого внешнего соединения  по тому же, что и раньше, условию P = (b1 = b2) исходных отношений-операндов r 1(S 1) и r 2(S 2) является следующая таблица:

r 1(S 1) ←× P r 2(S 2):

 

Действительно, в этом случае пополнять результат операции внутреннего  соединения следует несоединимыми  кортежами правого, в нашем случае второго исходного отношения-операнда. Такой кортеж, как не трудно видеть, во втором отношении r 2(S 2) один, а именно {2, y}. Далее действуем по определению операции правого внешнего соединения, дополняем кортеж первого (левого) операнда на схеме первого операнда Null-значениями.

И, наконец, рассмотрим третий вариант приведенных ранее операций соединения.

Операция полного внешнего соединения . Эту операцию вполне можно рассматривать не только как операцию, производную от операций внутреннего соединения, но и как объединение операций левого и правого внешнего соединения.

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

 

r 1(S 1) ↔× P r 2(S 2) = (r 1 →× P r 2) ∪ ( r 1 ←× P r 2);

 

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

 

r 1(S 1) ↔× P r 2(S 2)= r 2(S 2) ↔ × P r 1(S 1);

 

И для завершения рассмотрения вариантов операций соединения, рассмотрим пример, иллюстрирующий работу операции полного внешнего соединения. Введем два отношения r 1(S 1) и r 2(S 2) и условие соединения.

Пусть

r 1(S 1)

Информация о работе База данных