Как настроить смартфоны и ПК. Информационный портал
  • Главная
  • Программы
  • Мотивировка нормальной формы бойса-кодда. Переход от ER–модели к реляционной

Мотивировка нормальной формы бойса-кодда. Переход от ER–модели к реляционной

Декомпозиция схем отношений

Одним из способов приведения произвольного отношения к виду нормальных форм (кроме 1 НФ) является декомпозиция отношений.

· Декомпозицией схемы отношений R называется замена ее совокупностью схем r=(R 1 , R 2 , ... , R K), где R i Ì R и R i такие, что R 1 ÈR 2 È... ÈR K = R, при этом не требуется, чтобы R i Ç R j =Æ, хотя и допустимо.

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

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

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

Проблема целостности связана с обеспечением надежности данных в условиях возможных аварийных ситуаций и рационального использования вычислительных ресурсов для обеспечения высокой эффективности взаимодействия с БД.. Эффективность подразумевает обеспечение необходимого объема хранения информации и времени взаимодействия с БД.

Целостность в БД отражается путем построения логической схемы.

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

· Если состояние БД не соответствует семантике связей между данными, то такое явление называют нарушением целостности данных или БД.

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

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

Ограничения приложений делятся на:

Статические ограничения и ограничения перехода;

Ограничения для кортежей и множеств;



Отложенные и безотлагательные ограничения целостности.

· Статические ограничения - те ограничения, которые выполняются независимо от состояния БД.

· Ограничения, устанавливаемые между старым и новым значением атрибута, называется ограничениями перехода.

Пример : при обновлении значения атрибута “давление” новое значение не должно отличаться от старого более чем на 20 %.

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

· Частным случаем такого ограничения является ограничение атрибута.

· Ограничение для множеств - если они представляют собой ограничение на некоторое итоговое значение, полученное в результате использования совокупности кортежей.

Пример : при измерении температуры очередное значение не должно отличаться от скользящего среднего Mx (текущего математического ожидания) на некоторую величину e. Все значения не попавшие в диапазон [ M x - e, M x + e] отбрасывают.

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

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

Для отложенного ограничения имеет значение следующее понятие:

· Логический элемент работы - непрерывное управление данными, при котором БД из одного целостного состояния переводится в другое целостное состояние. Этот прием еще называют транзакцией.

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

Декомпозиция

Декомпозиция — 1) процесс разделения сложного объекта, системы, экономического показателя, задачи на составные части, элементы; 2) состояние объекта, системы, характеризуемое разделенностью на части.

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

Подходы декомпозиционных методов
На этапе декомпозиции, обеспечивающем общее представление о решаемой проблеме, осуществляются: определение и декомпозиция общей цели исследования; выделение проблемы из среды, определение её ближнего и дальнего окружения; описание воздействующих факторов.
Наиболее часто декомпозиция проводится путём построения дерева целей и дерева функций. Основной проблемой при этом является соблюдение двух противоречивых принципов: полноты — проблема должна быть рассмотрена максимально всесторонне и подробно; простоты — всё дерево должно быть максимально компактным «вширь» и «вглубь».
Компромисс достигается с помощью четырёх основополагающих понятий: существенности — в модель включаются только компоненты, существенные по отношению к целям анализа; элементарности — доведение декомпозиции до простого, понятного, реализуемого результата; постепенной детализации модели; интегративности — возможность введения новых элементов в основания и продолжение декомпозиции по ним на разных ветвях дерева.
Глубина декомпозиции ограничивается. Если при декомпозиции выясняется, что модель начинает описывать внутренний алгоритм функционирования элемента вместо закона его функционирования в виде «чёрного ящика», то в этом случае произошло изменение уровня абстракции. Это означает выход за пределы цели исследования системы и, следовательно, вызывает прекращение декомпозиции.
В современных методиках типичной является декомпозиция модели на глубину 5-6 уровней. На такую глубину декомпозируется обычно одна из подсистем. Функции, которые требуют такого уровня детализации, часто очень важны, и их детальное описание даёт ключ к основам работы всей системы.
В общей теории систем доказано, что большинство систем могут быть декомпозированы на базовые представления подсистем. К ним относят: последовательное (каскадное) соединение элементов, параллельное соединение элементов, соединение с помощью обратной связи.
Проблема проведения декомпозиции состоит в том, что в сложных системах отсутствует однозначное соответствие между законом функционирования подсистем и алгоритмом, его реализующим. Поэтому осуществляется формирование нескольких вариантов (или одного варианта, если система отображена в виде иерархической структуры) декомпозиции системы.

