SlideShare a Scribd company logo
1 of 23
Управление данными
Лекция 3
Значение NULL
2
 В реляционной алгебре используется тернарная
логика.
 Для любого атрибута есть первичное
универсальное пустое значение: NULL.
 Используется в тех случаях, когда значение
неизвестно.
 Таблицы истинности для NULL:
& 0 1 N
0 0 0 0
1 0 1 N
N 0 N N
|| 0 1 N
0 0 1 N
1 1 1 1
N N 1 N
!
0 1
1 0
N N
Потенциальный ключ
3
 Подмножество атрибутов К отношения R будем
называть потенциальным ключом, если
выполняются свойства:
 уникальность – в отношении R отсутствуют кортежи
с идентичными значениями К;
 неизбыточность – никакое подмножество множества
К не обладает свойством уникальности.
 Потенциальный ключ – единственное средство
идентификации и адресации на уровне
кортежей.
Целостность сущностей
4
 Правило целостности сущности – атрибуты,
входящие в состав потенциального ключа не могут
иметь значение NULL, то есть принимать пустых
значений
Первичные и альтернативные ключи
5
 Простой ключ – потенциальный ключ,
состоящий из одного атрибута.
 Составной ключ - потенциальный ключ,
состоящий из множества атрибутов.
 Если в отношении можно выделить более чем
один потенциальный ключ, то один из ключей
выбирается первичным PK (Primary Key),
остальные становятся альтернативными AK
(Alterative Key).
Внешний ключ
6
 Подмножество атрибутов FK (Foreign Key) множества
атрибутов отношения R называется внешним
ключом, если выполнены следующие условия:
 существует отношение S с потенциальным ключом K;
 каждое значение FK в R всегда совпадает с некоторым
значением K из S, Либо является NULL-значением.
 Отношение S в данном случае принято считать
родительским, R - дочерним.
Пример
7
ID_поставщика Поставщик ID_категории Категория Количество
0 Apple 1 Телефон 100
0 Apple 2 Планшет 40
2 Samsung 1 Телефон 100
2 Samsung 3 Ноутбук 50
Пример
8
ID_поставщика Поставщик ID_категории Категория Количество
0 Apple 1 Телефон 100
0 Apple 2 Планшет 40
2 Samsung 1 Телефон 100
2 Samsung 3 Ноутбук 50
Составной
потенциальный
ключ (первичный)
Составной
потенциальный ключ
(альтернативный)
Пример
9
ID Поставщик
0 Apple
2 Samsung
ID Категория
1 Телефон
2 Планшет
3 Ноутбук
Пример
10
ID Поставщик
0 Apple
2 Samsung
ID Категория
1 Телефон
2 Планшет
3 Ноутбук
Простые
потенциальные
ключи
Простые
потенциальные
ключи
Первичный
ключ
Альтернативный
ключ
Пример
11
ID_поставщика ID_категории Количество
0 1 100
0 2 40
2 1 100
2 3 50
ID Поставщик
0 Apple
2 Samsung
ID Категория
1 Телефон
2 Планшет
3 Ноутбук
Родительское
отношение S1
Родительское
отношение S2
Дочернее
отношение R
Первичный ключ К1 Внешние ключи FK Первичный ключ К2
Свойства внешнего ключа
12
 Для внешнего ключа не требуется уникальность
значений кортежей.
 Внешний ключ может быть простым и составным.
 Должен быть того же типа что и потенциальный
ключ родительского отношения.
 Каждое значение внешнего ключа должно совпадать
со значением потенциального ключа родительского
отношения, обратное не обязательно верно.
 Наличие NULL среди значений внешнего ключа
может трактоваться как признак отсутствия
связанной записи в родительском отношении.
Целостность внешнего ключа
13
 База данных не должна содержать каких-либо
несогласованных значений внешнего ключа.
 Для каждого значения внешнего ключа должно
существовать соответствующее значение
первичного ключа в родительском отношении,
иначе возникнет нарушение целостности.
Ссылочная целостность
14
 Для родительского отношения:
 Изменение (обновление) кортежа может нарушить ссылочную
целостность, если это обновление затрагивает значение в
дочернем отношении.
 Удаление кортежа может нарушить ссылочную целостность
