Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
методичка без заданий часть1.pdf
Скачиваний:
11
Добавлен:
12.05.2015
Размер:
310.49 Кб
Скачать

Реляционная целостность

Реляционная целостность состоит из двух аспектов:

1)Целостность сущностей, заключается в том, что в базовом отношении ни один атрибут первичного ключа не может содержать отсутствующих значений, обозначаемых определителем NULL.

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

Нормализация, функциональные и многозначные зависимости

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

Нормализация — это разбиение таблицы на две или более, обладающих лучшими свойствами при включении, изменении и удалении данных. Окончательная цель нормализации сводится к получению такого проекта базы данных, в котором каждый факт появляется лишь в одном месте, т.е. исключена избыточность информации. Это делается не столько с целью экономии памяти, сколько для исключения возможной противоречивости хранимых данных.

Денормализация (denormalization) — намеренное приведение структуры базы данных в состояние, не соответствующее критериям нормализации, обычно проводимое с целью ускорения операций чтения из базы за счет добавления избыточных данных.

Теория нормализации основывается на наличии той или иной зависимости между полями таблицы. Определены два вида таких зависимостей: функциональные и многозначные.

Функциональная зависимость. Поле В таблицы функционально зависит от поля А той же таблицы в том и только в том случае, когда в любой заданный момент времени для каждого из различных значений поля А обязательно существует только одно из различных значений поля В. Отметим, что здесь допускается, что поля А и В могут быть составными.

В паре атрибутов одного отношения, X и Y, атрибут Y функционально зависит от атрибута X, если в данном отношении одному значению X соответствует в точности одно значение Y.

Полная функциональная зависимость. Поле В находится в полной функциональной зависимости от составного поля А, если оно функционально зависит от А и не зависит функционально от любого подмножества поля А.

- 28 -

Многозначная зависимость. Поле А многозначно определяет поле В той же таблицы, если для каждого значения поля А существует хорошо определенное множество соответствующих значений В.

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

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

Функционально полная зависимость означает, что атрибут функционально зависит от всего первичного ключа, но при этом не находится в функциональной зависимости от какой-либо его части.

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

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

Данная нормальная форма — это модификация третьей нормальной формы. Таблица может находиться в 3НФ, но не в НФБК, только в одном случае: если она имеет, помимо первичного ключа, ещё по крайней мере один составной возможный ключ, и по крайней мере один из атрибутов таблицы входит и в первичный, и в возможный ключи. Такое бывает достаточно редко, в остальном 3НФ и НФБК эквивалентны.

Таблица находится в четвертой нормальной форме (4НФ), если она находится в НФБК и не содержит нетривиальных многозначных зависимостей. Многозначная зависимость не является функциональной, она существует в том случае, когда из факта, что в таблице содержится некоторая строка X, следует, что в таблице обязательно существует некоторая определённая строка Y.

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

Процесс нормализации — это процесс последовательной замены таблицы ее полными декомпозициями до тех пор, пока все они не будут находиться в 5НФ. На практике же достаточно привести таблицы к НФБК и с большой гарантией считать, что они находятся в 5НФ. Разумеется, этот факт нуждается в проверке, однако пока не существует эффективного алгоритма

- 29 -

такой проверки. Поэтому остановимся лишь на процедуре приведения таблиц к НФБК.

Эта процедура основывается на том, что единственными функциональными зависимостями в любой таблице должны быть зависимости вида K->F, где K — первичный ключ, а F — некоторое другое поле. Заметим, что это следует из определения первичного ключа таблицы, в соответствии с которым K->F всегда имеет место для всех полей данной таблицы. "Один факт в одном месте" говорит о том, что не имеют силы никакие другие функциональные зависимости. Цель нормализации состоит именно в том, чтобы избавиться от всех этих "других" функциональных зависимостей, т.е. таких, которые имеют иной вид, чем K->F.

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

Следует рассмотреть два случая:

1) Таблица имеет составной первичный ключ вида, скажем, (К1,К2), и включает также поле F, которое функционально зависит от части этого ключа, например, от К2, но не от полного ключа. В этом случае рекомендуется сформировать другую таблицу, содержащую К2 и F (первичный ключ — К2), и удалить F из первоначальной таблицы:

Заменить

T(K1,K2,F),

первичный ключ (К1,К2), ФЗ К2->F

на

T1(K1,K2),

первичный ключ (К1,К2),

и

T2(K2,F),

первичный ключ К2.

