Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Белобжеский_Лекции_по_ББД.doc
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
5.5 Mб
Скачать

Примеры er-проектирования

Модель «сущность—связь» в другом рассмотрении

Эта глава описывает и иллюстрирует использование модели «сущность—связь» (entity-relationship model), введенной Питером Ченом в 1976 г. (Р Р Chen, «The Entity-Relationship Model - Towards a Unified View of Data», ACM Transactions on Database Si/stems, январь 1976, с 9-36). В этой статье Чен заложил основу модели, которая с тех пор расширялась и модифицировалась самим Ченом и многими другими (Thomas A Brace, Designing Quality Databases with IDEF1X Information Models (New York Dorset House Publishing, 1992). Кроме того, модель «сущность—связь» вошла в состав множества CASE-инструментов, которые также внесли свой вклад в ее эволюцию. На сегодняшний день не существует единого общепринятого стандарта для модели «сущность—связь», зато есть набор общих конструкций, которые лежат в основе большинства вариантов этой модели. Опи­санию этих общих конструкций и демонстрации их применения и посвящена данная глава. Символы, применяемые для графического представления модели «сущность—связь», весьма различны. Мы обсудим не только традиционные символы, но и символы языка UML (Unified Model Language, унифицированный язык моделирования) — средства проектирования, завоевывающего все боль­шую популярность среди программистов ООП и включающего в себя модель «сущность—связь»

Элементы модели «сущность—связь»

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

Сущности

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

Важно уяснить разницу между классом сущностей и экземпляром сущности. Класс сущностей — это совокупность сущностей, и описывается он структурой или форматом сущностей, составляющих этот класс. Экземпляр сущности (entity instance) представляет конкретную сущность, такую как КЛИЕНТ 12345; он описы­вается значениями атрибутов данной сущности. Обычно класс сущностей со­держит множество экземпляров сущности. Например, класс КЛИЕНТ содержит множество экземпляров — по одному на каждого клиента, для которого имеется запись в базе данных. Пример класса сущностей и двух экземпляров сущности показан на рис. 3.1.

Рис.3.1. КЛИЕНТ: пример сущности

Атрибуты

У сущностей есть атрибуты (attributes), или, как их иногда называют, свойства (properties), которые описывают характеристики сущности. Примерами атрибутов могут служить ИмяСотрудника, ДатаНайма и КодКвалификации. В тексте этой книги атрибуты обозначаются как прописными, так и строчными буквами. В мо­дели «сущность—связь» предполагается, что все экземпляры данного класса сущ­ностей имеют одинаковые атрибуты.

Исходное определение модели «сущность—связь» включает в себя компо­зитные (или составные) атрибуты (composite attributes) и многозначные атрибуты (multi-valued attributes). В качестве примера композитного (составного) атрибута можно привести атрибут Адрес, состоящий из группы атрибутов {Улица, Город, Штат, Индекс}. Примером многозначного атрибута может служить атрибут ИмяДоверенногоЛица сущности КЛИЕНТ, который может содержать имена нескольких доверенных лиц данного клиента. Атрибут может быть одновременно и композитным, и многозначным —например, композитный атрибут Телефон, состоящий из группы атрибутов {Код-Региона, МестныйНомер}, может быть многозначным, что позволит иметь в базе данных несколько телефонных номеров одного и того же лица. В большинстве реализаций модели «сущность—связь» однозначные композитные атрибуты иг­норируются, и требуется, чтобы многозначные атрибуты (будь они составные или нет) преобразовывались в сущности, как будет показано ниже.