если в дочернем кортеже есть данные, ссылающиеся на
удаляемые.
 Для дочернего отношения:
 Вставка кортежа может привести к нарушению ссылочной
целостности.
 Изменение кортежа может привести к нарушению ссылочной
целостности.
Отношение insert update delete
Родительское x x
Дочернее x x
Пример
15
ID Поставщик
0 Apple
2 Samsung
ID_поставщика Количество
0 500
2 1000
Родительское
отношение S
Дочернее
отношение R
Нарушение целостности в S
16
ID Поставщик
0 Apple
ID_поставщика Количество
0 500
2 1000
Родительское
отношение S
Дочернее
отношение R
Нарушение целостности в R
17
ID Поставщик
0 Apple
2 Samsung
ID_поставщика Количество
0 500
2 1000
1 400
Родительское
отношение S
Дочернее
отношение R
Соблюдение целостности в R
18
ID Поставщик
0 Apple
2 Samsung
ID_поставщика Количество
0 500
2 1000
NULL 400
Родительское
отношение S
Дочернее
отношение R
Стратегии поддержания целостности
19
 Основные:
 Ограничение (RESTRICT),
 Каскадирование (CASCADE).
 Дополнительные:
 Установка в NULL (SET NULL),
 Установка по умолчанию (SET DEFAULT).
 Исключительная:
 Игнорировать ссылочную целостность
(IGNORE). Отказ от поддержки ссылочной
целостности.
Ограничение (RESTRICT)
20
 Ограничение предполагает запрет на
выполнение операции, приводящей к
нарушению ссылочной целостности.
 Самая простая стратегия, требующая только
проверки, имеются ли кортежи в дочернем
отношении, связанные с некоторым кортежем в
родительском отношении.
 Стратегии RESTRICT и CASCADE являются
стандартными и присутствуют во всех СУБД, в
которых имеется поддержка ссылочной
целостности.
Каскадирование (CASCADE)
21
 Разрешить выполнение требуемой операции, но
внести при этом необходимые поправки в других
отношениях так, чтобы не допустить нарушения
ссылочной целостности и сохранить все
имеющиеся связи.
 Изменение начинается в родительском отношении и
каскадно выполняется в дочернем отношении.
 Дочернее отношение может одновременно являться
родительским для некоторого третьего отношения.
Установка в NULL (SET NULL)
22
 Разрешить выполнение требуемой операции, но
все возникающие некорректные значения
внешних ключей изменять на значения NULL.
 Стратегия имеет два недостатка.
 требуется допустить использование NULL;
 кортежи дочернего отношения теряют всякую связь
с кортежами родительского отношения.
Установка по умолчанию (SET DEFAULT)
23
 Разрешить выполнение требуемой операции, но все
возникающие некорректные значения внешних
ключей изменять на некоторое значение, принятое
по умолчанию.
 Достоинство этой стратегии по сравнению с
предыдущей в том, что она позволяет не
пользоваться значениями NULL.
 Недостатки: в родительском отношении должен
быть некий кортеж, потенциальный ключ которого
принят как значение по умолчанию для внешних
ключей.
 кортеж нельзя удалять из родительского отношения,
 нельзя изменять значение потенциального ключа.

More Related Content

More from Dmitriy Krukov

Мировые информационные ресурсы. Лекция 1
Мировые информационные ресурсы. Лекция 1Мировые информационные ресурсы. Лекция 1
Мировые информационные ресурсы. Лекция 1Dmitriy Krukov
 
Мировые информационные ресурсы. Лекция 2
Мировые информационные ресурсы. Лекция 2Мировые информационные ресурсы. Лекция 2
Мировые информационные ресурсы. Лекция 2Dmitriy Krukov
 
Управление Данными. Лекция 8
Управление Данными. Лекция 8Управление Данными. Лекция 8
Управление Данными. Лекция 8Dmitriy Krukov
 
Управление Данными. Лекция 7
Управление Данными. Лекция 7Управление Данными. Лекция 7
Управление Данными. Лекция 7Dmitriy Krukov
 
Управление Данными. Лекция 6
Управление Данными. Лекция 6Управление Данными. Лекция 6
Управление Данными. Лекция 6Dmitriy Krukov
 
Управление Данными. Лекция 5
Управление Данными. Лекция 5Управление Данными. Лекция 5
Управление Данными. Лекция 5Dmitriy Krukov
 
