Автор: Пользователь скрыл имя, 29 Октября 2012 в 12:02, доклад
Модель сущность-связь (ER-модель) (англ. entity-relationship model, ERM) — модель данных, позволяющая описывать концептуальные схемы предметной области. Концептуа́льная схе́ма — система взаимосвязанных по определенным правилам понятий (а не единичное понятие) и концепций.
ER-модель используется при высокоуровневом (концептуальном) проектировании баз данных. С её помощью можно выделить ключевые сущности и обозначить связи, которые могут устанавливаться между этими сущностями.
Ассортимент (продавцы, фирмы, товары) | ||
Продавец |
Фирма |
Товар |
Иванов |
Рога и Копыта |
Пылесос |
Иванов |
Рога и Копыта |
Хлебница |
Петров |
Безенчук&Ко |
Сучкорез |
Петров |
Безенчук&Ко |
Пылесос |
Петров |
Безенчук&Ко |
Хлебница |
Петров |
Безенчук&Ко |
Зонт |
Сидоров |
Безенчук&Ко |
Пылесос |
Сидоров |
Безенчук&Ко |
Телескоп |
Сидоров |
Рога и Копыта |
Пылесос |
Сидоров |
Рога и Копыта |
Лампа |
Сидоров |
Геркулес |
Вешалка |
Если дополнительных условий нет, то данное отношение, которое находится в 4-ой нормальной форме, является корректным и отражает все необходимые ограничения.
Теперь предположим, что нужно учесть следующее ограничение: каждый продавец имеет в своём ассортименте ограниченный список фирм и ограниченный список типов товаров и предлагает товары из списка товаров, производимые фирмами из списка фирм.
То есть продавец не имеет право торговать какими угодно товарами каких угодно фирм. Если продавец П имеет право торговать товарами фирмы Ф, и если продавец П имеет право торговать товарами типа Т, то в этом случае в ассортимент продавца Пвходят товары типа Т фирмы Ф при условии, что фирма Ф производит товары типа Т.
Такое ограничение может быть вызвано, например, тем, что список типов товаров продавца ограничен имеющимися у него лицензиями, либо знаниями и квалификацией, необходимыми для их продажи, а список фирм каждого продавца определён партнёрскими соглашениями.
В рассматриваемом
примере, в частности, предполагается,
что продавец Иванов имеет право торговать товарами только
фирмы «Рога и Копыта», продавец Петров
— товарами только фирмы «Безенчук&Ко»,
зато продавец Сидоров не имеет право
торговатьхлебницами и
Предложенное выше отношение не может исключить ситуации, при которых данное ограничение будет нарушено. Ничто не препятствует занести данные о торговле товаром, который данная фирма вообще не выпускает, либо данные о торговле товарами той фирмы, которую данный продавец не обслуживает, либо данные о торговле таким типом товара, который данный продавец не имеет право продавать.
Отношение не находится в 5NF, поскольку в нём есть нетривиальная зависимость соединения *{{Продавец, Фирма}, {Фирма, Товар}, {Продавец, Товар}}, однако подмножества {Продавец, Фирма}, {Фирма, Товар}, {Продавец, Товар} не являются суперключами исходного отношения.
В данном случае для приведения к 5NF отношение должно быть разбито на три: {Продавец, Фирма}, {Фирма, Товар},{Продавец, Товар}.
Товары продавцов | |
Продавец |
Товар |
Иванов |
Пылесос |
Иванов |
Хлебница |
Петров |
Сучкорез |
Петров |
Пылесос |
Петров |
Хлебница |
Петров |
Зонт |
Сидоров |
Телескоп |
Сидоров |
Пылесос |
Сидоров |
Лампа |
Сидоров |
Вешалка |
Фирмы продавцов | |
Продавец |
Фирма |
Иванов |
Рога и Копыта |
Петров |
Безенчук&Ко |
Сидоров |
Безенчук&Ко |
Сидоров |
Рога и Копыта |
Сидоров |
Геркулес |
Товары фирм | |
Фирма |
Товар |
Рога и Копыта |
Пылесос |
Рога и Копыта |
Хлебница |
Рога и Копыта |
Лампа |
Безенчук&Ко |
Сучкорез |
Безенчук&Ко |
Пылесос |
Безенчук&Ко |
Хлебница |
Безенчук&Ко |
Зонт |
Безенчук&Ко |
Телескоп |
Геркулес |
Вешалка |
Четвертая нормальная форма (4НФ) является частным случаем 5НФ, когда полная декомпозиция должна быть соединением ровно двух проекций. Весьма не просто подобрать реальную таблицу, которая находилась бы в 4НФ, но не была бы в 5НФ.
Пример
Предположим, что рестораны производят разные виды пиццы, а службы доставки ресторанов работают только в определенных районах города. Составной первичный ключ соответствущей переменной отношения включает три атрибута: {Ресторан, Вид пиццы, Район доставки}.
Такая переменная отношения не соответствует 4НФ, так как существует следующая многозначная зависимость:
{Ресторан} {Вид пиццы}
{Ресторан} {Район доставки}
То есть, например, при добавлении нового вида пиццы придется внести по одному новому кортежу для каждого района доставки. Возможна логическая аномалия, при которой определенному виду пиццы будут соответствовать лишь некоторые районы доставки из обслуживаемых рестораном районов.
Для предотвращения
аномалии нужно декомпозировать
отношение, разместив независимые
факты в разных отношениях. В данном
примере следует выполнить
Однако если к исходной переменной отношения добавить атрибут, функционально зависящий от потенциального ключа, например цену с учётом стоимости доставки ({Ресторан, Вид пиццы, Район доставки} → Цена), то полученное отношение будет находиться в 4НФ и его уже нельзя подвергнуть декомпозиции без потерь. Указанные выше многозначные зависимости в данном случае называются внедрёнными зависимостями.
Доменно-ключевая нормальная форма (DKNF) — одна из возможных нормальных форм таблицы реляционной базы данных. Её предложил Рональд Фагин в 1981 году.
[править]Определение
Переменная отношения находится в ДКНФ тогда и только тогда, когда каждое наложенное на неё ограничение является логическим следствием ограничений доменов и ограничений ключей, наложенных на данную переменную отношения.
Ограничение домена – ограничение, предписывающее использовать для определённого атрибута значения только из некоторого заданного домена. Ограничение по своей сути является заданием перечня (или логического эквивалента перечня) допустимых значений типа и объявлением о том, что указанный атрибут имеет данный тип.
Ограничение ключа – ограничение, утверждающее, что некоторый атрибут или комбинация атрибутов является потенциальным ключом.
Любая переменная отношения, находящаяся в ДКНФ, обязательно находится в 5НФ. Однако не любую переменную отношения можно привести к ДКНФ.
6 НФ
Определение
Переменная отношения находится в шестой нормальной форме тогда и только тогда, когда она удовлетворяет всем нетривиальным зависимостям соединения. Из определения следует, что переменная находится в 6НФ тогда и только тогда, когда она неприводима, то есть не может быть подвергнута дальнейшей декомпозиции без потерь. Каждая переменная отношения, которая находится в 6НФ, также находится и в 5НФ.
Типы связей
Идентифицирующая связь —такая связь, при которой экземпляр дочерней сущности определяется через свою связь с родительской сущностью. Атрибуты первичного ключа родительской сущности становятся атрибутами первичного ключа дочерней.
Операция дополнения атрибутов дочерней сущности при создании связи называется миграцией атрибутов. В дочерней сущности новые атрибуты помечаются как внешний ключ (FK).
При установлении идентифицирующей связи между сущностями дочерняя сущность становится зависимой. Зависимая сущность — это сущность, экземпляры которой не могут быть уникальным образом идентифицированы без определения ее связи с другой сущностью или сущностями. Зависимые сущности в ERwin изображается в виде прямоугольника с закругленными углами.
В данном примере у нас не будет идентифицирующих связей. Каждый экземпляр всех сущностей однозначно определяется своим номером.
Неидентифицирующая связь —это такая связь, при которой экземпляр дочерней сущности не идентифицируется через свою связь с родительской сущностью. Атрибуты первичного ключа родительской сущности становятся неключевыми атрибутами дочерней. При установлении неидентифицирующей связи дочерняя сущность остается независимой.
Независимая сущность — это сущность, экземпляры которой могут быть уникальным образом идентифицированы без определения ее связи с другой сущностью.
«Покупатель делает Заказ» будет иметь неидентифицирующую связь.
Однако, информация о заказе бессмысленна, если нет информации о покупателе. То есть атрибут Номер покупателя в Заказе должен присутствовать обязательно. Такая ситуация отражается обязательностью связи (Свойство Nulls).
В блоке Nulls выберите позицию No Nulls. В этом случае значок в начале стрелки исчезнет.
Свойство обязательности указывается только для неидентифицирующих связей. При идентифицирующей связи атрибуты первичного ключа родительской связи мигрируют в первичные ключи дочерней связи и автоматически получают признак Not Null.
Связь «многие-ко-многим» может быть создана только на уровне логической модели. Примером связи «многие-ко-многим» может служить связь между сущностями Заказ и Товар. Один заказ может включать много товаров, а один товар может входить в много заказов.
Тип отношения в создаваемой Microsoft Access связи зависит от способа определения связываемых полей.
Отношение «один-ко-многим»
Отношение «один-ко-многим»
Отношение «один-к-одному»
При отношении «один-к-одному»
Отношение «многие-ко-многим»
При отношении «многие-ко-