- •Содержание
- •Список сокращений
- •Введение
- •Основные понятия теории баз данных
- •Понятие системы баз данных
- •Базы данных и их назначение
- •Данные и модели данных
- •Типы систем баз данных
- •Архитектура системы баз данных
- •Уровни архитектуры
- •Система управления базами данных
- •Система управления передачей данных
- •Архитектура «клиент-сервер»
- •Утилиты
- •Распределенная обработка
- •Семантическое моделирование
- •Общий подход
- •Модель «сущность/связь»
- •Введение в реляционные базы данных
- •Реляционная модель
- •Отношения и переменные-отношения
- •Оптимизация
- •Каталог
- •Базовые переменные отношения и представления
- •Транзакции
- •Введение в язык sql
- •Обзор языка sql
- •Каталог в sql
- •Представления
- •Транзакции в sql
- •Взаимодействие приложений и субд
- •Домены, отношения и базовые переменные-отношения
- •Значения отношений
- •Средства sql
- •Реляционная алгебра
- •Введение в реляционную алгебру
- •Реляционная замкнутость
- •Синтаксис
- •Семантика
- •Примеры
- •Назначение реляционной алгебры
- •Реляционное исчисление
- •Введение в реляционное исчисление
- •Исчисление кортежей
- •Примеры для исчисления кортежей
- •Средства языка sql
- •Целостность данных
- •Введение в целостность данных
- •Ограничения типа
- •Ограничения атрибута
- •Ограничения переменной-отношения
- •Ограничения баз данных
- •«Золотое правило»
- •Ограничения состояния и ограничения перехода
- •Средства языка sql
- •Функциональные зависимости
- •Введение
- •Основные определения
- •Тривиальные и нетривиальные зависимости
- •Замыкание множества зависимостей
- •Замыкание множества атрибутов
- •Неприводимые множества зависимостей
- •Нормализация: формы 1нф, 2нф, 3нф и нфбк
- •Введение
- •Декомпозиция без потерь и функциональные зависимости
- •Первая, вторая и третья нормальные формы
- •Нормальная форма Бойса-Кодда
- •Нормализация: более высокие нормальные формы
- •Многозначные зависимости и четвертая нормальная форма
- •Зависимости соединения и пятая нормальная форма
- •Общая схема процедуры нормализации
- •Вопросы для самопроверки
- •Дополнительная литература
Декомпозиция без потерь и функциональные зависимости
Прежде чем приступить к изложению подробностей процедуры нормализации, следует обсудить один существенный аспект этой процедуры, а именно – концепцию декомпозиции без потерь. Как отмечалось, процедура нормализации включает разбиение, или декомпозицию, данной переменной-отношения на другие переменные-отношения, причем она должна быть обратимой. Иначе говоря, интерес представляют лишь те операции, которые выполняются без потерь информации. Вопрос происходит ли утрата информации при декомпозиции, тесно связан с концепцией функциональной зависимости.
В качестве примера рассмотрим знакомую переменную-отношение поставщиков без атрибута SNAME. Два возможных варианта проведения ее декомпозиции приведены на рис. 11.2: а и б.
S |
|
||||||||||||||
а) SST |
|
SC |
|
||||||||||||
б) SST |
|
STC |
|
||||||||||||
Рис. 11.2. Переменная-отношение S и два возможных варианта ее декомпозиции
Можно отметить, что первый вариант является декомпозицией без потерь, поскольку информация, содержащаяся в двух новых переменных-отношениях, соответствует информации в исходной переменной-отношении, т.е. при обратном соединении переменных-отношений SST и SC будет получена исходная переменная-отношение S. Однако второй вариант не является декомпозицией без потерь, так как здесь информация утрачивается, поскольку оба поставщика имеют статус 30, но при этом нельзя сказать, кто и где находится.
Возникает вопрос, почему в одном случае идет потеря информации, а в другом – нет. Прежде всего, следует отметить, что процесс, который до сих пор назывался декомпозицией, на самом деле является операцией проекции, т.е. фактически в процессе нормализации оператор декомпозиции есть оператор проекции.
«Обратимость» означает, что исходная переменная-отношение равна соединению ее проекций. Если оператором декомпозиции в процедуре нормализации является операция проекции, то обратной операцией должна быть операция соединения.
Формально: Пусть R1 и R2 являются проекциями некоторой переменной-отношения R, содержащими все атрибуты переменной-отношения R. Какие условия должны быть соблюдены для того, чтобы при обратном соединении проекций R1 и R2 гарантировать получение исходной переменной-отношения R?
Для ответа на этот вопрос необходимо рассмотреть ФЗ. В нашем примере для переменной-отношения S имелось следующее неприводимое множество ФЗ:
S# STATUS
S# CITY
Можно предположить, что переменная-отношение S равна соединению проекций {S#, STATUS} и {S#, CITY}. И это подтверждается теоремой Хита (Heath).
Теорема Хита. Пусть R{A,B,C} является переменной-отношением, где A, B и C – множества атрибутов этой переменной-отношения. Если R удовлетворяет ФЗ A B, то R равна соединению проекций {A, B} и {A, C}.
Диаграммы ФЗ
Пусть дана переменная-отношение R и пусть к ней применимо некоторое неприводимое множество функциональных зависимостей I. Удобнее всего представить это множество ФЗ в виде диаграммы функциональных зависимостей (диаграммы ФЗ). На рис. 4.5 представлены диаграммы ФЗ для переменных-отношений S, SP и P соответственно.
Рис. 11.3. Диаграмма ФЗ для переменных-отношений S, SP, P
Как видно, стрелки начинаются с потенциального ключа. Однако, может быть и так, что стрелки начинаются и не с потенциального ключа. Процедура нормализации может быть неформально охарактеризована как процедура исключения стрелок, которые не начинаются с потенциальных ключей.
ФЗ – это особый вид ограничений целостности, а потому они, несомненно, являются понятием семантическим. Распознавание ФЗ представляет собой часть процесса выяснения смысла тех или иных данных.
