9 �юнь 2008

5. Проектирование баз данных. ER-модели.

написано РІ СЂСѓР±СЂРёРєРµ: Базы данных +УБД (Рў) — Метки: , — Михаил @ 20:44

Основные понятия модели Entity-Relationship (Сущность-Связи).

Далее РјС‹ кратко рассмотрим некоторые черты РѕРґРЅРѕР№ РёР· наиболее популярных семантических моделей данных - модель “Сущность-РЎРІСЏР·Рё” (часто ее называют кратко ER-моделью).

На использовании разновидностей ER-модели основано большинство современных подходов к проектированию баз данных (главным образом, реляционных). Модель была предложена Ченом (Chen) в 1976 г. Моделирование предметной области базируется на использовании графических диаграмм, включающих небольшое число разнородных компонентов. В связи с наглядностью представления концептуальных схем баз данных ER-модели получили широкое распространение в системах CASE, поддерживающих автоматизированное проектирование реляционных баз данных. Среди множества разновидностей ER-моделей одна из наиболее развитых применяется в системе CASE фирмы ORACLE. Ее мы и рассмотрим. Более точно, мы сосредоточимся на структурной части этой модели.

Основными понятиями ER-модели являются сущность, связь и атрибут.

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

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

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

РЎРІСЏР·СЊ представляется РІ РІРёРґРµ линии, связывающей РґРІРµ сущности или ведущей РѕС‚ сущности Рє ней же самой. РџСЂРё этом РІ месте “стыковки” СЃРІСЏР·Рё СЃ сущностью используются трехточечный РІС…РѕРґ РІ прямоугольник сущности, если для этой сущности РІ СЃРІСЏР·Рё РјРѕРіСѓС‚ использоваться РјРЅРѕРіРѕ (many) экземпляров сущности, Рё одноточечный РІС…РѕРґ, если РІ СЃРІСЏР·Рё может участвовать только РѕРґРёРЅ экземпляр сущности. Обязательный конец СЃРІСЏР·Рё изображается сплошной линией, Р° необязательный - прерывистой линией.

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

Р’ изображенном ниже примере СЃРІСЏР·СЊ между сущностями Р‘Р�ЛЕТ Рё РџРђРЎРЎРђР–Р�Р  связывает билеты Рё пассажиров. РџСЂРё том конец сущности СЃ именем “для” позволяет связывать СЃ РѕРґРЅРёРј пассажиром более РѕРґРЅРѕРіРѕ билета, причем каждый билет должен быть связан СЃ каким-либо пассажиром. Конец сущности СЃ именем “имеет” означает, что каждый билет может принадлежать только РѕРґРЅРѕРјСѓ пассажиру, причем пассажир РЅРµ обязан иметь хотя Р±С‹ РѕРґРёРЅ билет.

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

  • Каждый Р‘Р�ЛЕТ предназначен для РѕРґРЅРѕРіРѕ Рё только РѕРґРЅРѕРіРѕ РџРђРЎРЎРђР–Р�Р Рђ;
  • Каждый РџРђРЎРЎРђР–Р�Р  может иметь РѕРґРёРЅ или более Р‘Р�ЛЕТОВ.

РќР° следующем примере изображена рекурсивная СЃРІСЏР·СЊ, связывающая сущность ЧЕЛОВЕК СЃ ней же самой. Конец СЃРІСЏР·Рё СЃ именем “сын” определяет тот факт, что Сѓ РѕРґРЅРѕРіРѕ отца может быть более чем РѕРґРёРЅ сын. Конец СЃРІСЏР·Рё СЃ именем “отец” означает, что РЅРµ Сѓ каждого человека РјРѕРіСѓС‚ быть сыновья.

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

  • Каждый ЧЕЛОВЕК является сыном РѕРґРЅРѕРіРѕ Рё только РѕРґРЅРѕРіРѕ ЧЕЛОВЕКА;
  • Каждый ЧЕЛОВЕК может являться отцом для РѕРґРЅРѕРіРѕ или более ЛЮДЕЙ (”ЧЕЛОВЕКОВ”).

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

Пример:

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

Более сложные элементы ER-модели

