Ответы на вопросы по Базам (1084490), страница 4
Текст из файла (страница 4)
Случай, когда
можно обо-
10. Нормальные формы
Процесс проектирования БД с использованием метода нормальных форм является итерационным и заключается в последовательном переводе отношений из первой нормальной формы в нормальные формы более высокого порядка по определенным правилам. Каждая следующая нормальная форма ограничивает определенный тип функциональных зависимостей, устраняет соответствующие аномалии при выполнении операций над отношениями БД и сохраняет свойства предшествующих нормальных форм.
Выделяют следующую последовательность нормальных форм:
Первая нормальная форма. Отношение находится в 1НФ, если все его атрибуты являются простыми (имеют единственное значение). Исходное отношение строится таким образом, чтобы оно было в 1НФ.
Перевод отношения в следующую нормальную форму осуществляется методом «декомпозиции без потерь». Такая декомпозиция должна обеспечить то, что запросы (выборка данных по условию) к исходному отношению и к отношениям, получаемым в результате декомпозиции, дадут одинаковый результат.
Основной операцией метода является операция проекции. Поясним ее на примере. Предположим, что в отношении R(A,B,C,D,E,...) устранение функциональной зависимости С—»D позволит перевести его в следующую нормальную форму. Для решения этой задачи выполним декомпозицию отношения R на два новых отношения R1(A,B,C,E,...) и R2(C,D). Отношение R2 является проекцией отношения R на атрибуты С и D.
Исходное отношение ПРЕПОДАВАТЕЛЬ, используемое для иллюстрации метода, имеет составной ключ ФИО.
Вторая нормальная форма. Отношение находится в 2НФ, если оно находится в 1НФ и каждый неключевой атрибут функционально полно зависит от первичного ключа (составного).
Для устранения частичной зависимости и перевода отношения в 2НФ необходимо, используя операцию проекции, разложить его на несколько отношений следующим образом:
•построить проекцию без атрибутов, находящихся в частичной функциональной зависимости от первичного ключа;
• построить проекции на части составного первичного ключа и атрибуты,
зависящие от этих частей.
В результате получим два отношения R1 и R2 в 2НФ (рис. 5.6).
В отношении R1 первичный ключ является составным и состоит из атрибутов ФИО. Предм. Группа. Напомним, что данный ключ в отношении R1 получен в предположении, что каждый преподаватель в одной группе по одному предмету может либо читать лекции, либо проводить практические занятия. В отношении R2 ключ ФИО.
Исследование отношений R1 и R2 показывает, что переход к 2НФ позволил исключить явную избыточность данных в таблице R2 - повторение строк со сведениями о преподавателях. В R2 по-прежнему имеет место неявное дублирование данных.
Для дальнейшего совершенствования отношения необходимо преобразовать его в ЗНФ.
11. 3НФ: определения, алгоритм получения, пример. Усиленная 3НФ определение, пример. Роль БКНФ методе проектирования БД Сущность-связь.
Определение 1. Отношение находится в ЗНФ, если оно находится в 2НФ и каждый неключевой атрибут нетранзитивно зависит от первичного ключа.
Существует и альтернативное определение.
Определение 2. Отношение находится в ЗНФ в том и только в том случае, если все неключевые атрибуты отношения взаимно независимы и полностью зависят от первичного ключа.
Доказать справедливость этого утверждения несложно. Действительно, то, что неключевые атрибуты полностью зависят от первичного ключа, означает, что данное отношение находится в форме 2НФ. Взаимная независимость атрибутов (определение приведено выше) означает отсутствие всякой зависимости между атрибутами отношения, в том числе и транзитивной зависимости между ними. Таким образом, второе определение ЗНФ сводится к первому определению.
Если в отношении R1 транзитивные зависимости отсутствуют, то в отношении R2 они есть:
ФИО—»Должн—>Оклад, ФИО—>Оклад—>Должн, ФИО->Стаж->Д_Стаж
Транзитивные зависимости также порождают избыточное дублирование информации в отношении. Устраним их. Для этого используя операцию проекции на атрибуты, являющиеся причиной транзитивных зависимостей, преобразуем отношение R2, получив при этом отношения R3, R4 и R5, каждое из которых находится в ЗНФ (рис. 5.7а). Графически эти отношения представлены на рис. 5.76. Заметим, что отношение R2 можно преобразовать по-другому, а именно: в отношении R3 вместо атрибута Должн взять атрибут Оклад.
Н а практике построение ЗНФ схем отношений в большинстве случаев является достаточным и приведением к ним процесс проектирования реляционной БД заканчивается. Действительно, приведение отношений к ЗНФ в нашем примере, привело к устранению избыточного дублирования.
Если в отношении имеется зависимость атрибутов составного ключа от неключевых атрибутов, то необходимо перейти к усиленной ЗНФ.
Усиленная ЗНФ или нормальная форма Бойса - Кодда (БКНФ).
Отношение находится в БКНФ, если оно находится в ЗНФ и в нем отсутствуют зависимости ключей (атрибутов составного ключа) от неключевых атрибутов.
У нас подобной зависимости нет, поэтому процесс проектирования на этом заканчивается. Результатом проектирования является БД, состоящая из следующих таблиц: Rl, R3, R4, R5. В полученной БД имеет место необходимое дублирование данных, но отсутствует избыточное.
12. Теоретические основы РМД: Реляционная алгебра и реляционное исчеслеиние, их логическая эквивалентность. Определение РМД Кодда в методе проектирования «сущность-связь»
Третьим аспектом реляционной модели данных является обработка данных, осуществляемая с помощью операторов реляционной алгебры. В основном операторы имеют на входе отношения и возвращают отношения в качестве результата. Реляционная алгебра состоит из восьми операторов: четырех традиционных операций над множествами (теоретико-множественных операций) и четырех специальных реляционных операций.
К традиционным операциям относятся операции: объединение, возвращает отношение, содержащее все кортежи, принадлежащие или одному из двух определенных отношений, или обоим, пересечение, возвращает отношение, содержащее все кортежи, принадлежащие одновременно двум определенным отношениям, вычитание, возвращает отношение, содержащее все кортежи, которые принадлежат первому из двух определенных отношений и не принадлежат второму, расширенное декартово произведение , возвращает отношение, содержащее всевозможные кортежи, являющиеся сочетанием двух кортежей, принадлежащих соответственно двум определенным отношениям
К специальным операциям относятся: выборка (ограничение), возвращает отношение, содержащее все кортежи из определенного отношение, удовлетворяющие определенным условиям, проекция, возвращает отношение, содержащее все кортежи (называемые как подкортежи) определенного отношения после исключения из него некоторых атрибутов, соединение (естественное), возвращает отношение, кортежи которого – это сочетание двух кортежей (принадлежащих соответственно двум определенным отношениям), имеющих общее значение для одного
или нескольких атрибутов этих двух отношений (и такие общие значения в результирующем кортеже появляются только один раз), деление, для двух отношений, бинарного и унарного, возвращает отношение, содержащее все
значения одного атрибута бинарного отношения, соответствующее (в другом атрибуте)
всем значениям в унарном отношении
Оператор переименования атрибутов
Оператор переименования атрибутов имеет следующий синтаксис:
где
- отношение,
- исходные имена атрибутов,
- новые имена атрибутов.
В результате применения оператора переименования атрибутов получаем новое отношение, с измененными именами атрибутов.
Пример 1.
Следующий оператор возвращает неименованное отношение, в котором атрибут переименован в
:
Теоретико-множественные операторы
Объединение
Определение 2. Объединением двух совместимых по типу отношений и
называется отношение с тем же заголовком, что и у отношений
и
, и телом, состоящим из кортежей, принадлежащих или
, или
, или обоим
отношениям.
Синтаксис операции объединения:
Замечание. Объединение, как и любое отношение, не может содержать одинаковых кортежей. Поэтому, если некоторый кортеж входит и в отношение , и отношение
, то в объединение он входит один раз.
Пример 2. Пусть даны два отношения и
с информацией о сотрудниках:
Табельный номер | Фамилия | Зарплата |
1 | Иванов | 1000 |
2 | Петров | 2000 |
3 | Сидоров | 3000 |
Таблица 1 Отношение A
Табельный номер | Фамилия | Зарплата |
1 | Иванов | 1000 |
2 | Пушников | 2500 |
4 | Сидоров | 3000 |
Таблица 2 Отношение B
Объединение отношений и
будет иметь вид:
Табельный номер | Фамилия | Зарплата |
1 | Иванов | 1000 |
2 | Петров | 2000 |
3 | Сидоров | 3000 |
2 | Пушников | 2500 |
4 | Сидоров | 3000 |
Таблица 3 Отношение A UNION B
Замечание. Как видно из приведенного примера, потенциальные ключи, которые были в отношениях и
не наследуются объединением этих отношений. Поэтому, в объединении отношений
и
атрибут "Табельный номер" может содержать дубликаты значений. Если бы это было не так, и ключи наследовались бы, то это противоречило бы понятию объединения как "объединение множеств". Конечно, объединение отношений
и
имеет, как и любое отношение, потенциальный ключ, например, состоящий из всех атрибутов.