ER-модель
ER-модель (от англ. Entity-Relationship model, модель «сущность — связь») — модель данных, позволяющая описывать концептуальные схемы предметной области.
ER-модель используется при высокоуровневом (концептуальном) проектировании баз данных. С её помощью можно выделить ключевые сущности и обозначить связи, которые могут устанавливаться между этими сущностями.
Во время проектирования баз данных происходит преобразование схемы, созданной на основе ER-модели, в конкретную схему базы данных на основе выбранной модели данных (реляционной, объектной, сетевой или др.).
ER-модель представляет собой формальную конструкцию, которая сама по себе не предписывает никаких графических средств её визуализации. В качестве стандартной графической нотации, с помощью которой можно визуализировать ER-модель, была предложена диаграмма «сущность-связь» (англ. Entity-Relationship diagram, ERD, ER-диаграмма).
Понятия «ER-модель» и «ER-диаграмма» часто не различают, хотя для визуализации ER-моделей могут быть использованы и другие графические нотации, либо визуализация может вообще не применяться (например, использоваться текстовое описание).
Модель была предложена в 1976 году Питером Ченом[1][2], им же предложена и самая популярная графическая нотация для модели.
Графические нотации (диаграммы)
Нотация П. Чена
Множества сущностей изображаются в виде прямоугольников, множества отношений изображаются в виде ромбов. Если сущность участвует в отношении, они связаны линией. Если отношение не является обязательным, то линия пунктирная. Атрибуты изображаются в виде овалов и связываются линией с одним отношением или с одной сущностью[3].
Crow’s Foot
Данная нотация была предложена Гордоном Эверестом (англ. Gordon Everest) под названием “inverted arrow” («перевёрнутая стрелка»), однако сейчас чаще называемая “Crow’s Foot”, или “crow’s foot” («воронья лапка») или “fork” («вилка»)[4].
Согласно данной нотации, сущность изображается в виде прямоугольника, содержащего её имя, выражаемое существительным[5]. Имя сущности должно быть уникальным в рамках одной модели. При этом, имя сущности — это имя типа, а не конкретного экземпляра данного типа. Экземпляром сущности называется конкретный представитель данной сущности.
Связь изображается линией, которая связывает две сущности, участвующие в отношении. Степень конца связи указывается графически, множественность связи изображается в виде «вилки» на конце связи. Модальность связи так же изображается графически — необязательность связи помечается кружком на конце связи. Именование обычно выражается одним глаголом[5] в изъявительном наклонении настоящего времени: «имеет», «принадлежит» и т. д.; или глаголом с поясняющими словами: «включает в себя», и т. п. Наименование может быть одно для всей связи или два для каждого из концов связи. Во втором случае, название левого конца связи указывается над линией связи, а правого — под линией. Каждое из названий располагаются рядом с сущностью, к которой оно относится.
Атрибуты сущности записываются внутри прямоугольника, изображающего сущность, и выражаются существительным в единственном числе (возможно, с уточняющими словами). Среди атрибутов выделяется ключ сущности — неизбыточный набор атрибутов, значения которых в совокупности являются уникальными для каждого экземпляра сущности[5].
Примечания
- Петер Пин-Шен Чен. Модель «сущность-связь» — шаг к единому представлению о данных / пер. с англ. М.Р. Когаловский // Системы управления базами данных, 1995, № 03, с. 137–158. (см. также перевод в редакции С. Кузнецова, 2009 г.)
- The History of Conceptual Modeling (англ.) (недоступная ссылка). www.uni-klu.ac.at. Дата обращения: 10 ноября 2009. Архивировано 15 февраля 2012 года.
- Дмитрий Буй, Людмила Сильвейструк. Модель «сущность-связь»: роли, сильные и слабые типы сущностей и типы связей (недоступная ссылка) (2007). Дата обращения: 19 января 2010. Архивировано 2 июня 2012 года.
- Dr. Terry Halpin. Entity Relationship modeling from an ORM perspective: Part 1 (англ.) (недоступная ссылка). Object Role Modeling. Дата обращения: 16 января 2010. Архивировано 15 февраля 2012 года.
- Crow's Foot Notation (англ.) (недоступная ссылка). Дата обращения: 19 января 2010. Архивировано 15 февраля 2012 года.
Литература
- Peter Pin-Shan Chen. «The Entity-Relationship Model — Toward a Unified View of Data» (англ.) // ACM Transactions on Database Systems (TODS) : Сб. — Нью-Йорк: ACM, 1976. — Vol. 1. — P. 9–36. — ISSN 0362-5915. — doi:10.1145/320434.320440.
- Питер Пин-Шен Чен. Модель «сущность-связь» — шаг к единому представлению о данных. Пер. М. Р. Когаловского.
- Joseph M. Firestone. «Dimensional Modeling and E-R Modeling In The Data Warehouse» (англ.) (недоступная ссылка) (22-06-1998). Дата обращения: 12 ноября 2009. Архивировано 15 февраля 2012 года.
Ссылки
- Entity-Relationship modelling (англ.)
- Crow’s Foot notation Архивировано 15 февраля 2012 года. (англ.)
- The history of conceptual modeling (англ.)
Видеолекции
- Prof.N.L. Sarda, Prof. Umesh Bellur, Prof.R.K.Joshi and Prof.Shashi Kelkar, Department of Computer Science & Engineering, IIT Bombay. «Lecture - 12 Data Modelling - ER Diagrams, Mapping» (англ.) (flv-видео). NPTEL (8 октября 2008). Дата обращения: 19 января 2010.
- Видеоканал gvimontslice на YouTube
- «Logic Data Modeling 8 — Entity Relationship Diagram, part 1» (англ.) (flv-видео) (26 июля 2008). Дата обращения: 19 января 2010.
- «Logic Data Modeling 9 — Entity Relationship Diagram, part 2» (англ.) (flv-видео) (26 июля 2008). Дата обращения: 19 января 2010.