Моделей данных модель сущность связь. Концептуальная модель базы данных — диаграмма связи между объектами. Основные понятия ER-модели: сущность, экземпляр сущности, атрибут, ключ, связь, типы связей

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

Модель сущность-связь (англ. entity-relationship model, ERM, ER-модель) позволяет описывать концептуальные схемы предметной области.

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

Как известно, базовым понятием реляционных БД является таблица (отношение). Таблица используется для структуризации и хранения информации. В реляционных БД каждая ячейка таблицы содержит одно значение. Кроме того, внутри одной БД существуют взаимосвязи между таблицами, каждая из которых задает совместное пользование данными таблицы.

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

Взаимосвязь показывает, что данные одной сущности ссылаются или связаны с данными другой.

Степень конца связи указывается графически, множественность связи изображается в виде "вилки" на конце связи. Модальность связи так же изображается графически - необязательность связи помечается кружком на конце связи. Именование связи выражается одним глаголом (рис.13).

Рис.13.

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

Среди атрибутов выделяется ключ сущности. При создании сущности необходимо выделить группу атрибутов, которые могут быть первичным ключом, затем произвести отбор атрибутов для включения в состав первичного ключа:

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

· Никакой из атрибутов первичного ключа не должен иметь нулевое значение.

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

При выборе первичного ключа, как правило, в сущность вводится дополнительный атрибут, который становиться ключом.

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

Первым шагом при создании логической модели БД является построение ER-диаграммы, состоящей из трех частей: сущностей, атрибутов и взаимосвязей.

Разработано множество инструментов визуального создания ER - диаграмм для различны платформ. В настоящем проекте использовалась разработка MySQL Workbench .

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

Рис. 14. ER - диаграмма базы данных control_test системы дистанционного тестирования


Нормализация базы данных

В реляционной теории БД нет универсальных предписаний, законов для проектирования надежной, спроектированной раз и навсегда базы данных. Разработчики выбирают свои решения по проекту базы данных, полагаясь во многом на опыт, интуицию, различные инструменты и методы проектирования.

Тем не менее, некоторые каноны, правила все-таки существуют. К таким правилам относятся правила нормализации, т.е. приведения отношений к нормальной форме.

Типичной формой документирования логической модели предметной области при ER-моделировании являются диаграммы "сущность-связь" , или ER-диаграммы (Entity Relationship Diagram). ER-диаграмма позволяет графически представить все элементы логической модели согласно простым, интуитивно понятным, но строго определенным правилам - нотациям .

Для создания ER диаграмм обычно используют одну из двух наиболее распространенных нотаций.

  • Integration DEFinition for Information Modeling ( IDEF1X ). Эта нотация была разработана для армии США и стала федеральным стандартом США. Кроме того, она является стандартом в ряде международных организаций (НАТО, Международный валютный фонд и др.).
  • Information Engineering (IE). Нотация, разработанная Мартином (Martin), Финкельштейном (Finkelstein) и другими авторами, используется преимущественно в промышленности.

Построение ER-диаграмм , как правило, ведется с использованием CASE-средств. В данной лекции во всех примерах, если это не оговорено особо, будет использоваться нотация MS Office Visio 2007.

Сущность на ER-диаграмме представляется прямоугольником с именем в верхней части ( рис. 6.3).


Рис. 6.3. Представление сущности "Сотрудник" на ER-диаграмме

В прямоугольнике перечисляются атрибуты сущности , при этом атрибуты, составляющие уникальный идентификатор сущности , подчеркиваются ( рис. 6.4).


Рис. 6.4. Представление сущности "Сотрудник" с атрибутами и уникальным идентификатором сущности

Каждый экземпляр сущности должен быть уникальным и отличаться от других атрибутов. Одним из основных компьютерных способов распознавания сущностей в ИС является присвоение сущностям идентификаторов (entity identifier). Поскольку сущность определяется набором своих атрибутов, для каждой сущности целесообразно выделить такое подмножество атрибутов, которое однозначно идентифицирует данную сущность. Часто идентификатор сущности называют первичным ключом (primary key).

Первичный ключ (primary key) – это атрибут или группа атрибутов, однозначно идентифицирующая экземпляр сущности . Атрибуты первичного ключа на диаграмме не требуют специального обозначения – это те атрибуты, которые находятся в списке атрибутов выше горизонтальной линии ( рис. 6.3).

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

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

Рассмотрим кандидатов на первичный ключ сущности "сотрудник" ( рис. 6.5).


Рис. 6.5. Определение первичного ключа для сущности "сотрудник"

Здесь можно выделить следующие потенциальные ключи.

  1. Табельный номер.
  2. Номер паспорта.
  3. Фамилия + Имя + Отчество.

Для того чтобы стать первичным, потенциальный ключ должен удовлетворять ряду требований.

Уникальность . Два экземпляра не должны иметь одинаковых значений возможного ключа. Потенциальный ключ (Фамилия + Имя + Отчество ) является плохим кандидатом, поскольку в организации могут работать полные тезки.

Компактность . Сложный возможный ключ не должен содержать ни одного атрибута, удаление которого не приводило бы к утрате уникальности. Для обеспечения уникальности ключа (Фамилия + Имя + Отчество ) дополним его атрибутами Дата рождения и Цвет глаз . Если бизнес-правила говорят, что сочетания атрибутов Фамилия + Имя + Отчество + Дата рождения достаточно для однозначной идентификации сотрудника, то Цвет глаз оказывается лишним, т. е. ключ Фамилия + Имя + Отчество + Дата рождения + Цвет глаз не является компактным.

При выборе первичного ключа предпочтение должно отдаваться более простым ключам, т. е. ключам, содержащим меньшее количество атрибутов. В примере ключи № 1 и № 2 предпочтительней ключа № 3.

Атрибуты ключа не должны содержать нулевых значений. Если допускается, что сотрудник может не иметь паспорта или вместо паспорта иметь какое-либо другое удостоверение личности, то ключ № 2 не подойдет на роль первичного ключа. Если для обеспечения уникальности необходимо дополнить потенциальный ключ дополнительными атрибутами, то они не должны содержать нулевых значений. При дополнении ключа № 3 атрибутом Дата рождения нужно убедиться в том, что даты рождения известны для всех сотрудников.

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

Каждая сущность должна иметь, по крайней мере, один потенциальный ключ . Многие сущности имеют только один потенциальный ключ . Такой ключ становится первичным. Некоторые сущности могут иметь более одного возможного ключа. Тогда один из них становится первичным, а остальные – альтернативными ключами . Альтернативный ключ (Alternate Key) – это потенциальный ключ, не ставший первичным .

Некоторые сущности имеют естественные (натуральные) ключи. Например, естественным идентификатором счета-фактуры является его номер. В противном случае проектировщик может создать суррогатный ключ (Surrogate Key) – атрибут, значение которого создается искусственно и не имеет отношения к предметной области . При моделировании структур данных для ХД суррогатные ключи во многих ситуациях являются более предпочтительными.

Домены назначаются аналитиками и фиксируются в специальном документе - словаре данных ( Data Dictionary ). При создании логической модели домены могут быть специфицированы в сущностях на ER-диаграмме.

Каждый атрибут имеет домен . Домен можно определить как абстрактный атрибут, на основе которого можно создавать обычные атрибуты, при этом создаваемые атрибуты будут иметь все свойства домена-прародителя. Каждый атрибут может быть определен только на одном домене , но на каждом домене может быть определено множество атрибутов. В понятие домена входит не только тип данных, но и область значений данных. Например, можно определить домен "Возраст" как положительное целое число и определить атрибут Возраст сотрудника как принадлежащий этому домену .

На уровне логического моделирования данных назначение домена атрибуту носит общий характер. Например, атрибут текстовый, числовой, бинарный, дата или "не определен". В последнем случае аналитик должен дать описание домена . На последующих стадиях тип домена конкретизируется, смысл понятия домена в физической модели ХД уже, чем его может понимать аналитик. Это связано с тем, что в рамках физической модели домен реализуется посредством механизма ограничения домена , СУБД не понимает неопределенных доменов .

