Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
BD_KL_2010_14.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
28.97 Mб
Скачать

2.4.4.Третья нормальная форма: устранение транзитивных зависимостей

Третья нормальная форма (3НФ) требует, чтобы в таблице не имелось транзитивных зависимостей между неключевыми полями, т. е. чтобы значение любого поля, не входящего в первичный ключ, не зависело от другого поля, также не входящего в первичный ключ.

Пусть A, B, C − три атрибута или три набора атрибутов отношения R. Если C зависит от B, а B − от A, то C зависит от A. Если при этом обратное соответствие неоднозначно (т. е. A не зависит от B, или B не зависит от C), то говорят, что C транзитивно зависит от A.

В нашем примере можно увидеть, что в таблице «ОТПУСК ТОВАРОВ» имеется зависимость значения поля «Общая стоимость» от значения поля «Отпущено единиц». Поэтому поле «Общая стоимость» из таблицы «ОТПУСК ТОВАРОВ» удаляем. Следует отметить, что здесь рассматривается частный случай правила приведения к 3НФ, так как удаляемое поле является вычисляемым. Схема базы данных, приведенной к 3НФ, показана на Рис. 1.1. .

Рис. 1.1. Нормализованная база данных, приведенная к 3НФ

Переход от 2НФ к 3НФ в соответствии с общим правилом содержит следующие шаги:

  1. Определить поля (или группы полей), от которых зависят другие поля.

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

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

2.5.Системный каталог

Как уже было отмечено выше, для управления данными СУБД должна иметь в своем составе базу метаданных, содержащую сведения о структуре базы данных. В реляционных СУБД для этой цели предназначены так называемые системные каталоги, представляющие собой совокупности системных таблиц, используемых для внутренних целей. В этих таблицах содержатся описания таблиц, представлений, столбцов и других структурных элементов баз данных.

2.5.1.Назначение системного каталога

Таблицы системного каталога создаются автоматически при создании базы данных и сопровождаются самой СУБД в ходе ведения базы данных.

При обработке инструкций SQL СУБД постоянно обращается к данным системного каталога. Например, чтобы обработать двухтабличную инструкцию SELECT, СУБД должна:

  • проверить, существуют ли указанные в запросе таблицы;

  • убедиться, что пользователь имеет разрешение на доступ к ним;

  • проверить, существуют ли столбцы, на которые имеются ссылки в данном запросе;

  • установить к каким таблицам относятся имена столбцов;

  • определить типы данных каждого столбца.

Так как информация о структуре базы данных хранится в системных таблицах, СУБД использует свои собственные методы и алгоритмы для быстрого доступа к информации, необходимой для выполнения перечисленных задач.

Системные таблицы доступны и для пользователей, но пользователи могут только извлекать информацию из системного каталога. СУБД запрещает модифицировать системные таблицы, так как это может нарушить целостность базы данных. СУБД сама вставляет, удаляет и обновляет строки системных таблиц во время модифицирования структуры базы данных.

Изменения в системных таблицах происходят в качестве побочного результата выполнения таких инструкций как CREATE, ALTER, DROP, GRANT и REVOKE.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]