Безопасность баз данных Тема: Ключи в реляционных базах данных Менжулин Сергей Алексеевич ст.

Download Report

Transcript Безопасность баз данных Тема: Ключи в реляционных базах данных Менжулин Сергей Алексеевич ст.

Безопасность баз данных
Тема: Ключи в реляционных базах данных
Менжулин Сергей Алексеевич
ст. преподаватель кафедры ВТ НГТУ
Содержание
• Ключи в базах данных
– потенциальные
– первичные
– естественные
– суррогатные
• Ссылочная целостность
– внешние ключи
– ссылочные действия
2 / 16
Понятие ключа
Ключ – подмножество атрибутов отношения,
удовлетворяющее требованию уникальности
3 / 16
Потенциальные ключи
Отношение А: Список студентов
Фамилия
Имя
Отчество
Группа
Год пост.
№ студенч.
Иванов
Андрей
Михайлович
АВТ-012
2010
10287390
Петров
Иван
Олегович
АВТ-110
2011
11321002
Сидоров
Аркадий
Петрович
АВТ-012
2010
10372922
Егоров
Роман
Сергеевич
АВТ-915
2009
09812309
K1 = {Фамилия, Имя, Отчество}
K2 = {№ студенч.}
K3 = {№ студенч., Год пост.}
4 / 16
Потенциальные ключи
Подмножество атрибутов K отношения A
называют потенциальным ключом,
если K обладает следующими свойствами:
• уникальности
• неизбыточности
5 / 16
Первичный ключ
Потенциальные ключи
Альтернативные ключи
Первичный ключ
6 / 16
Выбор первичного ключа
Предпочтения
• уникальные значения
• неинтеллектуальный
• неизменяемость во времени
• одноатрибутность
• числовой
7 / 16
Первичные ключи в SQL
Требование уникальности
PRIMARY KEY = UNIQUE + NOT NULL
Требование определенности
8 / 16
Пример создания первичного ключа в SQL
CREATE TABLE t (id SERIAL PRIMARY KEY, name VARCHAR);
ALTER TABLE books ADD PRIMARY KEY (title, author);
ALTER TABLE books DROP CONSTRAINT "books_pkey";
9 / 16
Естественные ключи
Достоинства
• существуют почти всегда
• несут смысловую нагрузку
Недостатки
• могут изменяться
• нет гарантии уникальности
10 / 16
Суррогатные ключи
Отношение А: Список студентов с естественными ключами
Ключ
Фамилия
Фамилия
Имя
Имя ОтчествоОтчествоГруппа Группа
пост.
№ студенч.
Год пост.Год№
студенч.
1ИвановИванов
Михайлович
АндрейАндрей
Михайлович
АВТ-012АВТ-012
2010
2010
10287390
10287390
2Петров Петров
Олегович
Иван ИванОлегович
АВТ-110АВТ-110
2011
2011
11321002
11321002
3Сидоров
Сидоров
Аркадий
Петрович
Аркадий
Петрович
АВТ-012АВТ-012
2010
2010
10372922
10372922
4Егоров Егоров
Сергеевич
Роман Роман
Сергеевич
АВТ-915АВТ-915
2009
2009
09812309
09812309
Отношение А: Список студентов суррогатным ключом
11 / 16
Суррогатные ключи
Достоиства
• гарантируют уникальность
• легко обрабатываются
Недостатки
• нет смысловой нагрузки
12 / 16
Ссылочная целостность
Отношение А: Список студентов
Ключ Фамилия
Имя
Отчество
1
Иванов
Андрей
2
Петров
Иван
Год
пост.
№
студенч.
Михайлович АВТ-012
2010
10287390
Олегович
АВТ-110
2011
11321002
3
Сидоров Аркадий Петрович
АВТ-012
2010
10372922
4
Егоров
АВТ-915
2009
09812309
Роман
Сергеевич
Группа
Отношение B: Список экзаменов
Студент
Предмет
Дата
1
Физика
14-01-2013
2
Физика
14-01-2013
1
Химия
18-01-2013
3
Физика
14-01-2013
13 / 16
Внешние ключи
Внешний ключ FK – подмножество
атрибутов некоторой переменной
отношения B, значения которых
должны совпадать со значениями
некоторого потенциального ключа CK
некоторой переменной отношения A
14 / 16
Главные и подчиненные отношения
Отношение B:
Список студентов
Отношение A:
Список экзаменов
FK → CK
FC(Студент)
CK(Ключ)
Подчиненное (дочернее)
Главное (родительское)
15 / 16
Ссылочные действия
Варианты
• удалять (CASCADE)
• запретить (RESTRICT)
• игнорировать (NO ACTION)
16 / 16
Безопасность баз данных
Тема: Ключи в реляционных базах данных
Менжулин Сергей Алексеевич
ст. преподаватель кафедры ВТ НГТУ