ER-модель данных

Материал из Seo Wiki - Поисковая Оптимизация и Программирование

Перейти к: навигация, поиск

Модель Сущность-Связь (ER-модель) (англ. entity-relationship model (ERM) или англ. entity-relationship diagram (ERD)) — модель данных, позволяющая описывать концептуальные схемы. Предоставляет собой графическую нотацию, основанную на блоках и соединяющих их линиях, с помощью которых можно описывать объекты и отношения между ними какой-либо другой модели данных. В этом смысле ER-модель является мета-моделью данных, то есть средством описания моделей данных.

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

ER-модель является одной из самых простых визуальных моделей данных (графических нотаций). Она позволяет обозначить структуру «крупными мазками», в общих чертах. Это общее описание структуры называется ER-диаграммой или онтологией выбранной предметной области (area of interest).

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

Содержание

История создания

Модель «сущность-связь» была предложена в 1976 году Питером Пин-Шен Ченом (англ. Peter Pin-Shen Chen) [1] – американским профессором компьютерных наук в университете штата Луизиана. [2] Фактически Чен не изобретал модель, он взял идеи из более ранних работ таких практиков, как А. Браун [3] и других. Однако Питер Чен сделал больше, чем кто-бы то ни было до него для формализации и популяризации ER-модели, а так же для её внедрения в научную литературу.

Применение

В связи с наглядностью представления концептуальных схем баз данных ER-модели получили широкое распространение в системах CASE, поддерживающих автоматизированное проектирование реляционных баз данных. Среди множества нотаций ER-моделей одна из наиболее развитых – Unified Modeling Language (Унифицированный язык моделирования), сокр. UML – применяется в системе CASE фирмы ORACLE. Нотация UML так же используется и/или поддерживается: Borland Software Corporation, Университетом Бремена, Университетом Кента, Университетом Йорка и Дрезденским Университетом Технологии.[4]

В 2005 году в работе "Design-Level LINUX Documentation"[5] был представлен наиболее полный анализ структуры ядра Linux версии 2.6 в представлении UML 2.0. В данном документе для каждой из базовых подсистем ядра (управление памятью, ФС, безопасность, криптография, инициализация, драйверы, архитектура, межпроцессное взаимодействие), представлено детальное описание структуры и связей составных частей (вплоть до структур данных и функций).[6]

Нотации

Предложенная Питером Ченом

Файл:ER Diagram MMORPG.png
Простая ER-модель MMORPG с использованием нотации Питера Чена

Множества сущностей изображаются в виде прямоугольников, множества отношений изображаются в виде ромбов. Если сущность участвует в отношении, они связаны линией. Если отношение не является обязательным, то линия пунктирная. Атрибуты изображаются в виде овалов и связываются линией с одним отношением или с одной сущностью.[7]

Crow's Foot

Файл:ERD-artist-performs-song.svg
Пример отношения между сущностями согласно нотации Crow's Foot

Данная нотация была предложена Гордоном Эверестом (англ. Gordon Everest) под названием Inverted Arrow ("Перевёрнутая стрелка"), однако сейчас чаще называемая Crow's Foot ("Воронья лапа") или Fork ("Вилка"). [8]

Согласно данной нотации, сущность изображается в виде прямоугольника, содержащее её имя, выражаемое существительным[9]. Имя сущности должно быть уникальным в рамках одной модели. При этом, имя сущности - это имя типа, а не конкретного экземпляра данного типа. Экземпляром сущности называется конкретный представитель данной сущности.

Связь изображается линией, которая связывает две сущности, участвующей в отношении. Степень конца связи указывается графически, множественность связи изображается в виде "вилки" на конце связи. Модальность связи так же изображается графически - необязательность связи помечается кружком на конце связи. Именование обычно выражается одним глаголом[9] в изъявительном наклонении настоящего времени: «Имеет», «Принадлежит» и т. д.; или глаголом с поясняющими словами: «Включает_в_себя», и т.п. Наименование может быть одно для всей связи или два для каждого из концов связи. Во втором случае, название левого конца связи указывается над линией связи, а правого – под линией. Каждое из названий располагаются рядом с сущностью, к которой оно относится.

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

Прочие нотации

Инструменты для создания ER-моделей

Существует множество инструментов для работы с ER-моделями, вот некоторые из них:

Название Платформа Лицензия *
ARIS Проприетарная
Avolution (англ.) Проприетарная (EULA)
dbForge Studio for MySQL (англ.) Microsoft Windows Проприетарная
Devgems Data Modeler (англ.) Microsoft Windows: 2000, XP, Vista Проприетарная
DeZign for Databases (англ.) Microsoft Windows: NT, 2000, XP, Vista, Windows 7 [10] Проприетарная
Dia (англ.) Кроссплатформенное ПО Свободная (GNU GPL)[11]
ER/Studio (англ.) Microsoft Windows Проприетарная
ERwin Microsoft Windows: 2000, XP, Server 2003 [12] Проприетарная
Fujaba (нем.) Кроссплатформенное ПО (на основе Java) Свободная (GNU LGPL)
Innovator (нем.) Microsoft Windows 2000, SuSE Linux 10.3, Solaris 8, Red Hat (по запросу) Проприетарная
MEGA International (англ.) Microsoft Windows, Web Platform [13] Проприетарная
Microsoft Visio Microsoft Windows Проприетарная
MySQL Workbench (англ.) Кроссплатформенное ПО Свободная (GNU GPL) / проприетарная (EULA)
OmniGraffle (англ.) Mac OS X v10.5+ [14] Проприетарная
Oracle Designer (англ.) Microsoft Windows Проприетарная
PowerDesigner (англ.) Microsoft Windows Проприетарная
Rational Rose (англ.) Microsoft Windows Проприетарная
RISE Editor (англ.) Microsoft Windows Проприетарная / бесплатное ПО [15]
SiSy (нем.) Microsoft Windows Проприетарная
Sparx Enterprise Architect (англ.) Microsoft Windows, Linux, Mac OS X (с использованием CrossOver) Проприетарная[16]
SQL Maestro Проприетарная
SQLyog Microsoft Windows: 4.10+, NT Бесплатное ПО / проприетарная (EULA) [17]
StarUML (англ.) Microsoft Windows Свободная (модифицированный вариант GNU GPL)
System Architect (англ.) Microsoft Windows Проприетарная
Toad Data Modeler (англ.) Проприетарная
Visual Paradigm (англ.) Кроссплатформенное ПО Проприетарная / бесплатное ПО (для некоммерческого использования) [18]

^ В столбце "Лицензия" указан тип программного обеспечения - проприетарное (собственническое) или свободное и (если известна) лицензия, под которой распространяется данное ПО.

Литература

  • Лавров Владислав «Своя структура» (рус.) // Хакер Спец : Журнал. — 2005. — № 03(52). — С. 24-25.

См. также

Примечания

  1. The History of Conceptual Modeling (англ.). www.uni-klu.ac.at. Проверено 10 ноября 2009.
  2. Dr. Peter Chen (англ.). Louisiana State University. Проверено 10 ноября 2009.
  3. A.P.G. Brown Modelling a Real-World System and Designing a Schema to Represent It // Data Base Description / Под ред. B. C. M. Douqué, G. M. Nijssen. — Амстердам: North-Holland Publishing Co., 1975. — 382 с. — ISBN 0-7204-2833-5
  4. «OMG Unified Modeling Language™ (OMG UML), Infrastructure. Version 2.2» (англ.) (pdf). Object Managemend Group (OMG) (2009-02-04). Проверено 19 января 2010.
  5. «Design-Level LINUX Documentation» (2005). Проверено 19 января 2010.
  6. «Дизайн Linux ядра в UML». OpenNET.ru (2005-06-18). Проверено 19 января 2009.
  7. Дмитрий Буй, Людмила Сильвейструк «Модель "Сущность-связь": роли, сильные и слабые типы сущностей и типы связей» (2007). Проверено 19 января 2010.
  8. Dr. Terry Halpin Entity Relationship modeling from an ORM perspective: Part 1 (англ.). Object Role Modeling. Проверено 16 января 2010.
  9. 9,0 9,1 9,2 Crow's Foot Notation (англ.). Проверено 19 января 2010.
  10. DeZign for Databases - System Requirements (англ.). datanamic - Tools for Database Developers. Проверено 19 января 2010.
  11. http://live.gnome.org/Dia (англ.). Проверено 19 января 2010.
  12. CA ERwin Process Modeler 7.3 (ранее BPwin). Интерфейс Ltd.. Проверено 19 января 2010.
  13. MEGA SUITE - Platforms (англ.). Проверено 19 января 2010.
  14. The Omni Group - OmniGraffle (англ.). Проверено 19 января 2010.
  15. RISE Editor (англ.). Проверено 19 января 2010.
  16. License Information for Enterprise Architect (англ.). Проверено 19 января 2010.
  17. Visual Paradigm for UML 7.2 Community Edition (англ.). Проверено 19 января 2010.

Ссылки

Видео-лекции

Личные инструменты

Served in 0.475 secs.