Подходы к декомпозиции
Наиболее часто применяемые стратегии декомпозиции:

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

Декомпозиция по жизненному циклу
Признак выделения подсистем — изменение закона функционирования подсистем на разных этапах цикла существования системы «от рождения до гибели». Для жизненного цикла управления организационно-экономической системы выделяют этапы планирования, инициирования, координации, контроля, регулирования. Для информационных систем разделяют этапы обработки информации: регистрацию, сбор, передачу, обработку, отображение, хранение, защиту, уничтожение.

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

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

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

Декомпозиция по типам ресурсов потребляемых системой
Формальный перечень типов ресурсов состоит из энергии, материи, времени и информации (для социальных систем добавляются кадры и финансы).

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

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

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

Ключевые слова: база данных access; бд access; субд access; базы данных access; access пример; программирование access; готовая база данных; создание база данных; база данных СУБД; access курсовая; база данных пример; программа access; access описание; access реферат; access запросы; access примеры; скачать бд access; объекты access; бд в access; скачать субд access;курсовая работа по СУБД; реляционная; с база данных; создание СУБД; скачать паспортную базу данных; базой данных; нормализация данных; примеры СУБД; база данных примеры; курсовые работы по СУБД; нормализация; базе данных; структура БД; пример БД; база запросов; учебная база данных; проектирование БД; данных; описание БД; субд реферат; создать БД; база данных по; использование БД; курсовая работа база данных; готовая; использование СУБД; таблица БД; база данных 2008 скачать; базу

Декомпозицией схемы отношения R = {А 1 , А 2 , ...,А n } называется замена ее совокупностью подмножеств R , таких, что их объединение дает R . При этом допускается, чтобы подмножества были пересекающимися .

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

Теорема о декомпозиции . Пусть R(A, B, C) – отношение , A, B, C – атрибуты .

Если R удовлетворяет зависимости A->B , то R равно соединению его проекций A, B и A, C

R(A, B, C) = R(A, B), R(A, C)

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

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

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

8.4 .Выбор рационального набора схем отношений путем нормализации

Вторая нормальная форма (2НФ)

Отношение находится в 2НФ, если оно находится в 1НФ и каждый неключевой атрибут зависит от всего первичного ключа (не зависит от части ключа) .

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

  1. построить проекцию без атрибутов, находящихся в частичной функциональной зависимости от первичного ключа;
  2. построить проекции на части составного ключа и атрибуты, зависящие от этих частей.

Третья нормальная форма (3НФ)

Отношение находится в 3НФ, если оно находится в 2НФ и каждый ключевой атрибут нетранзитивно зависит от первичного ключа .

Отношение находится в 3НФ в том и только том случае, если все неключевые атрибуты отношения взаимно независимы и полностью зависят от первичного ключа .

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

Мотивировка третьей нормальной формы

Третья нормальная форма исключает избыточность и аномалии включения и удаления .

К сожалению, 3НФ не предотвращает все возможные аномалии.

Нормальная форма Бойса-Кодда (НФБК)

Если в R для каждой зависимости X->A , где А не принадлежит X, X включает в себя некоторый ключ, то говорят, что данное отношение находится в нормальной форме Бойса-Кодда .

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

Отношение находится в НФБК тогда и только тогда, когда каждый его детерминант является потенциальным ключом .

НФБК является более строгой версией 3НФ. Иными словами, любое отношение, находящееся в НФБК, находится в 3НФ. Обратное неверно .

Мотивировка нормальной формы Бойса-Кодда

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

8.5. Пример нормализации до 3НФ

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

Продолжим рассмотрение примера с отношением ЭКЗАМЕНАЦИОННАЯ ВЕДОМОСТЬ

В начале этой лекции мы привели отношение к первой нормальной форме .

Код студента Фамилия Код экзамена Предмет Дата Оценка
1 Сергеев 1 Математика 5.08.03 4
2 Иванов 1 Математика 5.08.03 5
1 Сергеев 2 Физика 9.08.03 5
2 Иванов 2 Физика 9.08.03 5

