Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Базы данных_учпос_Любицкий Ю.В..doc
Скачиваний:
9
Добавлен:
20.04.2019
Размер:
618.5 Кб
Скачать

7. Основы проектирования реляционных баз данных

7.1. Этапы проектирования

Проектированию баз данных традиционно уделяется большое внимание, так как эта работа во многом определяет успешность эксплуатации созданной базы данных, возможности ее модернизации и усовершенствования в дальнейшем.

В процессе проектирования баз данных часто выделяют три этапа.

Этап 1. Построение концептуальной модели предметной области.

В рамках этого этапа исследуется предметная область – часть реального мира, для которого создается база данных. Изучаются информационные потребности пользователей, выявляются информационные объекты и связи между ними. Исходя из полученной информации строится концептуальная модель предметной области, независимая от модели данных и программных средств (включая СУБД).

Этап 2. Логическое проектирование – преобразование созданной концептуальной модели в концептуальную схему, реализуемую конкретной СУБД.

На этом этапе на основе концептуальной модели разрабатывается структура базы данных, соответствующая выбранной для ее создания СУБД. Для реляционной базы данных информация разбивается на отношения (таблицы); для каждого отношения (таблицы) определяются атрибуты (поля), первичные ключи; отношения приводятся к нормализованному виду; идентифицируются связи между отношениями.

Этап 3. Физическое проектирование базы данных.

На этом этапе решаются проблемы физического размещения базы данных во внешней памяти и организации доступа к ней. Физическое проектирование базы данных реализуется администратором банка данных при конфигурировании и настройке системы. От специалистов, принимавших участие в проектировании базы данных на предыдущих этапах, этот процесс может быть полностью скрыт. Учитывая, что процесс физического проектирования базы данных является узко специализированным, в дальнейшем он рассматриваться не будет.

7.2. Построение концептуальной модели предметной области

В рамках концептуальной модели информационное содержание предметной области выражается некоторыми абстрактными средствами. Основным требованием, предъявляемым к концептуальной модели, является требование адекватного отображения предметной области. Модель должна быть непротиворечивой, отражать взгляды и потребности всех пользователей системы. Модель должна обладать свойством легкой расширяемости, обеспечивающим ввод новой информации.

Рассмотрим некоторые средства концептуального моделирования.

ER-модель

ER-модель (Entity-Relationship – сущность-связь) была предложена П. Ченом в 1976 г. [ 12 ]. Информация о содержании предметной области в рамках модели изображается в структурированном графическом виде (ER-диаграмма).

Основными конструкциями модели являются сущности и связи.

Для ER-модели не существует единой стандартизованной системы обозначений, поэтому приводимые далее характеристики ER-диаграмм могут несколько отличаться от опубликованных в различных книгах [ 3, 4 ].

Под сущностью в ER-модели понимаются объект или явление, информация о которых будет храниться в базе данных (склад, накладная и т. д.). При этом различают тип сущности и экземпляр сущности. Под типом сущности понимают набор однородных объектов, отображаемый как единое целое (магазин, товар и т. д.). Под экземпляром сущности подразумевается конкретный объект (магазины «Светлый», «Восток» и т. д.). На ER-диаграмме сущность изображается прямоугольником, в котором указано его имя (как правило, существительное).

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

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

С помощью связей на ER-диаграмме отображается взаимодействие между сущностями. Связь изображается ромбом, соединяющим связываемые сущности, внутри которого указывается вид связи (обычно выражается глаголом). Например, сущности Директор и Сотрудник могут быть соединены связью Руководит. Между двумя сущностями может быть установлено несколько связей: Продавец ПродаетТовар, ПродавецФасуетТовар, ПродавецУчитываетТовар. Количество сущностей, участвующих в связи, определяет ее степень. Связь Руководит между сущностями Директор и Сотрудник имеет степень, равную двум.

Связи могут иметь разный характер:

  • «один к одному» (1 : 1) – один экземпляр сущности Директор связан с одним экземпляром сущности Магазин;

  • «один ко многим» (1 : М) – один экземпляр сущности Директор связан со многими экземплярами сущности Продавец;

  • «многие ко многим» (М : М) – многие экземпляры сущности Продавец связаны со многими экземплярами сущности Товар.

Символы, указывающие на характер связи (1 или М), отображаются на ER-диаграммах рядом со связанными сущностями.

