Лабораторная работа № 1. МОДЕЛЬ "СУЩНОСТЬ-СВЯЗЬ" Основные понятия модели "сущность-связь".
Сущности и атрибуты
На этапе инфологического проектирования базы данных должна быть построена модель предметной области, не привязанная к конкретной СУБД, понятная не только разработчикам информационной системы, но и экономи- стам, менеджерам и другим специалистам. В то же время модель предметной области должна максимально точно отражать семантику предметной области [20], выявлять бизнес–правила и позволять легко перейти к модели данных конкретной СУБД.
Такими моделями являются модели "сущность-связь". Зачастую эти модели называют моделями данных. Но этот термин неудачен, т. к. перекли- кается с термином "модель данных" [21]. Известно несколько методологий построения моделей "сущность-связь". Наибольшее распространение полу- чила методология IDEF1X [2, 19, 22, 23]. Рассмотрим построение моделей "сущность-связь", ориентируясь на продукт CA ERwin Data Modeler [2, 24, 25]. Для простоты будем использовать старое название продукта: ERwin.
ERwin имеет два уровня представления модели:
Логический уровень, соответствующий инфологическому этапу про- ектирования и не привязанный к конкретной СУБД. Модели логического уровня оперируют с понятиями сущностей, атрибутов и связей, которые на этом уровне именуются на естественном языке (в нашем случае – на рус- ском) так, как они называются в реальном мире.
Физический уровень – это отображение логической модели на модель данных конкретной СУБД. Одной логической модели может соответствовать несколько физических моделей. Причем, Erwin (как и другие CASE-системы проектирования баз данных) позволяет автоматизировать отображение логи- ческой модели на физическую.
Модель "сущность-связь" строится в виде диаграммы "сущ- ность-связь", основными компонентами которой являются сущности (Entity) и связи (Relationship). Отсюда происходят часто используемые названия мо- дели (ER-модель) и диаграммы (ER-диаграмма).
Сущность – это абстракция множества предметов или явлений реаль- ного мира, информацию о которых надо сохранить. Все экземпляры сущно- сти имеют одинаковые характеристики и подчиняются одним и тем же пра- вилам поведения. Например, можно выделить сущность СТУДЕНТ. Экземп- лярами сущности СТУДЕНТ будут данные о конкретных студентах. Сущ- ность должна иметь имя – существительное в единственном числе.
Сущности обладают определенными свойствами – атрибутами. Атри- бут – это абстракция одной характеристики объекта или явления реального мира. Каждый атрибут должен иметь имя – существительное в единственном числе, и получать значение из некоторого множества допустимых значений – домена.
У каждой сущности должен быть выделен идентификатор, или первич- ный ключ. Первичный ключ – это один или несколько атрибутов, однозначно определяющих каждый экземпляр сущности. Если первичный ключ состоит из нескольких атрибутов, то он называется составным. Первичный ключ не должен изменяться и принимать неопределенное значение (NULL). Ключ должен быть компактным, т. е. не содержать слишком много атрибутов. Сущность может иметь несколько потенциальных ключей, из которых дол- жен быть выбран первичный ключ. Иногда приходится использовать искус- ственный первичный ключ (некоторый номер или код), когда ключ содержит слишком много атрибутов (в пределе каждый экземпляр сущности может оп- ределяться всем множеством атрибутов). Используется также понятие внеш- него ключа. Внешний ключ – это первичный ключ другой сущности, который мигрирует (копируется) в сущность и служит для связи сущностей.
Пример сущности показан на рис. 5.1.
Каждая сущность должна сопровождаться описанием. Описание сущ- ности должно объяснять ее смысл, а не то, как будет использоваться инфор- мация данной сущности. Описание должно быть ясным, полным и непроти- воречивым, понятным специалистам предметной области.
Рис. 5.1. Пример сущности
Сущности и атрибуты выделяются в результате анализа требований к системе. При выборе атрибутов целесообразно придерживаться следующих правил (не входящих в IDEF1X), позволяющих перейти к физической моде- ли, находящейся в третьей нормальной форме:
Атрибуты должны быть неделимыми.
Каждый неключевой атрибут должен полностью зависеть от состав- ного ключа, а не от части ключа.
Не должно существовать транзитивных зависимостей атрибутов от ключа. Например, если ключ ТАБЕЛЬНЫЙ_НОМЕР определяет атрибут НО- МЕР_ОТДЕЛА, а НОМЕР_ОТДЕЛА определяет ТЕЛЕФОН, то ТАБЕЛЬ- НЫЙ_НОМЕР транзитивно определяет ТЕЛЕФОН.
Связи
Достарыңызбен бөлісу: |