Материал: BD шпорки

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
  1. Реляционная операция естественного соединения и ее свойства

Пусть даны сущность S с заголовком {A1, … An, B1,…, Bm} и сущность R с заголовком {B1,…,Bm,C1,…,Cp} при этом заголовки содержат общие атрибуты B1,…,Bm, тогда естественным соединением сущности S и R называется сущность с заголовком {A1, … An, B1,…, Bm,C1,…,Cp} и телом, содержащее множество кортежей вида: {a1, … an, b1,…, bm,c1,…,cp}, таких, для каждого из которых имеет место (a1,…an,b1,…,bm) принадлежащих S и (b1,…bm,c1,…,cp) принадлежащих R

Естественное соединение важно, для него существует спец. Синтаксис: S JOIN R

Замечание

  1. В синтаксисе естественного соединения не указывается по каким атрибутам производится соединение. это объясняется тем, что соединение проводится по всем одинаковым атрибутам.

  2. Естественное соединение эквивалентно последовательности операций:

  1. Переименовать в сущности атрибуты с одинаковыми именами

  2. Выполнить декартово произведение сущности

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

  4. Выполнить операцию проекции ,удаляя повторяющиеся атрибуты(с учетом того, что было выполнено переименование)

  5. Вернуть первоначальные имена тем атрибутам, которые вы переименовали

  1. Естественное соединение, как и соединение общего вида ,обладает свойством ассоциативности, т.е (S JOIN R)JOIN T = S JOIN (R JOIN T). Поэтому такие соединения можно записывать опуская скобки S JOIN R JOIN T

  2. Если заголовки сущностей S и R не имеют общих атрибутов, то операция S JOIN R вырождается в операцию S TIMES R

Если сущность S и R относятся к одному и тому же типу, т.е имеют одинаковые заголовки , то операции S JOIN R вырождаются в S INTERSECT R

Поставка

Код поставщика

Номер детали

1

1

1

2

1

3

2

1

2

2

3

1


Поставщик

Код поставщика

Имя поставщика

1

МП Темп

2

ИП Орион

3

ГП Калибр

Пусть заголовок сущности S включает в себя атрибут А, заголовок сущности R- атрибут B, тогда ϴ соединение сущностей S and R по атрибутам А и В называется сущность:

(S TIMES R) WHERE AϴB

ϴ {=, ≠, <, >, , }

Часто для операции тэта-соединение применяют следующий синтаксис

S[A ϴ B] R

Экви-соединения

Если ϴ представляют собой оператор проверки на равенство, то это соединение называется экви-соединение или соединением по равенству:

S[A = B]R

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

Естественное соединение:

Пусть даны сущность S с заголовком {A1, … An, B1,…, Bm} и сущность R с заголовком {B1,…,Bm,C1,…,Cp} при этом заголовки содержат общие атрибуты B1,…,Bm, тогда естественным соединением сущности S и R называется сущность с заголовком {A1, … An, B1,…, Bm,C1,…,Cp} и телом, содержащее множество кортежей вида: {a1, … an, b1,…, bm,c1,…,cp}, таких, для каждого из которых имеет место (a1,…an,b1,…,bm) принадлежащих S и (b1,…bm,c1,…,cp) принадлежащих R

Естественное соединение важно, для него существует спец. Синтаксис: S JOIN R

  1. Примитивные и не примитивные реляционные операции Оператор соединения

Оператор соединения определяется через операторы декартового произведения и выборки. Для оператора естественного соединения добавляется оператор проекции.

Оператор пересечения

Оператор пересечения выражается через вычитание следующим образом:

Оператор деления

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

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

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

  1. Типы связей между сущностями

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

Связи являются такой же неотъемлимой составляющей данных, как и основные сущности, поэтому связи должны быть представлены в БД на ряду с сущностями предметной области.

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

Существует 3 основных типа связи между сущностями:

  1. Связь 1 к 1.

Где каждому кортежу 1-ой сущности ставится в соответствие не более 1-го кортежа другой сущности и наоборот.

  1. Связь 1 к М.

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

  1. Связь м:м

Эта связь каждому кортежу 1-й сущности ставит в соответствие любое (в том числе и нулевое) число кортежей другой сущности и наоборот.

  1. Связь между сущностями типа «один ко многим». Свойства внешнего ключа

Связь 1 к М.

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

Механизм реализации связи 1 к М заключается в том, что в дочернюю сущность добавляются атрибуты, дублирующие ключевые атрибуты родительской сущности. Эти атрибуты получают название «первичного ключа» и с их помощью становится возможной связь между кортежами родительской сущности с одной стороны и подмножеством кортежей дочерней сущности, с другой стороны. Еще такие атрибуты называют мигрирующими.

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

ПРИМЕР
Необходимо получить естественное соединение сущностей поставщик и поставка

Поставщик JOIN Поставка

Код поставщика

Имя поставщика

Номер детали

1

МП Темп

1

1

МП Темп

2

1

МП Темп

3

2

ИП Орион

1

2

ИП Орион

2

3

ГП Калибр

1

  1. Реляционная операция деления

Операция деления.

Пусть даны сущность S с заголовком {A1, … An, B1,…, Bm} и сущность R с заголовком {B1,…,Bm,C1,…,Cp} при этом заголовки содержат одинаковые атрибуты B1,…, Bm, тогда делением сущностей S на R называется сущность с заголовком {A1, … An} и телом (a1,…,an), таких, что для любого кортежа (b1,…,bm) принадлежащего R ,существует кортеж (a1,…,an, b1,…,bm) принадлежащий S. Сущность S в роли делимого, а R – делитель. Деление сущностей похоже на деление целых чисел с отбрасыванием остатка. Синтаксис S DIVEDEBY R

Замечание

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

Если необходимо узнать не коды, а имена ,то следует выполнить операцию: ((Поставка DEVIDEBY Изделие) JOIN Поставщик)[имя поставщика]

Связь 1 к М является самая распространённая и позволяет моделировать иерархические структуры данных.

Свойства внешнего ключа:

  1. Внешний ключ, как и первичный, может быть как простым, так и составным.

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

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

  4. Каждое значение внешнего ключа обязано совпадать со значением первичного ключа в некотором кортеже родительской сущности, однако обратное, в общем случае, неверно. (Например, может существовать подразделение, в которое еще не зачислен ни один сотрудник.)

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