Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Моделирование бизнес-процессов / Моделирование бизнес-процессов / ER-диаграмы / Проектирование реляционных БД с помощью ER-диаграмм_ver1.6.doc
Скачиваний:
189
Добавлен:
30.04.2013
Размер:
7.8 Mб
Скачать

Глава 10: Краткий обзор модели Баркера

Существует много моделей ER-диаграмм. Одна из таких моделей была представлена Ричардом Баркером в 1990 г. Модель Баркера была позаимствована и незначительно изменена корпорацией Оракл. В этой главе мы представим основные правила, используемые в модели Баркера применительно к нашей методологииERпроектирования. Здесь же мы определим основные понятия моделиБаркера и модели Оракл. Наша комбинированная модель Баркера/Оракл не является примером новой улучшенной модели, а лишь вносит незначительные изменения в существующие модели.

Почему нас интересует модель Баркера/Оракл, и почему мы представляем ее этой книге? Во первых, модель Баркера/Оракл довольно распространенная; она часто используется в литературе корпорации «Оракл». Проблема модели Баркера/Оракл заключается в том,что необходимо полное понимание тории реляционных баз данных, для понимания принципов ее работы.Мы представляем здесь модель Баркера/Оракл по причине того, что она развивается по другому, нежели модель Чена. Модель Чена уделяет основное внимание моделированию данных, в то время как модель Баркера/Оракл адаптирует данные в реляционной БД в процессе проектирования. Таким образом, методология ER-проектирования в модели Баркера будет отличаться от рассмотренной нами модели Чена. Более того, в модели Баркера/Оракл не используется ряд обозначений, который используется в модели Чена. Например, модель Баркера/Оракл не использует понятие составных или многозначных атрибутов, слабых сущностей, но поддерживает эти понятия непосредственно в реляционной модели.

Первая ER-диаграмма сущности – сущность и

ее атрибуты.

Сперва начнем с разработки ER-диаграммы модели Баркера/Оракл для одной сущности. Вспомним наш пример, встречавшийся уже в этой книге, когда мы выбрали первичную сущность СТУДЕНТ из базы данных о студентах. «Студент» - это нечто о чём мы хотим хранить информацию (определение сущности). Мы пока не говорим о каких-либо других сущностях.

Какие атрибуты характеризуют каждого представителя сущности СТУДЕНТ? У студента есть имя, адрес, школа, телефонный номер и специализация. Мы выделили пять атрибутов сущности СТУДЕНТ и присвоили каждому атрибуту обобщенное название: имя, адрес, институт, телефон и специализация.

Начнём наше знакомство с моделью Баркера/Оракл с рисунка 10.1. Модель Баркера/Оракл использует скругленные прямоугольники для изображения сущностей (имя сущности пишется заглавными буквами). Имя сущности отделяется от атрибутов линией (имена атрибутов пишутся строчными буквами). В модели Баркера/Оракл атрибуты не изображаются в овалах, как это происходит в модели Чена, а располагаются списком ниже разделительной черты, как показано на рисунке 10.1.

Рисунок 10.1: Модель Баркера/Оракл: ER-диаграмма с одной сущностью и пятью атрибутами.

На рисунке 10.1 изображена ER- диаграмму для одной сущности СТУДЕНТ и следующими атрибутами: имя, адрес, школа, телефон и специализация. В модели Оракл ER диаграммы Баркера/Оракл так же указывается тип данных – смотри рис. 10.1А.

Рисунок 10.1А: Модель Баркера/Оракл: ER диаграмма с одной сущностью и с пятью атрибутами

(с указанием типа данных).

Атрибуты в модели Баркера/Оракл

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

Рисунок 10.2: Модель Баркера/Оракл: ER-диаграмма с составным атрибутом – имя.

Необязательные и обязательные атрибуты.

При разработке БД необходимо знать, будет ли сущность содержать атрибуты с неизвестными величинами. Например, в сущности СТУДЕНТ, изображенной на рисунке 10.1, атрибут адрес необязательный. То есть, если записываются данные о студенте в анкету, мы можем потребовать, чтобы человек вписал в анкету своё имя и номер, и позволить ему не вписывать свой адрес (то есть оставить его неизвестным). Тогда говорится, что имя и номер студента являются обязательными атрибутами, а адрес необязательным. Отсутствующие значения называются «нулями». Следовательно, обязательный атрибут будет называется «не нуль». Не нуль означает, что не возможна ситуация, в которой значение атрибута будет неизвестным. В модели Баркера/Оракл мы показываем необязательный атрибут без приписки «не нуль» и обязательный атрибут с добавлением фразы «не нуль» к характеристикам (как показано на рисунке 10.3). Обязательный атрибут должен быть ключом, но это не обязательно. Обязательные и необязательные атрибуты обычно не описываются подробно в модели Чена.

