Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие 700213.doc
Скачиваний:
29
Добавлен:
01.05.2022
Размер:
1.33 Mб
Скачать

Классификационные ограничения

Классификация информации в ходе функционирования системы происходит автоматически на основе классификационных ограничений (КО).

Определение. КО S - это правило, которое определяет значения для одного или более классификационных атрибутов Ci. Формально S - это четверка вида:

С=(R, А, Е, L),

где R - имя отношения; А - набор из одного или нескольких атрибутов в R; Е - опциональное выражение (например, формула логики предикатов); L - класс (точка в решетке ценностей).

Правило S интерпретируется следующим образом:

if Е then class (R.A)=L,

где R.A - означают атрибуты А в отношении R. Без ограничения общности, далее полагаем, что Ai определены на множестве действительных чисел (целые числа - частный случай, а значения не целочисленных атрибутов могут быть перенумерованы).

Замечание. Класс L - это выражение, которое может быть или константой, например, Secret, Тор Secret, или содержать одну или несколько переменных. Например, "Classt(B)" или "Class(B) , Class(C)".

Определение. Два класса L1 и L2 называются равными, если они представлены символьно идентичными записями.

Замечание. Это позволяет конструктивно проверять состоятельность.

Выражение Е есть конъюнкция одного или более условий, которым удовлетворяют наборы атрибутов в БД (дизъюнкции сводятся к конъюнкциям).

Пример 3.

E=(R1.A>0)((R1.A)=(R2.A))(0<R1.BR2.B<100).

Существует 4 типа классификационных ограничений.

1. Зависящие от типа. Выражение Е отсутствует и класс L - постоянный, так что все элементы, связанные с атрибутом, имеют один класс. Этот тип ограничений определяет одноуровневый атрибут. Например,

(R, А, , secret)

(R, (А, В), , secret)

2. Зависящие от значения. Здесь или Е присутствует, или L описывается выражением от переменной (или оба случая), так что класс элемента зависит от значения элемента, или от значения или класса других данных БД. Например,

(R, A, A=1, conf)

(R, A, A=2, secret)

(R, A, , class(R.B))

(R, A, A=1, class(R.B))

3. Зависящие от уровня источника. Класс L есть выражение "класс пользователя". Например,

( R, А, , class (user))

(R, В, В > О, class (user))

4. Зависящие от грифа источника. Класс L есть выражение *, которое означает, что субъект, вводящий элемент, определяет также и класс элемента. Например,

(R.A, , *)

(R, В, В > О, *)

Состоятельность

Определение. Множество классификационных ограничений называется состоятельным, если для каждой возможной строки реляционной БД из D, никакие два ограничения не определяют конфликтные классы для одного и того же элемента.

Пример 4. Рассмотрим БД Flight и классификационные ограничения на атрибуты Flight #, Dest, Date в отношении Flight.

(Flight, (Flight #, Dest, Date), ( Date < 500), Secret)

(Flight, (Flight #, Dest, Date), (1< Dest< 2), T.S)

(Flight , (Flight #, Dest, Date), (Dest>2)v(Date > 500),class(user)).

Предположим, что ограничения целостности разрешают строку со следующими значениями:

(Flight #=1750, Dest=l, Date=450).

Тогда ограничения несостоятельны, так как строка удовлетворяет обоим первым двум ограничениям, но эти ограничения не определяют одинаковые классы. Однако классификационные ограничения не будут несостоятельными, если выполняются еще следующие ограничения целостности:

(1 <Dest<2)(Date>500),

так как тогда нижние два из классификационных ограничений не выполняются одновременно.

Для того чтобы определить, является ли множество классификационных ограничений состоятельным при данных ограничениях целостности, достаточно определить, является ли каждая пара ограничений Si и Sj состоятельной.

Для проверки пары используется следующая теорема.

Теорема. Данная пара Si и Sj классификационных ограничений состоятельная, если выполняется хотя бы одно из следующих условий'.

1. Li=Lj - оба ограничения определяют один класс (напоминаем, равенство символьное);

2. .A(i)A(j)= - Si и Sj накладывают ограничения на непересекающиеся множества атрибутов;

3. EiEj= - оба ограничения не могут выполняться одновременно;

4. EiEjD= - оба ограничения не совместимы с условиями целостности.

Условия теоремы позволяют реализовать алгоритм, их проверяющий, и эффективно проверить состоятельность классификационных ограничений на практике.