Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Управление данными (пособие).pdf
Скачиваний:
280
Добавлен:
21.05.2015
Размер:
5.42 Mб
Скачать

33

преподаватель

дисциплина

Иванов

Физика

Петров

Математика

Сидоров

Информатика

Орлов

Химия

Смирнов

История

Попов

Электроника

Кузнецов

Философия

Еще о сущностях, их свойствах и связях между ними

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

Следует обратить внимание на следующую проблему, возникающую при решении задачи описания предметной области в понятиях модели сущностьсвязь, т.е. средствами ER-диаграмм. Проектировщику базы данных необходимо решить, какие элементы и характеристики предметной области должны быть представлены в модели в виде объектов-сущностей, какие в виде их свойств (атрибутов), а какие в виде связей (отношений) между ними. Дело в том, что на самом деле отличие этих категорий друг от друга является не абсолютным, а относительным. Один и тот же объект предметной области в одних ситуациях может быть представлен как самостоятельная сущность, а в других как свойство другого объекта. Например, элемент АДРЕС может выступать в качестве свойства (атрибута) сущности СТУДЕНТ, а может рассматриваться как самостоятельный объект, обладающий своим набором свойств (ГОРОД, УЛИЦА, ДОМ, …), и связанный с сущностью СТУДЕНТ связью типа ПРОЖИВАЕТ. Также относительно различие между категориями сущность и связь. Например, связь между сущностями ПРЕПОДАВАТЕЛЬ и ДИСЦИПЛИНА может при желании интерпретироваться и представляться как самостоятельная сущность (можно назвать ее ПРЕПОДАВАЕМАЯ_ДИСЦИПЛИНА), и которая, в свою очередь как сущность, может обладать каким-либо своими свойствами, например свойством УЧЕБНИКИ, представляющим литературу, используемую преподавателем по учебной дисциплине.

Принимая во внимание сказанное, уточним определение категорий

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

Под сущностью или объектом понимается [1, 2] конкретный опознаваемый предмет, элемент, единица (реальные или абстрактные), имеющие четко определенное функциональное назначение, четко

34

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

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

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

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

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

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

35

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

Определение сущности А, в виде агрегации

А{<свойство 1>, <свойство 2>, …, <свойство n>}

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

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

одному.

Так, например, отношение между сущностью СТУДЕНТ и идентифицирующими ее свойствами – сущность КОД_СТУДЕНТА и сущность ПАСПОРТ можно представить в виде

 

 

1,1 Имеет_код

1,1

 

 

Студент

 

 

 

 

Код_студента

 

 

 

 

 

 

1,1

 

 

 

 

 

 

 

 

 

 

 

Имеет_паспорт 1,1

Паспорт

Рис. 4.3. Диаграмма сущности СТУДЕНТ с идентифицирующими ее сущностями-свойствами

Именно наличие обязательной связи типа один-к-одному и делает эти свойства идентификаторами данной сущности.

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

Отношение сущности СТУДЕНТ с сущностями, выступающими в качестве ее свойств, можно представить в виде следующей диаграммы (рис. 4.4).

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

36

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

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

Студент

1,1 Имеет_код

1,1

 

Код_студента

0,1

0,1

0,1 1,1

 

Имеет_паспорт 1,1

Паспорт

Имеет_фамилию 0,n Фамилия

Учитсянакурсе

0,n Курс

Получает_стипендию

0,n

Стипендия

Рис. 4.4. Диаграмма сущности СТУДЕНТ с ее свойствами

В отношении вышесказанного можно сформулировать и обратные утверждения.

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

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

Видно, что в случае, когда одна сущность выступает в качестве свойства другой сущности, в их отношениях (связи) присутствует несимметричность, которая выражается или в несимметричности связи (один-ко-многим) или в том, что в качестве свойства-идентификатора выступает сущность простейшего типа (числовой или строковый литерал). Литералом обычно называют простейший объект-сущность, идентифицирующий сам себя, любые изменения которого превращают его в другой объект, например, ‘01561’, ‘физика’.

Более компактно диаграмму свойств сущности СТУДЕНТ (рис. 4.4) можно представить в виде

37

Студент

Фамилия

Стипендия

Курс

Код_студента Паспорт

Рис. 4.5. Представление сущности СТУДЕНТ с ее свойствами

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

По-другому обстоит дело, когда между выделенными в предметной области сущностями, простыми или сложными, (являющимися агрегацией других сущностей, выступающих в форме свойств) имеет место связь типа многие-ко-многим. Например, связь между сущностями СТУДЕНТ и ДИСЦИПЛИНА. В данном случае трудно одну из этих сущностей представлять в качестве свойства другой. Каждая из них обладает своим собственным набором свойств, при этом, студент изучает не одну, а множество дисциплин, и каждая дисциплина изучается множеством студентов. Можно рассматривать отношение СТУДЕНТЫДИСЦИПЛИНЫ как новый самостоятельный тип сущности описываемой предметной области (можно, например, назвать эту сущность ИЗУЧЕНИЕ_СТУДЕНТОМ_ДИСЦИПЛИНЫ). Причем сущность

СТУДЕНТ и сущность ДИСЦИПЛИНА выступают уже в качестве свойств этой новой сущности. Кроме этих свойств сущность

ИЗУЧЕНИЕ_СТУДЕНТОМ_ДИСЦИПЛИНЫ может иметь и другие свойства,

например, свойство ОЦЕНКА, описывающее значение оценки, полученной конкретным студентом по конкретной дисциплине (рисунок 4.6).

Студент

Изучает_дисциплину

0,n

0,n

 

Фамилия

 

 

 

Стипендия

 

 

Курс

 

 

Код_студента

 

 

Паспорт

 

 

Дисциплина

Наименование Колич_часов

Код_дисциплины

38

Обучающиеся_студенты

1,1

0,n

Студент

 

Фамилия

Стипендия

Курс

Код_студента Паспорт

Изучение_студентом_дисциплины

 

 

 

Оценка

Изучаемые_дисциплины

Студент

0,n

1,1

 

Дисциплина

Дисциплина

 

 

 

 

 

Наименование

 

 

 

 

 

Колич_часов

 

 

 

Код_дисциплины

 

 

 

 

Рис. 4.6. Введение новой сущности вместо связи многие-ко-многим

Идентификацию экземпляров сущности ИЗУЧЕНИЕ_СТУДЕНТОМ_ДИСЦИПЛИНЫ (конкретная дисциплина, изучаемая конкретным студентом) обеспечивает уже свойствами СТУДЕНТ и ДИСЦИПЛИНА. Причем ее идентификация осуществляется не каждым из этих свойств, а их парой. В данном случае мы имеем дело не с простым идентификатором сущности, а с

составным.

Аналогичным образом в модели сущность-связь могут быть представлены

иболее сложные виды соотношений между сущностями. Например, тернарные

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