В модели Баркера первый ключ имеет символ «#» напротив названия атрибута (как показано на рисунке 10.3). Первичный ключ должен быть обязательным атрибутом в реляционной БД, но все обязательные атрибуты не будут являться уникальными идентификаторами.

Рисунок 10.3: Модель Баркера/Оракл: ER-диаграмма с первичным ключом или уникальным идентификатором и необязательными и обязательными атрибутами.

Контрольные вопросы 10.1.

  1. Как обязательные атрибуты (в модели Баркера/Оракл) могут быть представлены в модели Чена. Поясните на примере.

  2. Как необязательные атрибуты (в модели Баркера/Оракл) могут быть представлены в модели Чена. Поясните на примере.

  3. Как изображаются на диаграмме первичные ключи в модели Баркера/Оракл?

Связи в модели Баркера/Оракл

В модели Баркера/Оракл связь между двумя сущностями изображается линией, связывающих эти две сущности. Здесь отсутствует ромб, определяющий связь, как мы видели в модели Чена. Глагольная форма связи на обоих концах линии связи располагается рядом с соответствующей сущностью, как изображено на рисунке 10.4. В данной модели в направлении от сущности СТУДЕНТ к сущности ИНСТИТУТ, можно сказать упрощенно:

Студенты посещают институты.

И в другом направлении от сущности ШКОЛА к сущности СТУДЕНТ мы скажем:

Институты посещаются студентами.

Рисунок 10.4: Модель Баркера/Оракл: Связь сущности СТУДЕНТ с сущностью ШКОЛА.

Структурные ограничения в модели Баркера/Оракл

В модели Баркера/Оракл коэффициент связи 1 изображается одинарной линией ведущей к сущности. На рисунке 10.5 одинарная линия соединяет две сущности, поэтому между сущностями СТУДЕНТ и АВТОМОБИЛЬ имеется связь 1:1. Это означает, что один студент связан с одним и только с одним автомобилем, и один автомобиль связан с одним и только с одним студентом.

Рисунок 10.5: Представление связи в модели Баркера/Оракл.

Пунктирная линия, соединяющая сущности, означает необязательное (частичное) участие сущностей в связи. На рисунке 10.5 обе сущности (как СТУДЕНТ, так и АВТОМОБИЛЬ) имеют частичное участие в связи.

Расширим грамматику для описания связей. В направлении от сущности СТУДЕНТ к сущности АВТОМОБИЛЬ получаем:

Студент может управлять одним и только одним автомобилем.

В обратном направлении от сущности АВТОМОБИЛЬ к сущности СТУДЕНТ:

Автомобиль может управляться одним и только одним студентом.

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

Коэффициент связи M (много) показано в виде разветвления линии, ведущей к соответствующей сущности. Рисунок 10.6 иллюстрирует пример связи 1:М между сущностями ОБЩЕЖИТИЕ и СТУДЕНТ.

Точное грамматическое описание рисунка 10.6 будет следующим:

Комната может быть занята ни одним или более студентом,

или

Студент может занимать одну и только одну комнату.

Рисунок 10.6:Представление связи 1:М в модели Баркера/Оракл.

Контрольные вопросы 10.2.

  1. Как изображается частичное участие в связи в модели Баркера/Оракл?

  2. Как изображается коэффициент связи «многие» в модели Баркера/Оракл?

  3. Изобразите следующие ситуации в представлении модели Баркера/Оракл:

а. Кинотеатр должен показывать много фильмов, а фильмы должны оказываться в

кинотеатре.

б. Кинотеатр может показывать много фильмов, а фильмы могут быть показаны в одном кинотеатре.

Понятие слабой сущности в модели Баркера/Оракл

В модели Баркера/Оракл отсутствует понятие «слабой сущности», и в литературе Оракл нет примера представления слабой сущности. Мы расширим понятие уникального идентификатора в связи, чтобы включить слабую сущность. В модели Баркера/Оракл уникальный идентификатор в связи может быть изображен чертой, пересекающей линию связи, как показано на рисунке 10.7. Так, на рисунке 10.7 для уникальной идентификации подчиненного необходимо знать номер социальной страховки служащего. Это означает, что сущность ПОДЧИНЕННЫЙ не может существовать самостоятельно, то есть она является слабой сущностью. Поэтому здесь слабые сущности могут быть преобразованы

