Определение
Уровни представления информации
П. Чен, разрабатывая модель данных «сущность-связь», предложил следующие четыре уровня представления информации:
1. Информация, относящаяся к объектам и связям, как она существует в нашем представлении.
2. Структура информации – организация информации, в которой объекты и связи представлены данными.
3. Структура данных, независимая от способа доступа (т.е. не связанная со схемами поиска, индексации и т.п.)
4. Структура данных, зависимая от способа доступа.
Модель данных «сущность – связь» поддерживает первый и второй уровни абстракции. Она предназначена, прежде всего, для проектирования баз данных; нет ни одной СУБД, которая была бы основана на этой модели данных. В связи с этим, в ней рассматриваются только два основных компонента из трех: определение структуры и ограничения целостности; набор операций для этой модели данных не рассматривается.
Прежде всего, рассмотрим структурные компоненты модели данных.
1. Уровень 1 – информация о сущностях и связях
Информация, относящаяся к объектам и связям, как она существует в нашем представлении.
В соответствии с названием, основными структурными компонентами модели данных являются сущности (entity) и связи (relationship).
Сущность – нечто, принадлежащее объективной реальности, облаченное в материальную форму или форму идеи; любой объект, который может быть идентифицирован некоторым способом, отличающим его от других объектов, и информацию о котором надо хранить в базе данных.
Примеры сущностей: ЛИЧНОСТЬ, КОМПАНИЯ, СДЕЛКА
Связь – некоторая ассоциация, устанавливаемая между двумя или более сущностями.
Примеры связей:
ОТЕЦ-СЫН – связь между сущностями ЛИЧНОСТЬ, в связь вовлекаются экземпляры одной и той же сущности;
СОТРУДНИК ПРЕДПРИЯТИЯ – связь между сущностями ЛИЧНОСТЬ и ПРЕДПРИЯТИЕ.
База данных предприятия содержит информацию о сущностях и связях, которые представляют интерес для этого предприятия.
Сущности: тип сущности и множество сущностей
Будем обозначать сущности, которые существуют в нашем воображении, через e. В соответствии с определением сущности, они обладают некоторыми свойствами, позволяющими их идентифицировать. Следовательно, каждая сущность относится к некоторому отличному от других множеству сущностей. Для каждого множества сущностей определяются некоторые свойства, общие для всех сущностей из множества. Если некоторая сущность относится к определенному множеству сущностей, то эта сущность обладает свойствами, общими для всех сущностей этого множества.
Применение к сущностям приемов построения абстракции позволяет получить тип сущности – некоторое обобщенное представление однородных сущностей. Например, имеем некоторое множество сущностей: {МОСКВА, ОРЕЛ, КУРСК, …}. Обобщая сущности из этого множества, получаем тип сущности: ГОРОД. Экземпляр сущности – конкретный элемент из множества, например, КУРСК. Таким образом, тип сущности – это интенсионал, а конкретное множество сущностей – экстенсионал типа сущности.
С каждым множеством сущностей связывается предикат, позволяющий проверить, принадлежит ли сущность данному множеству. Следовательно, предикат входит в число свойств, общих для множества сущностей. Например, для множества сущностей СОТРУДНИК можно определить следующий предикат: "человек, работающий на предприятии". Задавая предикат, можно включать в него дополнительные условия, например: "возраст сотрудника в пределах …", или "занимает определенную должность", или что-нибудь еще.
Будем обозначать множество сущностей через E.
Заметим, что множества сущностей не обязаны быть непересекающимися. Например, сущность, принадлежащая множеству сущностей СТУДЕНТ, принадлежит также и множеству сущностей ЛИЧНОСТЬ. В этом случае множество сущностей СТУДЕНТ является подмножеством множества сущностей ЛИЧНОСТЬ.
Связи, роли и множество связей
Связь – это ассоциация, устанавливаемая между сущностями. Для связи также определяются:
• множество связей,
• тип связи,
• экземпляр связи.
Множество связей – это математическое отношение между n сущностями, каждая из которых относится к некоторому множеству сущностей.
Обозначим множество связей через R:
R = {<e1, e2,..., en> | e1 ∈ E1, e2 ∈ E2,..., en ∈ En}.
Здесь каждый кортеж отношения, <e1, e2,..., en>, является связью (relationship).
В этом определении множества сущностей не обязаны быть различными. Например, БРАК – это связь между двумя сущностями из одного и того же множества сущностей ЛИЧНОСТЬ.
Тип связи – определяется как ассоциация типов сущностей. Например, ассоциация типов сущностей ЛИЧНОСТЬ, ЛИЧНОСТЬ определяет тип связи БРАК; ассоциация типов сущностей ПРОЕКТ и СОТРУДНИК определяет тип связи ИСПОЛНИТЕЛЬ ПРОЕКТА.
Роль сущности в связи – это функция, которую сущность выполняет в данной связи. Например, в связи БРАК "муж" и "жена" – это роли. В связи ИСПОЛНИТЕЛЬ ПРОЕКТА ролями могут быть "проект" и "исполнитель". Обозначим роли сущностей в связи через r. Упорядочение сущностей в определении связи может отсутствовать, если в связи явно указаны роли сущностей:
<e1, e2,..., en> – в определении связи сущности упорядочены
<r1/e1, r2/e2,..., rn/en> – в определении связи сущности не упорядочены; явно указаны роли сущностей.
Рассмотрим примеры.
Для типа связи БРАК: или <e1, e2>, где точно задано, что e1 играет роль мужа, а e2 – жены, или же <муж/e1, жена/e2>, и тогда порядок перечисления типов сущностей в определении типа связи не важен. Для типа связи ИСПОЛНИТЕЛЬ ПРОЕКТА: или <e1, e2>, где точно задано, что e1 – это проект, над которым работает сотрудник, а e2 – сотрудник, исполняющий проект, или же <проект/e1, исполнитель/e2>, и тогда порядок перечисления типов сущностей в определении типа связи не важен.
Атрибут, значение и множество значений
В базе данных организации необходимо хранить информацию о сущностях и связях, интересующую данную организацию. Эту информацию получают путем наблюдения или измерения и выражают множеством пар "атрибут-значение".
Примеры значений: 3, " красный ", " Иван ", " Иванов ". Значения классифицируются и объединяются в некоторые множества значений, например:
КОЛИЧЕСТВО = {3, 28, …}
ЦВЕТ = {красный, зеленый, …}
ФАМИЛИЯ = {Иванов, Петров, Сидоров, …}
Будем обозначать значение через v, а множество значений – через V.
С каждым множеством значений связывается предикат,позволяющий проверить, принадлежит ли значение этому множеству.