Опубликован: 02.08.2007 | Доступ: свободный | Студентов: 3887 / 751 | Оценка: 4.55 / 4.39 | Длительность: 27:09:00
ISBN: 978-5-9556-0111-3
Лекция 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 не имеет проблемы нуль-значений. В результирующем отношении ПРЕДМЕТЫ эта проблема исключается: для предмета, который в данный момент не читается, определяется специальное непустое значение по умолчанию. Миграция ключа необходима для восстановления исходного отношения. Таким образом, миграция ключа в методе декомпозиции представляет собой перенос первичного ключа одного отношения в другое отношение для предотвращения потери данных при соединении.

Александра Каева
Александра Каева
Михаил Забелкин
Михаил Забелкин