ТОП 10:

Организация данных в реляционных наборах данных.



Пусть имеет место несколько доменов: D1, D2, …, DN, каждый домен, представляет собой некоторое конечное множество элементов: D1={d11, d12, …, d1M1}, D2={d21,d22, …, d2M2}, … , DN={dN1, dN2, … , dNMN}. Например: БД о продаваемых автомобилях — D1-цвет автомобиля, D2-марка.

Из теории множеств взято понятие: декартово произведение; оно может быть сформировано на основе этих доменов, которое представляет собой множество всех кортежей длины N, которые могут быть построены как комбинация компонентов доменов, причем в каждый кортеж должно входить N элементов по одному из каждого домена. Каждый кортеж должен содержать N элементов. Не должно быть одинаковых кортежей. В каждый кортеж должен входить только один элемент из каждого домена. Другими словами, декартово произведение есть некоторое множество кортежей, типа {d1i1, d2i1, … , dnin}, где d1i1ÎD1, d2i2ÎD2, …, dninÎDN. Формально декартово произведение записывается так: D=D1*D2*…Dn

Пример: D1={A,2}; D2={4,5,6}; D=D1*D2={A4, A5, A6, 24, 25, 26}.

Отношения представляет собой ''подмножество'' декартового произведения доменов.

Определение: Отношение R, построенное на D1, D2, … ,DN, это подмножество декартового произведения D=D1*D2*…Dn.

Пусть: D1={A,2}; D2={B,C}; D3={4,5,6}; D=D1*D2*D3={AB4, AB5, AB6, AC4, AC5, AC6, 2B4, 2B5, 2B6, 2C4, 2C5, 2C6}. Þ может быть R1={AB4}; R1ÎD1*D2*D3; или R2={AB4, 2B4}; R2ÎD; Þ RmaxÎD Þ Rmaxº D.

Определение: арность отношения — количество элементов в каждом кортеже.

Определение: количество кортежей в отношении — мощность.

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

 
 

Таблица представляет N-арное отношение и имеет свойства:

1.) Каждая строка представляет собой кортеж из номеров значений принадлежащих номеру столбца;

2.) Порядок столбцов – фиксирован;

3.) Порядок строк – не имеет значения;

4.) Любые две строки различаются хотя бы одним элементом;

5.) Строки и столбцы могут обрабатываться в любой последовательности.

 

Отношение используется в БД двояко: для представления данных об объектах или сущностях, в виде набора однотипных объектов или сущностей; для представления или отображения связи между наборами объектов или сущностей. Каждое отношение характеризуется своей схемой, которая представляет собой набор атрибутов и записывается: RÞR(A1, A2, …, An).

 

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

 
 

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

 

1-ая нормальная форма имеет место, если все его атрибуты простые или атомарные.

Простым называется атрибут, значение которого атомарно (построено на одном домене и неделимо).

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

Пример:

R1            
Табельный номер Фам Оклад Комната Телефон Дети
Имя Возраст
Иванов 450 р. Женя Оля
Темкин 470 р. Саша
Кошкин 240 р. Олег Женя

 

Последний атрибут в данном исходном отношении является сложным и для перехода в 1 н.ф. это отношение должно быть преобразовано. Осуществляем разделение сложного атрибута на два простых и получае5м отношение R2/

 

 

R2            
Табельный номер Имя Возраст Фам Оклад Комната Телефон
Женя Иванов 450 р.
Оля Иванова 450 р.
Саша Темкин 470 р.
Олег Кошкин 240 р.
Женя Кошкин 240 р.

 

Отношение, представленное в первой нормальной форме, имеет некоторые свойства, которые являются нежелательными или недопустимыми при формировании СУБД.

2-ая нормальная форма . Рассмотрим понятие функциональной зависимости.

Атрибут Y функционально зависит от атрибута X(X ® Y), если в любой момент времени каждому значению X соответствует не более чем одно значение атрибута Y.

Например: Табельный номер « Фам.

Табельный номер функционально зависит от фамилии, и фамилия также зависит от табельного номера. Фам. ® Комната.

Номер комнаты функционально зависит от фамилии, но не наоборот Т.е. Фам. Комната.

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

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

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

Отсутствие полной функциональной зависимости между неключевыми атрибутами и ключевыми обуславливает следующие недостатки:

1). Имеет место дублирование информации;

2). Возникает проблема, как быть с сотрудниками у которых нет детей;

3). При изменении, например, оклада необходимо корректировать несколько записей или строк.

Атрибуты ФАМ, ОКЛАД, КОМНАТА, ТЕЛЕФОН, не находятся в полной функциональной зависимости от ключа. И следовательно отношение R2 должно быть преобразовано из первой нормальной формы во вторую нормальную форму.

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

Для перехода в 2 н.ф. необходимо из отношения R2 построить две проекции.

-Выделить из R2 в новое отношение R3 ту часть отношения R2, которая содержит составной ключ и неключевые атрибуты, зависящие функционально полно от ключа.

-Выделить из R2 в новое отношение R4 ту часть составного ключа и те неключевые, атрибуты, которые функционально зависят от этой части составного ключа (табельный номер).

В данном примере из R2 получаем R3 и R4.

R3    
Табельный номер Имя ребенка Возраст
Женя
Оля
Саша
Олег
Женя

 

R4        
Табельный номер Фам Оклад Комната Телефон
Иванов 450 р.
Темкин 470 р.
Кошкин 240 р.

 

3-ая нормальная форма (транзитивная).

Пусть имеются атрибуты X,Y,Z некоторого отношения. Пусть X ® Y, а Y ® Z . То есть имеет место: X ® Y ® Z. Z транзитивно зависит от Х, если имеют место прямые функциональные зависимости X ® Y, Y ® Z, но нет хотя бы одной обратной функциональной зависимости.

Пример транзитивной зависимости:

X Y Z

Табельный номерà Номер комнатыà Телефон

Табельный номер Номер комнатыà Телефон

То есть нет обратной фунуциональной зависимости поскольку каждому значению “Номер комнаты” может соответсвовать несколько “Табельных номеров”.

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

1). Номер телефона является характеристикой комнаты. Поэтому сведения о телефоне будут многократно дублироваться для всех сотрудников, рабочие места которых расположены в одной комнате (например, в комнате 12).

2). При изменении номера телефона необходимо корректировать не одну, а большее число строк или кортежей.

Поэтому рекомендуется перейти к 3 н.ф.

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

В данном примере, для преобразования отношения R3 в 3 н.ф. необходимо построить несколько проекций (R5 и R6).

 

R5      
Табельный номер Фам Оклад Комната
Иванов 450 р.
Темкин 470 р.
Кошкин 240 р.

R6 - списки всех комнат и данные о номерах телефонов, находящихся в комнатах.

Комната Телефон

Результирующими являются отношения R3, R5, R6. Нормализация отношений дает возможность:

- устранить частичные зависимости неключевых атрибутов от ключа;

- устранить транзитивные зависимости неключевых атрибутов от ключа;

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







Последнее изменение этой страницы: 2017-02-05; Нарушение авторского права страницы

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