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

         

Пример преобразования ER-диаграмм в отношения базы данных


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

Первый шаг проектирования базы данных заключается в выявлении всех сущностей предметной области, их атрибутов и связей между атрибутами сущностей. Анализ сведений о предметной области данного примера позволяет определить следующие атрибуты универсального отношения и сделать заключение о наличии функциональных зависимостей (ФЗ) между ними:

  1. Каждый клиент имеет свой регистрационный номер (далее - номер). Все номера у клиентов уникальны и различны. Номер однозначно определяет Фамилию, но не наоборот.
    .
  2. Каждый клиент располагается по определенному адресу, по которому могут находиться несколько клиентов.
    .
  3. Предположим, что только один телефон связан с данным адресом.
    .
  4. Каждому клиенту может быть приписан телефон.
    .
  5. Для каждого клиента определяется рейтинг (активность, частота обращений и т.д.) за период по конкретной теме. Рейтинг клиента однозначно определяется по его номеру.
  6. Консультации носят тематический характер. Каждая тема имеет свой идентификатор.
  7. Период представляет собой отрезок времени, в течение которого проводилась тематическая консультация. Для определенности назовем этот период семестром.
    .

Полученное универсальное отношение назовем КОНСУЛЬТАНТ.


Рис. 7.2.  Универсальное отношение КОНСУЛЬТАНТ

Перечислим ФЗ предметной области базы данных:

Рассмотрим детерминанты и возможные ключи отношения КОНСУЛЬТАНТ.

Возможные ключиДетерминанты
{Номер, Тема, Семестр}{Номер, Тема, Семестр}
{Номер}
{Телефон}
{Адрес}

Согласно критерию Кодда, поскольку не каждый детерминант в отношении есть возможный ключ, то отношение не находится в НФБК.
Выполним декомпозицию отношения КОНСУЛЬТАНТ R0 (Номер, Тема, Семестр, Фамилия, Адрес, Телефон, Рейтинг). Кандидатами на выполнение проекции являются следующие ФЗ:


Внимание! На практике существует неединственность представления отношений базы данных, обусловленная выбором ФЗ при разбиении отношений. Выбор ФЗ для выполнения проекции отношения - очень важный шаг в проектировании логической модели реляционной базы данных. Выбор альтернативных ФЗ для выполнения проекции может привести к различным базам данных!
Выберем ФЗ
, тогда получим два отношения R1 (Номер, Тема, Семестр, Фамилия, Адрес, Рейтинг) и R2 (Адрес, Телефон). Первая итерация декомпозиции отношений представлена на рис. 7.3.

Рис. 7.3.  Первая итерация декомпозиции отношений
Проверим, находится ли отношение R2 в НФБК.
Возможные ключиДетерминанты{Адрес}{Телефон}{Адрес}{Телефон}

Отношение R2 находится в НФБК.
Проверим, находится ли отношение R1 в НФБК.
Возможные ключиДетерминанты
{Номер, Тема, Семестр}{Номер, Тема, Семестр}
{Номер}
{Адрес}

Отношение R1 не находится в НФБД, необходимо продолжить его декомпозицию. Выберем ФЗ
и выполним разбиение R1 на R3(Номер, Тема, Семестр, Рейтинг) и R4 (Номер, Фамилия, Адрес). Вторая итерация декомпозиции отношений представлена на рис. 7.4.

Рис. 7.4.  Вторая итерация декомпозиции отношений
Проверим, находится ли отношение R3 в НФБК.
Возможные ключиДетерминанты
{Номер, Тема, Семестр}{Номер, Тема, Семестр}

Отношение R3 находится в НФБК.
Проверим, находится ли отношение R4 в НФБК.
Возможные ключиДетерминанты
{Номер}{Номер}

Отношение R4 находится в НФБК. Декомпозиция закончена.
Заметим, что если бы изначально в нашем примере в качестве ФЗ для выполнения проекции была выбрана ФЗ
, то в результате мы имели бы совсем другой (!) набор отношений.
Литература: [1], [11], [15], [20], [31], [43], [44], [45].

Содержание раздела