Проектировщик должен тщательным образом изучить домены каждого атрибута с точки зрения их реализуемости в СУБД, с участием аналитиков внести в них изменения, если условие реализуемости не выполняется. При этом проектировщик руководствуется следующим:

  • для реализации реляционного ХД требуется использовать реляционную или объектно-реляционную СУБД, например, MS SQL Server 2008;
  • в большинстве реляционных СУБД в качестве языка манипулирования и описания данных используется SQL, поддерживающий определенные стандарты, например, ANSI SQL-92.

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


Рис. 6.6.

В MS Office Visio имя связи , степень связи (мощность) и класс принадлежности сущности к связи определяется на вкладке "Свойства базы данных", как показано на рис. 6.7 . Стрелка на линии связи указывает на родительскую таблицу .

При выделении связей акцент делается на выявление их характеристик. Связь представляет собой взаимоотношение между двумя или более сущностями. Каждая связь реализуется через значения атрибутов сущностей , например, экземпляр сущности "Сотрудник" ( рис. 6.6) связан с экземпляром сущности "Образование" по одинаковым значениям атрибутов Табельный номер . Другими словами, при создании связи в одной из сущностей, называемой дочерней сущностью, создается новый атрибут, называемый внешним ключом (Foreign Key, FK) (на рис. 6.6 это атрибут Табельный номер ). Иногда атрибуты внешнего ключа обозначаются символом (FK) после своего имени.

Связь является логическим соотношением между сущностями. Каждая связь должна именоваться глаголом или глагольной фразой Имя связи (Verb Phrase) – фраза, характеризующая отношение между родительской и дочерней сущностями . Имя связи выражает некоторое ограничение или бизнес-правило и облегчает чтение диаграммы. На рис. 6.8 показано присвоение связи имени.

Существуют различные типы связей: идентифицирующая связь (identifying relationship) "один ко многим", связь "многие ко многим" и неидентифицирующая связь (non-identifying relationship) "один ко многим". С типами связей связывают и различные типы сущностей.

Различают два типа сущностей: зависимые (Dependent entity) и независимые (Independent entity). Тип сущности определяется ее связью с другими сущностями. Идентифицирующая связь устанавливается между независимой (родительский конец связи ) и зависимой (дочерний конец связи ) сущностями.

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

Если модель создается при помощи CASE-средств, то при генерации схемы БД атрибуты первичного ключа получат признак NOT NULL, что означает невозможность внесения записи в таблицу "Сотрудники" без информации о табельном номере сотрудника.

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

Экземпляр сущности "Сотрудник" может существовать безотносительно к какому-либо экземпляру сущности "Отдел", т. е. сотрудник может работать в организации и не числиться в каком-либо отделе.

Идентифицирующая связь показывается на диаграмме сплошной линией с жирной точкой на дочернем конце связи (см. рис. 6.8), неидентифицирующая – пунктирной (см. рис. 6.9).

Связь "многие ко многим" (many-to-many relationship) может быть создана только на уровне логической модели. На рис. 6.10 показан пример определения связи "многие ко многим". Врач может принимать много пациентов, пациент может лечиться у нескольких врачей. Такая связь обозначается сплошной линией с двумя стрелочками на концах.

Связь "многие ко многим" должна именоваться двумя фразами – в обе стороны (в примере "принимает/лечится"). Это облегчает чтение диаграммы. Связь на

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

Наиболее часто формализация представлений о предметной области осуществляется в рамках модели «сущности-связи» («объекты-связи»). На данном этапе проектирования используется метод «сущность – связь», который называют также методом «ER-диаграмм» (“Essence” – сущность, “Relation” – связь). Этот метод основан на использовании диаграмм, называемых соответственно диаграммами ER-экземпляров и диаграммами ER-типа.

ER – диаграмма «сущность-связь» представляет собой набор множества объектов и их характеристик, а также взаимосвязей между ними, нужных для выявления данных, которые в дальнейшем используются функциями проектируемой системы.

Основными понятиями метода сущность – связь являются следующие:

Сущность;

Атрибут сущности;

Ключ сущности;

Связь между сущностями;

Степень связи;

Класс принадлежности экземпляров сущности;

Диаграммы ER-экземпляров;

Диаграммы ER-типа.