Ключом данного отношения будет совокупность атрибутов – Код студента и Код экзамена.

Для более краткой записи процесса нормализации введем следующие обозначения:

КС – код студента, КЭ – код экзамена, Ф – фамилия, П – предмет, Д – дата, О - оценка.

Выпишем функциональные зависимости

КС, КЭ -> Ф, П, Д, О КС, КЭ -> Ф КС, КЭ -> П КС, КЭ -> Д КС, КЭ -> О КЭ -> П КЭ -> Д КС -> Ф

В соответствии с определением, отношение находится во второй нормальной форме (2НФ), если оно находясь в 1НФ и каждый неключевой атрибут зависит от первичного ключа и не зависит от части ключа. Здесь атрибуты П, Д, Ф зависят от части ключа. Чтобы избавиться от этих зависимостей необходимо произвести декомпозицию отношения. Для этого используем теорему о декомпозиции.

Имеем отношение R(КС, Ф, КЭ, П, Д, О) . Возьмем зависимость КС -> Ф в соответствии с формулировкой теоремы исходное отношение равно соединению его проекций R1(КС, Ф) и R2(КС, КЭ, П, Д, О) .

В отношении R1(КС, Ф) существует функциональная зависимость КС -> Ф , ключ КС – составной, не ключевой атрибут Ф не зависит от части ключа. Это отношение находится в 2НФ. Так как в этом отношении нет транзитивных зависимостей, отношение R(КС, Ф) находится в 3НФ, что и требовалось.

Рассмотрим отношение R2(КС, КЭ, П, Д, О) с составным ключом КС, КЭ . Здесь есть зависимость КЭ -> П, КЭ -> Д, КЭ -> П, Д . Атрибуты П,Д зависят от части ключа, следовательно

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

Введем определение декомпозиции схемы отношения .

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

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

Пример. Декомпозиция с потерей информации

Атрибуты А и В не зависят функционально от атрибута С .


Говорят, что декомпозиция схемы отношения r обладает свойством соединения без потерь относительно множества ФЗ D , если каждое отношение R , удовлетворяющее D , может быть представлено в виде:

Пусть Тогда для отображений проекции-соединения справедливы следующие свойства:

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

Рассмотрим алгоритм проверки свойства соединения без потерь.

Алгоритм. Проверка декомпозиции на свойство соединения без потерь

input: схема отношения R(A 1 , A 2 , ..., A k), множество ФЗ F, декомпозиция d={R 1 , R 2 , ..., R k }. output: Булева переменная истина или ложь.

Алгоритм

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

Рассмотрим пример применения алгоритма, используя отношение ПОСТАВКИ (Поставщик, Адрес, Товар, Стоимость). Обозначим его атрибуты как: А - поставщик, В - адрес, C - товар, D - стоимость, при этом имеют место ФЗ

Пример. Проверка декомпозиции на свойство соединения без потерь

Схема отношения

Поскольку имеет место и две строки совпадают по А , то можно отождествить их символы для А: b 22 на a 2 . В итоге имеем таблицу

A B C D
a 1 a 2 b 13 b 14
a 1 a 2 a 3 a 4

Вывод. Декомпозиция d обладает свойством соединения без потерь.

При декомпозиции одной схемы отношения на две другие схемы отношений используется более простая проверка: декомпозиция обладает свойством соединения без потерь, если только Такая ФЗ должна принадлежать F + .

Свойство соединения без потерь гарантирует, что любое отношение может быть восстановлено из его проекций. Понятно, что при декомпозиции ФЗ исходной схемы отношения распределяются по новым отношениям. Поэтому важно, чтобы при декомпозиции множество ФЗ F для схемы отношения r было выводимым из проекций на схемы R i .

Введем следующее определение.

Определение 2. Проекцией множества ФЗ F на множество атрибутов Х , обозначаемой называется множество ФЗ в F+ , таких, что

Говорят, что декомпозиция обладает свойством сохранения ФЗ, если из объединения всех ФЗ, принадлежащих логически следуют все зависимости из F .

Рассмотрим отношение (Город, Адрес, Почтовый_индекс). Обозначим его атрибуты как: А - город, В - адрес, C - почтовый индекс, при этом имеют место ФЗ Декомпозиция схемы этого отношения ABC на AC и BC обладает свойством соединения без потерь, поскольку верна ФЗ Однако проекция на BC дает только тривиальные зависимости, проекция на АС дает ФЗ и тривиальные ФЗ. Из ФЗ не следует зависимость Поэтому данная декомпозиция не сохраняет ФЗ, хотя и обладает свойством соединения без потерь.

Декомпозиция отношений

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

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

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

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

Рисунок 13 - Функциональная модель предметной области «Мебельный салон». Диаграмма 0-го уровня

Рисунок 14 - Функциональная модель предметной области «Мебельный салон». Диаграмма 1-го уровня

Рисунок 15 - Функциональная модель предметной области «Мебельный салон». Диаграмма 2-го уровня

7.2.2 Проектирование с использованием метода «сущность-связь»

На этапе концептуального проектирования на основе разработанной функциональной модели строится инфологическая модель БД. Цель инфологического моделирования состоит в обеспечении разработчика экономических информационных систем концептуальной схемой базы данных в форме одной модели или нескольких локальных моделей, которые относительно легко могут быть отражены в любой системе баз данных.

Каждая информационная система в зависимости от ее назначения имеет дело с частью реального мира, которую принято называть предметной областью (ПО) системы. ПО может относиться к любому типу организаций: банк, университет, завод, магазин и т.д.

Базовыми понятиями проектирования с использованием метода «сущность-связь» являются: сущность, связь, атрибут.

Сущность (Entity) – реальный либо воображаемый объект, имеющий существенное значение для рассматриваемой предметной области. Необходимо различать такие понятия, как тип сущности и экземпляр сущности. Понятие «тип сущности» относится к набору однородных личностей, предметов, событий или идей, выступающих как целое. Экземпляр сущности относится к конкретной вещи в наборе. Например, типом сущности может быть ГОРОД, а экземпляром – Москва, Киев и т.д. Предметная область информационной системы - это совокупность реальных объектов (сущностей), которые представляют интерес для пользователей.

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

· иметь уникальное имя; к одному и тому же имени должна применяться одна и та же интерпретация; одна и та же интерпретация не может применяться к различным именам, если только они не являются псевдонимами;

· обладать одним или несколькими атрибутами, которые либо принадлежат сущности, либо наследуются через связь;

· обладать одним или несколькими атрибутами, которые однозначно идентифицируют каждый экземпляр сущности.

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

Связь (Relationship) – поименованная ассоциация между двумя сущностями, значимая для рассматриваемой предметной области. Связь – это ассоциация между сущностями, при которой каждый экземпляр этой сущности ассоциирован с произвольным (в том числе нулевым) количеством экземпляров второй сущности, и наоборот.

Сущности, охваченные некоторой связью, называются участниками этой связи. Количество участников связи определяет степень типа связи. Типы связи по степени разделяют на:

· двухсторонние – связь, в которой участвуют две сущности;

· трехсторонние – относятся к сложным связям, в ней участвуют три сущности;

· четырехсторонние – относятся к сложным связям, в ней участвуют четыре сущности;

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

Самой распространенной связью является двухсторонняя. Двухсторонние связи обычно обозначаются как «один к одному» (1:1), «один ко многим» (1:М), «многие ко многим» (М:М).

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

1:М – по одну сторону связи, для каких-то значений в связанном поле может быть несколько записей, по другую – только одна. Пример: студенческая группа в вузе включает в себя несколько представителей студентов.

М:М – значения в полях связи неоднократно встречаются в записях той или другой связанных сущностей. Пример: преподаватели обучают студентов.

Связь может дополнительно определяться с помощью указания степени или мощности связи (количества экземпляров сущности–потомка, которое может существовать для каждого экземпляра сущности–родителя). При проектировании с использованием метода «сущность-связь» могут быть выражены следующие мощности связей:

· каждый экземпляр сущности–родителя может иметь ноль, один или более одного связанного с ним экземпляра сущности – потомка;



· каждый экземпляр сущности–родителя должен иметь не менее одного связанного с ним экземпляра сущности–потомка;

