Логические связи между отношениями 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Логические связи между отношениями



 

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

Связь устанавливается посредством связи ключей, содержащих общую информацию для обоих отношений. Пусть отношение R1 именуется главным, а R 2 – подчиненным. Ключ главного называется первичным, а подчиненного – вторичным. Особенностью вторичного ключа является то, что его значения могут повторяться.

Связь существует четырех типов:

1) один-к-одному (1:1);

2) один-ко-многим (1:М);

3) многие-к-одному (М:1);

4) многие-ко-многим (М:М).

В случае связи 1:1 одному значению первичного ключа соответствует одно и только одно значение вторичного ключа. Пример связи этого типа:

 

 

В случае связи 1:М одному значению первичного ключа может соответствовать несколько значений вторичного ключа. Пример связи этого типа:

 

В случае связи М:1 одному значению вторичного ключа может соответствовать несколько значений первичного. Пример связи этого типа:

 

В случае связи М:М одному значению первичного ключа может соответствовать несколько значений вторичного, и одному значению вторичного – несколько значений первичного. Пример связи этого типа:

 

 

(каждый поставщик может поставлять несколько товаров; каждый товар может поставляться несколькими поставщиками).

 

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

 

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

множество отношений должно обеспечивать минимальную избыточность данных;

корректировка отношений не должна приводить к двусмысленности или потере данных;

перестройка набора отношений при добавлении в БД новых полей должна быть минимальной.

Наиболее изученным способом преобразования отношений, позволяющих улучшить характеристики БД по перечисленным критериям, является нормализация отношений. Это процесс приведения отношений к той или иной нормальной форме. Методику нормализации отношений разработал американский ученый А. Ф. Кодд в 1970 г. Он выделил три нормальные формы - 1НФ, 2НФ, 3НФ. Позже стали выделять 4НФ и 5НФ. Каждая последующая нормальная форма вводит определенные ограничения на хранимые в БД данные.

Отношение находится в первой нормальной форме, если все его поля являются простыми. Пример ненормализованного отношения:

 

Книга Автор Цена, тыс.р. Телефон
А Крюк К. К. Лис Л. Л.   11-11-11 77-77-77
В Дудов Д. Д. Павлов П.П.   44-44-44 55-55-55

 

Отношение содержит клетки, включающие несколько значений поля. Приведение этого отношения к 1НФ производится путем вставки записей:

 

 

Книга Автор Цена, тыс.р. Телефон
А Крюк К. К.   11-11-11
А Лис Л. Л.   77-77-77
В Дудов Д. Д.   44-44-44
В Павлов П.П.   55-55-55

 

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

В предыдущем отношении неключевое поле «Телефон» не зависит от ключа «Книга». Для приведения этого отношения ко 2НФ его надо разбить на три:

1) информация о книгах:

 

Номер книги Книга Цена, тыс.р
  А  
  В  

 

2) информация об авторах:

 

Автор Телефон
Крюк К. К. 11-11-11
Лис Л. Л. 77-77-77
Дудов Д. Д. 44-44-44
Павлов П.П. 55-55-55

 

3) информация о том, какой автор написал какую книгу:

 

Автор Номер книги
Крюк К. К.  
Лис Л. Л.  
Дудов Д. Д.  
Павлов П.П.  

 

Все три отношения имеют 2НФ.

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

Приведем пример отношения, находящегося во 2НФ, такой структуры:

 

Таб. № Должность Оклад

 

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

 

В результате требования 3НФ удовлетворены.

 



Поделиться:


Последнее изменение этой страницы: 2017-01-27; просмотров: 769; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.138.204.208 (0.006 с.)