Связь любого из перечисленных видов может иметь обязательный и необязательный классы принадлежности. Класс принадлежности связи для некоторой сущности является обязательным, если в данной связи должен участвовать каждый экземпляр сущности (все продавцы продают товары), и необязательным, если некоторые экземпляры сущности не участвуют в связи (не все товары доставлены железнодорожным транспортом). При этом связь может быть обязательной с одной стороны и необязательной с другой стороны. На ER-диаграммах обязательный класс принадлежности может быть обозначен перпендикулярной линией, перечеркивающей линию связи вблизи сущности, необязательный класс принадлежности – пустым кружком на линии связи [ 4 ].

При построении ER-диаграмм могут использоваться генерализация, агрегация и группировка сущностей [ 3, 12 ].

На рис. 15 представлен фрагмент ER-диаграммы, отображающей работу магазина.

Сущность Работник имеет два подтипа – Директор и Продавец. Между сущностями Магазин и Работник связь имеет характер «один ко многим» (один магазин обслуживается многими работниками), между сущностями Директор и Продавец – «один ко многим» (один директор руководит многими продавцами), между сущностями Продавец и Товар «многие ко многим» (несколько продавцов продает множество разных товаров). Класс принадлежности большинства связей является обязательным. Он является необязательным для связи Фасует между сущностями Продавец и Товар со стороны сущности Продавец (не каждый продавец фасует товары) (см. рис. 15).

Функциональная модель данных

Эта модель была предложена Шипмэном в 1981 г. [ 12 ].

Модель основывается на положении о возможности представления связей между данными, хранящимися в базе данных, в виде математических функций. Поэтому в функциональной модели данных используются два основных понятия: сущность и функция.

М

М

Рис. 15. Фрагмент ER-диаграммы, отображающей работу магазина

Сущность может представлять собой объект реального мира (абстрактная сущность) или являться текстовой строкой или числом (простая сущность). Применение математических функций к конкретным сущностям при заданных значениях аргументов дает однозначный результат.

Диаграммы функциональной модели данных во многом аналогичны ER-диаграммам, но связи между ними представлены в виде функций [ 12 ].

Модель семантических объектов

Модель впервые предложена Кренке в 1988 г. [ 12 ].

База данных является совокупностью семантических объектов. Каждый объект отображает некоторый элемент реального мира и характеризуется набором атрибутов. Связи между объектами представляются атрибутами этих объектов.

Рассмотрим диаграммы семантических объектов Магазин, Продавец, Товар (рис. 16):

Магазин

ID Название 1, 1

Адрес

Город 1, 1

Улица 1, 1 1, 1

Дом 1, 1

Склад 0, N

Продавец 1, N

Продавец

ID ИНН 1, 1

ФИО 1, 1

Должность 1, 1

Адрес 1, 1

Магазин 1, N

Товар

ID Артикул 1, 1

Название 1, 1

Цена 1, 1

Производитель 1, N

Цвет 1, N

Магазин 1, N

Рис. 16. Диаграммы семантических объектов

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

Для каждого атрибута указана его кардинальность (минимальное и максимальное количество вхождений этого атрибута в объект). Например, если для атрибута Цена объекта Товар приводится кардинальность 1, 1, это означает, что товар обязательно должен иметь цену, и только одну. Атрибут Производитель объекта Товар имеет кардинальность 1, N. Это указывает на то, что один и тот же товар может изготавливаться одним или несколькими производителями (см. рис. 16). Атрибут Склад объекта Магазин имеет кардинальность 0, N. Следовательно, склад при магазине может отсутствовать, или их имеется несколько. Атрибуты, которые принимают более одного значения, называются многозначными.

В объекте Магазин имеется группированный атрибут Адрес. Атрибуты, входящие в его состав, объединены скобкой (см. рис. 16).

В объекте Магазин существует также атрибут объектного типа Продавец с кардинальностью 1, N (см. рис. 16). Это указывает на то, что данный объект связан с одним или несколькими объектами Продавец (в магазине могут работать один или несколько продавцов). Для обеспечения связи между рассматриваемыми объектами в объект Продавец обязательно должен входить атрибут Магазин, характеризующий этот объект (см. рис. 16).

Диаграммы семантических объектов допускают создание агрегированных объектов, подклассов объектов [ 12 ].

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]