
- •Семантическая модель данных idef1x: общая характеристика, основные структурные компоненты. Построение схемы уровня сущностей. Типы связей. Примеры.
- •1. Построение схемы уровня сущностей
- •2. Построение схемы уровня ключей
- •3. Построение полноатрибутной схемы
- •3. Отображение полноатрибутной схемы на конкретную субд
- •4. Формирование sql скрипта создания бд и его исполнение в заданной субд.
-
Семантическая модель данных idef1x: общая характеристика, основные структурные компоненты. Построение схемы уровня сущностей. Типы связей. Примеры.
Концептуальное представление базы данных с помощью модели Сущность — Связь (Entity-RelationshipModel)
Свойства:
- Визуальный язык программирования.
- Три стадии проектирования с различным уровнем абстракции.
- Средства автоматической генерации SQL кода для создания БД.
- Методология, ориентированная на автоматическое получение схемы, удовлетворяющей 3 НФ.
В настоящее время существует много различных методик проектирования концептуальных схем. Большая часть из них поддерживает концепцию ER-модели (Entity-RelationshipModel – модель типа "Сущность-Связь"), являющуюся одной из разновидностей семантических моделей данных.
Стандарт IDEF1X базируется на модели типа "Сущность-Связь".
Основными компонентами стандарта IDEF1X являются следующие: сущности, атрибуты, связи.
Сущность
Каждая сущность (множество сущностей,класс объектов) представляет собой множество реально существующих или абстрактных индивидуальных объектов (бизнес компонентов или бизнес процессов предметной области), которые обладают одинаковым набором свойств. Отдельный элемент этого множества называется экземпляром сущности. Каждый экземпляр сущности индивидуален и должен отличаться от других экземпляров этой сущности. Например, если предметной областью является магазин, то в ней можно выделить следующие сущности: товар, продавец, покупатель, процесс покупки товара покупателем.
Каждой сущности в инфологической модели присваивается уникальное имя. Имя сущности задается существительным в единственном числе, именительном падеже. Для однозначного понимания модели имя сущности должно иметь четкое смысловое значение. Для нашего примера зададим следующие имена для выделенных сущностей: ТОВАР, ПРОДАВЕЦ, ПОКУПАТЕЛЬ, ПОКУПКА.
Дополнительно каждой сущности ставится в соответствие некоторое короткое уникальное имя (номер сущности), которое обычно не несет никакой смысловой нагрузки, но в связи с компактностью обычно используется для отображения сущности в различных компонентах инфологической модели. Обычно номер сущности задается в следующем формате:
Ех,
где х – уникальное для каждой сущности (в рамках модели) целое положительное число.
Для нашего примера зададим следующие номера выделенным сущностям: Е1, Е2, Е3, Е4.
Если в документации проекта необходимо отобразить оба имени сущностей, то они перечисляются через разделитель (символ "прямая косая" /). Для нашего примера список имен выделенных сущностей (пул сущностей) будет выглядеть следующим образом:
ТОВАР/Е1, ПРОДАВЕЦ/Е2, ПОКУПАТЕЛЬ/Е3, ПОКУПКА/Е4.
Графически сущность отображается в виде прямоугольника с прямыми или скругленными углами. Имя сущности располагается над прямоугольником. Примеры графического представления сущностей приведены на рис.
Атрибут
Атрибут – это некоторое свойство объекта реального мира. Каждая сущность (как отражение некоторого объекта предметной области) должна обладать определенным набором атрибутов. Для всех экземпляров одной сущности набор атрибутов одинаков, но их значения для каждого конкретного экземпляра сущности могут различаться.
Каждый атрибут должен быть определен на соответствующем домене. Домен представляет собой именованное и определенное множество значений. На одном домене могут определяться один или несколько атрибутов.
Существует два основных типа доменов: базовый (основной) домен и типизированный домен.
К базовым доменам обычно относятся следующие:
-
множество символьных строк любой длины и структуры, в состав которых входят символы любого алфавита (например, домен с именем СТРОКА);
-
множество числовых значений (например, домен с именем ЧИСЛО);
-
множество булевских данных (например, домен с именем БУЛЕВА ПЕРЕМЕННАЯ).
Типизированный домен представляет собой подмножество базового или другого типизированного домена. Любой типизированный домен наследует правила построения родительского домена, которые обычно усиливаются дополнительными ограничениями на допустимые значения.
Например, типизированный домен с именем ФАМИЛИЯ может быть определен следующим образом. Домен ФАМИЛИЯ строится на базовом домене СТРОКА и содержит множество строк любой длины, составленных из букв кириллицы по правилам построения фамилии в русском языке. Другой пример. Типизированный домен с именем ЦЕЛОЕ ПОЛОЖИТЕЛЬНОЕ строится на базовом домене ЧИСЛО и содержит множество целых положительных чисел.
Каждому атрибуту назначается имя (имя атрибута, базовое имя), представляющее собой некоторую осмысленную фразу. Причем имя атрибута должно быть уникальным в рамках всей модели. Например, все экземпляры сущности, входящие в сущность ТОВАР, обладают следующим набором атрибутов: НАИМЕНОВАНИЕ ТОВАРА, ИЗГОТОВИТЕЛЬ, ЦЕНА ЕДИНИЦЫ ТОВАРА.
Каждой сущности обязательно должен быть назначен первичный ключ. В качестве первичного ключа сущности выбирают один (и только один) из ее возможных ключей. Выбор первичного ключа является очень важной задачей, так как методика проектирования баз данных реляционного типа тесно связана с этим понятием. Если для сущности определен только один возможный ключ, то он объявляется первичным ключом. Когда для сущности определено более одного возможного ключа, то при выборе одного из них в качестве первичного можно руководствоваться следующими соображениями:
-
если среди возможных ключей имеются простые и составные, то предпочтение отдается простым ключам или тем составным ключам, которые включают в себя меньшее число атрибутов;
-
предпочтение отдается возможным ключам, которые построены на числовых или целочисленных доменах, менее предпочтительными являются возможные ключи, построенные на символьных доменах;
-
предпочтение отдается тем возможным ключам, семантика которых устойчива и не допускает неоднозначного толкования.
Связь
Обычно выделенные в предметной области сущности взаимодействуют друг с другом. Это взаимодействие отражается посредством связи. Связь представляет собой логическое соотношение между сущностями. При инфологическом проектировании обычно используют бинарные связи, так как они проще в определении и понимании, чем "n-арные" связи, и имеют простое графическое отображение. Кроме того, любая "n-арная" связь может быть представлено с помощью n бинарных связей. В методологии IDEF1X рассматриваются только бинарные связи.
Важной характеристикой каждого конца связи является мощность. Мощностью (кардинальным числом) конца связи называется число экземпляров сущности, находящейся на данном конце связи, соответствующих одному экземпляру другой сущности, вовлеченной в эту связь. Значения мощности связи являются основой классификации типов связей.
В нотациях IDEF1X определяются следующие основные типы связей:
-
определенная связь (отражает отношение между сущностями типа "один ко многим");
-
неопределенная связь (отражает отношение между сущностями типа "многие ко многим");
-
связь типа категория (отражает отношение между сущностями типа "род-вид", связь типа "один к одному").
Определенная связь. При организации этой связи между двумя сущностями устанавливается связь типа "один ко многим": мощность одного конца связи соответствует значению "много", другого – значению "один". Сущность, находящаяся в этой связи со стороны "один", называется родительской, а со стороны "много" – дочерней.
В зависимости от значения мощности связи со стороны дочернего конца различают:
-
общий случай: одному экземпляру родительской сущности соответствует нуль, один или много экземпляров дочерней сущности. При графическом отображении такая связь не помечается дополнительно каким-либо символом (рис. 2.3,а);
-
исключено нулевое значение: одному экземпляру родительской сущности соответствует один или много экземпляров дочерней сущности. При графическом отображении на дочерней стороне связи ставится символ P (рис. 2.3,б);
-
исключены множественные значения: одному экземпляру родительской сущности соответствует нуль или один экземпляр дочерней сущности. При графическом отображении на дочерней стороне связи ставится символ Z (рис. 2.3,в);
-
точное значение: одному экземпляру родительской сущности соответствует заданное число экземпляров дочерней сущности. При графическом отображении на дочерней стороне связи указывается целое число, соответствующее этому значению (рис. 2.3,г);
-
диапазон значений: одному экземпляру родительской сущности соответствует число экземпляров дочерней сущности, ограниченное некоторым заданным диапазоном. При графическом отображении на дочерней стороне связи указывается заданный диапазон целых чисел (рис. 2.3,д).
Определенные связи бывают идентифицирующими и не идентифицирующими. Соответственно, дочерние сущности, вовлеченные в эти связи, могут быть зависимыми или независимыми по идентификации.
В идентифицирующей определенной связи любой экземпляр дочерней сущности не может существовать и идентифицироваться (определяться) без некоторого экземпляра соответствующей родительской сущности, т.е. дочерняя сущность является зависимой от родительской (зависимой по идентификации и по существованию). Такая связь организуется посредством внешнего ключа, который обязательно входит в состав первичного ключа дочерней сущности.
При графическом отображении в идентифицирующих определенных связях родительская сущность обозначается в виде прямоугольника с прямыми углами, дочерняя сущность – в виде прямоугольника со скругленными углами, а сама связь – в виде сплошной линии между этими сущностями с жирной точкой на дочернем конце связи (рис. 2.4).
В неидентифицирующей определенной связи экземпляры дочерней сущности идентифицируются независимо от экземпляров родительской сущности. Дочерняя сущность, вовлеченная в эту связь, является независимой по идентификации. Такая связь организуется посредством внешнего ключа, который не входит в состав первичного ключа дочерней сущности.
Не идентифицирующая определенная связь может быть обязательной или необязательной.
В обязательной не идентифицирующей определенной связи любой экземпляр дочерней сущности не может существовать без некоторого экземпляра соответствующей родительской сущности (каждому экземпляру родительской сущности соответствует нуль, один или несколько экземпляров дочерней сущности, а каждому экземпляру дочерней сущности соответствует в точности один экземпляр родительской сущности). Дочерняя сущность, вовлеченная в эту связь, является зависимой по существованию и независимой по идентификации. При графическом отображении обязательная не идентифицирующая определенная связь обозначается пунктирной линией между связываемыми сущностями с жирной точкой на дочернем конце связи, а родительская и дочерняя сущности – в виде прямоугольников с прямыми углами (рис. 2.5).
В необязательной не идентифицирующей определенной связи каждому экземпляру родительской сущности соответствует нуль, один или несколько экземпляров дочерней сущности, а каждому экземпляру дочерней сущности – нуль или один экземпляр родительской сущности. Дочерняя сущность, вовлеченная в эту связь, является независимой по существованию и по идентификации. При графическом отображении необязательная не идентифицирующая определенная связь обозначается пунктирной линией между связываемыми сущностями с жирной точкой на дочернем конце связи и прозрачным ромбом на родительском конце связи, а родительская и дочерняя сущности обозначаются в виде прямоугольников с прямыми углами (рис. 2.6).
Стадии проектирования реляционной БД по методологии сущность-связь
* Построение схемы уровня сущностей
* Построение схемы уровня ключей
* Построение полноатрибутной схемы
* Отображение полноатрибутной схемы на конкретную СУБД
* Формирование SQL скрипта создания БД и его исполнениев заданной СУБД.