Под информационным объектом понимается некоторая сущность фрагмента действительности, например: организация, документ, сотрудник, место, событие и т. д. Сущность представляет собой объект, информация о котором хранится в базе данных. Экземпляры сущности отличаются друг от друга и однозначно идентифицируются. Названием сущности являются имена существительные. Каждый тип объектов идентифицируется присущим ему набором атрибутов. В данном курсовом проекте сущностями являются: сотрудник, должности, образование, формы трудового участия, факультеты, кафедры и темы.

Атрибут ((от лат. attribuo – приписываю) – свойство или вещь, неотделимые от предмета) представляет собой логически неделимый элемент структуры информации, характеризующийся множеством атомарных значений. Это понятие аналогично понятию «атрибут» в отношении. Экземпляр объекта характеризуется совокупностью конкретных значений атрибутов данного типа объекта. Один или некоторая группа атрибутов объекта данного типа могут исполнять роль ключевого атрибута (ключа сущности). В данном курсовом проекте вышеуказанные сущности характеризуются атрибутами, такими, как: код_факультета, название_факультета, код_кафедры, ФИО_сотрудника и т. д.



Ключ сущности – это атрибут или набор атрибутов, идентифицирующих экземпляр сущности (например, код_должности).

Связь двух или более сущностей – это зависимость между атрибутами этих сущностей. Оно обозначается глаголом. Причем связи бывают двух типов:

Иерархические;

Одноуровневые.

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


Классификация связей

В реальных базах данных информация размещается в нескольких таблицах. Таблицы при этом связаны семантикой информации. В реляционных СУБД для указания связей таблиц производят операцию их связывания. Это повышает достоверность хранимой в базе информации, т. к. СУБД контролирует целостность данных, вводимых в базу в соответствии с установленными связями.

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

Между таблицами могут устанавливаться:

Бинарные связи;

Тернарные связи;

N-арные связи.

При связывании двух таблиц выделяют основную и подчиненную таблицы (родительскую и дочернюю). Логическое связывание таблиц производится с помощью ключа связей. Поля основной таблицы могут быть простыми и ключевыми. Поля связей дополнительной таблицы чаще всего ключевые. В зависимости от того, как определены поля связи основной и дополнительной таблиц (как относятся ключевые поля с полями связи), устанавливаются виды связей:

1:1 (один к одному);

1:М (один ко многим);

М:1 (многие к одному);

М:М (многие ко многим).

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

Связь вида 1:М имеет место в случае, когда одной записи родительской таблицы соответствует несколько записей дочерней таблицы.

Связь М:1 имеет место в случае, когда одной ил нескольким записям основной таблицы ставится в соответствие одна запись дополнительной таблицы.

Связь М:М возникает в случаях, когда нескольким записям основной таблицы соответствует несколько записей дополнительной таблицы.

Аналогично связи 1:1, связь М:М не устанавливает подчиненность таблиц. На практике в связь обычно вовлечены несколько таблиц. При этом одна таблица может иметь различные виды связи с несколькими таблицами, образуя иерархию или «дерево связей» .

