Определение первичных ключей 


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



ЗНАЕТЕ ЛИ ВЫ?

Определение первичных ключей



 

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

Первичный ключ должен удовлетворять следующим условиям:

значение ключа должно присутствовать в каждом экземпляре сущности;

значение ключа должно быть уникальным для каждого экземпляра сущности.

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

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

Таблица 1.3. Первичные ключи сущностей

Сущность Первичный ключ Примечание
     
     

 

Если в качестве первичного ключа введен новый атрибут, то для него в графе «Примечание» указывается НОВЫЙ.

 

Нормализация сущностей

 

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

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

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

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

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

Сущность находитсяв первой нормальной форме (1НФ), если все ее атрибуты можно рассматривать как неделимые элементы. Ненормализованное отношение легко привести к первой нормальной форме.

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

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

Сущность R0 ненормализованная сущность «Читатели». Первичный ключ сущности R0 является составным и состоит из атрибутов: «Номер читательского билета» и «Читальный зал». Преобразуем ненормализованную сущность R0 «Читатели», приведя ее к 1НФ. Для этого сложный атрибут

Таблица 1.4. Сущность R0.

Номер читательского билета Фами-лия, И.О. Дата рожде-ния Домаш-ний теле-фон Номер читального зала Читаль-ный зал Выданы книги (номер, дата выдачи)
  Иванов И.И. 12.02. 32-01-15   Художест-венный 125114, 05.12.2000 317105, 15.01.2001 237912, 14.02.2001
  Петрова П.П. 17.07. 95-17-18   Научный 735101, 25.01.2001 854205, 01.02.2001
  Сидоров С.С. 25.10. 76-06-01   Художест-венный 485119, 14.01.2001

 

«Выданы книги» разобьем на два простых – «Номер выданной книги» и «Дата выдачи». Преобразование сущности к первой нормальной форме может привести к увеличению мощности сущности и изменению первичного ключа. Ключ полученной в результате преобразования сущности R1 является составным и состоит из атрибутов: «Номер читательского билета» и «Номер выданной книги».

Таблица 1.5. Отношение R1.

Номер чита-тельс-кого билета Фами-лия Дата рождения Домаш-ний телефон Номер чи-таль-ного зала Читаль-ный зал Номер выданной книги Дата выдачи
(Н) (Ф) (Р) (Т) (З) (Ч) (К) (В)
  Иванов И.И. 12.02.1974 32-01-15   Художественный   05.12.2000
  Иванов И.И. 12.02.1974 32-01-15   Художественный   15.01.2001
  Иванов И.И. 12.02.1974 32-01-15   Художественный   14.02.2001
  Петрова П.П. 17.07.1961 95-17-18   Научный   25.01.2001
  Петрова П.П. 17.07.1961 95-17-18   Научный   01.02.2001
  Сидоров П.П. 25.10.1980 76-06-01   Художественный   14.01.2001

 

Атрибуты сущности R1 обозначим соответственно символами Н, Ф, Р, Т, З, Ч, К, В. Недостатком сущности R1 является то, что она содержит повторяющиеся группы данных. Это, во-первых, увеличивает объем базы данных; во-вторых, при изменении, например, домашнего номера телефона понадобится корректировать не один, а несколько экземпляров сущности. Кроме того, при удалении информации о выданных книгах исчезнет вся информация о читателе. Поэтому, для избавления от вышеперечисленных недостатков сущность, находящуюся в 1НФ, нужно преобразовать во 2НФ.

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

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

Например, высказывание «каждый читатель имеет единственное значение номера читательского билета и не более одного домашнего телефона» соответствует функциональным зависимостям: «Фамилия® номер читательского билета», «Фамилия ® номер телефона». Высказывание «Каждый читальный зал имеет только один номер» соответствует функциональной зависимости: «Номер читального зала ® Читальный зал».

В 1НФ все не ключевые атрибуты функционально зависят от ключа сущности.

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

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

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

Анализ предметной области для сущности R1 позволил выявить неключевые атрибуты, которые функционально полно зависят от составного первичного ключа, а именно:

НК®В   По читательскому билету книга с инвентарным номером выдается только один раз.

 

В то же время имеются не ключевые атрибуты, которые функционально не полно зависят от первичного ключа, а именно:

 

Н®Ф   Читательский билет соответствует только одному человеку с определенной фамилией и инициалами.
Н®Р Дата рождения читателя единственна.
Н®Т Домашний телефон читателя единственен.
К®З Каждая книга прикреплена к определенному читальному залу.

 

Методику приведения сущности ко второй нормальной форме продемонстрируем на примере сущности R1. Напомним, что тип сущности определяется составом входящих в него атрибутов. Соответственно, тип сущности R1 – это совокупность атрибутов: Номер читательского билета (Н), Фамилия (Ф), Дата рождения (Р), Домашний телефон (Т), Номер читального зала (З), Читальный зал (Ч), Номер выданной книги (К), Дата выдачи (В). Обозначим условно тип сущности R1 НФРТЗЧКВ. Ключом сущности R1 является совокупность атрибутов с условными именами НК. Для приведения сущности R1 ко второй нормальной форме необходимо выполнить следующие шаги:

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

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

