Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
BD / Slides / Russian / Лекция 05R-Реляционная структура данных.ppt
Скачиваний:
31
Добавлен:
20.02.2016
Размер:
227.84 Кб
Скачать

Лекция 5. Реляционная структура данных

Пример первичного ключа

 

 

 

 

Первичный ключ

 

 

 

 

 

 

 

 

 

 

 

Значения

 

 

 

 

 

 

 

 

 

атрибутов,

Сотрудники:

 

Ном

Фамилия

Сер_пасп

Ном_пасп

 

 

 

 

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

 

 

 

 

 

 

 

 

 

первичный ключ,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

Сидорчук

СН

951945

 

 

 

могут повторяться

 

 

 

 

 

 

 

 

2

Петренко

СН

917327

 

 

 

Этот кортеж нарушает

 

 

3

Бутенко

СК

917327

 

 

 

 

 

 

 

 

ограничение

 

 

4

Иванчук

ВО

111223

 

 

 

первичного ключа, так

 

 

 

 

 

 

 

 

 

как повторяет

 

 

5

Грищук

ВО

111223

 

 

 

 

 

 

 

значение уже

 

 

6

Деркач

МК

NULL

 

 

 

 

 

 

существующего ключа

 

 

7

Иванов

NULL

457328

 

 

 

 

 

 

 

 

 

 

 

 

 

Последние два

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

кортежа нарушают

 

 

 

 

 

 

 

 

 

ограничение

 

 

 

 

 

 

 

 

 

первичного ключа, так

 

 

 

 

 

 

 

 

 

как содержат значения

ФКН НАУ

 

 

 

 

 

 

NULL

 

 

 

 

 

21

Лекция 5. Реляционная структура данных

Внешний ключ

В реляционной модели связь между отношениями определяется «по значению».

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

Отношение, из которого делается ссылка, - дочернее. Отношение, на которое делается ссылка, - родительское.

Ссылаться можно только на первичный (или уникальный) ключ родительского отношения.

ФКН НАУ

22

Лекция 5. Реляционная структура данных

Пример внешнего ключа

Первичный ключ

 

 

 

Ссылка на первичный ключ

 

 

 

 

родительского отношения

 

 

 

 

 

 

 

 

Первичный ключ

 

 

 

 

Фак-т Ном

Имя

Декан

Каф-ра Ном

Имя

Зав.

ФакNo

Внешний

ключ

1

ФКН

Иванов

 

1

ИПО

Труб

1

 

2

ФКС

Петров

 

 

 

2

СУБД

Грач

1

 

 

 

 

 

 

Родительское отношение

 

3

САПР

Орел

2

 

 

4

ЯП

Драч

NULL

 

 

 

Дочернее отношение

5

ОС

Сыч

3

 

 

 

 

 

 

Этот кортеж нарушает ограничения целостности внешнего ключа (ссылочное ограничение целостности):

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

ФКН НАУ

23

Лекция 5. Реляционная структура данных

Свойства внешнего ключа

Основное свойство (ограничение целостности):

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

родительского отношения. Это так называемое

ссылочное (или референциальное) ограничение целостности внешнего ключа.

Дополнительные свойства:

Значения внешнего ключа могут повторяться.

Внешний ключ может принимать значение NULL.

ФКН НАУ

24

Лекция 5. Реляционная структура данных

Поддержание ссылочной целостности

Манипулирование кортежами дочернего отношения:

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

При удалении ничего не проверяется.

Манипулирование кортежами родительского отношения:

При вставке ничего не проверяется.

При удалении и замене:

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

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

Удаляя/заменяя родительский кортеж, разорвать связь с ним кортежей дочерней таблицы и вместо ссылки поставить NULL.

Удаляя/заменяя родительский кортеж, разорвать связь с ним кортежей дочерней таблицы и вместо ссылки поставить значение

ФКН НАУ по умолчанию.

25

Лекция 5. Реляционная структура данных

Поддержания ссылочной целостности в SQL

Описание поддержания целостности в стандарте SQL:

ON DELETE {RESTRICT | CASCADE | SET NULL | SET DEFAULT} ON UPDATE {RESTRICT | CASCADE | SET NULL | SET DEFAULT}

Описание поддержания целостности в SQL Oracle:

[ON DELETE {CASCADE | SET NULL}]

