Опубликован: 02.08.2007 | Уровень: специалист | Доступ: платный
Лекция 7:

Методы проектирования логических моделей реляционных баз данных. Декомпозиция и синтез отношений

Пример. Применение алгоритма синтеза

Пример иллюстрирует работу алгоритма на каждом из его этапов.

  1. Если F={A \to B, B \to C, A \to C}, то A \to C может быть удалена.
  2. Пусть F1={A \to B, B \to C,A, B \to C}, тогда или A, или B могут быть удалены из A,B \to C. A \to C или B \to C выводится из F1 следующим образом: Из A \to А \Rightarrow A \to A,B (по аддитивности); из A \to A,B и A,B \to C \Rightarrow A \to С (по транзитивности).
  3. Пусть {A \to B,C; B \to C}, тогда С может быть удалена из A \to B,C. Из A \to B и B \to C \Rightarrow  A \to C (по транзитивности); из A \to B и A \to C \Rightarrow A \to B,C (по аддитивности).
  4. Пусть {A \to B; B \to A; A,C \to D; B, \to E}. Тогда так как A \Leftrightarrow B, то имеется одна группа {A \to B; B \to A}. Так как A,C \Leftrightarrow B,C (по расширяемости и аддитивности), то другая группа есть {A,C \to D; B,C \to E}.
  5. Из A \to B и B \to A \Rightarrow A,C \to B,C Так как A,C \to B,C принадлежит к другой группе, чем A,C \to D и B,C \to E, то последние ФЗ могут быть заменены на A,C \to B,C.
  6. Имеем (A; D), (B,C) \to D,E.
  7. Пусть с=(A;B;A,B). Fd(C)={A \to B, B \to A,B, A,B \to A,C}. Сдвигаем A,B в правую часть с и получаем с' = (A;B). Тогда fd(c') = {A\to B, B\to A,B}. A,B может быть удалена из с, так как они есть в левой части с'. Так как B \to A,B, A,B \to A,C могут быть выведены из fd(c'), то с может быть заменена на с'.
  8. Пусть C_2={(A;B;C) \to D, (B) \to D}. fd(C_2)={A \to B,C; B,C \to A,D; B \to D}. D удаляется из (A;B;C) \to D и c'={(A;B;C); (B)\to D}. fd(c')={A \to B,C; B,C \to A; B \to D}. Так как B,C \to A,D может быть выведена из B,C \to A и B \to D, то С2 может быть заменена на С'.
  9. Пусть С_3={(A;B;C) \to E, (B) \to D}, (F,G)}. Тогда первое отношение есть ABCD c ключом (A,{B,C}) ; второе отношение есть BD с ключом {B} ; третье отношение есть FG с ключом {F,G}.

Выводы

  • В рамках теории реляционных баз данных предлагается два основных подхода к построению логических моделей баз данных: метод декомпозиции и метод синтеза схем отношений.
  • Метод декомпозиции основывается на разбиении некоторого универсального отношения на два или более отношений с помощью реляционной операции проекции.
  • Метод синтеза основывается на обработке исходного множества ФЗ предметной области базы данных.
  • Метод декомпозиции нагляден, достаточно просто реализуется в инструментальных CASE -средствах проектирования, но имеет ряд потенциальных недостатков, связанных с потерей данных при соединениях и с потерей ФЗ.
  • Метод синтеза не приводит к потерям ФЗ, но имеет ряд потенциальных угроз потери информации при соединениях и обладает высокой вычислительной стоимостью.
  • Предлагается ряд технических приемов по преодолению потенциальных недостатков в обоих подходах, позволяющих строить эффективные логические модели данных.
  • На практике при построении логической модели реляционной базы данных целесообразно комбинировать оба подхода, отдавая предпочтение методу декомпозиции.

Создание логической модели реляционной базы данных методом декомпозиции: преобразование ER -диаграмм в отношения базы данных

Практика проектирования реляционных баз данных методом декомпозиции отношений показала ряд его недостатков, связанных с потерей данных при соединениях и с потерей ФЗ. Однако метод декомпозиции достаточно прост для понимания, нагляден, легко реализуется в инструментальных CASE -средствах проектирования и в настоящее время является наиболее часто применяемым при проектировании баз данных.

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

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

  1. каждый преподаватель читает только один курс, и каждый курс читается только одним преподавателем, т.е. классы принадлежности обеих сущностей являются обязательными;
  2. каждый преподаватель читает только один курс, и каждый курс читается не более чем одним преподавателем, т.е. класс принадлежности первой сущности является обязательным, а второй сущности - необязательным;
  3. каждый преподаватель читает не более одного курса, и каждый курс читается не более чем одним преподавателем, т.е. классы принадлежности обеих сущностей не являются обязательными;
  4. каждый преподаватель читает не более одного курса, а каждый курс читается только одним преподавателем.

Возможны варианты с иной степенью связи, например когда каждый преподаватель может читать несколько курсов.

Каждый из этих вариантов может быть представлен ER-диаграммой. Однако следует помнить, что каждая ER-диаграмма представляет свой собственный набор правил поведения предметной области и только одна из них может быть истинной в каждый момент времени.

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

Сформулируем первое правило.

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

Исходное отношение является одновременно и конечным отношением.

Пример. 
     
     ПРЕПОДАВАТЕЛЬ (Табельный_номер, Фамилия, Предмет, 
     Количество_часов)

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

Сформулируем второе правило.

Правило 2. Если степень бинарной связи 1:1 и класс принадлежности одной сущности является обязательным, а другой сущности - не обязательным, то требуется построение двух отношений - по одному на каждую сущность. При этом первичным ключом каждого отношения является ключ его сущности, а ключ сущности с необязательным классом принадлежности добавляется в отношение для сущности с обязательным классом принадлежности в качестве атрибута (миграция ключа).

Пример.
     
     Исходное отношение:
     
     ПРЕПОДАВАТЕЛЬ_1 (Табельный_номер, Фамилия, Предмет, 
     Количество_часов)
     
     Результирующие отношения:
     
     ПРЕПОДАВАТЕЛЬ_2 (Табельный_номер, Фамилия, Предмет)
     ПРЕДМЕТЫ (Предмет, Количество_часов)

Это правило может быть применено во втором варианте, когда исходное отношение уже требует декомпозиции. Исходное отношение ПРЕПОДАВАТЕЛЬ_1 содержит проблему нуль-значений: данные о предметах, которые не читаются в данный момент, не могут быть внесены в базу данных.

Результирующее отношение ПРЕПОДАВАТЕЛЬ_2 не имеет проблемы нуль-значений. В результирующем отношении ПРЕДМЕТЫ эта проблема исключается: для предмета, который в данный момент не читается, определяется специальное непустое значение по умолчанию. Миграция ключа необходима для восстановления исходного отношения. Таким образом, миграция ключа в методе декомпозиции представляет собой перенос первичного ключа одного отношения в другое отношение для предотвращения потери данных при соединении.

Александра Каева
Александра Каева
Михаил Забелкин
Михаил Забелкин
Евгений Вершинин
Евгений Вершинин
Россия, Нижний Новгород, Нижегородский государственный технический университет, 2008
Aleksandr Arshinskyi
Aleksandr Arshinskyi
Россия