Концептуальное моделирование
.pdfДомены и типы данных играют еще одну важную роль. Описывая понятие отношения, мы использовали пример с геометрическими фигурами и натуральными числами, на множествах которых были построены отношения R (F=N) и R (F>N). Сравнивая фигуру с числом, мы делали вывод о принадлежности того или иного кортежа к отношению. Однако очевидно, что сравнение изображения с числом бессмысленно. Иначе говоря, эти два домена несовместимы с точки зрения операции сравнения. Интуитивно мы выполняли другую, более корректную операцию: сравнивали число углов в геометрической фигуре с натуральным числом, т.е. мысленно подменяли домен геометрических фигур доменом чисел, отражающих количество углов в фигуре. Естественно, выполнить любую операцию на двух доменах целых чисел не составляет никакого труда.
Таким образом, типы данных и домены являются критерием совместимости атрибутов с точки зрения выполнения определенных логических операций. В ряде книг по базам данных эта функция доменов называется ролью.
Говоря о возможных значениях атрибута, необходимо упомянуть об особом, т.н. «пустом» значении – Null, разрешенном в ряде СУБД. Это значение используется для обозначения неопределенных или неизвестных данных. Значение Null входит в любой домен, основанный на любом типе данных. Для чего нужно Null ?
Предположим, что мы создали в базе данных запись для вновь принятого на работу сотрудника. Заполняя эту запись, мы не указали дату его рождения в силу отсутствия данных. Несмотря на это, соответствующее физическое поле все-таки будет чем-то заполнено, например значением по умолчанию 01.01.1900. Через некоторое время другой пользователь прочитает эту запись и обнаружит, что Дата рождения = 01.01.1900. Безусловно, человек, обладающий минимальным жизненным опытом, поймет, что это просто неизвестное значение. Однако с формальной точки зрения «дата рождения – первое января 1900 года»! Null помогает избежать подобные ситуации. Далее мы увидим, что Null несколько нарушает строгую реляционную теорию, однако тем не менее является чрезвычайно удобным средством для обозначения неизвестных и несуществующих значений.
1.5.3.Сущность, экземпляр сущности
Сточки зрения предметной области, сущность (англ. entity) – это
21
абстрактный объект, имеющий конкретные воплощения, о которых необходимо хранить информацию в базе данных. Например, людям, которые трудятся на некотором предприятии, соответствует абстрактный объект РАБОТНИК. Этот объект может быть воплощен в конкретной личности, например года рождения. Каждое такое воплощение называется экземпляром сущности.
В каждой предметной области имеется множество объектов, выступающих в качестве сущности базы данных. Эти объекты могут быть как материальными, например СТУДЕНТ, ПРЕПОДАВАТЕЛЬ, АУДИТОРИЯ, ЗДАНИЕ, так и нематериальными, например, ФАКУЛЬТЕТ, SMS-СООБЩЕНИЕ. Не только объекты, но и события или явления могут выступать в качестве сущностей, например: ПОЕЗДКА, ПРОДАЖА, ЗАСЕДАНИЕ. На первом этапе проектирования базы данных сущности определяются довольно легко – достаточно лишь словесно описать предметную область, после чего выделить основные существительные и некоторые глаголы, преобразуемые в отглагольные существительные, например ПРОДАЖА. Однако полноценный перечень сущностей невозможно составить без тщательного изучения управленческих процессов и документов.
С точки зрения теории множеств сущность – это отношение, построенное на атрибутах. Покажем это. Пусть даны атрибуты, определенные на следующих доменах:
Марка = {Chery Tiggo 1.8, ВАЗ-2105, …};
Государственный номер = {Е411СТ40, А920МН40, …}. Компания-производитель = {Chery, АвтоВАЗ, …};
Построим декартово произведение этих атрибутов (табл.3).
Таблица 3. Декартово произведение
Марка × Государственный номер × Компания-производитель
Марка |
Государственный номер |
Компания-производитель |
Chery Tiggo 1.8 |
Е411СТ40 |
Chery |
Chery Tiggo 1.8 |
Е411СТ40 |
АвтоВАЗ |
Chery Tiggo 1.8 |
А920МН40 |
Chery |
Chery Tiggo 1.8 |
А920МН40 |
АвтоВАЗ |
ВАЗ-2105 |
Е411СТ40 |
Chery |
ВАЗ-2105 |
Е411СТ40 |
АвтоВАЗ |
ВАЗ-2105 |
А920МН40 |
Chery |
ВАЗ-2105 |
А920МН40 |
АвтоВАЗ |
… |
… |
… |
22
Очевидно, что в реальности имеют место далеко не все перечисленные кортежи. Теперь выглянем в окно и посмотрим на стоящие во дворе, реально существующие автомобили (рис. 6). Исключив из декартова произведения несуществующие кортежи, получим отношение
АВТОМОБИЛЬ (табл. 4).
Таблица 4. Сущность (отношение) АВТОМОБИЛЬ
Марка |
Государственный номер |
Компания-производитель |
Chery Tiggo 1.8 |
Е411СТ40 |
Chery |
ВАЗ-2105 |
А920МН40 |
АвтоВАЗ |
Чрезвычайно важным является название сущности. В подавляющем большинстве случаев это имя существительное (или отглагольное существительное) в единственном числе. Название должно соответствовать одному экземпляру этой сущности (т.е. одной строке таблицы). Так, одна строка табл. 4 описывает один автомобиль, поэтому сущность должна называться АВТОМОБИЛЬ, а не АВТОМОБИЛИ как это может показаться на первый взгляд. Использование множественного числа в названии сущности – весьма частая ошибка, свидетельствующая о низком уровне культуры разработчика.
Необходимо отметить, что иногда, в редких случаях множественное число оправдано. Например, в табл. 5 представлена сущность, один экземпляр которой описывает сразу несколько свойств прибора. Однако такие ситуации чрезвычайно редко встречаются на практике.
Таблица 5. Сущность МЕТРОЛОГИЧЕСКИЕ СВОЙСТВА
Диапазон измерений |
Класс точности |
Погрешность |
0-100 |
2 |
1 |
0-1000 |
2 |
15 |
23
Рис. 8. Автомобили, стоящие во дворе
1.5.4. Сущность как отношение
Итак, мы сделали важный вывод – сущность есть отношение, построенное на атрибутах. Как уже упоминалось, отношение является основным понятием реляционных баз данных, занимающих доминирующее место в современных технологиях хранения данных. Рассмотрим отношение и связанные с ним термины более подробно.
С точки зрения реляционных баз данных, отношение (relation) – это таблица, содержащая данные, сгруппированные по столбцам и строкам (рис. 7). Таблица описывает одну сущность, т.е. схожие объекты или явления предметной области. Строки таблицы соответствуют конкретным реальным объектам, а столбцы – свойствам этих объектов.
24
Размерность (степень, арность)
Заголовок (схема) |
Сущность |
Атрибут (поле) |
||||
|
СТУДЕНТ |
|
|
|
|
|
|
|
|
|
|
|
|
Номер зачет- |
Фамилия имя отчество |
|
Год рож- |
Пол |
|
|
ной книжки |
|
|
дения |
|
|
|
|
|
|
|
|
|
|
1393 |
Иванов Алексей Васильевич |
1989 |
|
М |
|
|
|
|
|
|
|
|
|
1862 |
Акопов Эрнест Владимирович |
1990 |
|
М |
|
|
|
|
|
|
|
|
|
2342 |
Савченко Алексей Витальевич |
1990 |
|
М |
|
|
|
|
|
|
|
|
|
1864 |
Васильева Екатерина Федоровна |
1988 |
|
Ж |
|
|
|
|
|
|
|
|
|
2341 |
Савицкий Виктор Борисович |
1988 |
|
М |
|
|
|
|
|
|
|
|
|
Кортеж |
Тело (содержимое) |
Элемент данных |
Домен |
|||
(экземпляр |
|
(компонент) |
|
|
|
|
сущности) |
|
Мощность (кардинальность) |
||||
|
|
Рис. 9. Отношение и его элементы
Каждый столбец таблицы имеет свой заголовок, называемый атрибутом. Напомним, что атрибут отражает смысл данных, содержащихся в столбце. Совокупность этих данных называется доменом 4. Совокупность атрибутов (т.е. «шапка» таблицы, содержащая заголовки столбцов) называется заголовком (или схемой) отношения. Количество столбцов определяет размерность (или степень, или арность) отношения; в нашем случае размерность равна 4. Отношение, построенное на двух множествах, называется бинарным, на трех множествах – тернарным и т.д.
Строки таблицы, содержащие данные, называются кортежами (или экземплярами сущности). Совокупность всех кортежей составляет тело (или содержимое) отношения, а число кортежей определяет его мощность (или кардинальность). Отношение мощностью 0 называется пустым отношением. Каждый кортеж содержит несколько элементов данных (компонентов) – их число равно размерности отношения. Если размерность отношения – n, то кортеж называется n-мест-
4Строго говоря, домен – это совокупность всех возможных значений атрибута, а не только тех, которые представлены в данном столбце
25
ным или n-кортежем. В нашем случае кортеж четырехместный.
В других терминах отношение может называться набором или набором данных, кортеж превращается в запись, а атрибут – в поле. Соотношение упомянутых в данном разделе терминов приведено в табл. 6.
Таблица 6. Соотношение терминов
Таблица |
Отношение |
Набор данных |
Название |
Сущность |
Имя набора |
Заголовок («шапка») |
Заголовок, схема |
|
Строка |
Кортеж, экземпляр сущности |
Запись |
Совокупность строк |
Тело, содержимое |
Файл |
Число строк |
Мощность, кардинальность |
|
Заголовок столбца |
Атрибут |
Поле |
Столбец |
Домен |
|
Число столбцов |
Размерность, степень, арность |
|
1.5.5. Ключ сущности
Ключ – это комбинация атрибутов, однозначно идентифицирующих каждый экземпляр сущности (т.е. каждый кортеж отношения или каждую строку таблицы). Иначе говоря, значение ключа должно быть уникально для каждого экземпляра сущности. В рассмотренных ранее примерах в качестве ключа выступают:
всущности СТУДЕНТ (рис. 7) – атрибут Номер зачетной книжки 5;
всущности АВТОМОБИЛЬ (табл. 4) – атрибут Государственный но-
мер.
Ключ, состоящий из одного атрибута, называется простым, из нескольких атрибутов – составным (или сложным). Если ключ состоит из минимально возможного набора атрибутов, то такой ключ называ-
ется неизбыточным.
Ключ определяется для большинства сущностей, однако некоторые сущности могут не иметь ключа. В общем случае, в одной сущности может существовать несколько ключей. Такие ключи называются возможными ключами 6 (потенциальными ключами, ключами-канди- датами). Один из этих ключей выбирается в качестве основного и на-
5Данный ключ будет корректным, если база данных охватывает студентов только одного вуза
6Другие названия возможного ключа – потенциальный ключ или ключ-кандидат
зывается первичным ключом (primary key) 7. Любой из возможных ключей может быть выбран в качестве первичного. Остальные ключи называются альтернативными (alternate key) (рис. 8).
СТУДЕНТ |
|
|
Номер зачетной книжки |
Простой первичный ключ |
|
Фамилия имя отчество |
||
|
||
Год рождения |
|
|
Пол |
|
|
… |
|
|
ПАСПОРТ |
|
|
Серия |
Составной неизбыточный |
|
Номер |
первичный ключ |
|
Дата выдачи |
|
|
Место выдачи |
|
…
ГРАЖДАНИН
Номер паспорта Серия паспорта Избыточный ключ
Фамилия
Имя
Отчество Дата рождения
РАБОТНИК
Табельный номер ИНН организации
Серия паспорта Номер паспорта Альтернативные ключи
ИНН Номер страхового свидетельства Фамилия
…
Рис. 10. Разновидности ключей
При выборе или формировании ключа отношения следует руководствоваться несколькими простыми правилами:
7Другие названия первичного ключа – ключ отношения, ключевой атрибут, идентифицирующий атрибут (identifier)
27
длина ключа должна быть минимальной, насколько это возможно; хорошо, если ключ является информационно емким и основан на каком-либо коде или классификаторе, например шифр учебной группы А1-07 содержит информацию о специальности, номере группы в
потоке и годе набора; если ни одна из комбинаций атрибутов не образует ключа или
ключ получается слишком длинным, то оправдано использование счетчика – специального целочисленного поля с автоматически приращиваемым значением (см. п. 1.5.2).
1.5.6. Связь, экземпляр связи
Несмотря на определенную независимость, объекты предметной области не являются абсолютно изолированными друг от друга. Так,
АУДИТОРИЯ находится в ЗДАНИИ, ПРЕПОДАВАТЕЛЬ является науч-
ным руководителем СТУДЕНТА и т.д. Иначе говоря, объекты предметной области связаны, т.е. находятся в определенных отношениях друг с другом.
Связь (англ. relation, relationship) – это простая ассоциация между объектами предметной области, например: ГРУППА входит в состав ФАКУЛЬТЕТА. Конкретная ассоциация между конкретными объектами называется экземпляром связи, например: группа А-08 входит в состав
факультета кибернетики.
Выше мы сказали, что связь описывает отношения между объектами. Это высказывание полностью определяет теоретико-множест- венную природу связи: связь – это отношение, построенное на сущностях. Покажем это. Пусть даны две сущности: АВТОМОБИЛЬ и ГРАЖДАНИН. Автомобили перечислены в табл. 4 и показаны на рис. 6. Граждане показаны в табл. 6.
Таблица 7. Сущность ГРАЖДАНИН
Серия и но- |
Фамилия, имя, отчество |
Адрес |
мер паспорта |
|
|
2901 381726 |
Иванов Сидор Петрович |
пр. Ленина, 93-271 |
2601 381004 |
Марченко Валерий Леонидович |
ул. Курчатова, 43-21 |
2902 173299 |
Ухова Елена Михайловна |
ул. Белкинская, 22-117 |
Построим декартово произведение. Его элементами будут пары экземпляров сущностей, участвующих в произведении.
28
Таблица 8. Декартово произведение ГРАЖДАНИН × АВТОМОБИЛЬ 8
|
ГРАЖДАНИН |
АВТОМОБИЛЬ |
2901 |
381726, Иванов Сидор Петрович, |
Chery Tiggo 1.8, |
пр. Ленина, 93-271 |
Е411СТ40, Chery |
|
2601 |
381004, Марченко Валерий Леонидович, |
Chery Tiggo 1.8, |
ул. Курчатова, 43-21 |
Е411СТ40, Chery |
|
2902 |
173299, Ухова Елена Михайловна, |
Chery Tiggo 1.8, |
ул. Белкинская, 22-117 |
Е411СТ40, Chery |
|
2901 |
381726, Иванов Сидор Петрович, |
ВАЗ-2105, |
пр. Ленина, 93-271 |
А920МН40, АвтоВАЗ |
|
2601 |
381004, Марченко Валерий Леонидович, |
ВАЗ-2105, |
ул. Курчатова, 43-21 |
А920МН40, АвтоВАЗ |
|
2902 |
173299, Ухова Елена Михайловна, |
ВАЗ-2105, |
ул. Белкинская, 22-117 |
А920МН40, АвтоВАЗ |
Выделим отношение, основанное на построенном произведении. В каких отношениях могут состоять граждане с автомобилями? Естест-
венно, ГРАЖДАНИН может являться владельцем АВТОМОБИЛЯ. По-
интересовавшись в местной автоинспекции, выясняем, что Ухова Е.М.
является владельцем Chery Tiggo 1.8, а Марченко В.Л. является владельцем ВАЗ-2105 (табл. 8).
Таблица 9. Связь (отношение) является владельцем
Серия и номер паспорта |
Государственный номер |
2902 173299 |
Е411СТ40 |
2601 381004 |
А920МН40 |
Итак, еще раз констатируем, что связь – это отношение, построенное на одной или нескольких сущностях. Связываемые сущности называются участниками (participant) связи. Далее будет показано, что связь является очень мощным и выразительным элементом, позволяющий хранить важную информацию. Но перед этим рассмотрим еще раз соотношение рассмотренных понятий и способы их графического изображения в схемах данных.
8Для краткости достаточно было указать лишь государственный номер автомобиля и серию и номер паспорта гражданина. Однако мы приводим экземпляры сущностей полностью. В следующей таблице мы ограничимся лишь номерами.
29
1.5.7. Соотношение структурных элементов данных
Все введенные структурные элементы данных являются результатом построения абстракции. Так, сущность – это отношение, построенное на атрибутах, а связь – отношение, построенное на сущностях. В свою очередь, экземпляр сущности является отношением доменов, а экземпляр связи – отношением экземпляров сущности. И наконец очевидное утверждение: сущность и связь являются обобщениями своих экземпляров, а атрибут – обобщением своего домена, т.е. всех элементов данных (Рис. 11. ).
Является |
Экземпляр связи |
Связь |
|
Является частью |
Является частью |
Является |
Экземпляр сущности |
Сущность |
|
Является частью |
Является частью |
Является |
Элемент данных |
Атрибут |
Рис. 11. Соотношение структурных элементов данных
1.6.Концептуальная схема данных
До сих пор мы рассматривали довольно простые примеры, которые можно было иллюстрировать таблицами, картинками, теоретикомножественными конструкциями. Однако, по мере усложнения базы данных 9 необходим более удобный и универсальный инструмент. Такой инструмент был предложен в 1976 году Питером Ченом (Peter Chen) в своей знаменитой статье [7] и получил название диаграммы
«сущность-связь» (entity-relationship или ER-diagram). На этих диа-
граммах структура данных представляется на «концептуальном» уровне – с помощью атрибутов, сущностей и связей, в то время как
9Серьезная база может состоять из нескольких десятков сущностей, каждая из которых включат в себя от нескольких до нескольких десятков атрибутов и состоит в одной или нескольких связях с другими сущностями.
30
экземпляры сущностей и связей, а также домены опускаются.
На ER-диаграммах П. Чена сущности изображаются прямоугольниками, атрибуты – овалами, а связи – ромбами с названиями внутри
(Рис. 12. ).
Номер |
|
|
|
Год |
зачетной |
Фамилия |
|
Шифр |
набора |
книжки |
|
|
|
|
СТУДЕНТ N |
учится в |
1 |
ГРУППА |
|
Дата |
Пол |
|
Специальность |
|
рождения |
|
|
|
|
Рис. 12. Диаграмма «сущность-связь» в нотации П. Чена
Другая нотация для диаграмм «сущность-связь» была предложена Ричардом Баркером (Richard Barker). В этой нотации сущность и атрибуты указываются в одном прямоугольнике, а название связи – вдоль линии, соединяющей сущности (Рис. 13. ).
СТУДЕНТ |
|
ГРУППА |
Номер зачетной книжки |
учится в |
Шифр |
Фамилия |
|
Год набора |
Дата рождения |
|
Специальность |
Пол |
|
|
|
|
|
Рис. 13. Диаграмма «сущность-связь» в нотации Р. Баркера
Из этих простых примеров видно, что нотация Баркера более лаконична, однако из-за отсутствия символа, изображающего связь она не позволяет представлять определенные виды связи.
Важнейшим свойством концептуальной схемы является то, что она не привязана ни к одной конкретной СУБД. Она не зависит от типа СУБД – реляционного, иерархического, объектно-ориентированного и др.; разрешенных в той или иной СУБД типов данных; от способов, которыми в СУБД поддерживаются связи. Концептуальная схема – это информационная модель предметной области И БОЛЬШЕ НИЧЕГО.
31
Поэтому крайне важно, чтобы концептуальная схема была написана в терминах предметной области. Чтение концептуальной схемы должно стать повествовательным описанием предметной области.
Нотации Чена и Баркера имеют множество модификаций, например, широко используемая нотация IDEF1X, которые мы рассмотрим позднее, после более глубокого изучения связи.
1.6.1. Нотация П. Чена
Питер Пин-Шэн Чен (Peter Pin-Shan Chen) родился на Тайване, где в местном университете получил степень бакалавра. В 1973 г. он защитил докторскую диссертацию в Гарварде, после чего работал в американских университетах. С 1983 г. и по настоящее время он возглавляет исследовательскую лабораторию в университете штата Луизиана. Его основополагающая статья вошла в число 35-ти наиболее часто цитируемых статей по компьютерным наукам.
В это статье [7], посвященной модели «сущность-связь», П. Чен вводит простую нотацию, которую можно проиллюстрировать примером на 0. В этой нотации изображаются только сущности и связи с указанием их мощности, но отсутствуют атрибуты. Кроме того, вводится понятие зависимой или слабой сущности, обозначаемой двойным прямоугольником (сущность ЛИЧНОЕ ДЕЛО). Особенностью этой сущности является то, что в состав ее ключа входит первичный ключ основной сущности. Иначе говоря, связь имеет является идентифицирующей.
|
N |
N |
|
РАБОТНИК |
|
|
1 |
|
работает в |
имеет |
выполняет |
1 |
|
M |
ПОДРАЗДЕЛЕНИЕ |
ЛИЧНОЕ ДЕЛО |
ПРОЕКТ |
32
Рис. 14. Диаграмма «сущность-связь» в первоначальной нотации П. Чена
Со временем данная нотация претерпела ряд изменений и дополнений. Так, в статье [9], автор предлагает дополнить данное описание диаграммой атрибутов, на которой показываются атрибуты и их домены. Домены при этом указываются в кружках, а атрибуты изображаются в виде стрелок с именами (Рис. 15. ). В более поздних работах П. Чен предлагает уточнять, может ли значение атрибута повторяться у разных экземпляров сущности и может ли один атрибут иметь несколько значений. Эта информация представляется с помощью кардинальных чисел, показанных на Рис. 15. . Здесь работник имеет одну фамилию, однако такая фамилия может принадлежать нескольким работникам; работник имеет один табельный номер, который никогда не повторяется у разных работников; работник может иметь несколько служебных телефонов, в то время как один телефон может принадлежать нескольким работникам. Очевидно, что атрибут, связывающий домен с сущностью отношением 1:1, является ключевым.
|
|
|
|
|
|
|
РАБОТНИК |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
N |
|
N |
|
M |
N |
1 |
|
||
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
Служебный Домашний |
Табельный |
|
||
|
Возраст |
|
|
|
Фамилия |
|
|||||
|
|
|
|
|
|
|
телефон |
телефон |
номер |
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
||
1 |
|
|
|
1 |
|
N |
1 |
1 |
|
||
Годы |
|
Фамилии |
|
Номера |
Номера |
||||||
|
|
(строки |
|
(целые |
|||||||
(целые, |
|
|
|
телефо- |
|||||||
|
|
симво- |
|
>0, пяти- |
|||||||
>16) |
|
|
|
нов |
|
|
|||||
|
|
|
лов) |
|
|
|
значные) |
||||
|
|
|
|
|
|
|
|
|
Рис. 15. Представление атрибутов и доменов
Затем представление атрибутов и доменов упрощается и объединяется в один элемент – круг или овал (см. Рис. 12. ). Среди модификаций подхода П. Чена [10] встречаются нотации, допускающие существование атрибутов у связи (Рис. 16. ). Такие связи, как правило, преобразуются в ассоциированные сущности, которые будут рассмотрены ниже.
33
|
|
|
|
|
N |
|
|
M |
|
|
|||
|
ТОВАР |
|
|
|
купил |
|
ПОКУПАТЕЛЬ |
|
|||||
|
|
|
|
|
|
|
|
||||||
1 |
N |
1 |
N |
N |
|
||||||||
1 |
|
|
1 |
|
|
|
1 |
1 |
1 |
|
|||
Наиме- |
|
Цена |
Номер |
Дата |
Фами- |
|
|||||||
нование |
|
|
|
|
|
|
|
чека |
|
|
лия |
|
|
|
|
|
|
Рис. 16. |
Наделение связи атрибутами |
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
СУБПОДРЯДЧИК |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
P |
|
|
|
|
|
|
|
|
|
N |
выполняет |
|
M |
|
|
|||
РАБОТНИК |
|
|
ПРОЕКТ |
|
|||||||||
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Рис. 17. Представление n-арных связей
В статье [9] приводится также пример n-арной связи (Рис. 17. ). Возможность представления таких связей является одной из сильных сторон нотации П. Чена. Развитием этой возможности является введение в работе [6] специального символа – ассоциированной сущности 10. Для иллюстрации этой разновидности сущности приведем следующий пример. Покупатель покупает в магазине товар. Это высказывание описывается простой схемой, представленной на Рис. 18. ,а. В ряде случаев, наряду с фактом покупки, необходимо фиксировать информацию о продавце, оформившем сделку. Это может потребоваться, если продавец, например, получает комиссионное вознаграждение за проданный товар. В результате добавления сущности ПРОДАВЕЦ, бинарная связь купил преобразуется в тернарную связь покупка (Рис. 18. ,б). Учитывая, что покупка сама по себе может рассматриваться как самостоятельное событие (объект), она преобразуется в сущность с которой связывается сущность ПРОДАВЕЦ. Для изображения таких
10 П. Чен определяет этот символ как «сущность, образованная из связи».
34
сущностей вводится специальный символ, сочетающий геометрические образы обоих структурных элементов – сущности и связи (Рис. 18. ,в).
а) |
|
N |
|
M |
|
ТОВАР |
купил |
ПОКУПАТЕЛЬ |
|||
|
|
N |
|
M |
|
|
|
|
|
||
б) |
ТОВАР |
покупка |
ПОКУПАТЕЛЬ |
||
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ПРОДАВЕЦ |
|
|
|
|
|
|
|
|
в) |
N |
ПОКУПКА |
M |
ТОВАР |
ПОКУПАТЕЛЬ |
||
|
|
N |
|
|
|
оформил |
|
1
ПРОДАВЕЦ
Рис. 18. Преобразование связи в сущность
За 30 лет существования нотация П. Чена претерпела большое число модификаций и дополнений, часть из которых является довольно спорными. В Таблица 10. представлены наиболее часто используемые устоявшиеся символы для диаграмм «сущность-связь» 11.
Таблица 10. Нотация П. Чена для диаграмм «сущность-связь»
Символ |
Назначение |
Сущность (независимая сущность), пред- ИМЯ ставляющая объект предметной области
(имя –существительное)
11 Напомним, что нотация П. Чена предусматривает еще один вид диаграмм - диаграммы атрибутов
35
|
Ассоциированная сущность – сущность, об- |
|
ИМЯ |
разованная из связи и зависящая от двух или |
|
|
более других сущностей (имя – |
|
|
существительное или отглагольное сущест- |
|
|
вительное) |
|
ИМЯ |
Зависимая сущность – сущность, являющая- |
|
ся зависимой в идентифицирующей связи |
||
|
|
Имя |
|
Атрибут (простой атрибут) |
|
|
|
|
|
Имя |
|
Атрибут, являющийся или входящий в со- |
|
|
став первичного ключа |
|
|
|
|
|
|
|
|
|
|
|
|
Многозначный атрибут, содержащий одно- |
|
Имя |
|
временно несколько значений, например, |
|
|
|
телефоны |
Y |
имя |
Y |
Связь, представляющая отношения между |
|
|
одним (унарная), двумя (бинарная) или n (n- |
|
|
|
|
арная) объектами предметной области (имя – |
X,Y |
имя |
X,Y |
глагол или отглагольное существительное; |
|
|
X {0,1} – нижнее кардинальное число, |
|
|
|
|
Y {1,N} – верхнее кардинальное число) |
|
имя |
|
Идентифицирующая связь |
1.6.2. Нотация Р. Баркера
Ричард Баркер родился в 1946 г. в Шеффилде (Англия), закончил Эдинбургский университет. Свою нотацию для изображения структур данных он предложил в 1986 г., работая в собственной консалтинговой фирме в Англии. Позднее эта фирма присоединилась к корпорации Oracle. В 1990 г. Р. Баркер издает свою первую книгу [11], за которой последовали еще несколько, более подробно раскрывающих самые различные применения CASE-технологии. Его нотация диаграмм «сущность-связь» до сих пор является основной нотацией для разработки баз данных в СУБД Oracle. Для создания диаграмм «сущ- ность-связь» в линейке инструментальных средств Oracle предусмотрен специальный пакет Designer.
36
Сущность в нотации Р. Баркера изображается в виде блока – прямоугольника со скругленными углами, внутри которого указывается имя сущности и атрибуты (Рис. 19. ) [12]. Наряду с основным именем, для сущности могут использоваться синонимы, отделяемые от основного имени наклонной чертой. Ниже имени в столбик перечисляются атрибуты. Название каждого атрибута сопровождается специальным символом:
буквой О (optional, необязательный) – для атрибутов, значения которых могут отсутствовать (т.е. быть равными NULL);
* – для атрибутов, значения которых обязательно должны быть указаны;
# – для атрибутов, входящих в состав первичного ключа.
В нотации Р. Баркера разрешены только бинарные и унарные связи, показываемые линией. Каждая связь имеет два названия, отражающие роли участвующих в ней сущностей. Так, в показанном при-
мере СТУДЕНТ изучает ДИСЦИПЛИНУ, а ДИСЦИПЛИНА преподается для СТУДЕНТА. Мощность связи изображается с помощью символов на конце линии:
«–––» – одинарная прямая линия означает, что связь с этой стороны имеет мощность «один»;
«» – символ «воронья лапка» означает мощность «много» (ли-
ния связи как бы разветвляется в месте соприкосновения с блоком) (прим.: рядом с этим символом разрешается указывать верхнее кардинальное число, например ≤15).
Полнота связи указывается начертанием линии: сплошная линия означает, что связь с противоположной стороны является полной, а пунктирная линия обозначает неполную связь. Все варианты изображения связей показаны в 0.
В нотации Р. Баркера имеется одна интересная возможность, напоминающая категориальную связь – так называемая «исключающая связь». Эта связь используется, когда необходимо реализовать отношение «либо …, либо …» между основной сущностью и сущностямикатегориями. В примере на Рис. 20. каждый счет в банке открывается только одному клиенту – либо физическому, либо юридическому лицу. При этом, человек или организации могут иметь несколько, а могут вообще не иметь счетов в этом банке. Категориальная связь является частным случаем исключающей связи при условии, что отношения имеют мощность 1:1 и являются полными со стороны сущностей-
37
категорий. Однако для изображения отношения категорий в нотации Р. Баркера предусмотрена другая возможность – вложение блоков друг в друга (Рис. 21. ). При этом, сущности-категории наследуют атрибуты обобщенной сущности, и каждый из трех сущностей может быть участником связи.
СТУДЕНТ |
изучает |
|
ДИСЦИПЛИНА / |
||
|
|
|
ПРЕДМЕТ |
||
# Номер студбилета |
преподается для |
|
|||
|
|
|
|||
* |
Фамилия |
|
|
# |
Шифр дисциплины |
* |
Имя |
|
|
* |
Название |
* |
Отчество |
|
|
* |
Трудоемкость |
О Пол |
|
|
* |
Отчетность |
|
О Дата рождения |
|
|
|
|
|
|
Рис. 19. Диаграмма «сущность-связь» в нотации Р. Баркера |
||||
|
|
|
ФИЗИЧЕСКОЕ ЛИЦО |
||
СЧЕТ |
открыт для |
# Номер паспорта |
|||
|
* |
Фамилия |
|||
# Номер счета |
имеет |
|
… |
|
|
|
|
|
|||
|
|
|
|
||
* |
Вид счета |
имеет |
ЮРИДИЧЕСКОЕ ЛИЦО |
||
* |
Дата открытия |
||||
|
… |
открыт для |
# ИНН |
||
|
|
||||
|
|
|
* |
Название |
|
|
|
|
|
… |
|
Рис. 20. Исключающая связь
38
КЛИЕНТ
# Идентификатор клиента О Дата первого обращения в банк
* Участие в бонусной программе ФИЗИЧЕСКОЕ ЛИЦО
# Номер паспорта * Фамилия
…
ЮРИДИЧЕСКОЕ ЛИЦО
# ИНН * Название
…
Рис. 21. Категориальное отношение
1.6.3. Нотация Бэчмана
Чарльз Бэчмэн (Charles W. Bachman) –
один из выдающихся исследователей и практиков в области компьютерных наук, удостоенный в 1973 г. премии Тьюринга за выдающийся вклад в развитие баз данных. Он родился в 1924 г. в США, окончил университет штата Пенсильвания, после чего работал в химической компании и в Дженерал Электрик. Затем он основал собственную фирму, которая занималась разработкой СУБД и линейки CASE-средств.
Для изображения сущности в нотации Ч. Бэчмэна используется прямоугольник, внутри которого перечисляются имя сущности и атрибуты. Для каждого атрибута указывается его роль:
PK (primary key) – первичный ключ; FK (foreign key) – внешний ключ;
PFK (primary and foreign key) – внешний ключ в составе первично-
39
го;
I (inherited) – атрибут, унаследованный от обобщенной сущности. Необходимо отметить, что в диаграммах «сущность-связь» в данной нотации показываются внешние ключи. При этом, названия наследуемых атрибутов и внешних ключей являются составными и со-
держат имя сущности, из которой они мигрировали.
В нотации Ч. Бэчмэна разрешены только бинарные и унарные связи, изображаемые линией с двумя названиями. Мощность связи указывается с помощью стрелки, полнота – с помощью пустого или закрашенного кружочка, а идентифицирующая связь – с помощью специальной метки, расположенной около зависимой сущности (Таблица 11. ). В показанном на Рис. 22. примере шифры учебных групп на очном, заочном и вечернем (очно-заочном) отделениях могут совпадать. Во избежание неоднозначности сущность ГРУППА сделана зависимой и в состав ее первичного ключа введен Код отделения.
ГРУППА
PK, Шифр группы PFK, ОТДЕЛЕНИЕ. Код
Год набора
…
обучает- |
состоит из |
|
ся в |
|
|
|
учится в |
|
имеет набор |
|
|
|
|
|
ОТДЕЛЕНИЕ |
|
|
PK, Код |
|
|
Форма обучения |
|
|
|
|
|
СТУДЕНТ
PK, Номер студбилета FK, ГРУППА.Шифр группы FK, ОТДЕЛЕНИЕ. Код
Фамилия
…
СТУДЕНТ ЗАОЧНОГО ОТДЕЛЕНИЯ
IPK, СТУДЕНТ.Номер студбилета IFK, ГРУППА.Шифр группы
IFK, ОТДЕЛЕНИЕ. Код
I СТУДЕНТ.Фамилия
I…
Место работы Второе образование
СТУДЕНТ ВЕЧЕРНЕГО ОТДЕЛЕНИЯ
…
Рис. 22. Диаграмма «сущность-связь» в нотации Ч. Бэчмэна
40