- •4.2. Основные понятия рбд (отношение, сущность, атрибут, связь, ключ, домен, примеры)
- •4.3. Нормализация отношений (1, 2, 3 нф; нфбк; фз; потенциальный ключ; детерминант; пример)
- •4.4. Целостность реляционных данных. Преимущества и недостатки рмд
- •4.5. Реляционные операции. Операции над отношениями
- •Контрольные вопросы
- •4.6. Постановка задачи проектирования рбд с использованием метода «сущность-связь» (сущность, связь, атрибут, er-диаграмма)
- •4.7. Построение er-диаграммы предметной области (er-диаграммы экземпляров и классов; пример)
- •4.8. Бинарных связи и классы принадлежности. Случай 1 – связь 1:1, кп обеих сущностей обязательный
- •4.10. Примеры er-диаграмм: случай 4 – связь 1:n, кп сущностей необязательный; случай 5 – связь n:1, кп сущностей обязательный; случай 6 – связь m:n, кп сущностей необязательный
- •Контрольные вопросы
- •4.11. Получение предварительных отношений из er-диаграмм для бинарных связей 1:1 (шаги использования метода; правило 1 – кп сущностей обязательный)
- •4.9. Примеры er-диаграмм (связь 1:1): случай 2 – кп сущностей обязательный и необязательный; случай 3 – кп обеих сущностей необязательный
- •4.12. Получение предварительных отношений из er-диаграмм для бинарных связей 1:1 (правило 2 – кп сущностей обязательный и необязательный; правило 3 – кп обеих сущностей необязательный)
- •4.13. Пример проекта бд «Проводники и озера» (бинарная связь 1:1; кп сущностей обязательный и необязательный; er-диаграммы для экземпляров и классов; диаграмма фз; анализ на нфбк)
- •Контрольные вопросы
- •4.14. Получение предварительных отношений из er-диаграмм для бинарных связей 1:n (правило 4 – кп n-связной сущности обязательный; правило 5 – кп n-связной сущности необязательный)
- •Отношение «Читает»
- •Контрольные вопросы
- •4.15. Получение предварительных отношений из er-диаграмм для
- •4.16. Пример проектирования бд с тройственной связью («Проводник обслуживает Озеро, в нем водится Рыба»; постановка задачи; атрибуты; er-диаграммы; диаграммы фз; отношения)
- •Контрольные вопросы
4.3. Нормализация отношений (1, 2, 3 нф; нфбк; фз; потенциальный ключ; детерминант; пример)
В ходе разработки РБД должен быть определен состав взаимосвязанных реляционных таблиц и определен состав атрибутов каждого отношения с указанием ограничений на их допустимые значения. Состав атрибутов должен отвечать требованиям нормализации. Нормализация отношений производится на этапе концептуального проектирования БД.
Существует несколько нормальных форм (НФ) реляционной модели данных (РМД), которые позволяют исключить избыточное дублирование данных, обеспечить целостность и непротиворечивость данных.
При первой нормальной форме (1НФ) все атрибуты отношения должны быть простыми (атомарными, неделимыми) с точки зрения СУБД.
НФ более высокого порядка основаны на понятии функциональной зависимости (ФЗ), которая может быть определена следующим образом.
Пусть А и В - подмножества атрибутов отношения. Говорят, что В функционально зависит от А (А-->В), если для каждого значения А существует ровно одно связанное значение В. ФЗ можно выявить, исходя из базовых свойств самих атрибутов путем анализа.
При второй нормальной форме (2НФ) должна обеспечиваться 1НФ и каждый неключевой атрибут функционально полно зависит от ключа.
Полная ФЗ от ключа означает, что если ключ составной, то любой неключевой атрибут зависит от всего ключа и не зависит ни от какой его части.
При третьей нормальной форме (ЗНФ) отношение должно находиться 2НФ, а также каждый неключевой атрибут нетранзитивно зависит от ключа, проще говоря: отсутствуют ФЗ между неключевыми атрибутами.
Нормальная форма Бойса-Кодда (НФБК) является развитием ЗНФ и требует, чтобы в отношении были только такие ФЗ, левая часть которых является потенциальным ключом отношения. Потенциальным ключом называется такое подмножество атрибутов отношения, которое удовлетворяет определению первичного ключа отношения. Фактически первичный ключ - это один из потенциальных ключей, назначенный в качестве первичного.
Поясним эти определения на примере.
Пример 4.3. Рассмотрим БД «Успеваемость студентов общежития». БД состоит из одного отношения, в котором представлена информация о студентах, проживающих в общежитии, и их оценках по изучаемым дисциплинам в различных семестрах.
Задано отношение:
Студент (<Сном>, <Сфам>, <Кном>, <Тном>, <Дисциплина>, <Семестр>, <Оценка>)
Основные атрибуты отношения: номер зачетной книжки студента (Сном); фамилия студента (Сфам); номер комнаты (Кном), где он проживает; номер телефона (Тном) в комнате (предполагается, что один телефон на одну комнату); дисциплина; семестр; оценка. Диаграмма (рис. 4.2) отражает ФЗ между атрибутами отношения: Сном-->Сфам, Сном-->Кном, Сном-->Тном, Кном-->Тном, Тном->Кном, <Сном,Дисциплина,Семестр --> Оценка.
Рис. 4.2. Диаграмма ФЗ отношения Студент
Рассмотрим некоторые определения.
Потенциальный ключ представляет собой атрибут (или множество атрибутов), который может быть использован для данного отношения в качестве первичного ключа.
Детерминантом называется левая часть ФЗ.
Большинство возможных аномалий в БД будет устранено в случае приведения каждого отношения в НФБК. Эта форма определяется следующим образом: отношение находится в НФБК тогда и только тогда, когда каждый детерминант отношения является потенциальным ключом.
Существуют НФ более высокого уровня, которые накладывают более сильные ограничения; на практике в большинстве случаев достаточно получить отношения в НФБК.
В отношении Успеваемость студентов общежития один потенциальный ключ <Сном, Дисциплина, Семестр>. Детерминантами являются: <Сном, Дисциплина, Семестр>, <Сном>, <Кном>, <Тном>. Представим списки детерминантов и потенциальных ключей в виде таблицы (табл. 5).
Таблица 5
Списки детерминантов и потенциальных ключей
Потенциальные ключи |
Детерминанты |
<Сном, Дисциплина, Семестр> |
<Сном, Дисциплина, Семестр> <Сном> <Кном> <Тном> |
Очевидно, что данное отношение не находится в НФБК, так как детерминанты Сном, Кном, Тном не являются потенциальными ключами. Для приведения отношения к НФБК его следует разбить на три отношения:
Студент (Сном, Сфам, Кном)
Оценка (Сном, Дисциплина, Семестр, Оценка)
Телефон (Кном, Тном).
Каждое из этих отношений находится в НФБК, так как в них все детерминанты являются потенциальными ключами.