· каждый экземпляр сущности–родителя должен иметь не более одного связанного с ним экземпляра сущности–потомка;

· каждый экземпляр сущности–родителя связан с некоторым фиксированным числом экземпляров сущности–потомка.

Атрибут (Attribute) – любая характеристика сущности, значимая для рассматриваемой предметной области и предназначенная для квалификации, идентификации, классификации, количественной характеристики или выражение состояния сущности. Атрибут представляет тип характеристик или свойств, ассоциированных с множеством реальных или абстрактных объектов (людей, мест, событий, состояний, идей, предметов и т.д.). Экземпляр атрибута – это определенная характеристика отдельного элемента множества. Экземпляр атрибута определяется типом характеристики и ее значением, называемым значением атрибута. На диаграмме «сущность – связь» атрибуты ассоциируются с конкретными сущностями. Таким образом, экземпляр сущности должен обладать единственным определенным значением для ассоциированного атрибута.

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

Атрибуты можно разделить на:

· простой – атрибут, состоящий из одного компонента с независимым существованием. Простые или элементарные атрибуты не могут быть разделены на более мелкие компоненты. Например: оклад, фамилия, должность;

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

· однозначный – атрибут, который содержит одно значение для каждого экземпляра сущности определенного типа. Например: дата рождения;

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

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

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

· потенциальный ключ – атрибут или минимальный набор атрибутов, который однозначно идентифицирует каждый экземпляр сущности. Потенциальный ключ должен содержать значения, которые уникальны для каждого отдельного экземпляра сущности данного типа и не может содержать NULL. Например: Код должности в сущности Должности;

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

· составной ключ – потенциальный ключ, который состоит из одного или нескольких атрибутов. Например: сущность Приход товара можно идентифицировать атрибутом Код товара и Дата прихода.

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

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

7.2.3 Переход от ER–модели к реляционной

В настоящее время два последних этапа проектирования существенно сокращаются за счет использования автоматизированных средств проектирования. Переход к инфологической модели БД, а затем к физической схеме БД позволяет осуществить различные программные средства: IDEF0, ERWin, UML.

Правила преобразования моделей:

1. Каждая простая сущность превращается в таблицу. Простая сущность - сущность, не являющаяся подтипом и не имеющая подтипов. Имя сущности становится именем таблицы.

2. Каждый атрибут становится возможным столбцом с тем же именем; может выбираться более точный формат. Столбцы, соответствующие необязательным атрибутам, могут содержать неопределенные значения; столбцы, соответствующие обязательным атрибутам, - не могут.

3. Компоненты уникального идентификатора сущности превращаются в первичный ключ таблицы. Если имеется несколько возможных уникальных идентификаторов, выбирается наиболее используемый. Если в состав уникального идентификатора входят связи, к числу столбцов первичного ключа добавляется копия уникального идентификатора сущности, находящейся на дальнем конце связи (этот процесс может продолжаться рекурсивно). Для именования этих столбцов используются имена концов связей и/или имена сущностей.

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

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

6. Если в концептуальной схеме присутствовали подтипы, то возможны два способа преобразования модели в физическую таблицу: все подтипы в одной таблице (а) или для каждого подтипа - отдельная таблица (б). При применении способа (а) таблица создается для наиболее внешнего супертипа, а для подтипов могут создаваться представления. В таблицу добавляется по крайней мере один столбец, содержащий код типа; он становится частью первичного ключа. При использовании метода (б) для каждого подтипа первого уровня (для более нижних - представления) супертип воссоздается с помощью представления UNION (из всех таблиц подтипов выбираются общие столбцы - столбцы супертипа).

7. Имеется два способа работы при наличии исключающих связей: общий домен (а) и явные внешние ключи (б). Если остающиеся внешние ключи все в одном домене, т.е. имеют общий формат (а), то создаются два столбца: идентификатор связи и идентификатор сущности. Столбец идентификатора связи используется для различения связей, покрываемых дугой исключения. Столбец идентификатора сущности используется для хранения значений уникального идентификатора сущности на дальнем конце соответствующей связи. Если результирующие внешние ключи не относятся к одному домену, то для каждой связи, покрываемой дугой исключения, создаются явные столбцы внешних ключей; все эти столбцы могут содержать неопределенные значения.

Лучшие статьи по теме