Частями составного ключа являются Н и К. Сначала рассмотрим зависимости, начинающиеся с атрибута Н. Такими зависимостями являются: Н®Ф, Н®Р, Н®Т. На основании этих зависимостей и правила объединения [2] строится зависимость Н®ФРТ и сущность НФРТ, находящаяся во 2НФ.

Теперь рассматривается зависимость К®З. Так как номер читального зала определяет его наименование, то имеет место зависимость: З®Ч. На основании правил вывода получаем зависимость: К®Ч. На основании этих зависимостей строится сущность КЗЧ, которая также находится во 2НФ.

Таким образом, сущность R1 преобразована в сущности R2, R3, R4, которые имеют 2НФ.

Таблица 1.6. Сущность R2 Таблица 1.7. Сущность R3

Номер чита-тель-ского билета Номер выдан-ной книги Дата выдачи   Номер чита-тель-ского билета Фамилия Дата рождения Домаш-ний теле-фон
(Н) (К) (В)   (Н) (Ф) (Р) (Т)
    05.12.2000     Иванов И.И. 12.02.1974 32-01-15
    15.01.2001     Петрова П.П. 17.07.1961 95-17-18
    14.02.2001     Сидоров С.С. 25.10.1980 76-06-01
    25.01.2001    
    01.02.2001    
    14.01.2001    

 

Таблица 1.8. Сущность R4

Номер выдан-ной книги Номер читаль-ного зала Читальный зал
(К) (З) (Ч)
    художественный
    научный
    художественный
    научный
    научный
    художественный

 

Объединение полученных типов сущностей позволяет получить исходный тип НФРТЗЧКВ.

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

В сущности R4 имеется транзитивная зависимость: К®З®Ч, так как отсутствует функциональная зависимость З®К. В сущности R3 имеются функциональные зависимости Н®Ф, Ф®Т. Так как исходно мы предположили, что только один член семьи является читателем, то следовательно имеет место функциональная зависимость: Т®Ф. Другая функциональная зависимость является очевидной: Ф®Н. Поэтому сущность R3 не содержит транзитивную зависимость.

Хранение атрибутов, находящихся в транзитивной зависимости, порождает ряд неудобств. Рассмотрим пример хранения атрибута «Читальный зал» в сущности R4. Наименование читального зала многократно дублируется. Изменение наименования влечет за собой корректировку большого числа экземпляров. Кроме этого, сущность R4 позволяет содержать информацию о читальных залах только тогда, когда выдана хотя бы одна книга. Поэтому, для избавления от вышеперечисленных недостатков, сущность, находящуюся во 2НФ, нужно преобразовать в 3НФ.

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

Определение. Сущность находится в 3НФ, если она находится во 2НФ и отсутствует транзитивная зависимость каждого не ключевого атрибута от первичного ключа.

Для преобразования сущности к 3НФ необходимо проанализировать наличие в сущности транзитивной зависимости неключевого атрибута от первичного ключа и осуществить их декомпозицию, разрушив транзитивную зависимость.

Имеющуюся транзитивную зависимость сущности R4 можно разрушить, декомпозируя ее на две сущности R5, R6 в соответствии с зависимостями: К®З и З®Ч. Полученные сущности находятся в 3НФ.

 

Таблица 1.9. Сущность R5 Таблица 1.10. Сущность R6

Номер выдан-ной книги Номер читаль-ного зала   Номер читального зала Читальный зал
(К) (З)   (З) (Ч)
        научный
        художественный
         
         
         
         

 

Сущность R5 содержит список всех номеров книг и номера читальных залов, к которым они прикреплены, а R6 – список всех номеров читальных залов и их наименования

Видно, что при приведении ко 2НФ и 3НФ число сущностей в схеме БД увеличивается. Однако всегда сохраняется возможность получить исходные сущности с помощью выполнения операций соединения.

Внешнее кодирование

 

Если значения некоторого атрибута исходной сущности являются текстовыми и неуникальными, то целесообразно осуществить внешнее кодирование, при котором в инфологическую схему вводится новая сущность СПРАВОЧНИК. Эта сущность содержит новый атрибут – короткий код и старый атрибут – текстовое значение. Во всех исходных сущностях, где встречаются текстовые значения старого атрибута, значения заменяются соответствующими кодами. Первичным ключом вновь введенной сущности СПРАВОЧНИК объявляется атрибут, содержащий код. Результат внешнего кодирования оформляется в виде таблицы:

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

 

Таблица 1.11. Сущность СПРАВОЧНИК

Список сущностей Старый атрибут Новый атрибут
     
     

 

В процессе внешнего кодирования может быть выделено несколько новых сущностей СПРАВОЧНИК для разных атрибутов. Например, справочник имен, должностей и т.п. В этом случае таблица 1.11 оформляется для каждой сущности СПРАВОЧНИК.

 



Поделиться:


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

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