
- •Введение
- •Информационные модели
- •Создание базы данных
- •Основы концептуального проектирования баз данных
- •Объекты и отношения
- •Атрибуты
- •Наследование
- •Составные объекты
- •Моделирование концептуальных и физических объектов
- •Реляционная модель данных
- •Процесс нормализации таблиц
- •Преобразование концептуальной модели в реляционную
- •Сравнение концептуального и реляционного моделирования
- •Типы данных
- •Словарь данных
- •Выбор субд
- •Организация курсового проектирования
- •Оформление курсовой работы
- •Приложение 1
- •Библиографический список
- •Оглавление
Атрибуты
Элементы объектных множеств обладают некоторыми атрибутами, позволяющими их различать. Например, у человека есть имя, дата рождения, вес, рост. Фактически, атрибут объекта – функциональное отношение объектного множества этого объекта к другому объектному множеству. Один из перечисленных выше атрибутов показан на рис. 6 как отношение. Однако часто удобно представлять атрибуты более простым образом (рис. 7).
Рис. 6. Атрибут, показанный как отношение.
Рис. 7. Упрощенное представление атрибутов.
При нормальном использовании атрибуты являются функциональными отношениями в направлении от объекта к атрибуту. То есть, значение атрибута однозначно определено для каждого элемента объекта. Например, у каждого человека есть только одна дата рождения и одно имя. Максимальная мощность отношения со стороны атрибута в таком отношении всегда равна одному, поэтому в диаграммах ее можно опускать. Если для некоторого элемента объектного множества значение атрибута не определено, то говорят, что этот атрибут имеет пустое значение.
Важно понимать, что атрибуты нужно в концептуальном плане отделять от объектов, которые они описывают, так как значения атрибутов могут меняться, в то время как описываемый ими объект остается прежним. Например, у человека может измениться рост, вес, семейное положение, но это будет тот же самый человек.
Ключи
Ключ – это значение, которое однозначно определяет элемент объектного множества. Выше рассматривались суррогатные ключи, необходимые для идентификации элементов абстрактных (нелексических) объектных множеств. Однако, поскольку суррогатные ключи не могут быть использованы вне системы, пользователям базы данных требуются другие средства идентификации элементов множеств. Для этого используются внешние ключи.
Внешний ключ – набор лексических атрибутов, значения которых всегда однозначно определяют элемент объектного множества.
Например, номер страхового свидетельства может служить ключом для объекта ЧЕЛОВЕК, если допустить, что каждый номер страхового свидетельства соответствует ровно одному человеку.
Иногда для создания ключа требуется более одного атрибута. Например, для объекта ЧЕЛОВЕК часто достаточно указать его полное имя, дату и место рождения. Если это так, то ключом будет комбинация этих трех атрибутов. Иначе придется привлекать другие атрибуты.
Ключ нужен не для каждого объекта. Например, в базе данных, записывающей продажи, пользователя может интересовать только продаваемый товар и объем продаж. В этом случае нет смысла создавать однозначный ключ для каждой продажи.
Наследование
Если объект является конкретизацией другого объекта, то конкретизированный объект наследует все атрибуты и отношения обобщенного объекта. ЖЕНАТЫЙ ЧЕЛОВЕК является конкретизацией объекта ЧЕЛОВЕК. Поэтому у состоящего в браке человека есть имя, адрес и т.д. просто потому, что он является человеком. Объект ЖЕНАТЫЙ ЧЕЛОВЕК наследует эти атрибуты от объекта ЧЕЛОВЕК. Кроме того, у конкретизированного человека могут быть свои собственные атрибуты. Например, СУПРУГ будет атрибутом объекта ЖЕНАТЫЙ ЧЕЛОВЕК, но не объекта ЧЕЛОВЕК. Этот пример иллюстрируется рисунком 8.
Конкретизированные объекты наследуют не только атрибуты, но и все отношения.
Рассмотрим пример модели данных банка. Объектами для банка являются СБЕРЕГАТЕЛЬНЫЙ СЧЕТ, ТЕКУЩИЙ СЧЕТ, КЛИЕНТ. Клиент может
Рис. 8. Наследование атрибутов при конкретизации.
иметь как текущий, так и сберегательный счет. В общем случае клиент может иметь несколько счетов, а каждым счетом могут пользоваться несколько клиентов. Таким образом, отношения ИМЕЕТ СБЕРЕГАТЕЛЬНЫЙ СЧЕТ и ИМЕЕТ ТЕКУЩИЙ СЧЕТ является отношением вида много-ко-многим. Клиентом банка может быть как физическое, так и юридическое лицо. Добавив к каждому объектному множеству атрибуты, получим модель, представленную на рис. 9.
Концептуальная модель данных может строиться как на основе опроса руководителей и специалистов отделов предприятия, так и на основе существующих отчетов. Рассмотрим пример построения концептуальной модели торговой фирмы на основе накладной. Пример накладной приведен на рис. 10.
Из приведенного документа можно вывести следующие объектные множества: НАКЛАДНАЯ, ПОЛУЧАТЕЛЬ, ТОВАР. Отношение между множествами ПОЛУЧАТЕЛЬ и НАКЛАДНАЯ имеет мощность один-ко-многим, так как каждая накладная оформляется одному получателю, но данному получателю могут быть оформлены несколько накладных. Отношение ВКЛЮЧАЕТ между объектами ТОВАР и НАКЛАДНАЯ имеет мощность много-ко-многим, так как накладная может содержать несколько товаров, а товар может встречаться в нескольких накладных. Если необходимо контролировать оплату, поставленного по накладным товара, то необходимо добавить объектное множество ОПЛАТА с атрибутами НОМЕР ДОКУМЕНТА, ВИД ОПЛАТЫ и ДАТА. Мощность отношения ОПЛАЧЕНА
Рис. 9. Пример концептуальной модели банка.
Накладная № 33
Дата 02.08.1999
Получатель Фирма АВС, г. Владимир, тел. 999999
Код получателя 999
Поставщик Фирма ХХХ
|
Рис. 10. Пример накладной.
между объектами НАКЛАДНАЯ и ОПЛАТА равна один-к-одному. Модель данных приведена на рис. 11.
Рис. 11. Концептуальная модель торговой фирмы на основе накладной.