Оператор соединения
Оператор соединения определяется через операторы декартового произведения и выборки. Для оператора естественного соединения добавляется оператор проекции.
Оператор пересечения
Оператор пересечения выражается через вычитание следующим образом:
Оператор деления
Оператор деления выражается через операторы вычитания, декартового произведения и проекции следующим образом:
Таким образом показано, что операторы соединения, пересечения и деления можно выразить через другие реляционные операторы, т.е. эти операторы не являются примитивными.
Реляционные операторы (объединение, вычитание, декартово произведение, выборка, проекция) являются примитивными операторами - их нельзя выразить друг через друга.
21. Типы связей между сущностями.
В реляционной модели данных сущности обычно связаны друг с другом, поскольку моделируемые ими объекты предметной области, как правило, не являются изолированными друг от друга.
Очень важно, что связи являются неотъемлемой составляющей данных, как и основные сущности. Поэтому связи в БД должны быть представлены наравне с остальными сущностями предметной области.
Каждая связь между сущностями идентифицируется названием, как правило глаголом или глагольной формой. Например: студент занимается группой, самолет управляется экипажем и т. д.
Существует 3 основные типа связи между сущностями:
1) 1:1 – связь, где каждому картежу 1 сущности соотв. не более 1 кортежа 2 сущности и наоборот
Связь 1:1 на практике встречается редко, т. к. сущности такой связи обычно объединяют в 1 сущность. Эту связь используют тогда, когда не хотят чтобы сущность «разрасталась» от включения в неё второстепенной информации, которую оформляют в виде другой сущности и снабжают тем же ключом, что и у основной сущности. Так сущности «Мужчина » и «Женщина» можно объединить в сущность «Семейная пара»:
Например сущность «служащий» можно наоборот разбить на сущности «Сотрудник» и «Доп. сведения»:
2) Связь 1:М – в этом случае 1 связанная сущность выступает в роли главной (родительской), а вторая в роли подчиненной (дочерней).
Эта связь каждому кортежу родительской сущности ставит в соответствие любое число (даже 0) кортежей дочерней сущности. Однако каждый кортеж дочерней сущности м. б. связан только с одним кортежем родительской сущности.
3) М:М - эта связь каждому кортежу 1-ой сущности ставит в соответствие любое (в т. ч. 0) число кортежей 2-ой сущности и наоборот.
22. Связь между сущностями типа «один ко многим». Свойства внешнего ключа.
Связь 1:М – в этом случае 1 связанная сущность выступает в роли главной (родительской), а вторая в роли подчиненной (дочерней).
Эта связь каждому кортежу родительской сущности ставит в соответствие любое число (даже 0) кортежей дочерней сущности. Однако каждый кортеж дочерней сущности м. б. связан только с одним кортежем родительской сущности.
Механизм реализации связи 1:М заключается в том, что в дочернюю сущность добавляются атрибуты, дублирующие ключевые атрибуты родительской сущности. Эти атрибуты получают название «первичного ключа» и с их помощью становится возможной связь между кортежами родительской сущности с одной стороны и подмножеством кортежей дочерней сущности, с другой стороны. Еще такие атрибуты называют мигрирующими.
Если дочерняя сущность является независимой от родительской сущности, то мигрирующие атрибуты включаются в качестве первичного ключа дочерней сущности. В противном случае, они включаются в состав ее неключевых атрибутов.
Связь 1:М является самая распространённая и позволяет моделировать иерархические структуры данных.
Свойства внешнего ключа:
1) Внешний ключ как и первичный может быть как простым, так и составным.
2) Внешний ключ основан на тех же доменах, что и соотв. ему первичный ключ родительской сущности, но имена первичного и родительского ключа не обязательно должны совпадать.
3) Внешний ключ, как правило, не является уникальным, т. е. ключ родительской сущности может ссылаться на несколько кортежей дочерней сущности. В противном случае связь 1:1.
4) Каждое значение внешнего ключа должно совпадать со значением первичного ключа некоторого кортежа родительской сущности. Однако обратное неверно.
5) Для внешнего ключа допускается, чтобы он был частью некоторого возможного ключа дочерней сущности.
23. Связь между сущностями типа «многие ко многим». Ее преобразование при переходе к физической модели.
Связи "многие ко многим"
При установлении связи "многие ко многим" каждой строке таблицы А может соответствовать множество строк таблицы Б и наоборот. Такая связь создается при помощи третьей таблицы, называемой соединительной, первичный ключ которой состоит из внешних ключей, связанных с таблицами А и Б. Например, между таблицами "Авторы" и "Книги" установлена связь вида "многие ко многим", задаваемая с помощью связей вида "один ко многим" между каждой из этих таблиц и таблицей "АвторыКниг". Первичный ключ таблицы "АвторыКниг" - это сочетание столбцов "ИД_автора" (первичного ключа таблицы авторов) и "ИД_книги" (первичного ключа таблицы заголовков).
Преобразование связи «многие-ко-многим»
Как известно, связи M:M между таблицами баз данных в реляционной модели не поддерживаются. Если при создании связи M:M в логической модели в меню Model/Model Properties была отмечена позиция Many-to-Many Relationships with Association Table, топри переходе к физической модели вместо связи M:M будет создана связующая таблица, с которой таблицы, соответствующие сущностям, связанным отношением M:M, будут связаны обычной для реляционных моделей связью 1:M.
Полученную таблицу можно переименовать, назвав ее, например, «Владение предметом».
Если при создании связи M:M в логической модели в меню Model/Model Properties позиция Many-to-Many Relationships with Association Table не была отмечена, то при переходе к физической модели связующая таблица создана не будет. Если все-таки надо, чтобы такая таблица была создана (а в подавляющем большинстве случаев это именно так), то можно воспользоваться возможностью трансформации модели. Для этого надо выделить связь и нажать на кнопку Many to Many Transform. И далее, следуя подсказкам системы, надо задать имя создаваемой связующей таблицы и имя трансформации.
В процессе создании ER-модели может возникнуть ситуация, что, уточняя и расширяя модель, в связующую таблицу будут введены дополнительные колонки (т.е. для связи будут заданы характеризующие ее свойства).
Эта связь каждому кортежу 1-ой сущности ставит в соответствие любое (в т. ч. 0) число кортежей 2-ой сущности и наоборот.
В отличии от связей 1:1 и 1:M, связь М:М трудно реализовать в физической модели данных, поэтому эту связь при переходе к физической модели преобразуют в 2 связи 1:М путем создания доп. сущностей. Последняя снабжается первичным ключом, составленным из ключей исходных сущностей.
24.Нормализация данных. Первая нормальная форма.
Нормализация – процесс проверки и организации сущностей, в результате которых устраняются избыточные копии данных и тем самым устраняется возможность появления противоречивых данных, т. к. информация о факте должна храниться в одном месте.
Процесс нормализации – постепенное приведение сущности к нормальным формам
Определение 1: Атрибут Б сущности функционально зависит от А этой же сущности, если каждому значению атрибута А соответствует точно 1 значение атрибута Б. (А однозначно определяет В).
Определение 2: Если между атрибутами А и Б одной сущности отсутствует функциональная зависимость, однако атрибут А ограничивает диапазон изменения атрибута Б некоторым числом определенных значений, то говорят, что между такими атрибутами существует многозначная зависимость.
Определение 3: Функциональная многозначная зависимость между атрибутами не выводится из структуры сущности, т. к. это сематическое понятие, отражающее существование дополнительных ограничений на данные, представленные сущностью.
1 нормальня форма
Сущность находится в первой нормальной форме, если все ее атрибуты являются простыми (атомарными, их нельзя разделить без потери смысла) и среди атрибутов отсутствуют повторяющиеся группы. Так же не допускается хранить в одном атрибуте разные по смыслу значения.
Для приведения сущности к первой нормальной форме необходимо:
1) Разделить сложные атрибуты на атомарные
2) Для групп повторяющихся атрибутов создать новую сущность
3) Установить с новыми сущностями связи 1:М
4) Разделить атрибуты, хранящие разную смысловую информацию, на односмысловые
25.Нормализация данных. Вторая нормальная форма.
Нормализация – процесс проверки и организации сущностей, в результате которых устраняются избыточные копии данных и тем самым устраняется возможность появления противоречивых данных, т. к. информация о факте должна храниться в одном месте.
Процесс нормализации – постепенное приведение сущности к нормальным формам