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

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

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

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

Добавлен: 31.03.2021

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

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

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

 

86

если

 

один

 

или

 

несколько

 

элементов

 

множества

 

неизвестны

а

 

остальные

 

равны

 

false

то

 

значение

 

выражения

 

также

 

неизвестны

 (

может

 

быть

 

true

 

или

 

false

в

 

зависимости

 

оттого

 

какие

 

на

 

самом

 

деле

 

имеют

 

значения

 

неизвестные

 

элементы

 

множества

). 

 

Выражение

  

FORALL

(

х

1

х

2

, …, 

х

n

)  

принимает

 

значение

 

false

если

 

хотя

 

бы

 

один

 

из

 

элементов

 

множества

 

<

х

1

х

2

, …, 

х

n

>

 

имеет

 

значение

 

false

принимает

 

значение

 

true

если

 

все

 

до

 

одного

 

элемента

 

этого

 

множества

 

имеют

 

значение

 

true

и

 

наконец

если

 

один

 

или

 

несколько

 

элементов

 

неопределенны

а

 

остальные

 

находятся

 

в

 

состоянии

 

true

то

 

значение

 

выражения

 

также

 

является

 

неопределенным

  (

оно

 

может

 

быть

 

true

если

 

неизвестные

 

элементы

 

равны

 

true

и

 

будут

 

false

если

 

хотя

 

бы один

 

из

 

них

 

 

равен

 

false

). 

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

 

в

 

данном

 

разделе

 

аспекты

причиной

 

которых

 

является

 

д
знач

нными

Ниже

 

будут

 

рассмотрены

 

и

 

некоторые

 

другие

 

 

 

 

лостности

 

уровня

 

кортежа

 

Ограничения

ности

ют

 

собой

 

ограничения

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

 

н

имые

 

дельного

 

кортежа

 

отношения

и

 

не

 

являющи

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

 

це

атрибута

То

что

 

ограничение

 

наложено

 

на

 

кортеж

означает

что

 

для

 

его

 

проверки

 

не

 

требуется

 

никакой

 

опущение

 

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

 

в

 

качестве

 

значений

 

атрибутов

 

неопределенных

 

ений

не

 

является

 

единстве

Учитывая

 

тот

 

факт

что

 

в

 

настоящее

 

время

NULL

-

значения

 «

узаконены

» 

стандартом

 

языка

 SQL, 

знание

 

этих

 

аспектов

 

является

 

совершенно

 

необходимым

При

 

этом

однако

в

 

качестве

 

рекомендации

 

разработчику

 

базы

 

данных

 

можно

 

привести

 

пожелание

 

Дэйта

 [1] 

по

 

возможности

 

не

 

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

 

для

 

атрибутов

 

отношения

 

базы

 

данных

 

NULL

-

значений

кроме

 

случаев

когда

 

это

 

является

 

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

 

оправданным

В

 

большом

 

числе

 

практических

 

случаев

 

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

 

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

 

NULL

-

значений

 

может

 

быть

 

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

 

значений

 

по

 

умолчанию

При

 

этом операции

 

над значениями

 

атрибутов

 

остаются

 

в

 

рамках

 

более

 

привычной

 

двузначной

 

логики

а

 

их

 

результаты

 

являются

 

для

 

разработчика

 

более

 

понятными

 

и

 

предсказуемыми

В

 

языке

 SQL 

по

 

умолчанию

 

для

 

атрибутов

 

NULL

-

значения

 

разрешены

Для

 

их

 

запрета

 

для

 

конкретного

 

атрибута

 

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

 

ограничение

NOT

 

NULL

9.2. 

Ограничения

 

це

 

целост

 

кортежа

 

представля

а

 

допуст

значения

 

от

еся

 

лостности

 

информации

 

о

 

других

 

кортежах

Примером

 

такого

 

рода

 

ограничений

 

в

 

отношении

 

АУДИТОРНЫЙ

_

ФОНД

имеющего

 

следующие

 

атрибуты

  {

_

КОМНАТЫ

ДЛИНА

ШИРИНА

ВЫСОТА


background image

 

87

ПЛОЩАДЬ

ОБЪЕМ

}, 

являются

 

следующие

 

ограничения

наложенные

 

на

 

значения

 

атрибутов

 

для

 

каждого

 

кортежа

:  

ПЛОЩАДЬ

 

=

 

ДЛИНА

 

×

 

ШИРИНА

  

и

   

ОБЪЕМ

 

=  

ДЛИНА

 

×

 

ШИРИНА

 ×

 

ВЫСОТА

 

Эти

 

ограничения

 

св

 

язывает

 

между

 

собой

 

значения

 

атрибутов

 

в

 

каждом

 

корт

быть

 

выражены

 

с

 

помощью

 

задания

 

