Ограничения целостности. Ограничения целостности для атрибутов. Ограничения целостности для связей между типами сущностей, страница 2

   <CP, CD, N, P>

--------------- Оклад

-------------------------Количество ставок

-------------------  Код должности

-----------  Код подразделения.

Агрегатное ОЦ в данном случае может ограничивать максимум и минимум окладов но не абсолютно, а в зависимости от значений других элементов базы данных:

a*(N[1]*p[1]+...+N[m]*p[m])/(N[1]+...+N[m])< p[k]  (k=1,..,m)

b*(N[1]*p[1]+...+N[m]*p[m])/(N[1]+...+N[m])> p[k]  (k=1,..,m)

Здесь номера в квадратных скобках соответствуют порядковому номеру записи в реализации типа сущности.

ОГРАНИЧЕНИЯ ЦЕЛОСТНОСТИ ДЛЯ ТИПОВ СУЩНОСТЕЙ.

Важным классом ОЦ для типов сущностей является класс ограничений, задаваемых на отображениях между атрибутами, относящимися к одному ипу сущности. Например для типа сущности "КНИГА" (рис. 5.4) справедлива следующая характеристика отношения R между кодом книги CB и издательством PUBL кардинальными числами:

R (CB(1, >< );PUBL (1,1)).

Код книги

Автор

наименование

издательство

CB        ATH        NB            PUBL  Идентификаторы атрибутов

Рисунок 5.4

Ограничений целостности такого типа представляют собой функциональную зависимость между атрибутами, которая используется для введения понятия возможного ключа в соответствующем типе сущности.

Если между атрибутом А (возможно, составным) и любым другим атрибутом типа сущности или связи существует функциональная зависимость, то атрибут А называется возможным ключом.

Такое название обусловлено тем, что указанным свойством может обладать не один атрибут типа сущности (не одно сочетание атрибутов).

Обычно один из возможных ключей, обладающий свойством неизбыточности, выбирается в качестве (первичного) ключа для заданного типа сущности.

ИЗБЫТОЧНОСТЬ - наличие в составе ключа атрибутов, являющихся избыточными для идентификации кортежа отношения.

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

Таблица записей может иметь несколько строк с одинаковым содержанием, которые представляют дубликаты записей. Для того, чтобы обеспечить уникальную идентификацию таких экземпляров записей введено понятие ВНЕШНЕГО КЛЮЧА.

Внешний ключ - это атрибут, значения которого уникально идентифицируют экземпляры записей, но не обязательно их содержание.

Способ использования внешнего ключа при манипулировании данными отличается от способа работы с остальными атрибутами.

ОГРАНИЧЕНИЯ ЦЕЛОСТНОСТИ ДЛЯ СВЯЗЕЙ МЕЖДУ ТИПАМИ СУЩНОСТЕЙ.

Ограничение по существованию для типов сущностей S1 и S2 заключается в том, что для существования объекта в сущности S2 он должен существовать в S1. Рассмотрим это на примере, данном на рис. 5.5.

Cущность S1

Код дисциплины

Наименование дисциплины

CD*                  ND

Cущность S2

Код дисциплины

Код группы

Семестр

СD*             CG*          S*

Рисунок 5.5

Запись с кодом дисциплины в S2 для учебных групп существует постольку, поскольку  для нее имеется запись в кодификаторе дисциплин S1:

R(S1(1,1);S2(0,>< ).

Если минимальное кардинальное число для одного из множеств декартова произведения, на котором определено отображение R, больше нуля

R(S1(l,n);S2(k,m)) или  R(S1(k,m);S2(l,n))  (l>=1), то для соответствующего отношения (соответствующей связи) имеет место ограничение по существованию.

В СУБД PARADOX ограничение по существованию устанавливается с использованием услуги ValCheck. После этого в процессе модернизации таблицы СУБД автоматически проверяет, есть ли в некоторой другой таблице запись с соответствующим значением атрибута.

ФУНКЦИОНАЛЬНЫЕ СВЯЗИ.

Если максимальное кардинальное число для одного из множеств декартова произведения, на котором определено отношение (связь типов сущностей) равно единице:

R(S1(m,n);S2(k,1)) или  R(S1(k,1);S2(m,n)), то соответствующее отображение называется функциональным и определяет функциональную связь.

Если при этом минимальное кардинальное число k равно нулю, то имеет место частичное (не полное) функциональное отображение, в противном случае говорят о полном функциональном отображении.

ОЦ НА СВЯЗИ, ЗАДАВАЕМОЕ КАРДИНАЛЬНЫМИ ЧИСЛАМИ

В общем случае при интерпретации связи между типами сущностей, как отображения могут потребоваться более  общие типы ОЦ, которые успешно задаются с использованием кардинальных чисел. Примеры таких ОЦ:

¨  в комнате общежития не могут проживать студенты более двух специальностей,

¨  в общежитии не могут проживать студенты более чем двух факультетов.