Управление Данными. Лекция 4
Управление Данными. Лекция 4Управление Данными. Лекция 4
Управление Данными. Лекция 4Dmitriy Krukov
 

More from Dmitriy Krukov (7)

Мировые информационные ресурсы. Лекция 1
Мировые информационные ресурсы. Лекция 1Мировые информационные ресурсы. Лекция 1
Мировые информационные ресурсы. Лекция 1
 
Мировые информационные ресурсы. Лекция 2
Мировые информационные ресурсы. Лекция 2Мировые информационные ресурсы. Лекция 2
Мировые информационные ресурсы. Лекция 2
 
Управление Данными. Лекция 8
Управление Данными. Лекция 8Управление Данными. Лекция 8
Управление Данными. Лекция 8
 
Управление Данными. Лекция 7
Управление Данными. Лекция 7Управление Данными. Лекция 7
Управление Данными. Лекция 7
 
Управление Данными. Лекция 6
Управление Данными. Лекция 6Управление Данными. Лекция 6
Управление Данными. Лекция 6
 
Управление Данными. Лекция 5
Управление Данными. Лекция 5Управление Данными. Лекция 5
Управление Данными. Лекция 5
 
Управление Данными. Лекция 4
Управление Данными. Лекция 4Управление Данными. Лекция 4
Управление Данными. Лекция 4
 