В данном курсовом проекте таблицы связаны связями вида 1:М (один ко многим). Например, таблица «факультеты» является родительской таблицей по отношению к дочерней таблице «кафедры». Эти таблицы связаны отношением 1:М с помощью ключа «код­_факультета»

  • 2. Экономические информационные системы, их классификация и информационное обеспечение
  • 3. Внемашинная организация экономической информации
  • 6. Трехуровневая модель организации бд
  • 7. Иерархическая модель
  • 8. Сетевая модель
  • 9. Основные понятия реляционной модели данных (отношения, домен, схема отношения, степень отношения, декарство произведения, атрибут, кортеж)
  • 11. Условия реляционной целостности
  • 13. Этапы проектирования баз данных
  • 10. Основные понятия реляционной модели данных(фундаментальные св-ва отношений, первичный ключ, связывание таблиц, внешний ключ, схема данных)
  • 12. Устройства для хранения баз данных
  • 14. Модель «сущность-связь» (er-модель)
  • 15. Преобразование er-модели в реляционную модель данных для связей типа 1:1 с обязательным участием с обеих сторон.
  • 16.Преобразование er-модели в реляционную модель данных для связей типа 1:1 с обязательным участием с одной стороны и необязательным с др стороны.
  • 17. Преобразование er-модели в реляционную модель данных для связей типа 1:1 с необязательным участием с обеих сторон.
  • 18. Преобразование er-модели в реляционную модель данных для связей типа 1:м с обязательным участием со стороны «многие»
  • 19. Преобразование er-модели в реляционную модель данных для связей типа 1:м с необязательным участием со стороны «многие»
  • 34. Администратирование базы данных. Восстановление базы данных
  • 20. Преобразование er-модели в реляционную модель данных для связей типа m:n.
  • 21. Нормализация таблиц. Эффективность реляционной базы данных. Первая нормальная форма (1нф).
  • 22. Нормализация таблиц. Функциональная зависимость. Полная и частичная функциональная зависимость. Вторая нормальная форма (2нф).
  • 23. Нормализация таблиц. Транзитивная зависимость. Третья нормальная форма (3нф).
  • 24. Понятие и возможности системы управления базами данных(субд)
  • 25. Классификация систем управления базами данных (субд)
  • 26. Системы управления базами знаний
  • 27. Удаленная обработка данных
  • 28. Обработка запросов в архитектуре файл/сервер
  • 30. Архитектура системы обработки распределенной базы данныхРаБд
  • 29. Обработка запросов в архитектуре клиент/сервер
  • 31. Хранилища данных
  • 32.Администратирование базы данных. Пользователи и администратор бд
  • 33. Администратирование базы данных.Защита баз данных
  • 14. Модель «сущность-связь» (er-модель)

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

    Связь представляет взаимодействие между сущностями. Она характеризуется мощностью (степенью связи) , которая показывает, сколько сущностей участвует в связи. Связь между двумя сущностями называется бинарной

    Важной характеристикой связи является тип связи (кратность) . Рассмотрим типы вышеуказанных связей. Так как один менеджер управляет только одним филиалом, то 1-я связь имеет тип «один-к-одному» (1:1).

    Так как один филиал обрабатывает несколько счетов, а каждый счет обрабатывается только одним филиалом, то 2-я связь имеет тип «один-ко-многим» (1:М).

    Так как один счет может совместно использоваться несколькими клиентами и один клиент может иметь несколько счетов, то 3-я связь имеет тип «многие-ко-многим» (M:N).

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

    Если не каждый экземпляр сущности А связан с каким-либо экземпляром сущности В, то степень участия сущности А является необязательной . Это изображается на ER-диаграмме черным кружком, помещенным на линии связи возле сущности А.

    Если каждый экземпляр сущности А связан с каким-либо экземпляром сущности В, то степень участия сущности А является обязательной . При этом на ER-диаграмме черный кружок на линии связи помещается в прямоугольник рядом с сущностью А. Напр., связь Сотрудник Регистрирует Клиентов имеет тип (1:М). При этом не каждый сотрудник регистрирует клиентов (необязательное участие), но каждый клиент регистрируется сотрудником (обязательное участие):

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

    МЕНЕДЖЕР

    Номер менеджера (НМ)

    Номер филиала (НФ)

    Стажработы (СТАЖ)

    Адрес филиала (АДР_Ф)

    Специальность (СПЕЦ)

    Номер клиента (НК)

    Номер счета (НС)

    Ф.И.О. клиента (ФИО_К)

    Тип счета (ТИП)

    Адрес клиента (АДР_К)

    Остаток на счете (ОСТ)

    Социальное положение (СОЦ_П)

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

    1.5 ER-моделирование

    Моделирование данных – это первый шаг на пути проектирования БД, это переход от объектов реального мира к компьютерной модели БД.

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

    1.5.1 Сущности

    Поскольку сущность представляет собой объект реального мира, то слова «сущность» и «объект» часто обозначают одно и то же.

    На уровне ER-моделирования под сущностью на самом деле подразумевается набор сущностей (entity set), а не единственная сущность. Иначе говоря, сущность в ER-моделировании соответствует таблице, а не строке в реляционной среде, отдельная строка в ER-модели называется экземпляром сущности (entity instance, entity occurrence). Сущность изображается прямоугольником, в котором записано имя сущности.

    1.5.2 Атрибуты

    Атрибуты описывают свойства сущности. Например, сущность STUDENT включает в себя атрибуты NSTBIL (№ студенческого билета), FIO (имя студента), KURS (курс) и т.д.

    Рис. 1.24. Атрибуты сущности STUDENT в ER-модели.

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

    Первичные ключи в ER-модели подчеркиваются. Если имеются несколько первичных ключей, то подчеркиваются все.

    Атрибуты могут быть простые и составные. Составной атрибут – это атрибут, который может быть в дальнейшем разделен на несколько атрибутов. Например, атрибут ADRESS (адрес), может быть разделен на STREET (улица), CITY (город) и т.д.

    Атрибуты могут быть однозначные и многозначные. Однозначный атрибут – это такой атрибут, который может принимать единственное значений. Например, ИНН может иметь единственное значение у каждого человека. Однозначные атрибуты не обязательно являются простыми. Например, серийный номер 78-03-06-137846 является однозначным атрибутом, но в то же время это составной атрибут, т.к. его можно разделить на регион, в котором изделие было выпущено (78), код города (03), выпускающую смену (06), номер изделия (137846).

    Многозначный атрибут – это атрибут, который может принимать несколько значений. Например, человек может закончить несколько ВУЗов, иметь несколько телефонных номеров.

    В реляционной СУБД многозначные атрибуты использовать нельзя. Если имеются многозначные атрибуты, то необходимо создать внутри данной сущности несколько новых атрибутов или создать новую сущность, состоящую из компонентов многозначного атрибута.

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

    1.5.3. Связи

    Связи (relationship) – это ассоциирование. Сущности, участвующие в связи, называются участниками (participants). В качестве названия связей может использоваться глагол или документ. Например, отделом руководит служащий, товары поступают на основании заключенного договора и т.д.

    Связи между сущностями в количественном соотношении могут быть «один-к-одному», «один-ко-многим». Для обозначения типов связей используется термин «связность» (connectivity).

    Мощность связи (cardinality) выражает определенное число экземпляров сущностей, связанных с одним экземпляром связанной сущности. На ER-диаграмме мощность связи не обозначается, но в прикладном программировании сведения о max и min количествах экземпляров сущности могут пригодиться. Например, группа не может начать занятия, если в ней меньше 10 студентов.

    Связи устанавливаются между сущностями. Если сущность зависит от существования одной или более других сущностей, то она зависит от существования (existence – dependent). Например, если сотрудники имеют иждивенцев, то для исчисления налогов можно установить связь «сотрудник имеет иждивенцев». В этом случае сущность «иждивенец» зависит от сущности «сотрудник».

    Если сущность может существовать вне других сущностей, то она независима от существования (existence –independent). Например, сущность «деталь» может существовать независимо от сущности «поставщик».

    Если одна сущность независима от существования другой сущности, связь между ними называется слабой связью (weak relationship) или неидентифицируемой связью (non – identifying relationship). Слабые связи имеют место, если первичный ключ связанной сущности не содержит первичные компоненты порождающей сущности. Например, имеются две сущности COURSE (курс) и CLASS (группа), описанные как

    COURSE (CRS-CODE , DEPT_CODE,…)

    CLASS (CLASS-CODE , CRS_CODE,…)

    Между этими сущностями существует слабая связь, т.к. атрибут CLASS_CODE является первичным ключом сущности CLASS, в то время как атрибут CRS_CODE сущности CLASS является внешним ключом. Первичный ключ сущности CLASS не наследует компонент первичного ключа из сущности COURSE. Слабая связь изображается на ER-диаграмме штриховой линией.

    Сильная связь (strong relationship), также называемая идентифицируемой связью (identifying relationship) имеет место, если связанные сущности зависимы от существования. Сильная связь между двумя сущностями имеет место, когда первичный ключ связанной сущности содержит компонент первичного ключа порождающей сущности. Например, сущности

    COURSE (CRS-CODE , DEPT_CODE,…)

    CLASS (CRS_CODE , CLASS-SECTION ,…)

    Имеют сильную связь, т.к. составной ключ сущности CLASS включает в себя первичный сущности COURSE. На ER-диаграмме сильные связи показываются сплошной линией.

    Необходимо иметь в виду, что порядок, в котором таблицы создаются и загружаются, имеет существенное значение. Для данных, например невозможна ситуация, когда внешний ключ таблицы CLASS ссылается на еще не существующую таблицу COURSE. Проблема после последовательности создания таблиц в некоторых СУБД не возникает, пока не загружаются данные. Чтобы избежать нарушения целостности на уровне ссылки, в связи 1:М необходимо загружать сторону «1» независимо от того, является она сильной или слабой.

    Участие сущности в связи может быть обязательным или необязательным. Участие сущности необязательно (optional participation), если один экземпляр сущности не требует наличия соответствующего экземпляра сущности в отдельной связи. Например, в связи на курсе (COURSE), создаются группы (CLASS) по крайней мере, на некоторых курсах могут и не создаваться группы. Т.е. экземпляр сущности (строка) в таблице COURSE не требует обязательного наличия соответствующего экземпляра сущности в таблице CLASS. Поэтому сущность CLASS рассматривается как необязательная по отношению к сущности COURSE. Необязательная связь на ER-диаграмме показывается небольшим кружком со стороны необязательной сущности. Существование необязательности указывает на то, что для необязательной сущности min значение мощности связи равно 0.

    Участие сущности в связи обязательно (mandatory participation), если один экземпляр сущности обязательно требует соответствующего экземпляра сущности в отдельной связи. Если около сущности не изображен никакой дополнительный символ, то это означает, что данная сущность участвует в обязательной связи со связанной сущностью. Min мощность для обязательной сущности равна 1.

    а) Сущность CLASS необязательна для сущности COURSE

    б) Сущности COURE и CLASS в обязательной связи.

    Рис.1.25. Изображение обязательной и необязательной связей в ER-модели.

    В терминах проектирования БД существование сильной связи между порождающей сущностью и связанной с ней сущностью или сущностями ассоциируется со слабыми сущностями.

    Слабой сущностью (weak entity) называется сущность, которая удовлетворяет двум условиям:

    условию зависимости от существования, т.е. она не может существовать без сущности, с которой она связана;

    ее первичный ключ частично или целиком произведен из порождающей сущности данной связи.

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

    Рис. 1.26. Слабая сущность в ER-диаграммах.

    Слабая сущность наследует все части первичного ключа своего сильного партнера по связи. Именно проектировщик БД решает, нужно или нет объявлять сущность слабой.

    Степень связи (relationship degree) указывает на число ассоциированных сущностей. Унарная связь (unary relationship) существует тогда, когда ассоциация поддерживается внутри единственной сущности. Бинарная связь (binary relationship) существует тогда, когда ассоциируются две сущности. Тернарная связь (ternary relationship) имеет место тогда, когда связываются три сущности. Хотя существуют и более высокие степени связи, они довольно редки и не имеют особых названий.

    Если сущность имеет связи с собой, то такая связь называется рекурсивной.

    Рис. 1.27. ER-представление рекурсивной связи

    Иерархия обобщенных представлений (generalization hierarchy), отображает связи «предок-потомок». В контексте реляционных БД иерархия обобщенных представлений отображает связи между супертипами сущности верхнего уровня и подтипами сущности нижнего уровня. Т.е. супертип содержит совместно используемые атрибуты, в то время как подтип содержит уникальные атрибуты.

    Рис. 1.28. Иерархия обобщенных представлений.

    Связи наследуются, т.е. подтип сущности наследует атрибуты и связи от супертипа сущности. Например, все пилоты, механики и бухгалтера имеют табельные номера, ФИО, домашний адрес и т.д., но они могут иметь атрибуты, уникальные для их специализации. Другими словами, супертип набора сущностей обычно связан с несколькими уникальными и непересекающимися подтипами набора сущностей. Такие непересекающиеся связи обозначаются буквой ‘G’.

    Супертип и подтип(ы) поддерживают связь 1:1. Например, структуру таблицы EMPLOYEE можно заменить двумя таблицами, одна из которых представляет супертип EMPLOYEE, а другая – подтип PILOT.

    Некоторые супертипы содержат пересекающиеся (overlapping) подтипы. Например, какой-то сотрудник может быть преподавателем, но в то же время и администратором.

    Пересекающиеся связи отображаются символами ‘Gs’.

    Рис. 1.29. Иерархия обобщенных представлений с пересекающимися подтипами.