2) Таблица имеет первичный (возможный) ключ К, не являющееся возможным ключом поле F1, которое, конечно, функционально зависит от К, и другое неключевое поле F2, которое функционально зависит от F1. Решение здесь, по существу, то же самое, что и прежде — формируется другая таблица, содержащая F1 и F2, с первичным ключом F1, и F2 удаляется из первоначальной таблицы:

Заменить

T(K,F1,F2),

первичный ключ К, ФЗ F1->F2

на

T1(K,F1),

первичный ключ К,

иT2(F1,F2), первичный ключ F1.

Для любой заданной таблицы, повторяя применение двух рассмотренных правил, почти во всех практических ситуациях можно получить в конечном счете множество таблиц, которые находятся в "окончательной" нормальной форме и, таким образом, не содержат каких-либо функциональных зависимостей вида, отличного от K->F.

- 30 -

Лабораторная работа №3

Задание для лабораторной работы №3. Цели работы:

Нормализовать таблицы.

Выделить все ключевые поля (суперключи, потенциальные ключи, первичные ключи и внешние ключи).

Составить ER (IDEF, UML по вариантам) диаграммы.

Записать формулы реляционной алгебры, выводящие на основе нормализованных таблиц исходные таблицы.

Таблица 1

ФИО

 

Должность

форма

тел

 

 

 

 

 

 

Иванов

Техник

Зелёная форма

12-51

 

 

 

 

 

 

Сидоров

Кузовщик

Синяя форма

14-52, 16-82

 

 

 

 

 

 

Петров

тех контроль

Жёлтая форма

13-12, 14-23, 12-

 

 

 

 

 

 

 

52

 

 

 

 

 

 

Шапкин

Кузовщик

Синяя форма

14-52, 16-12

 

 

 

 

 

 

Кулаков

тех контроль

Жёлтая форма

16-25, 12-54, 13-

 

 

 

 

 

 

 

34

 

 

 

 

 

 

Зеленков

Кузовщик

Синяя форма

14-23, 16-28

 

 

 

 

 

 

Халтурин

Техник

Зелёная форма

12-53

 

 

 

 

 

 

 

 

Таблица 2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Продукция

 

 

Упаковка

 

 

Цех

 

 

 

 

 

 

 

 

Краска ТУ 124-89

 

 

Банка 3 кг,

Банка 5

кг,

Цех 1

 

 

 

 

Балончик 100 гр, Балон-

 

 

 

 

 

чик 250 гр.

 

 

 

 

 

 

 

 

 

 

 

Краска ТУ 512-2005

 

Банка 1 кг,

Банка 5

кг,

Цех 2

 

 

 

 

Балончик 100 гр

 

 

 

 

 

 

 

 

Растворитель

 

 

Пэт 100 гр, Пэт 500 гр,

Цех 1, Цех 3

ТУ 1245-98

 

 

Банка 1 кг

 

 

 

 

 

 

 

 

 

Растворитель

 

 

Пэт 250 гр, Пэт 500 гр.

Цех 2, Цех 3

ТУ 5125-2006

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Растворитель

 

 

Пэт 250 гр, Банка 3 кг

 

Цех 3

 

ТУ 1245-98

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

- 31 -

Таблица 3

Должность

ФИО

 

Новость

 

 

 

 

 

 

Журналист

Петров

Финансы: Индекс цен в Казани

 

 

 

Хроника: Происшествие на Булаке

 

Пресс-секретарь

Сидорова

Политика: Повестка дня на заседании гос.

 

 

Совета

 

 

 

 

 

Юриспруденция:

Обзор

изменений

в

 

 

законодательство за последние полгода

 

Журналист

Иванов

Финансы: краткосрочный прогноз

 

 

 

Хай-тек: Обзор новинок на выставке ИТ

 

Таблица 4

Марка

Номер

Маршрут

Водители

автомобиля

Рейса

 

 

 

 

 

 

 

 

Камаз

231

Москва, Нижний

Новгород,

Иванов, Петров

 

 

Казань

 

 

Ман

123

Владимир, Казань, Уфа

Петров, Сидоров

 

 

 

 

 

Мерседес

135

Чистополь,

Челны,

Сидоров, Иванов

 

 

Альметьевск

 

 

Камаз

135

Чистополь,

Челны,

Иванов, Сидоров

 

 

Альметьевск

 

 

Ман

231

Москва, Нижний

Новгород,

Петров, Сидоров

 

 

Казань

 

 

Мерседес

123

Владимир, Казань, Уфа

Иванов, Петров

 

 

 

 

 

- 32 -