Главная | Обратная связь
МегаЛекции

Целостная часть реляционной модели данных.





Подмножество атрибутов K отношения R называется потенциальным ключом, если К обладает свойствами:

1. Свойством уникальности, то есть в отношении К не может быть 2-х кортежей с одинаковым значением К.

2. Свойство неизбыточности

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

Первичный ключ – потенциальный ключ, который выбран для уникальной идентификации кортежей внутри отношения.

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

Студенты (ФИО, № паспорта, № зачётной книжки, № студенческого билета, адрес, телефон, № группы)

Подчёркнутые атрибуты являются потенциальными ключами. С точки зрения реляционной модели данных все потенциальные ключи являются равнозначными (правило выбора за разработчиком).

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

Первичный ключ служит единственным средством адресации на уровне кортежей. Точно указать кортеж можно только зная значение первичного ключа.

Значение null – это значение или маркер, показывающий, что точное значение атрибута неизвестно.

Правила целостности сущностей

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

Связи между объектами реального мира реализуются как связи между отношениями в БД. Вsltkz.n 3 разновидности связей:

1. Один ко многим (1:N, 1:∞)

2. Один к одному (1:1)

3. Многие ко многим (N:M)

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

· Наименование



· Адрес

· Телефон

А у сотрудников:

· ФИО

· Должность

Известно, что название офисов не повторяются, и неизвестно, есть ли полные тёзки среди сотрудников.

Выделяем 2 сущности: офис и сотрудник.

Офис (Название, Адрес, Телефон)

Сотрудник (ФИО, Должность, Номер)

Недостаточно информации для связи между отношениями, поэтому вводится ещё такой атрибут как офис.

Офис (Название, Адрес, Телефон,)

Сотрудник (ФИО, Должность, Номер, Офис)

Офис   Сотрудник
Название PK 1 Номер PK
Адрес   ФИО
Телефон   Должность
  Офис
         

 

Отношения, входящие в связь со стороны 1 называются главными (родителями). Отношения, входящие в связь со стороны ∞ называются подчинёнными (дочерними). Реализация связи 1:∞ состоит в том, что из родительского отношения в дочернее добавляется атрибуты. Являющиеся ссылками на ключевые атрибуты родительского отношения. Эти атрибуты называются внешними ключами (FOREIGN KEY, FK). Так же они называются мигрирующими из-за родительского отношения. Свойства внешнего ключа:

1. Он может быть простым или составным.

2. Внешний ключ должен быть определён на том же домене, что и соответствующий ему первичный ключ родительского отношения.

3. Внешний ключ, как правило, не обладает свойством уникальности, так как в дочернем отношении может быть несколько кортежей, ссылающихся на один и тот же кортеж родительского отношения. Именно это и даёт связь 1 ко многим.

4. NULL значения внешнего ключа допустимы, если он не входит в состав первичного ключа в дочернем отношении.

 


Правило ссылочной целостности (целостности внешних ключей)

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

Термины главная и подчинённая таблицы являются понятиями относительными. Подчинённая таблица может являться главной для какой-либо третьей таблицы.

Обычно перед заполнением таблиц определяют отношения порядка между ними. К нулевому порядку относятся таблицы, в которых данные не зависят данных других таблиц. Обычно это таблицы со справочными данными. К первому уровню относят таблицы, данные в которых зависят от данных в таблице нулевого уровня. Сначала записывают таблицы нулевого уровня, затем – первого и так далее.

Операции, нарушающие ссылочную целостность.

Ссылочная целостность может нарушаться в результате операций, изменяющих состояние БД. Таких операций 3:

1. Вставка.

2. Обновление.

3. Удаление кортежей в отношении.

Так как в определении ссылочной целостности участвуют 2 отношения, родительское и дочернее, то получается 6 возможных вариантов:

  Родительское отношение Дочернее отношение
Вставка - +
Обновление + +
Удаление + +

 

«+» - нарушение ссылочной целостности.

«-» - отсутствие нарушения ссылочной целостности.

 

Стратегии поддержания ссылочной целостности.

Существуют 2 основных стратегии поддержания ссылочной целостности.

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

2. Каскадировать (разграничить выполнение операций по внесению поправок в другие отношения). Изменения начинаются в родительском отношении и каскадно выполняются в дочернем. В этой стратегии есть одна тонкость.
Дочернее отношение может оказаться родительским по отношению к некоторому третьему отношению и тогда выполнение стратегии потребуется ещё раз.
Если каскадная операция не может быть выполнена, то необходимо отказаться от первоначальной операции и вернуть БД в исходное состояние.
Преимущество стратегии: не нарушается связь между кортежами родительского и дочернего отношения.

Стратегии 1 и 2 являются стандартными и присутствуют во всех СУБД, в которых имеется поддержка ссылочной целостности. Существуют так же дополнительные стратегии:

3. Установить в NULL, то есть разрешить выполнение операций, но все возможные некорректные значения внешних ключей заменить на NULL значения.
Недостаток: Кортежи дочернего отношения теряют всякую связь с кортежами родительского отношения. (1)

4. Установить по-умолчанию, то есть разрешить выполнение операций, но все возможные некорректные значения внешних ключей изменить на некоторые значения, принятые по-умолчанию. При использовании этой стратегии можно не использовать NULL.
Недостаток:
1) (1)
2) Для выполнения стратегии в родительском отношении должен быть кортеж, первичный ключ которого принят как значение по-умолчанию для внешних ключей. Обычно это кортеж, заполненный нулями. Такой кортеж нельзя удалить, изменить отношения первичного ключа. Таким образом не все кортежи родительского отношения становятся равнозначными, что приходится отслеживать дополнительно.

5. Игнорировать (выполнять операции, не обращая внимания на ссылочную целостность).

Задача: Требуется разграничить БД для предметной области «Поставка деталей». Требуется хранить информацию о поставках (№, Наименование), деталях (№, Наименование, Цена детали), об объёме каждой поставки.

Поставщик (, Наименование).

Деталь (, Наименование, Цена,).

Поставки (№ поставщика, № детали, Количество деталей ).

Поставщик   Деталь    
№ 1 PK 1 № 2 PK 1  
Наименование   Наименование    
    Цена    
       
  Поставки      
№ 1 PK      
  № 2 PK    
  Количество деталей      
               

 





Рекомендуемые страницы:

Воспользуйтесь поиском по сайту:
©2015- 2018 megalektsii.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.