5. Проектирование баз данных. ER-модели.
Основные понятия модели Entity-Relationship (Сущность-Связи).
Далее РјС‹ кратко рассмотрим некоторые черты РѕРґРЅРѕР№ РёР· наиболее популярных семантических моделей данных - модель “Сущность-РЎРІСЏР·Рё” (часто ее называют кратко ER-моделью).
На использовании разновидностей ER-модели основано большинство современных подходов к проектированию баз данных (главным образом, реляционных). Модель была предложена Ченом (Chen) в 1976 г. Моделирование предметной области базируется на использовании графических диаграмм, включающих небольшое число разнородных компонентов. В связи с наглядностью представления концептуальных схем баз данных ER-модели получили широкое распространение в системах CASE, поддерживающих автоматизированное проектирование реляционных баз данных. Среди множества разновидностей ER-моделей одна из наиболее развитых применяется в системе CASE фирмы ORACLE. Ее мы и рассмотрим. Более точно, мы сосредоточимся на структурной части этой модели.
Основными понятиями ER-модели являются сущность, связь и атрибут.
Сущность - это реальный или представляемый объект, информация о котором должна сохраняться и быть доступна. В диаграммах ER-модели сущность представляется в виде прямоугольника, содержащего имя сущности. При этом имя сущности - это имя типа, а не некоторого конкретного экземпляра этого типа. Для большей выразительности и лучшего понимания имя сущности может сопровождаться примерами конкретных объектов этого типа.
Каждый экземпляр сущности должен быть отличим от любого другого экземпляра той же сущности (это требование в некотором роде аналогично требованию отсутствия кортежей-дубликатов в реляционных таблицах).
РЎРІСЏР·СЊ - это графически изображаемая ассоциация, устанавливаемая между РґРІСѓРјСЏ сущностями. Рта ассоциация всегда является бинарной Рё может существовать между РґРІСѓРјСЏ разными сущностями или между сущностью Рё ей же самой (рекурсивная СЃРІСЏР·СЊ). Р’ любой СЃРІСЏР·Рё выделяются РґРІР° конца (РІ соответствии СЃ существующей парой связываемых сущностей), РЅР° каждом РёР· которых указывается РёРјСЏ конца СЃРІСЏР·Рё, степень конца СЃРІСЏР·Рё (сколько экземпляров данной сущности связывается), обязательность СЃРІСЏР·Рё (С‚.Рµ. любой ли экземпляр данной сущности должен участвовать РІ данной СЃРІСЏР·Рё).
РЎРІСЏР·СЊ представляется РІ РІРёРґРµ линии, связывающей РґРІРµ сущности или ведущей РѕС‚ сущности Рє ней же самой. РџСЂРё этом РІ месте “стыковки” СЃРІСЏР·Рё СЃ сущностью используются трехточечный РІС…РѕРґ РІ прямоугольник сущности, если для этой сущности РІ СЃРІСЏР·Рё РјРѕРіСѓС‚ использоваться РјРЅРѕРіРѕ (many) экземпляров сущности, Рё одноточечный РІС…РѕРґ, если РІ СЃРІСЏР·Рё может участвовать только РѕРґРёРЅ экземпляр сущности. Обязательный конец СЃРІСЏР·Рё изображается сплошной линией, Р° необязательный - прерывистой линией.
Как и сущность, связь - это типовое понятие, все экземпляры обеих пар связываемых сущностей подчиняются правилам связывания.
Р’ изображенном ниже примере СЃРІСЏР·СЊ между сущностями Р‘Р�ЛЕТ Рё РџРђРЎРЎРђР–Р�Рсвязывает билеты Рё пассажиров. РџСЂРё том конец сущности СЃ именем “для” позволяет связывать СЃ РѕРґРЅРёРј пассажиром более РѕРґРЅРѕРіРѕ билета, причем каждый билет должен быть связан СЃ каким-либо пассажиром. Конец сущности СЃ именем “имеет” означает, что каждый билет может принадлежать только РѕРґРЅРѕРјСѓ пассажиру, причем пассажир РЅРµ обязан иметь хотя Р±С‹ РѕРґРёРЅ билет.
Лаконичной устной трактовкой изображенной диаграммы является следующая:
- Каждый Б�ЛЕТ предназначен для одного и только одного ПАССАЖ�РА;
- Каждый ПАССАЖ�Рможет иметь один или более Б�ЛЕТОВ.
РќР° следующем примере изображена рекурсивная СЃРІСЏР·СЊ, связывающая сущность ЧЕЛОВЕК СЃ ней же самой. Конец СЃРІСЏР·Рё СЃ именем “сын” определяет тот факт, что Сѓ РѕРґРЅРѕРіРѕ отца может быть более чем РѕРґРёРЅ сын. Конец СЃРІСЏР·Рё СЃ именем “отец” означает, что РЅРµ Сѓ каждого человека РјРѕРіСѓС‚ быть сыновья.
Лаконичной устной трактовкой изображенной диаграммы является следующая:
- Каждый ЧЕЛОВЕК является сыном одного и только одного ЧЕЛОВЕКА;
- Каждый ЧЕЛОВЕК может являться отцом для РѕРґРЅРѕРіРѕ или более ЛЮДЕЙ (”ЧЕЛОВЕКОВ”).
Атрибутом сущности является любая деталь, которая служит для уточнения, идентификации, классификации, числовой характеристики или выражения состояния сущности. �мена атрибутов заносятся в прямоугольник, изображающий сущность, под именем сущности и изображаются малыми буквами, возможно, с примерами.
Пример:
Уникальным идентификатором сущности является атрибут, комбинация атрибутов, комбинация связей или комбинация связей и атрибутов, уникально отличающая любой экземпляр сущности от других экземпляров сущности того же типа.
Более сложные элементы ER-модели
Мы остановились только на самых основных и наиболее очевидных понятиях ER-модели данных. К числу более сложных элементов модели относятся следующие:
- Подтипы и супертипы сущностей. Как в языках программирования с развитыми типовыми системами (например, в языках объектно-ориентированного программирования), вводится возможность наследования типа сущности, исходя из одного или нескольких супертипов. �нтересные нюансы связаны с необходимостью графического изображения этого механизма.
- РЎРІСЏР·Рё “many-to-many”. Р�РЅРѕРіРґР° бывает необходимо связывать сущности таким образом, что СЃ РѕР±РѕРёС… концов СЃРІСЏР·Рё РјРѕРіСѓС‚ присутствовать несколько экземпляров сущности (например, РІСЃРµ члены кооператива сообща владеют имуществом кооператива). Для этого вводится разновидность СЃРІСЏР·Рё “РјРЅРѕРіРёРµ-СЃРѕ-РјРЅРѕРіРёРјРё”.
- Уточняемые степени связи. �ногда бывает полезно определить возможное количество экземпляров сущности, участвующих в данной связи (например, служащему разрешается участвовать не более чем в трех проектах одновременно). Для выражения этого семантического ограничения разрешается указывать на конце связи ее максимальную или обязательную степень.
- Каскадные удаления экземпляров сущностей. Некоторые СЃРІСЏР·Рё бывают настолько сильными (конечно, РІ случае СЃРІСЏР·Рё “РѕРґРёРЅ-РєРѕ-РјРЅРѕРіРёРј”), что РїСЂРё удалении РѕРїРѕСЂРЅРѕРіРѕ экземпляра сущности (соответствующего концу СЃРІСЏР·Рё “РѕРґРёРЅ”) нужно удалить Рё РІСЃРµ экземпляры сущности, соответствующие концу СЃРІСЏР·Рё “РјРЅРѕРіРёРµ”. Соответствующее требование “каскадного удаления” можно сформулировать РїСЂРё определении сущности.
- Домены. Как и в случае реляционной модели данных бывает полезна возможность определения потенциально допустимого множества значений атрибута сущности (домена).
Рти Рё РґСЂСѓРіРёРµ более сложные элементы модели данных “Сущность-РЎРІСЏР·Рё” делают ее существенно более мощной, РЅРѕ одновременно несколько усложняют ее использование. Конечно, РїСЂРё реальном использовании ER-диаграмм для проектирования баз данных необходимо ознакомиться СЃРѕ всеми возможностями.
В нашей лекции мы немного подробнее разберем только один из упомянутых элементов - подтип сущности.
Сущность может быть расщеплена РЅР° РґРІР° или более взаимно исключающих подтипа, каждый РёР· которых включает общие атрибуты Рё/или СЃРІСЏР·Рё. Рти общие атрибуты Рё/или СЃРІСЏР·Рё СЏРІРЅРѕ определяются РѕРґРёРЅ раз РЅР° более высоком СѓСЂРѕРІРЅРµ. Р’ подтипах РјРѕРіСѓС‚ определяться собственные атрибуты Рё/или СЃРІСЏР·Рё. Р’ принципе подтипизация может продолжаться РЅР° более РЅРёР·РєРёС… СѓСЂРѕРІРЅСЏС…, РЅРѕ опыт показывает, что РІ большинстве случаев оказывается достаточно РґРІСѓС…-трех уровней.
Сущность, на основе которой определяются подтипы, называется супертипом. Подтипы должны образовывать полное множество, т.е. любой экземпляр супертипа должен относиться к некоторому подтипу. �ногда для полноты приходится определять дополнительный подтип ПРОЧ�Е.
Пример: Супертип ЛЕТАТЕЛЬНЫЙ АППАРАТ
Как полагается это читать? РћС‚ супертипа: ЛЕТАТЕЛЬНЫЙ РђРџРџРђР РђРў, который должен быть РђРРОПЛАНОМ, ВЕРТОЛЕТОМ, РџРўР�ЦЕЛЕТОМ или ДРУГР�Рњ ЛЕТАТЕЛЬНЫМ РђРџРџРђР РђРўРћРњ. РћС‚ подтипа: ВЕРТОЛЕТ, который относится Рє типу ЛЕТАТЕЛЬНОГО РђРџРџРђР РђРўРђ. РћС‚ подтипа, который является одновременно супертипа: РђРРОПЛАН, который относится Рє типу ЛЕТАТЕЛЬНОГО РђРџРџРђР РђРўРђ Рё должен быть ПЛАНЕРОМ или МОТОРНЫМ САМОЛЕТОМ.
�ногда удобно иметь два или более разных разбиения сущности на подтипы. Например, сущность ЧЕЛОВЕК может быть разбита на подтипы по профессиональному признаку (ПРОГРАММ�СТ, ДОЯРКА и т.д.), а может - по половому признаку (МУЖЧ�НА, ЖЕНЩ�НА).
Кстати, поздравляю всех-всех-всех участников блога с вчерашним Днем Знаний. (Автора наверное не нужно поздравлять, так как у Вас мне кажется все первые сентября уже в прошлом ;)) Вчера забыла поздравить, как-то не до этого было. Сейчас вот только отошла немного
Комментарий РѕС‚ Оксана — 3 Сентябрь 2008 @ 1:03
Нет, еще 1 сентября не в прошлом.
Комментарий РѕС‚ Михаил — 16 Сентябрь 2008 @ 23:27