Уровень 2. Структура информации

Здесь рассматривается представление концептуальных объектов – сущностей, связей и значений, которые существовали в нашем воображении.

Представление значений не требует специального рассмотрения, так как существует непосредственное их представление, например, значения чисел – 12, 45, …; значения строк – «красный», «зеленый», …

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

Представление сущностей

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

Для идентификации сущности в множестве сущностей выделяется ключ сущности – атрибут или группа атрибутов, такая, что отображение множества сущностей в одно или группу множеств значений является взаимно однозначным. Это означает, что ключ сущности однозначно определяет сущность. Например, в множестве сущностей СОТРУДНИК в качестве ключа сущности может быть выбран атрибут Номер сотрудника.

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

Если существует несколько ключей, обычно определяют первичный ключ сущности (primary key – PK) и выбирают для него семантически значимый ключ.

Таким образом, представление сущности может быть организовано следующим образом (Рис. 3.3):

Рис. 3.3. Представление сущности

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

Таблица 3.1. Представление сущности

  PK          
Атрибуты Номер сотрудника Полное имя Возраст Стаж работы
Домены НОМЕР СОТРУДНИКА ФАМИЛИЯ ИМЯ ОТЧЕСТВО КОЛИЧЕСТВО ЛЕТ КОЛИЧЕСТВО ЛЕТ
Объект 1   Иванов Иван Иванович    
Объект 2
                 

Представление связи

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

Пример. Рассмотрим множество сущностей СОТРУДНИК с первичным ключом Номер сотрудника и множество сущностей ПРОЕКТ с первичным ключом Номер проекта. Оба первичных ключа могут быть определены на одном и том же домене НОМЕР. Рассмотрим связь ИСПОЛНИТЕЛЬ ПРОЕКТА. Вовлеченные в эту связь сущности представляются своими первичными ключами:

Номер сотрудника, Номер проекта

Они и образуют первичный ключ связи ИСПОЛНИТЕЛЬ ПРОЕКТА. Важно отметить, что эти атрибуты – первичные ключи вовлеченных в связь сущностей, а не собственные атрибуты связи.

В табличном виде связи могут быть представлены следующим образом (Таблица 3.2):

Таблица 3.2. Представление связи

  Первичный ключ связи Атрибут связи
Вовлеченные в связь множества сущностей СОТРУДНИК ПРОЕКТ  
Роль ИСПОЛНИТЕЛЬ ПРОЕКТ  
Атрибуты сущностей Номер сотрудника Номер проекта Доля времени
Множества значений НОМЕР НОМЕР ПРОЦЕНТ
Экземпляр связи 1      
Экземпляр связи 2

Некоторые особенности представления сущности и связи

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

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

Соответственно, можно определить множества сущностей СОТРУДНИК и ЧЛЕН БРИГАДЫ и связь между этими сущностями НАЗНАЧЕНИЕ (сотрудник назначается членом бригады).

Для уникальной идентификации сотрудника в качестве первичного ключа можно использовать атрибут Номер сотрудника. Но этот атрибут не может идентифицировать данного сотрудника как члена некоторой конкретной бригады; необходимо еще указать, членом какой бригады является сотрудник (т.е. указать номер руководителя бригады). Следовательно, первичный ключ множества сущностей ЧЛЕН БРИГАДЫ включает номер сотрудника и номер руководителя бригады, т.е. учитывается связь НАЗНАЧЕНИЕ.

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

• регулярное отношение сущности, если для идентификации сущностей используются только собственные атрибуты;

• слабое отношение сущности, если для идентификации сущностей используются связи.

Соответственно, связи, в которые вовлечены слабые отношения сущностей, являются слабым отношением связи. Из этого следует, что любая связь между множеством сущностей ЧЛЕН БРИГАДЫ и любыми другими множествами сущностей (в том числе и множеством сущностей СОТРУДНИК) представляет собой слабое отношение связи.

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

Язык описания данных: диаграмма сущность-связь

Поскольку модель данных «сущность – связь» используется, прежде всего, для проектирования баз данных, в качестве языка описания данных был предложен графический язык диаграмм. П.Чен предложил следующие графические элементы для представления модели сущность-связь (Рис. 3.4).

Рис. 3.4. Графические элементы для диаграммы сущность – связь

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

Общая характеристика связей

1. Множество связей может быть определено более чем на двух множествах сущностей, например, на трех – тернарная связь (Рис. 3.5):

Здесь связь ПОСТАВКА определяет, какой поставщик поставляет определенную деталь для определенного проекта.

Рис. 3.5. Связь, определенная на трех множествах сущностей

2. Множество связей может быть определено на одном множестве сущностей (Рис. 3.6):

Рис. 3.6. Связь, определенная на одном и том же множестве сущностей

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

3. Может существовать несколько множеств связей, определенных на одних и тех же множествах сущностей (Рис. 3.7):

Рис. 3.7. Две связи, определенные на одних и тех же множествах сущностей

4. В диаграмме можно различать связи типа 1:n и n:n. Необходимый символ (1 или N) указывается у соответствующего множества сущностей, вовлеченного в связь (Рис. 3.8).

Рис. 3.8. Указание типа связи

5. В диаграмме можно указать слабое отношение сущности (Рис. 3.9):

Рис. 3.9. Слабое отношение сущности

Пример диаграммы сущность-связь (Рис. 3.10):

Рис. 3.10. Пример диаграммы сущность – связь


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: