summaryrefslogtreecommitdiff
path: root/databases/lectures/lecture2.tex
blob: e7052abecbcf4a8019f9ffccc5ce597ee273a272 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
% Лекция 2 (16.09.21)
\section{Целостность данных}

NULL нельзя ни с чем сравнивать, любая операция с NULL даёт в результате NULL.

\textbf{Целостность} в реляционной базе данных означает правильность
данных в любой момент времени. \textbf{Ограничения целостности} --- это
некие правила позволяющие поддерживать целостность данных в каждый
момент времени. Поддержание целостности базы данных может
рассматриваться как защита данных от неверных изменений или разрушений
(не путать с незаконными изменениями и разрушениями, являющимися
проблемой безопасности). Современные СУБД имеют ряд средств для
поддержания целостности.

Выделяют три группы правил по целостности:

\begin{itemize}
  \item Целостность по сущностям;
  \item Целостность по ссылкам (ограничения уровня БД);
  \item Целостность, определяемая пользователем (ограничения уровня атрибута)
\end{itemize}

\subsection{Целостность по сущностям}

Так как потенциальные ключи фактически служат идентификаторами объектов
предметной области, то значения этих идентификаторов не могут сожержать
неизвестные значения. Это определяет следующее \emph{правило целостности
сущностей}: атрибуты, входящие в состав некоторого потенциального ключа
не могут принимать null-значений.