доменов

 

отношений

 

и

п

рки

 

для

 

конкретного

 

кортежа

 

они

 

не

 

требует

 

привл

г

х

ия

Следует

 

заметить

что

 

на

 

практике

 

так

а

  «

вычисляемые

» 

пол в

 

хранимых

 

отношениях

 

баз

 

данных

 

использу

кие

 

знач ия

 

вычисляются

  «

на

 

лету

» 

в

 

приложениях

 

или

ьных

 

представлениях

 

нных

.  

елостности

 

кортежа

 

или

 

атрибута

Э
о
е

 

ограничений

 

относятся

 

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

 

в

 

сл

а

о

 

о

и

еже

Они

 

не

 

могут

 

ри

я

 

этом

дл

ечения

 

инф

 

своей

 

прове

ормации

 

о

 

дру их

 

кортежа

 

отношен

ого

 

род

я

 

ют

 

редко

Обычно

 

та

ен

 

виртуал

да

9.3. 

Ограничения

 

целостности

 

уровня

 

отношения

  

Ограничения

 

целостности

 

уровня

 

отношения

 

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

 

собой

 

ограничения

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

 

только

 

на

 

допустимые

 

значения

 

отдельного

 

отношения

и

 

не

 

являющиеся

 

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

 

ц

то

 

означает

что

 

такого

 

рода

 

ограничение

 

не

 

может

 

быть

 

сведено

 

к

 

граничению

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

 

на

 

кортеж

 

или

 

атрибут

и

с

 

другой

 

стороны

для

 

го

 

проверки

 

не

 

требуется

 

информация

 

о

 

других

 

отношениях

 

базы

 

данных

.  

К

 

важнейшим

 

видам

 

такого

 

рода

едующем

 

разделе

 

ограничения

 

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

 

ключей

называемые

 

еще

 

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

 

целостности

 

сущностей

а

 

также

 

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

 

несколько

 

позже

 

ограничения

зад ваемые

 

функциональными

 

зависимостями

 

между

 

атрибутами

многозначными

 

зависимостями

зависимостями

 

проекции

-

соединения

.  

Также

 

к

 

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

 

тношения

 

относится

например

требование

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

 

отношение

 

СТУДЕНТЫ

имеющее

 

атрибут

 

НОМЕР

_

ГРУППЫ

состоящее

 

в

 

том

чтобы

 

в

 

каждой

 

учебной

 

группе

 

было

 

не

 

меньше

 25 

студентов

Очевидно

что

 

для

 

обеспечения

 

выполнения

 

такого

 

ограничения

 

для

 

конкретного

 

кортежа

 

необходимо

 

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

 

информации

 

о

 

значениях

 

данног

 

атрибута

 

в

 

друг х

 

кортежах


background image

 

88

Пот

нятия

 

более

 

строго

 [1]. 

Пу

енциальные

первичные

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

 

ключи

 

отношения

 

Выше

 

уже

 

не

 

раз

 

упоминалось

 

понятие

 

ключа

 

отношения

В

 

приложении

 

к

 

реляционным

 

отношениям

 

различают

 

несколько

 

видов

 

ключей

в

 

частности

 

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

  (

возможные

), 

первичные

 

и

 

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

 

ключи

В

 

связи

 

с

 

этим

 

определим

 

эти

 

по

сть

 

R

 – 

некоторая

 

переменная

 

отношения

Тогда

 

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

 

ключ

 

(

candidate key

), 

скажем

 

K

 

для

 

отношения

 

R

 – 

это

 

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

 

множества

 

атрибутов

 

отношения

 

R

всегда

 

обладающее

 

следующими

 

свойствами

 

свойство

 

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

 – 

нет

 

двух

 

кортежей

 

в

 

текущем

 

значении

 

переменной

 

отношени

 

R

 

с

 

одинаковы

 

значением

 

K;

 

я

м

 

свойство

 

неизбыточности

  –

 

никакое

 

из

 

подмножеств

 

K

 

не

 

обладает

 

свойством

 

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

.   

Иными

 

словами

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

 

ключом

 

отношения

 

называется

 

его

 

атрибут

г

чтобы

м

которые

 

может

 

принимать

 

пере

п

жность

 

наличия

 

в

 

отношении

 

нескольких

 

ключей

Например

в

 

отношении

 

 

или

 

набор

  (

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

атрибутов

значения

 

которого

  (

которых

позволяют

 

однозначно

 

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

 

кортежи

 

отношения

  (

вследствие

 

своей

 

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

). 

Однако

 

ни

 

одно

 

из

 

подмножеств

 

этого

 

набора

 

атрибутов

 

таким

 

свойством

 

не

 

обладает

  (

свойство

 

неизбыточности

 

ключа

).  

То

 

есть

 

из

 

составно о

 

ключа

 

нельзя

 

исключить

 

ни

 

один

 

атрибут

 

таким

 

образом

 

он

 

не

 

потерял

 

свойство

 

своей

 

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

способности

 

однозначно

 

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

 

кортежи

 

отношения

Из

 

приведенного

 

определения

 

следует

что

 

понятие

 

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

 

ключа

 

относится

 

не

 

к

 

конкретному

 

содержимому

 

отношения

 

в

 

некотором

 

текущем

 

состоянии

а

 

ко

 

всем

 

возможным

 

значения

менная

 

отношение

.  

Из

 

приведенного

 

определения

 

следует

что

 

в

 

отношении

 

может

 

быть

 

несколько

 

отенциальных

 

ключей

Само

 

название

 

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

 

или

 

возможный

подчеркивает

 

возмо

СТУДЕНТ

  

КОД

_

СТУД

 

ИМЯ

_

СТУД

 

ПАСПОРТ

 

С

2

 

Иванов

 

01 02 123456 

С

Петрова

 

03 04 234567 

С

Сидоров

 

05 06 345678 

будет

 

два

 

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

 

ключа

а

 

именно

 

КОД

_

СТУД

 

и

 

ПАСПОРТ

Значения

 

каждого

 

из

 

этих

 

атрибутов

 

могут

 

служить

 

идентификаторами

 

кортежей

так

 

как

 

каждый

 

из

 

них

 

однозначно

 

и очевидно

неизбыточно

 

определяет

 

запись

 

о

 


background image

 

89

конкретном

 

студенте

так

 

как

 

не

 

может

 

быть

 

двух

 

студентов

 

с

 

одинаковыми

 

кодами

также

как

 

и

 

с

 

одинаковыми

 

серией

 

и

 

номером

 

паспортов

КОД

Д

Из

 

определения

 

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

 

ключа

 

также

 

следует

что

 

в

 

общем

 

случае

 

ключ

 

может

 

включать

 

в

 

себя

 

не

 

один

а

 

несколько

 

атрибутов

В

 

этом

 

определении

 

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

 

ключ

 

определен

 

как

 

множество

 

атрибутов

Например

в

 

отношении

  

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

 

_

СТУД

 

ИСЦИПЛИНА

 

№БИЛЕТА

 

ОЦЕНКА

 

С

9

 

Физика

 

10 5 

С

9

 

Математика

 

16 4 

С

9

 

История

 

3 4 

С

Физика

 

13 3 

С

Математика

 

2 4 

С

1

 

Математика

 

10 5 

С

7

 

Информатика

 

17 5 

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

ключ

 

включает

 

в

 

себя

 

два

 

атрибута

  {

КОД

_

СТУД

ДИСЦИПЛИНА

}, 

причем

в

 

отличие

 

ы

 

от

 

предыдущего

 

примера

каждый

 

из

 

этих

 

атри

с

никальности

 

обладает

 

именно

 

пара

 

значений

 

этих

 

атрибутов

 

(

конкретный

о

п

е

одну

По

бутов

 

в

 

отдельности

 

не

 

являют я

 

ключами

Из

 

таблицы

 

видно

что

 

значения

  

ни

 

одного

 

из

 

этих

 

атрибутов

 

сами

 

по

 

себе

 

не

 

являются

 

уникальными

Свойством

 

у

 

студент

 

по

 

к нкретной

 

дисциплине

 

на

 

экзамене

 

олучает

 

динственный

 

билет

 

и

 

только

 

 

оценку

).  

тенциальный

 

ключ

имеющий

 

в

 

своем

 

составе

 

больше

чем

 

один

 

атрибут

называется

 

составным

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

 

ключ

состоящий

 

из

 

единственного

 

атрибута

называется

 

простым

Обратим

 

внимание

 

также

 

на

 

требование

 

неизбыточности

 

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

 

ключа

Это

 

требование

 

говорит

 

о

ий

 

которы

 

том

что

 

не

 

всякое

 

множество

 

атрибутов

совокупность

 

значен

х

 

обладает

 

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

 

и

 

позволяет

 

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

 

кортежи

является

 

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

 

ключом

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

в

 

приведенном

 

выше

 

отношении

 

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

 

сочетания

 

трех

 

атрибутов

 

{

КОД

_

СТУД

ДИСЦИПЛИНА

ОЦЕНКА

или

  {

КОД

_

СТУД

ДИСЦИПЛИНА

№БИЛЕТА

}, 

а

 

также

 

всех

 

четырех

 

атрибутов

  {

КОД

_

СТУД

ДИСЦИПЛИНА

№БИЛЕТА

ОЦЕНКА

тоже

 

позволяют

 

однозначно

 

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

 

кортежи

 

отношения

 (

первое

 

свойство

 

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

 

ключа

). 

Однако

тем

 

не

 

менее

ни

 

один

 

из

 

этих

 

наборов

 

атрибутов

 

не

 

является

 

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

 

ключом

из

-

за

 

своей

 

избыточности

 

для

 

целей

 

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

 

кортежей

Как

 

уже

 

указывалось

для

 

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

 

кортежей

 

этого

 

отношения

 

достаточно

 

сочетания

 

двух

 

атрибутов

  {

КОД

_

СТУД

ДИСЦИПЛИНА

}, 

именно

 

эта

 

пара

 

и

 

является

 

составным

 

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

 

ключом

 

этого

 

отношения

остальные

 

же

 

атрибуты

 

для

 

целей

 

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

 

кортежей

 

являются

 

избыточными


background image

 

90

Важность

 

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

 

ключей

 

в

 

реляционной

 

модели

 

состои

что

 

он

обеспечивают

 

механизм

 

адресации

 

данных

 

на

 

уровне

 

кор

нный

 

гарант

т

 

в

 

том

и

 

тежей

Единстве

ированный

 

системой

 

способ

 

точно

 

указать

 

на

 

какой

-

нибудь

 

кортеж

 – 

это

 

указать

 

значение

 

некоторого

 

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

 

ключа

Учитывая

что

 

кортежи

 

отношения

 

фактически

 

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

 

собой

 

конкретные

 

енциальные

 

ключи

 

 

сущностей

 

Заметим

 

еще

что

 

факт

 

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

 

наличия

 

в

 

отношении

 

хотя

 

бы

 

одно

экземпляры

 

некоторых

 

сущностей

 

предметной

 

области

пот

являются

 

фактически

 

средством

 

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

 

экземпляров

предметной

 

области

го

 

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

 

ключа

 

следует

 

из

 

свойства

 

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

 

кортежей

 

отношения

Следствием

 

этого

 

свойства

 

является

 

то

что

 

в

 

любом

 

случае

по

 

крайней

 

мере

набор

 

значений

 

всех

 

атрибутов

 

отношения

 

обладает

 

свойством

 

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

необходимым

 

для

 

однозначной

 

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

 

кортежей

В

 

реляционной

 

модели

 

по

 

традиции

 

один

 

из

 

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

 

ключей

  

выбирают

 

в

 

качестве

 

первичного

 

ключа

  (

primary key

). 

В

 

таком

 

случае

 

остальные

 

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

 

ключи

  (

при

 

их

 

наличии

будут

 

называться

 

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

 

ключами

 (

alternate key

). 

В

 

контексте

 

тематики

 

данной

 

главы

  (

ограничения

 

целостности

 

базы

 

данных

), 

спецификация

  (

выбор

назначение

атрибута

 

или

 

набора

 

атрибутов

 

в

 

качестве

 

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

 

ключа

 

отношения

означающее

 

наложение

 

на

 

этот

 

набор

 

требования

 

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

 

комбинации

 

его

 

значений

является

 

одним

 

из

 

важных

 

ограничений

 

целостности

 

атрибутов

Очевидно

 

также

что

 

это

 

ограничение

 

является

 

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

 

уровня

 

отношения

так

 

как

 

для

 

его

 

поддержки

 

необходимо

 

знание

 

значений

 

атрибутов

 

для

 

всех

 

кортежей

 

отношения

Ограничение

 

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

 

ключа

 

еще

 

назыв ют

 

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

 

целостности

 

сущности

а

 

именно

 

– 

каждая

 

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

 

в

 

базе

 

данных

 

сущность

 

должна

 

быть

 

идентифицируема

.  

Указание

 

такого

 

ограничения

 

подразумевает

что

сообщая

 

системе

 

о

 

том

что

 

данный

 

набор

 

атрибутов

 

является

 

перви ным

 

или

 

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

ать

 

от

 

системы

 

дейст

а

ч

 

ключом

мы

 

вправе

 

ожид

вий

контролирующих

 

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

 

з

о

 

набор атрибутов

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

 NUL

значения

пол

NULL

ляет я

как

е

 

говорилось

 

выше

средством

 

вл

ии

 

конкрет

значен

какого ибо

 

атрибута

 

н

ст

 

не

 

определено

Рассмотрим

м

 

образом

 

возможность

 

того

что

 

значение

 

трибута

 

онкретного

 

кортежа

 

отношения

 

может

 

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

(

помечено

 

маркером

 NULL

етается

 

свойс

ми

 

начений

 

этог

а

 

 

ключи

 

и

L-

 

Ис

ьзование

 

маркеров

 

 

яв

с

 

уж

предста ения

 

ситуац

когда

ное

 

ие

 

-

л

е

 

изве но

 

или

каки

а

к

 

соч

со

 

тва