Рисунок 10.7: Уникальный идентификатор, показанный в виде черты, пересекающей

линию (линии) связи.

Понятие многозначных атрибутов в модели

Баркера/Оракл

Также в модели Баркера/Оракл нет понятия многозначного атрибута, тем не менее, пример многозначного атрибута изображен на рисунке 10.8.

На рисунке 10.8 показано, что студенты могли учиться в разных школах. В модели Баркера/Оракл внешний ключ указывается в соответствующей сущности, тогда как в модели Чена, внешние ключи нельзя было обнаружить до формирования базы данных. Мы обозначаем внешний ключ звёздочкой (*) напротив соответствующего атрибута (смотри рисунок 10.8). Примером базы данных, изображенной на рисунке 10.8, являются следующие таблицы:

Рисунок 10.8: Уникальный идентификатор, показанный в виде черты, пересекающей

линию (линии) связи (звёздочкой * отмечен внешний ключ)

Как видно, многозначный атрибут был преобразован в таблицу в соответствии с тем, как он был представлен в Баркера/Оракл. В модели Чена многозначный атрибут сохраняется на диаграммы, а затем преобразуется с помощью правил преобразования М1с.

Контрольные вопросы 10.3.

  1. Существует ли в модели Баркера/Оракл понятие слабой сущности? Обсудите ответ.

  2. Изобразите следующую ситуацию, используя модель Баркера/Оракл: для студента мы будем хранить в базе данных имя студента, адрес, телефон, книги (которые студент берет в библиотеке). Преобразуйте ее в реляционную базу данных и приведите пример данных.

Обсуждение внешних ключей.

В оригинальной модели Баркера внешние ключи не отмечаются. Однако, в модели Оракл внешние ключи включены в соответствующие связи. Рассмотрим рисунок 10.9:

Студент может управлять многими автомобилями

И

Автомобиль должен управляться студентом.

Первый ключ отношения СТУДЕНТ (сторона 1) номер_студента включается в отношение АВТОМОБИЛЬ (сторона N). В нашей модели Баркера/Оракл внешний ключ будет обозначаться звёздочкой «*» (как показано на рисунке 10.9)

Рисунок 10.9. Представление внешнего ключа в Модели Баркера/Оракл

Рекурсивные связи в модели Баркера/Оракл

Рекурсивные связи в модели Баркера/Оракл изображаются так, как показано на рисунке 10.10. Повторимся, что пунктирная линия означает необязательное участие в связи, сплошная линия означает обязательное участие в связи, а разветвление линии означает коэффициент связи «многие». На рисунке представлены названия связей. Рисунок 10.10 показывает, что служащий может наблюдать за другими служащими, и за служащим может наблюдать один и только один инспектор. Отметим присутствие внешнего ключа, номера_инспектора, в отношении СЛУЖАЩИЙ.

Рисунок 10.10. Модель Баркера/Оракл: рекурсивные связи

Преобразование связей M:N.

В заключение обсудим последний аспект, который в модели Баркера/Оракл рассматривается несколько иначе – связь М:N. В модели Баркера/Оракл все связи типа М:N распадаются на две связи 1:М с пересекающей сущностью посередине. В модели Чена связь М:N также может быть представлена в виде двух связей 1:М.

Для примера рассмотрим рисунок 10.11 (используется модель Чена). Модель Баркера/Оракл показана на рисунке 10.12.

Рисунок 10.11: ER диаграмма связи М:N в модели Чена.

Рисунок 10.12: модель Баркера/Оракл: связь М:N разбивается на две связи 1:М

Контрольные вопросы 10.4.

  1. Как изображаются рекурсивные отношения в модели Баркера/Оракл?

  2. Почему сложно изобразить связь M:N в модели Баркера/Оракл?

  3. Каким образом трактуются внешние ключи в модели Баркера/Оракл?

Итоги главы

В этой главе были кратко обсуждены особенности модели Баркера/Оракл. Была рассмотрена диаграмма «одной сущности» с атрибутами. Обсуждалась идея необязательных и обязательных атрибутов. Были также обсуждены связи и структурные ограничения в модели Баркера/Оракл, и не смотря на то что в данной модели не существует понятий слабой сущности и многозначного атрибута, было рассмотрено как данные понятия можно изобразить на ER-диаграмме. Далее был проиллюстрирован пример описания рекурсивной связи в модели Баркера/Оракл. И наконец, были описаны методы разбиения связи M:N на две связи 1:M в применении к модели Баркера/Оракл.