Управление Данными. Лекция 3

  • 2. Значение NULL 2  В реляционной алгебре используется тернарная логика.  Для любого атрибута есть первичное универсальное пустое значение: NULL.  Используется в тех случаях, когда значение неизвестно.  Таблицы истинности для NULL: & 0 1 N 0 0 0 0 1 0 1 N N 0 N N || 0 1 N 0 0 1 N 1 1 1 1 N N 1 N ! 0 1 1 0 N N
  • 3. Потенциальный ключ 3  Подмножество атрибутов К отношения R будем называть потенциальным ключом, если выполняются свойства:  уникальность – в отношении R отсутствуют кортежи с идентичными значениями К;  неизбыточность – никакое подмножество множества К не обладает свойством уникальности.  Потенциальный ключ – единственное средство идентификации и адресации на уровне кортежей.
  • 4. Целостность сущностей 4  Правило целостности сущности – атрибуты, входящие в состав потенциального ключа не могут иметь значение NULL, то есть принимать пустых значений
  • 5. Первичные и альтернативные ключи 5  Простой ключ – потенциальный ключ, состоящий из одного атрибута.  Составной ключ - потенциальный ключ, состоящий из множества атрибутов.  Если в отношении можно выделить более чем один потенциальный ключ, то один из ключей выбирается первичным PK (Primary Key), остальные становятся альтернативными AK (Alterative Key).
  • 6. Внешний ключ 6  Подмножество атрибутов FK (Foreign Key) множества атрибутов отношения R называется внешним ключом, если выполнены следующие условия:  существует отношение S с потенциальным ключом K;  каждое значение FK в R всегда совпадает с некоторым значением K из S, Либо является NULL-значением.  Отношение S в данном случае принято считать родительским, R - дочерним.
  • 7. Пример 7 ID_поставщика Поставщик ID_категории Категория Количество 0 Apple 1 Телефон 100 0 Apple 2 Планшет 40 2 Samsung 1 Телефон 100 2 Samsung 3 Ноутбук 50
  • 8. Пример 8 ID_поставщика Поставщик ID_категории Категория Количество 0 Apple 1 Телефон 100 0 Apple 2 Планшет 40 2 Samsung 1 Телефон 100 2 Samsung 3 Ноутбук 50 Составной потенциальный ключ (первичный) Составной потенциальный ключ (альтернативный)
  • 9. Пример 9 ID Поставщик 0 Apple 2 Samsung ID Категория 1 Телефон 2 Планшет 3 Ноутбук
  • 10. Пример 10 ID Поставщик 0 Apple 2 Samsung ID Категория 1 Телефон 2 Планшет 3 Ноутбук Простые потенциальные ключи Простые потенциальные ключи Первичный ключ Альтернативный ключ
  • 11. Пример 11 ID_поставщика ID_категории Количество 0 1 100 0 2 40 2 1 100 2 3 50 ID Поставщик 0 Apple 2 Samsung ID Категория 1 Телефон 2 Планшет 3 Ноутбук Родительское отношение S1 Родительское отношение S2 Дочернее отношение R Первичный ключ К1 Внешние ключи FK Первичный ключ К2
  • 12. Свойства внешнего ключа 12  Для внешнего ключа не требуется уникальность значений кортежей.  Внешний ключ может быть простым и составным.  Должен быть того же типа что и потенциальный ключ родительского отношения.  Каждое значение внешнего ключа должно совпадать со значением потенциального ключа родительского отношения, обратное не обязательно верно.  Наличие NULL среди значений внешнего ключа может трактоваться как признак отсутствия связанной записи в родительском отношении.
  • 13. Целостность внешнего ключа 13  База данных не должна содержать каких-либо несогласованных значений внешнего ключа.  Для каждого значения внешнего ключа должно существовать соответствующее значение первичного ключа в родительском отношении, иначе возникнет нарушение целостности.
  • 14. Ссылочная целостность 14  Для родительского отношения:  Изменение (обновление) кортежа может нарушить ссылочную целостность, если это обновление затрагивает значение в дочернем отношении.  Удаление кортежа может нарушить ссылочную целостность если в дочернем кортеже есть данные, ссылающиеся на удаляемые.  Для дочернего отношения:  Вставка кортежа может привести к нарушению ссылочной целостности.  Изменение кортежа может привести к нарушению ссылочной целостности. Отношение insert update delete Родительское x x Дочернее x x
  • 15. Пример 15 ID Поставщик 0 Apple 2 Samsung ID_поставщика Количество 0 500 2 1000 Родительское отношение S Дочернее отношение R
  • 16. Нарушение целостности в S 16 ID Поставщик 0 Apple ID_поставщика Количество 0 500 2 1000 Родительское отношение S Дочернее отношение R
  • 17. Нарушение целостности в R 17 ID Поставщик 0 Apple 2 Samsung ID_поставщика Количество 0 500 2 1000 1 400 Родительское отношение S Дочернее отношение R
  • 18. Соблюдение целостности в R 18 ID Поставщик 0 Apple 2 Samsung ID_поставщика Количество 0 500 2 1000 NULL 400 Родительское отношение S Дочернее отношение R
  • 19. Стратегии поддержания целостности 19  Основные:  Ограничение (RESTRICT),  Каскадирование (CASCADE).  Дополнительные:  Установка в NULL (SET NULL),  Установка по умолчанию (SET DEFAULT).  Исключительная:  Игнорировать ссылочную целостность (IGNORE). Отказ от поддержки ссылочной целостности.
  • 20. Ограничение (RESTRICT) 20  Ограничение предполагает запрет на выполнение операции, приводящей к нарушению ссылочной целостности.  Самая простая стратегия, требующая только проверки, имеются ли кортежи в дочернем отношении, связанные с некоторым кортежем в родительском отношении.  Стратегии RESTRICT и CASCADE являются стандартными и присутствуют во всех СУБД, в которых имеется поддержка ссылочной целостности.
  • 21. Каскадирование (CASCADE) 21  Разрешить выполнение требуемой операции, но внести при этом необходимые поправки в других отношениях так, чтобы не допустить нарушения ссылочной целостности и сохранить все имеющиеся связи.  Изменение начинается в родительском отношении и каскадно выполняется в дочернем отношении.  Дочернее отношение может одновременно являться родительским для некоторого третьего отношения.
  • 22. Установка в NULL (SET NULL) 22  Разрешить выполнение требуемой операции, но все возникающие некорректные значения внешних ключей изменять на значения NULL.  Стратегия имеет два недостатка.  требуется допустить использование NULL;  кортежи дочернего отношения теряют всякую связь с кортежами родительского отношения.
  • 23. Установка по умолчанию (SET DEFAULT) 23  Разрешить выполнение требуемой операции, но все возникающие некорректные значения внешних ключей изменять на некоторое значение, принятое по умолчанию.  Достоинство этой стратегии по сравнению с предыдущей в том, что она позволяет не пользоваться значениями NULL.  Недостатки: в родительском отношении должен быть некий кортеж, потенциальный ключ которого принят как значение по умолчанию для внешних ключей.  кортеж нельзя удалять из родительского отношения,  нельзя изменять значение потенциального ключа.

Editor's Notes

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23