ФКН НАУ

26

Лекция 5. Реляционная структура данных

Поддержание ссылочной целостности - RESTRICT

ON DELETE RESTRICT

Эти кортежи удалять нельзя, так как на них имеются ссылки Этот кортеж можно удалить, так как на него нет ссылок

 

 

 

 

 

 

 

 

 

 

 

 

 

Фак-т

 

Ном

Имя

Декан

 

Каф-ра

 

Ном

Имя

Зав.

ФакNo

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

ФКН

Иванов

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

ИПО

Труб

1

 

 

 

2

ФКС

Петров

 

 

 

 

 

 

 

 

 

2

СУБД

Грач

1

 

 

 

3

ФКТ

Игнатов

 

 

 

 

 

 

 

 

 

3

САПР

Орел

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

ЯП

Драч

NULL

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Этот кортеж, включая поле «Ном» можно изменять, так как на него нет ссылок Значения атрибута «Ном» этих кортежей изменять нельзя, так как на них имеются ссылки

ON UPDATE RESTRICT

ФКН НАУ

27

Лекция 5. Реляционная структура данных

Поддержание ссылочной целостности – CASCADE

ON DELETE CASCADE

При удалении этого кортежа удаляются также эти кортежи дочернего отношения, которые ссылаются на удаляемый кортеж родительского отношения.

 

 

 

 

 

 

 

 

 

 

 

 

 

Фак-т

 

Ном

Имя

Декан

 

Каф-ра

 

Ном

Имя

Зав.

ФакNo

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

ФКН

Иванов

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

ИПО

Труб

1

 

 

 

2

ФКС

Петров

 

 

 

 

 

 

 

 

 

2

СУБД

Грач

1

 

 

 

3

ФКТ

Игнатов

 

 

 

 

 

 

 

 

 

3

САПР

Орел

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

ЯП

Драч

NULL

 

 

 

 

 

 

 

 

 

 

 

 

 

 

При изменении атрибута «Ном» этого кортежа автоматически изменяются эти значения атрибута «ФакNo», которые ссылаются на изменяемый кортеж родительского отношения

ON UPDATE CASCADE

ФКН НАУ

28

Лекция 5. Реляционная структура данных

Поддержание ссылочной целостности – SET NULL

ON DELETE SET NULL

При удалении этого кортежа устанавливаются в NULL эти значения атрибута «ФакNo, которые ссылаются на удаляемый кортеж родительского отношения.

 

 

 

 

 

 

 

 

 

 

 

 

 

Фак-т

 

Ном

Имя

Декан

 

Каф-ра

 

Ном

Имя

Зав.

ФакNo

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

ФКН

Иванов

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

ИПО

Труб

1

 

 

 

2

ФКС

Петров

 

 

 

 

 

 

 

 

 

2

СУБД

Грач

1

 

 

 

3

ФКТ

Игнатов

 

 

 

 

 

 

 

 

 

3

САПР

Орел

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

ЯП

Драч

NULL

 

 

 

 

 

 

 

 

 

 

 

 

 

 

При изменении атрибута «Ном» этого кортежа устанавливаются в NULL эти значения атрибута «ФакNo», которые ссылаются на изменяемый кортеж родительского отношения

ON UPDATE SET NULL

ФКН НАУ

29

Лекция 5. Реляционная структура данных

Поддержание ссылочной целостности – SET DEFAULT

ON DELETE SET DEFAULT

При удалении этого кортежа устанавливаются эти значения атрибута «ФакNo принимают значения по умолчанию.

 

 

 

 

 

 

 

 

 

 

 

 

 

Фак-т

 

Ном

Имя

Декан

 

Каф-ра

 

Ном

Имя

Зав.

ФакNo

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

ФКН

Иванов

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

ИПО

Труб

1

 

 

 

2

ФКС

Петров

 

 

 

 

 

 

 

 

 

2

СУБД

Грач

1

 

 

 

3

ФКТ

Игнатов

 

 

 

 

 

 

 

 

 

3

САПР

Орел

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

ЯП

Драч

NULL

 

 

 

 

 

 

 

 

 

 

 

 

 

 

При изменении атрибута «Ном» этого кортежа эти значения атрибута «ФакNo» принимают значения по умолчанию.

ON UPDATE SET DEFAULT

ФКН НАУ

30