Файл: Управление данными (пособие).pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 31.03.2021

Просмотров: 1621

Скачиваний: 25

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

 

91

а

щихся

 

потенциальными

 

ю

я

 (

или

 

входящих

 

в

 

и

 

уже

лось

ключ

 

отношения

 

яв

дство

ти

и

 

объектов

оп

 

ко

ами тношен

спеч

 

св

м

 

уник

ност

ий

 

ключа

 

в

 

отношении

тог

бы

 

е

 

атрибута

яв

л

 

ил его

 

част

ь

ь

 

быть

опре

ыми

яв

прот оречит

 

требованию

 

уникальности

 

ключа

Действительно

если

 

значение

 

ключа

 

или

 

его

 

части

 

не

 

определено

то

 

не

 

может

 

бы

 

 

кортежей

 

отношения

 (

в

 

с

 

что

»). 

Следует

 

заметить

однако

что

 

в

 

реальных

 

системах

 

такой

 

жесткий

 

запрет

 

использования

о

е

т

и

трибутов

являю

кл чами

 

отношени

х

 

состав

). 

Как

 

говори

ляется

 

сре

м

 

иден фикаци

исываемых

ртеж

 

о

ия

Это

 

обе

ивается

ойство

аль

и

 

значен

Допущение

 

о

что

значени

ляющегося

 

к ючом

и

 

ью

могли

 

отсутствоват

то

 

ест

 

не

деленн

но

 

ив

ть

 

и

 

речи о

 

возможности

 

идентификации

 

с

 

помощью

 

него

казках

 

это

 

формулируется

 

как

 – «

найди

 

то

не

 

знаю

 

NULL

 

для

 

ключевых

 

атрибутов

 

часто

 

относят

 

только

 

к

 

первичному

 

ключу

 

отношения

В

 

принципе

 

этого

 

достаточно

чтобы

 

обеспечить

 

механизм

 

идентификации

 

кортежей

Для

 

атрибутов

 

альтернативных

 

ключей

 

NULL

-

значения

 

могут

 

допускаться

при

 

этом

однако

с

 

помощью

 

значений

 

таких

 

ключей

 

можно

 

будет

 

идентифицировать

 

уже

 

не

 

все

 

кортежи

 

отношения

а

 

тольк

 

кортежи

 

с

 

р ально

 

прису ствующим

 

значениями

 

атрибутов

 

альтернативного

 

ключа

Таким

 

образом

рассмотренные

 

выше

 

свойства

 

ключа

 

отношения

 

и

 

соответствующее

 

ограничение

 

целостности

   

могут

 

быть

 

дополнены

 

следующим

Ни

 

один

 

из

 

атрибутов

составляющих

 

первичный

 

ключ

не

 

может

 

принимать

 

NULL

-

значения

Другим

 

словами

объявление

 

атрибута

 (

атрибутов

отношения

 

первичным

 

ключом

 (

в

  

языке

 SQL 

для

 

этого

 

используются

 

ключевые

 

слова

 

PRIMERY

 

KEY

фактически

 

означает

 

введение

 

для

 

этого

 

атрибута

 (

атрибутов

обязательности

 

указания

 

его

  (

их

значений

В

 

языке

 SQL 

это

 

эквивалентно

 

применению

 

к

 

атрибуту

 

ограничения

 

NOT

 

NULL

и


background image

 

92

9.4

В
Ссылочная

 

е

ние

 

связано

 

само

 

с

 

собой

К

 

этом

чения

 

по

СТ

 

пр
сод

ДИ
УСПЕВАЕМОСТЬ

 

 

информацию

 

о

и

 

СТ

жет

 

иметь

 

к

 

с

 

о

мн
фа

клю

СТ

КО

Ограничения

 

целостности

 

уровня

 

базы

 

данных

 

нешние

 

и

 

родительские

 

ключи

 

отношения

 

целостность

Ограничения

 

целостности

 

уровня

 

базы

 

данных

 

представляют

 

собой

 

ограничения

накладываемые

 

на

 

значения

 

двух

 

или

 

боле

 

связанных

 

между

 

собой

 

отношений

включая

 

случай

когда

 

отноше

у

 

типу

 

ограничений

 

относятся

 

ограничения

накладываемые

 

на

 

зна

так

 

называемого

 

внешнего

 

ключа

и

 

определяющего

 

целостность

 

базы

 

данных

 

 

ссылкам

Рассмотрим

 

в

 

качестве

 

примера

 

приведенные

 

ниже

 

на

 

рис

.9.2 

отношения

 

УДЕНТЫ

ДИСЦИПЛИНЫ

УСПЕВАЕМОСТЬ

 

и

 

ФАКУЛЬТЕТЫ

Первое из

 

них

 

едставляет

 

персональную

 

информацию

 

о

 

конкретных

 

студентах

Его

 

кортежи

 

ержат

 

данные

 

о

 

конкретных

 

экземплярах

 

сущности

 

СТУДЕНТ

В

 

отношении

 

СЦИПЛИНЫ

 

содержится

 

информация

 

об

 

изучаемых

 

дисциплинах

Отношение

 

представляет

 

уже

 

связ

между

 

сущностями

 

УДЕНТ

 

и

 

ДИСЦИПЛИНА

Это

 

связь

 

многие

-

ко

-

многим

 – 

студент

 

мо

оценки

 

по

 

многим

 

дисциплинам

и

 

по

 

кон ретной ди циплине имеют

 

ценки

 

огие

 

студенты

В

 

отношении

 

ФАКУЛЬТЕТЫ

 

представлена

 

информация

 

о

 

культетах

Первичным

 

ключом

 

отношения

 

СТУДЕНТЫ

 

является

 

атрибут

 

  (

личный

 

код

 

студента

), 

в

 

отнош

КОД

_

СТУД

ении

 

ДИСЦИПЛИНЫ

 

первичным

 

ключом

 

является

 

атрибут

 

КОД

_

ДИСЦ

в

 

отношения

 

ФАКУЛЬТЕТЫ

 

первичный

 

ч

 

это

 

атрибут

 

ФАКУЛЬТЕТ

у

 

отношения

 

УСПЕВАЕМОСТЬ

 

первичный

 

ключ

 

составной

это

 – {

КОД

_

СТУД

КОД

_

ДИСЦ

}. 

УДЕНТЫ

 

 

 

 

УСПЕВАЕМОСТЬ

 

 

Д

_

СТУД

 

ИМЯ

 

ФАКУЛЬТЕТ

 

СТАРОСТА

 

КОД

_

СТУД

 

КОД

_

ДИСЦ

ОЦЕНКА

С

2

 

Иванов

 

Физический

 

С

 

С

9

 

Д

С

Петров

 

Химический

 

С

 

С

9

 

Д

С

Сидоров

 

Физический

 

С

 

С

9

 

Д

С

Орлов

 

Химический

 

С

 

С

9

 

Д

С

Смирнов

 

Физический

 

С

 

С

Д

С

1

 

Попова

 

Исторический

 

NULL 

 

С

Д

4

 

С

8

 

Поляков

 

NULL NULL 

 

С

Д

6

 

 

 

 

 

С

1

 

Д

4

 

 

 

 

 

С

1

 

Д

6

 

 

 

 

 

С

1

 

Д

8

 

 


background image

 

93

ДИСЦИПЛИНЫ

 

 

 

 

ФАКУЛЬТЕТЫ

 

 

КОД

_

ДИСЦ

 

ДИСЦИПЛИНА

 

ЧАСЫ СЕМЕСТР

 

ФАКУЛЬТЕТ

 

ДЕКАН

 

ТЕЛЕФОН

Д

Физика

 32 

Физический

 

Климов

 123778 

Д

Математика

 54  1 

Химический

 

Боев

 123556 

Д

История

 32 

Исторический

 

Зуев

 123367 

Д

Информатика

 108 

1

Математический

 

Ковале

 123876 

 

в

Д

Химия

 17 

 

 

 

Рис

.  9.2.  

Примеры

 

отношений

 

базы

 

данных

 

для

 

иллюстрации

 

ограничений

 

ссылочной

 

елостности

 

базы

 

данных

 

При

 

внимательном

 

рассмотрении

 

приведенных

 

отношений

 

можно

 

увидеть

что

 

значения

 

некоторых

 

атрибутов

 

одного

 

отношения

 

оказываются

 

связанными

 

со

 

значениями

 

атрибутов

 

в

 

другом

 

отношении

Рассмотрим

 

характер

 

связи

 

между

 

отношениями

 

СТУДЕНТЫ

 

и

 

УСПЕВАЕМОСТЬ

В

 

отношении

 

УСПЕВАЕМОСТЬ

 

не

 

должно

 

быть

 

кортежей

 

с

 

записями

касающимися

 

студентов

о

 

которых

 

отсутствует

 

информация

 

в

 

отношении

 

СТУДЕНТЫ

 

(

инф м

б

ц

 

т

 

с

й

 

мо

в

 

от

и

 

сре

и

атрибут

 

КОД

_

Т

ом

 

этого

 

отно

к

 

назы е

й

 

ключ

 

о

т

 

КОД

_

ДИ

ю

,

т

 

отношения

 

ДИСЦИПЛИНЫ

а

 

в

 

отношении

 

СТУДЕНТЫ

 

атрибут

 

ФАКУЛЬТЕТ

 

явля

ор ация

 

о

 

оценках

 

«

неизвестно кого

»

 

не

 

имее

 

смысла

). 

Отсюда ледует

что

 

на

 

значения

 

атрибута

 

КОД

_

СТУД

 

отношения

 

УСПЕВАЕМОСТЬ

 

должно

 

быть

 

наложено

 

соответствующее

 

ограничение

а

 

именно

, – 

в

 

качестве

 

его

 

значени

гут

 

использоваться

 

только

 

коды

 

студентов

 

фактически

 

присутствующие

 

ношении

 

СТУДЕНТЫ

Атрибут

 

КОД

_

СТУД

 

отношений

 

является

 

фактическ

дс в

т ом

 

связи

 

этих

 

отношений

При

 

этом

как

 

мы

 

уже

 

говорил

С УД

 

отношения

 

СТУДЕНТЫ

 

является

 

первичным

 

ключ

шения

В

 

отношении

 

же

 

УСПЕВАЕМОСТЬ

 

атрибут

 

КОД

_

СТУД

 

является

 

та

ва мым

 

внешним

 

ключом

ссылающимся

 

на

 

соответствующий

 

первичны

тношения

   

СТУДЕНТЫ

Аналогично

в

 

этом

 

же

 

отношении

 

атрибу

СЦ

 

является

 

внешним

 

кл чом

 

ссылающимся

 

на

 

одноименный

 

атрибу

ется

 

внешним

 

ключом

ссылающимся

 

на

 

одноименный

 

атрибут

 

отношения

 

ФАКУЛЬТЕТЫ

.   

Определение

 

понятия

 

внешний

 

ключ

 

имеет

 

следующий

 

вид

Пусть

 

R2

 – 

базовое

 

отношение

Тогда

 

внешний

 

ключ

 (

foreign key

)

FK

 

в

 

отношении

 

R2

 – 

это

 

подмножество

 

множества

 

атрибутов

 

R2

такое

 

что

 

существует

 

базовое

 

отношение

 

R1 (

отношения

 

R1

 

и

 

R2 

не

 

обязательно

 

различные

с

 

потенциальным

 

ключом

  

PK;

 

 

 

каждое

 

значение

 

внешнего

 

ключа

 

FK 

в

 

екущем

 

з ачении

 

R2

всегд

 

т

н

 

а

совпадает

 

со

 

значением

 

потенциального

 

ключа

 

PK

 

некоторого

 

кортежа

 

в

 

текущем

 

значении

 

R1.

 

 


background image

 

94

Потенциальный

 

ключ

на

 

который

 

ссылается

 

внешний

 

ключ

называют

 

родительским

 

ключом

 

Значения

 

внешнего

 

ключа

 

называют

 

ссылкой

 

(

reference

)

 

к

 

кортежу

содержащему

 

соответствующее

 

значение

 

родительского

 

потенциального

 

ключа

Этот

 

кортеж

 

называют

 

ссылочным

 

(

referenced

)

 

или

 

целевым

 

(

target

)

 

кортежем

.  

Проблема

 

необходимости

 

обеспечен я

 

соответствия

 

значений

 

внешнего

 

ключа

 

значениям

 

определенного

 

потенци

и

ального

 

ключа

 

известна

 

как

 

проблема

 

с

н

го

 

ключа

называют

 

ссыл

ЕМОСТЬ

со

з

г

 

 

л т

СТУДЕНТЫ

 

на

 

атрибут

 

КОД

_

СТУД

 

этого

 

же

 

от

сылочной

 

целостности

 

(

referential integrity problem

), 

а

 

само

 

ограничение

акладываемое

 

на

 

допустимые

 

значения

 

внешне

очным

 

ограничением

 (

referential

 

constraint

).  

Прокомментируем

 

приведенное

 

выше

 

определение

 

внешнего

 

ключа

1.

 

Из

 

определения

 

следует

что

 

каждое

 

значение

 

внешнего

 

ключа

 

должно

 

являться

 

значением

 

соответствующего

 

родительского

 

потенциального

 

ключа

Однако

 

надо

 

обратить

 

внимание

 

на

 

то

что

 

обратное

 

не

 

требуется

потенциальный

 

ключ

выступающий

 

в

 

качестве

 

родительского

может

 

содержать

 

значения

которые

 

в

 

данный

 

момент

 

не

 

являются

 

значением

 

внешнего

 

ключа

Например

в

 

отношении

 

СТУДЕНТЫ

 

могут

 

быть

 

записи

 

о

 

студентах

не

 

имеющих

 

оценок

 

ни

 

по

 

одной

 

из

 

дисциплин

и

 

поэтому

 

в

 

отношении

 

УСПЕВА

 

записи

 

о

 

них

 

и

следовательно

ответствующие

 

начения

 

внешне о

 

ключа

 

будут

 

отсутствовать

2.

 

Внешний

 

ключ

 

будет

 

составным

 

тогда

 

и

 

только

 

тогда

когда

 

соответствующий

 

родительский

 

потенциальный

 

ключ

 

является

 

составным

Он

 

будет

 

простым

 

тогда

 

и

 

только

 

тогда

когда

 

соответствующий

 

родительский

 

ключ

 

также

 

будет

 

простым

3.

 

Каждый

 

атрибут

входящий

 

в

 

данный

 

внешний

 

ключ

должен

 

быть

 

определен

 

на том

 

же

 

самом домене

что

 

и

 

соответствующий

 

атрибут

 

соответствующего

 

родительского

 

ключа

4.

 

Следует

 

иметь

 

в

 

виду

что

 

целевое

 

отношение

 

может

 

само

 

ссылаться

 

на

 

другое

 

отношение

которое

 

в

 

свою

 

очередь

 

может

 

ссылаться

 

на

 

следующее

 

отношение

образуя

таким

 

образом

цепь

 

или

 

каскад

 

из

 

отношений

последовательно

 

ссылающихся

 

друг

 

на

 

друга

. (

В

 

приведенном

 

примере

 

отношение

 

УСПЕВАЕМОСТЬ

 

ссы ае ся

 

на

 

отношение

 

которое

в

 

свою

 

очередь

 

ссылается

 

на

 

отношение

 

ФАКУЛЬТЕТЫ

)

5.

 

Из

 

определения

 

внешнего

 

ключа

 

также

 

следует

что

 

отношение

 

может

 

ссылаться

 

само

 

на

 

себя

.

  (

В

 

отношении

 

СТУДЕНТЫ

 

атрибут

 

СТАРОСТА

 

в

 

качестве

 

внешнего

 

ключа

 

ссылается

ношения

являющийся

 

для

 

него

 

родительским

 

ключом

). 


background image

 

95

Внешние

 

ключи

 

и

 NULL-

значения

 

Допущение

 

возможности

 

использования

 

в

 

реляционной

 

базе

 

данных

 

NUL

 

выше

 

вопросов

связанных

 

с

 

цел

пер
в

 

кон

ежа

 

ссылающегося

 

отношения

 

значение

 

соответствующего

 

ФА

атр
клю

По

озн
как

L

-

значений

 

требует

 

уточнения

 

рассмотренных

внешними

 

ключами

 

отношений

 

и

 

правилами

 

обеспечения

 

ссылочной

 

остности

Как

 

уже

 

говорилось

 

выше

NULL

-

значения

 

являются

 

недопустимыми

 

для

 

вичных

 

ключей

Появление

 

же

 

NULL

-

значений

 

в

 

позициях

 

внешних

 

ключей

 

общем

 

случае

 

не

 

запрещено

Эта

 

ситуация

 

означает

 

лишь

 

то

что

 

для

 

кретного

 

корт

родительского

 

ключа

 

не

 

известно

Например

в

 

отношении

 

СТУДЕНТЫ

 

атрибут

 

КУЛЬТЕТ

 

является

 

внешним

 

ключом

ссылающимся

 

на

 

одноименный

 

ибут

 

отношения

 

ФАКУЛЬТЕТЫ

в

 

котором

 

этот

 

атрибут

 

является

 

первичным

 

чом

Тот

 

факт

что

 

в

 

отношении

 

СТУДЕНТЫ

 

в

 

кортеже

 

студента

 

по

 

фамилии

 

ляков

 

вместо

 

значения

 

конкретного

 

факультета

 

установлен

 

маркер

 

NULL

ачает

 

то

что

 

для

 

этого

 

студента

 

в

 

данный

 

момент

 

времени

 

не

 

известно

 

на

 

ом

 

факультете

 

он

 

учится

.  

В

 

связи

 

с

 

вышесказанным

приведенное

 

в

 

предыдущем

 

разделе

 

определение

 

внешнего

 

ключа

 

необходимо

 

уточнить

 

следующим

 

образом

Пусть

 

R2

 – 

базовое

 

отношение

Тогда

 

внешний

 

ключ

скажем

 

FK

 

в

 

отношении

 

R2

 – 

это

 

подмножество

 

множества

 

атрибутов

 

R2

такое

 

что

 

существует

 

базовое

 

отношение

 

R1 (

отношения

 

R1

 

и

 

R2 

не

 

обязательно

 

различные

с

 

потенциальным

 

ключом

  

PK;

 

 

 

каждое

 

значение

 

внешнего

 

ключа

 

FK 

в

 

текущем

 

значении

R2

 

или

 

 

является

 

NULL

-

значением

или

 

совпадает

 

со

 

значением

 

потенциального

 

ключа

 

PK

 

некоторого

 

кортежа

 

в

 

текущем

 

значении

 

R1.

 

Решение

 

вопроса

 

о

 

допустимости

 

или

 

недопустимости

 

использования

 

для

 

н шнего

 

ключа

 

NULL

-

значений

 

зависит

 

от

 

конкретной

 

ситуации

Например

лжно

 

быть

 

понятно

что

 

в

 

рассматриваемом

 

выше

 

примере

 

для

 

внешнего

 

ча

представленный

 

атрибутом

 

КОД

_

СТУД

 

отношения

 

УСПЕВАЕМОСТЬ

рещено

 

использование

 

NULL

-

значений

 

из

-

за

 

того

что

 

сам

 

этот

 

атрибут

 

в е
до
клю

зап

отн

ФАКУЛЬТЕТ

явля

о

кто

 

является

 

его

 

старостой

или

 

не

 

известно

на

 

каком

   

факультете

 

он

 

учится

Допускать

 

или

 

не

 

допускать

 

использование

 

является

 

частью

 

составного

 

первичного

 

ключа

  {

КОД

_

СТУД

ДИСЦИПЛИНА

ошения

 

УСПЕВАЕМОСТЬ

Для

 

атрибутов

 

СТАРОСТА

 

и

 

ющихся

 

внешними

 

ключами

 

отношения

 

СТУДЕНТЫ

NULL

-

значения

 

в

 

принципе

 

допустимы

Их

 

наличие

 

будет

 

отражать

 

тот

 

факт

что

 

для

 

конкретного

 

студента

 

не

 

известн