# 11. Реляционная модель данных: виды ключей, реализация различных типов связей, виды целостности
# Виды ключей
def
Суперключ - это атрибут или множество атрибутов, единственным образом идентифицирующие кортеж.
TIP
Всё множество атрибутов само по себе является суперключом.
def
Потенциальный ключ - это суперключ, который не содержит подмножество, также являющегося суперключом.
TIP
Потенциальный ключ может быть простым и составным.
def
Первичный ключ (Primary Key) - это один из потенциальных ключей, который выбран для уникальной идентификации кортежей данного отношения.
def
Внешний ключ (Foreign Key) - это атрибут или множество атрибутов, которое соответствует потенциальному ключу некоторого, может быть, того же самого отношения.
# Типы связей
# 1. Один-к-одному
Первичный ключ одного из отношений является одновременно и внешним ключём.
TIP
Есть таблица работников, и таблица менеджеров по продажам. Id работника будет PK
, который взят из PK
менеджера. Таким образом, Id менеджера - это PK
и FK
одновременно.
Employee
Id_Emp (PK ) | Id_Boss (FK ) | Other fields |
---|---|---|
2 | 1 | field |
SalesPerson
Id_SalesPerson (PK , FK ) | Other fields |
---|---|
1, 2 | field |
# 2. Один-ко-многим
Значения в некотором неключевом аттрибуте берутся из некоторого потенциального ключа другого отношения.
TIP
Есть таблица групп и студентов. Значение Id группы у студента будет FK
, который взят из Id, то есть PK
группы.
Student
Table_Number | LastName | MiddleName | FirstName | Group_Id (FK ) |
---|---|---|---|---|
1 | Кудашев | Эдуардович | Искандер | 32011 |
Group
Group_Id (PK ) | Other fields |
---|---|
32011 | field |
# 3. Многие-ко-многим
Обычно используются таблицы-связки, хранящие связи по Id.
TIP
Есть менеджеры, каждый из которых продаёт продукты. Создаём таблицу с PK
продукта и менеджера.
# Виды целостности
- Сущностная целостность - в отношении ни один аттрибут
PK
не может содержатьNULL
значение - Ссылочная целостность - если в отношении существует
FK
, то значение этого ключа должно соответствовать существующему значениюPK
в другом отношении