русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Нормальные формы.


Дата добавления: 2013-12-23; просмотров: 1602; Нарушение авторских прав


Нормальная форма – определенные свойства отношений или условия, накладываемые на реляционные отношения с целью устранения аномалий. Нарушения отношения нормальной формы говорит о необходимости его декомпозиции, то есть разбиении на два или более отношений. Нормальные формы являются вложенными:

Первая <вторая <третья<Бойся кодда<четвертая<пятая

То есть отношение находится в н-ной нормальной форме если оно находится в н-1 нормальной форме и для него выполняются дополнительные условия. Наиболее важными нормальными формами являются формы Бойся кодда и третья.

Первая нормальная форма.

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

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

- значение атрибута имеет собственную структуру, например, адрес можно написать строкой, а можно выделить поля индекс, город, улица и т.д. В этом случае либо создается новое отношение с элементарными атрибутами, связанное с исходным связью «один к одному», либо элементарные атрибуты помещаются в исходное отношение. Решение о декомпозиции отношения зависит от предметной области. Где-то достаточно записать адрес одной строкой, а иногда необходимо выполнять поиск по улицам и номерам домов.

 

Вторая нормальная форма.

Основывается на понятии полной (минимальной) функциональной зависимости, когда зависимая часть зависит только полностью от детерминанта и не зависит от его частей.

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



 

Нормальная форма Бойся-кодда.

Данная нормальная форма предъявляет к базе данных наиболее жесткие требования. Отношение находится в нормальной форме Бойся-кодда, если для любой нетривиальной и минимальной функциональной зависимости в качестве детерминанта выступает суперключ отношения.

НФБК является условием отсутствия избыточности, вызванной функциональными зависимостями. Покажем это.

Возьмем схему R, которая находится в НФБК. Предположим, что в отношении r со схемой R может быть избыточность, и мы можем вывести значение некоторого атрибута, применив функциональную зависимость.

X Y A
Х y1 a
X y2 ?

Чтобы вывести значение атрибута А, необходимо иметь два кортежа t1 и t2, у которых значения атрибутов х совпадают, а значения атрибутов y отличаются.

Чтобы вывести значение, помеченное знаком вопроса, нужна функциональная зависимость Z→A, при этом Z является подмножеством X, то есть какое-либо подмножество атрибутов с совпадающими значениями должно определять А. Но здесь мы сталкиваемся с противоречием: существование двух кортежей t1 и t2 возможно, если y1 не равен y2. Иначе они станут дубликатами и один из них придется исключить из отношения.

Однако из определения НФБК Z-суперключ, следовательно, Z→Y. Из определения функциональной зависимости: y1=y2. Таким образом, они равны и в НФБК нельзя вывести значение атрибута, используя функциональную зависимость.

НФБК накладывает жесткие ограничения на схему, что приводит в некоторых случаях к невозможности нормализации.

Пример: схема={город, улица, индекс},

Город, улица → индекс,

Индекс → город.

В этой таблице можно выделить два ключа:

К1={город, улица},

К2={индекс, улица}

1 зависимость удовлетворяет НФБК.

2 зависимость нарушает нашу форму, так как индекс не является ключом. Таким образом, приводя к НФБК, мы теряем зависимость, а если сохраняем зависимость, то не получим НФБК.

 

Третья нормальная форма.

Из-за того, что в ряде случае схемы баз данных нельзя привести к НФБК, была предложена более слабая нормальная форма, называемая третьей. Она обладает большинством достоинств НФБК, то есть избавляет от аномалий и сохраняет зависимости. Однако в базе данных может остаться некоторая избыточность.

Будем называть атрибут А первичным, если он входит в состав какого-либо ключа. Пример:

R={A, B, C, D}

AB→C

B→В

BC→A

K1=AB

K2=BC

Реляционная схема R с функциональными зависимостями F находится в третьей нормальной форме, если для каждой нетривиальной зависимости X→A справедливо, что либо Х – суперключ в R, либо атрибут А первичен.

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

Пример: Поставщик={Имя, адрес, товар, цена}

{Имя} → {адрес}

{имя, товар} → {цена}

К={имя, товар}

В этом отношении нарушаются и третья, и вторая нормальные формы, так как первичный атрибут определяется не ключом.

Отношение город, улица, индекс не нарушает третьей нормальной формы, так как индекс → город определяет не первичный атрибут.

Третья нормальная форма не позволяет полностью избежать избыточности, например:

Город Улица Индекс
С S1 i
? S2 i

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

 

Существуют два направления проектирования схемы базы данных:

- приводим к НФБК, но допускаем, что декомпозиция может потерять зависимости,

- довольствуемся третьей нормальной формой, но в базе данных может быть избыточность.

 



<== предыдущая лекция | следующая лекция ==>
Функциональные зависимости. | Графическое представление функциональных зависимостей.


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.006 сек.