Мы остановились только на самых основных и наиболее очевидных понятиях ER-модели данных. К числу более сложных элементов модели относятся следующие:

  • Подтипы Рё супертипы сущностей. Как РІ языках программирования СЃ развитыми типовыми системами (например, РІ языках объектно-ориентированного программирования), вводится возможность наследования типа сущности, РёСЃС…РѕРґСЏ РёР· РѕРґРЅРѕРіРѕ или нескольких супертипов. Р�нтересные нюансы связаны СЃ необходимостью графического изображения этого механизма.
  • РЎРІСЏР·Рё “many-to-many”. Р�РЅРѕРіРґР° бывает необходимо связывать сущности таким образом, что СЃ РѕР±РѕРёС… концов СЃРІСЏР·Рё РјРѕРіСѓС‚ присутствовать несколько экземпляров сущности (например, РІСЃРµ члены кооператива сообща владеют имуществом кооператива). Для этого вводится разновидность СЃРІСЏР·Рё “РјРЅРѕРіРёРµ-СЃРѕ-РјРЅРѕРіРёРјРё”.
  • Уточняемые степени СЃРІСЏР·Рё. Р�РЅРѕРіРґР° бывает полезно определить возможное количество экземпляров сущности, участвующих РІ данной СЃРІСЏР·Рё (например, служащему разрешается участвовать РЅРµ более чем РІ трех проектах одновременно). Для выражения этого семантического ограничения разрешается указывать РЅР° конце СЃРІСЏР·Рё ее максимальную или обязательную степень.
  • Каскадные удаления экземпляров сущностей. Некоторые СЃРІСЏР·Рё бывают настолько сильными (конечно, РІ случае СЃРІСЏР·Рё “РѕРґРёРЅ-РєРѕ-РјРЅРѕРіРёРј”), что РїСЂРё удалении РѕРїРѕСЂРЅРѕРіРѕ экземпляра сущности (соответствующего концу СЃРІСЏР·Рё “РѕРґРёРЅ”) нужно удалить Рё РІСЃРµ экземпляры сущности, соответствующие концу СЃРІСЏР·Рё “РјРЅРѕРіРёРµ”. Соответствующее требование “каскадного удаления” можно сформулировать РїСЂРё определении сущности.
  • Домены. Как Рё РІ случае реляционной модели данных бывает полезна возможность определения потенциально допустимого множества значений атрибута сущности (домена).

Эти Рё РґСЂСѓРіРёРµ более сложные элементы модели данных “Сущность-РЎРІСЏР·Рё” делают ее существенно более мощной, РЅРѕ одновременно несколько усложняют ее использование. Конечно, РїСЂРё реальном использовании ER-диаграмм для проектирования баз данных необходимо ознакомиться СЃРѕ всеми возможностями.

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

Сущность может быть расщеплена на два или более взаимно исключающих подтипа, каждый из которых включает общие атрибуты и/или связи. Эти общие атрибуты и/или связи явно определяются один раз на более высоком уровне. В подтипах могут определяться собственные атрибуты и/или связи. В принципе подтипизация может продолжаться на более низких уровнях, но опыт показывает, что в большинстве случаев оказывается достаточно двух-трех уровней.

Сущность, на основе которой определяются подтипы, называется супертипом. Подтипы должны образовывать полное множество, т.е. любой экземпляр супертипа должен относиться к некоторому подтипу. �ногда для полноты приходится определять дополнительный подтип ПРОЧ�Е.

Пример: Супертип ЛЕТАТЕЛЬНЫЙ АППАРАТ

Как полагается это читать? От супертипа: ЛЕТАТЕЛЬНЫЙ АППАРАТ, который должен быть АЭРОПЛАНОМ, ВЕРТОЛЕТОМ, ПТ�ЦЕЛЕТОМ или ДРУГ�М ЛЕТАТЕЛЬНЫМ АППАРАТОМ. От подтипа: ВЕРТОЛЕТ, который относится к типу ЛЕТАТЕЛЬНОГО АППАРАТА. От подтипа, который является одновременно супертипа: АЭРОПЛАН, который относится к типу ЛЕТАТЕЛЬНОГО АППАРАТА и должен быть ПЛАНЕРОМ или МОТОРНЫМ САМОЛЕТОМ.

�ногда удобно иметь два или более разных разбиения сущности на подтипы. Например, сущность ЧЕЛОВЕК может быть разбита на подтипы по профессиональному признаку (ПРОГРАММ�СТ, ДОЯРКА и т.д.), а может - по половому признаку (МУЖЧ�НА, ЖЕНЩ�НА).

2 комментариев »

  1. Кстати, поздравляю всех-всех-всех участников блога с вчерашним Днем Знаний. (Автора наверное не нужно поздравлять, так как у Вас мне кажется все первые сентября уже в прошлом ;)) Вчера забыла поздравить, как-то не до этого было. Сейчас вот только отошла немного :)

    Комментарий РѕС‚ Оксана — 3 Сентябрь 2008 @ 1:03

  2. Нет, еще 1 сентября не в прошлом.

    Комментарий РѕС‚ Михаил — 16 Сентябрь 2008 @ 23:27

RSS лента комментариев к этой записи. TrackBack URL

Оставить комментарий

© Проект «Студенты-Программеры»., 2008. Р’СЃРµ права защищены.
Перепечатка материалов только при наличии активной ссылки на источник.
Powered by WordPress