Целостность данных в реляционной модели данных | Статья в журнале «Молодой ученый»

Отправьте статью сегодня! Журнал выйдет 30 ноября, печатный экземпляр отправим 4 декабря.

Опубликовать статью в журнале

Авторы: , ,

Рубрика: Информационные технологии

Опубликовано в Молодой учёный №16 (150) апрель 2017 г.

Дата публикации: 23.04.2017

Статья просмотрена: 632 раза

Библиографическое описание:

Атаманов, Ю. С. Целостность данных в реляционной модели данных / Ю. С. Атаманов, В. С. Гончарук, С. Н. Гордеев. — Текст : непосредственный // Молодой ученый. — 2017. — № 16 (150). — С. 124-125. — URL: https://moluch.ru/archive/150/42487/ (дата обращения: 18.11.2024).



Неформально выражаясь, ограничение целостности — это логическое выражение, связанное с некоторой базой данных, результатом вычисления которого всегда должно быть значение TRUE. Подобное ограничение может рассматриваться как формальное выражение некоторого бизнес-правила (иногда ограничение целостности также и называют бизнес-правилом) используют в качестве. Пример бизнес-правил: «если сумма заказа составляет свыше 200 тыс. руб., скидка составляет 15 %», «каждая поставка выполняется существующим поставщиком, «разные поставщики не могут иметь одинаковые номера поставщиков». и т. п.

Очевидно, что ограничения должны быть формально объявлены для СУБД, после чего СУБД должна предписывать их выполнение. Объявление ограничений сводится просто к использованию соответствующих средств языка базы данных, а соблюдение ограничений осуществляется с помощью контроля со стороны СУБД над операциями обновления, которые могут нарушить эти ограничения, и запрещения тех операций, которые их действительно нарушают.

Безусловно, при первоначальном объявлении ограничения система должна проверить, удовлетворяет ли ему в настоящий момент база данных. Если это условие не соблюдается, ограничение должно быть отвергнуто; в противном случае оно принимается и начиная с этого момента соблюдается.

В общем, ограничения целостности представляют собой ограничения, налагаемые на значения, которые разрешено принимать некоторой переменной, или комбинации переменных. Поэтому тот факт, что конкретная переменная относится к некоторому определенному типу, представляет собой априорное ограничение, налагаемое на рассматриваемую переменную (это ограничение состоит в том, что значения, которые может принимать данная переменная, должны, безусловно, быть значениями этого типа). Например, переменная отношения N_student (номер студента) ограничивается тем, что должна содержать значения, являющиеся отношениями, в которых каждое значение N_student# представляет собой номер поставщика (значение типа N_student#), каждое значение Name_student является именем (значением типа NAME) и т. д. Но эти простые априорные ограничения, безусловно, не остаются единственными возможными. Например, возраст человека не может превышать какого-то определённого порога, а также не может быть отрицательным. Например, в БД работников фирмы возраст сотрудника должен принимать значения от 18 до 100.

Для дальнейшего обсуждения введём понятия предиката и высказывания. Предикатом называется любое логическое выражение, в которой значение переменных неопределенны (то есть узнать результат вычисления логического выражения невозможно). Например, «A — это B» является предикатом, а A и B — это формальные параметры этого предиката. Когда данный предикат конкретизируется, то есть вместо A и B подставляются конкретные значения, то данное выражение называется высказыванием, а определённые переменные — фактическими параметрами. Например, «солнце — это звезда», «луна — это звезда». Какое-то из этих высказываний оказывается ложным (FALSE), а какое-то истинным (TRUE).

Можно сделать следующие выводы: ограничение, определенное формально, становится предикатом, но при проверке этого ограничения вместо формальных параметров предиката подставляются фактические параметры, в результате чего предикат сводится к высказыванию, и к такому высказыванию затем предъявляется требование, чтобы его значение было равно TRUE.

Введем понятие предиката переменной отношения. Предположим, что R — переменная отношения. В таком случае предикатом переменной отношения R является результат применения логической операции “И”, или операции конъюнкции ко всем ограничениям, которые распространяются на переменную отношения R. Это же понятие можно расширить на всю базу данных, то есть необходимо строго задавать, в какой части (или везде) БД будет проверяться заданное ограничение.

Теперь допустим, что R — переменная отношения, а RP — предикат переменной отношения для R. Итак, безусловно, ни в коем случае нельзя допускать, чтобы переменная R приобретала такое значение, что его подстановка в RP вместо R (а также любая другая необходимая подстановка фактических параметров вместо формальных параметров, которая должна быть выполнена в RP), становилась причиной того, чтобы предикат RP принимал значение FALSE. Итак, теперь мы можем ввести золотое правило (первую версию), которое имеет большое значение при анализе ограничений целостности: «ни одна операция обновления не должна приводить к присваиванию любой переменной отношения такого значения, которое вызывает то, что предикат этой переменной отношения получает значение FALSE».

Как было показано выше, каждая переменная отношения имеет предикат переменной отношения, а вся база данных имеет предикат базы данных. Безусловно, все рассматриваемые предикаты являются такими, о которых “в системе имеется информация”. Это означает, что подобные предикаты определены формально (т. е. они фактически входят в состав определения базы данных), кроме того, их соблюдение контролируется системой. По этим причинам иногда удобно называть рассматриваемые предикаты внутренними предикатами, поскольку переменные отношения и базы данных в принципе имеют также внешние предикаты, описание которых приведено ниже.

Первое и наиболее важное замечание состоит в том, что внутренние предикаты — это формальные конструкции, тогда как внешние предикаты — просто неформальные конструкции. Внутренние предикаты являются описанием того, что означают данные для системы; в отличие от этого, внешние предикаты описывают, что означают данные для пользователя. Безусловно, пользователи должны знать не только о внешних предикатах, но и о внутренних, однако еще раз повторим, что система должна иметь информацию о внутренних предикатах (и действительно быть способной учитывать лишь внутренние предикаты). Можно фактически неформально утверждать, что любой внутренний предикат представляет собой аппроксимацию в системе соответствующего внешнего предиката.

Литература:

  1. Дейт К. Дж. Введение в системы баз данных, 8-е издание: Пер. с англ. –М.: Издательский дом «Вильямс», 2005. ‑1328 с.
  2. Целостность базы данных // Википедия. URL: https://ru.wikipedia.org/wiki/Целостность_базы_данных (дата обращения: 16.04.2017).
Основные термины (генерируются автоматически): предикат, FALSE, TRUE, переменная, баз данных, база данных, логическое выражение, ограничение, ограничение целостности, предикат переменной отношения.


Задать вопрос