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

Многозначные атрибуты

Другой тип не простого атрибута, о котором следует упомянуть, называется многозначный атрибут. Многозначный атрибут, как видно из названия, может иметь более одного значения для данного экземпляра сущности. Например, атрибут «школа» легко может быть многозначным, если человек посещает (или посещал, в зависимости от контекста базы данных) более, чем одну школу. Обратный пример - большинство людей имеют только одно имя и, следовательно, композиция «имя» - не многозначная. Многозначный атрибут «школа» изображен наРисунке 2.5(Chen модели (модели Чена)) как двойной овал, который иллюстрирует ситуацию, когда база данных хранит данные о студентах, которые могут посещать более, чем одну школу. Хотя мы иллюстрируем атрибут «школа» как многозначный, мы не подразумеваем, что это будет характерно для всех баз данных. Фактически, атрибут «школа», может иметь единственное значение в других базах данных. Понятие школы может означать настоящую (или предыдущую) школу, как противоположность всем бывшим школам. Если субъекты, о которых мы храним данные, могут посещать только одну школу в какой то период (и это как раз то, что мы хотим изобразить), тогда атрибут «школа» вполне может быть однозначным атрибутом.

Рисунок 2.5: ER диаграмма с многозначным атрибутом.

И опять же, определение многозначности атрибута будет полностью зависеть от взаимодействия разработчика с «пользователем», для которого создается база данных. Если смысл базы данных состоит в том, что атрибут «школа» означает «current school» («текущая школа»), то рекомендуется называть атрибут «current school» («текущая школа») и иллюстрировать его как однозначный атрибут. В нашем примере на Рисунке 2.5изображен многозначный атрибут, то есть смысл диаграммы состоит в том, что для каждого студента может быть записано несколько школ.

Производный атрибуты

Производными являются атрибуты, которые пользователь может предположить, но не может непосредственно записать. В базе данных эти производные атрибуты могут быть вычислены из других данных. Примером производного атрибута является возраст, который можно вычислить, как только студент введет дату рождения. В Chen-модели,производный атрибут показан в пунктирном овале (Рисунок 2.5A).

Рисунок 2.5A: ER Диаграмма с производным атрибутом – возраст.

Ключи

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

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

В некоторых школах вводится дополнительный атрибут Номер Социального страхования студента. (Social Security number, SSN). SSN тоже уникальный и, следовательно, является потенциальным ключом наряду с номером студента. Если были введены и SSN, и номер студента, то разработчик выбирает какой из этих атрибутов назначить первичным ключом. В нашем случае мы не вводим SSN. Сущность СТУДЕНТ с уникальным идентификатором номер студента, обозначенным как ключ, показана на Рисунке 2.6.

или в краткой форме…

Рисунок 2.6: ER Диаграмма с первичным ключом или уникально идентифицирующим атрибутом

В Chen-моделях атрибуты, которые являются уникальными идентификаторами (потенциальными ключами), обычно подчеркиваются (как показано на Рисунке 2.6). Уникальный идентификатор может быть атрибутом или совокупностью атрибутов. В данном случае не обязательно выбирать этот потенциальный ключ в качестве первичного ключа, но иногда это можно сделать. Когда есть только один потенциальный ключ, его обычно назначают первичным ключом, так как очевидно, что первичный ключ - это потенциальный ключ. На Рисунке 2.6 мы изобразили также краткую форму ER диаграммы (внизу) с составным атрибутом и многозначным атрибутом, а также первичным ключом. Составной атрибут указан со своими компонентами, многозначный атрибут показан в круглых скобках в сокращённой форме.

И, наконец, пока что на примере ключей, рассмотрим ситуацию, где нет очевидного или предполагаемого ключа. Сущности, в которых выделяется хотя бы один ключ, будем называть строгими сущностями (strong entities). В первоисточнике -статье Чена (1976),строгие сущности называютсяобычными сущности (regular entities). Некоторым сущностям для своего существования (и следовательно, идентификации) необходима зависимость от других сущностей. Чен назвал такие сущности, которые для своего существования зависят от других сущностей,слабыми сущностями (weak entities).

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

Хотя слабая сущность может иметь потенциальный ключ, она не будет строгой сущностью. Мы изображаем слабые сущности в ER диаграммах двойной рамкой (см. Рисунок 2.7). Далее, сосредоточимся на сущностях, у которых есть ключи, и позже вернемся к ситуации, где нет очевидных ключей.

Рисунок 2.7: Строгая и слабая сущность АВТОМОБИЛЬ

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

1. Опишите основные типы схем представления данных, использованных при моделировании сущность-связь (ER).

2. Какие используются условные знаки, чтобы диаграммой изобразить сущность в модели Chen?

3. Как на диаграмме показать атрибуты в Chen модели?

4. Как показываются составные атрибуты в Chen модели?

5. Изобразите сущность "строения" с атрибутами название_строения, площадь и есть ли у него лифт (да/нет).

6. Дополните сущность строение, добавив имена лиц, управляющих строением (имя, фамилия, средний инициал). Становится ли атрибут составным? Почему да или почему нет?

7. Дополните сущность строение включением адреса, который будет первичным ключом.

8. Снова дополните сущность строение, включением имен (и только имен) персонала.

9. Добавьтесь многозначный атрибут к сущности.

10. Сколько атрибутов может быть у сущности?

[2]"Область значений" (domain of values) - это набор значений, которые может принимать данный атрибут. Область состоит из всех возможных величин, которые разрешены для атрибута. Тип данных является более широким термином, используемым для описания атрибутов, допустимых операций.