Первая нормальная форма. Нормализация отношений реляционной БД

Нормализация отношений реляционной БД

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

Известно 5 нормальных форм (НФ) отношений. Нормализация выполняется поэтапно. Сначала отношение приводится к первой НФ (1НФ), затем - ко 2НФ и т.д. вплоть до 5НФ. Однако для устойчивой работы БД часто оказывается достаточным, если ее отношения находятся в 3НФ.

Между формами существует следующая связь. Если отношение находится в 3НФ, то это значит, что оно уже находится во 2НФ и 1НФ.

Считается, что отношение находится в 1НФ, если значение каждого его атрибута не структурировано. Это означает, что на пересечении каждого столбца и каждой строки таблицы должно находиться одно единственное значение.

В рассмотренной нами выше предметной области о поставках на предприятие изделий поставщик П1 поставляет в определенных количествах изделия И1, И2 и И3, поставщик П2 - изделия И1 и И2, а поставщик П3 - изделие П4. Отобразим эти данные в таблице ПОСТАВКИ 1. Такой вид таблицы типичен для многих документов. Так, например, в одну колонку таблицы часто помещают фамилию, имя и отчество человека или адрес, содержащий почтовый индекс, город, улицу, номер дома, номер квартиры.

Номера поставщиков П# уникальны, и этот атрибут можно принять в качестве первичного ключа отношения.

ПОСТАВКИ 1 ПОСТАВКИ


П# ПК
И# Кол
П1 И1 И2 И3  
П2 И1 И2  
П3 И4  
П# И# Кол
П1 П1 П1 П2 П2 П3 И1 И2 И3 И1 И2 И4  

Можно заметить, что в отношении ПОСТАВКИ 1 значения ключа П# идентифицирует сразу несколько значений не ключевых атрибутов И# и Кол, что недопустимо. (В таблице на пересечении, например, строки П1и столбца И# содержится несколько значений номеров изделий). Это отношение находится не в 1НФ.

Преобразуем отношение так, чтобы устранить этот недостаток. В преобразованном отношении ПОСТАВКИ первичный ключ - составной П# И# и каждое значение первичного ключа идентифицирует единственное значение не ключевого атрибута Кол. Это отношение находится в 1НФ.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: