47066

Органичения целостности БД. Классификация ограничений. Предикаты и высказывания. Пердикаты переменной отношения и БД. Основное правило целостности данных

Доклад

Информатика, кибернетика и программирование

Органичения целостности БД. Основное правило целостности данных. Ограничения целостности классифицируются по четырем основным категориям: ограничения типа домена атрибута переменнойотношения и базы данных. Типы виды условий целостности данных.

Русский

2013-12-01

43.5 KB

13 чел.

Органичения целостности БД. Классификация ограничений. Предикаты и высказывания. Пердикаты переменной отношения и БД. Основное правило целостности данных.

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

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

Типы (виды) условий целостности данных:

1. обязательность данных – как только вы войдете в набор данных того или иного поля, пока не введете какие-либо данные, вас система из средства набора не выпустит (NOT NULL).

CREATE TABLE bon

(

id number,

ename varchar2 (50) not null,

sername varchar2 (50)

);

2. проверка на правильность (validity checking)– проверка диапазона значений (правильность введения даты, размера чисел)

CREATE TABLE bon4

(

id number,

ename varchar2 (50) not null,

sal number constraint con_chk_bon4 check (sal>= 0),

sername varchar2 (50),

constraint my_con_uq2 unique(id)

);

3. целостность (entity integrity) – соответствие внешнего ключа и primary key

CREATE TABLE NBON

(

id number primary key,

ename varchar2 (50) not null,

sal number check (sal>= 0),

sername varchar2 (50)

);

4. ссылочная целостность (referent integrity) – как правило, проверяют в двух местах: на клиенте, на сервере.

СREATE TABLE

(columns columns_types,

…,

column column_type [constraint constraint_name]

REFERENCES parent_table_name(parent_table_column_name)

[NULL | ON DELETE CASCADE | ON DELETE SET NULL],

….

);

 

или же на уровне таблицы

 

СREATE TABLE

(columns columns_types,

…,

column_X column_X_type,

constraint constraint_name FOREIGN KEY (column_X)

REFERENCES parent_table_name(parent_table_column_name)

[NULL | ON DELETE CASCADE | ON DELETE SET NULL],

….

);

 

где

FOREIGN KEY определяет название ссылаемого поля

REFERENCES определяет название родительской таблицы и его поля

NULL - это значение по умолчанию, то есть при удаление родительской записи, удаление разрешается только если нет дочерних записей ссылающихся на родительскую запись

ON DELETE CASCADE - при удаление родительской записи, автоматом удаляются также все дочерние записи

ON DELETE SET NULL - при удаление родительской записи, автоматом все дочерние записи обновляются на значение NULL

5. непротиворечивость (business правила) – деловые правила, зависит от конкретных СУБД.

CREATE TABLE bon2

(

id number unique,

ename varchar2 (50) not null,

sername varchar2 (50)

);

__________________________________________

<определение_таблицы> ::=

CREATE TABLE имя_таблицы

{(имя_столбца тип_данных [ NOT NULL ][ UNIQUE]

[DEFAULT <значение>]

[ CHECK (<условие_выбора>)][,...n]}

[CONSTRAINT имя_ограничения]

[PRIMARY KEY (имя_столбца [,...n])

{[UNIQUE (имя_столбца [,...n])}

[FOREIGN KEY (имя_столбца_внешнего_ключа 

[,...n])

REFERENCES имя_род_таблицы 

[(имя_столбца_род_таблицы [,...n])],

[MATCH {PARTIAL | FULL}

[ON UPDATE {CASCADE| SET NULL |SET DEFAULT

|NO ACTION}]

[ON DELETE {CASCADE| SET NULL |SET DEFAULT

|NO ACTION}]

{[CHECK(<условие_выбора>)][,...n]})

___________________________________________

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

Ограничения целостности можно классифицировать несколькими способами:

  1.  По способам реализации.
  2.  По времени проверки.
  3.  По области действия.

Классификация ограничений целостности по способам реализации

Каждая система обладает своими средствами поддержки ограничений целостности. Различают два способа реализации:

  1.  Декларативная поддержка ограничений целостности.
  2.  Процедурная поддержка ограничений целостности.

Декларативная поддержка ограничений целостности заключается в определении ограничений средствами языка определения данных (DDL - Data Definition Language). Обычно средства декларативной поддержки целостности (если они имеются в СУБД) определяют ограничения на значения доменов и атрибутов, целостность сущностей (потенциальные ключи отношений) и ссылочную целостность (целостность внешних ключей). Декларативные ограничения целостности можно использовать при создании и модификации таблиц средствами языка DDL или в виде отдельных утверждений (ASSERTION).

Например, следующий оператор создает таблицу PERSON и определяет для нее некоторые ограничения целостности:

CREATE TABLE PERSON

(Pers_Id INTEGER PRIMARY KEY,

Pers_Name CHAR(30) NOT NULL,

Dept_Id REFERENCES DEPART(Dept_Id) ON UPDATE CASCADE ON DELETE CASCADE);

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

Триггер – это откомпилированная SQL-процедура, исполнение которой обусловлено наступлением определенных событий внутри реляционной базы данных.

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

<Определение_триггера>::=

{CREATE | ALTER} TRIGGER имя_триггера

ON {имя_таблицы | имя_просмотра }

[WITH ENCRYPTION ]

{

{ { FOR | AFTER | INSTEAD OF }

{ [ DELETE] [,] [ INSERT] [,] [ UPDATE] }

[ WITH APPEND ]

[ NOT FOR REPLICATION ]

AS

sql_оператор[...n]

} |

{ {FOR | AFTER | INSTEAD OF } { [INSERT] [,]

[UPDATE] }

[ WITH APPEND]

[ NOT FOR REPLICATION]

AS

{ IF UPDATE(имя_столбца)

[ {AND | OR} UPDATE(имя_столбца)] [...n]

|

IF (COLUMNS_UPDATES(){оператор_бит_обработки}

 бит_маска_изменения)

{оператор_бит_сравнения }бит_маска [...n]}

sql_оператор [...n]

}

}

Ограничение базы данных — это ограничение, устанавливающее взаимосвязь между различными переменными-отношениями. Приведем несколько примеров.

CONSTRAINT DBC1

IS EMPTY ( ( S JOIN SP )

WHERE STATUS < 20 AND QTY > QTY ( 500 ) ) ;

Смысл: "Поставщики со статусом, меньшим 20, не могут поставлять детали в количе¬стве свыше 500 штук".

Ранее мы установили, что любое отношение имеет связанный с ним предикат, а кортежи этого отношения выражают истинные высказывания, порождаемые данным предикатом.

Должно быть понятно, что переменная-отношение тоже имеет предикат, а именно — предикат, который будет общим для всех возможных отношений, представляющих допустимые значения для данной переменной-отношения. Например, рассмотрим переменную-отношение поставщиков S. Предикат для этой переменной-отношения можно сформулировать примерно так.

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

Также должно быть понятно, что предикат данной переменной-отношения по свой сути является критерием приемлемости изменений для рассматриваемой переменной-отношения, т.е. он предписывает, будет ли допустима определенная операция INSERT, UPDATE или DELETE для данной переменной-отношения. Следовательно, в идеальном случае СУБД должен быть известен и понятен предикат каждой переменной-отношения в базе данных, что позволит системе корректно обрабатывать всевозможные попытки внесения изменений.

Но система "не знает и не понимает" (и "не может знать и понимать") предикат переменной-отношения поставщиков на все 100%. Однако ей известно достаточно хорошее приближение к этому предикату, а конкретнее — ей известны ограничения целостности, которые применимы к записям о поставщиках. Следовательно, мы определяем предикат переменной-отношения для переменной-отношения поставщиков (или в общем случае для любой переменной-отношения) как логическое умножение (логическая операция И) всех ограничений переменной-отношения, которые установлены для данной переменной-отношения.

Теперь можно сформулировать золотое правило (по крайней мере его первую версию).

Ни одна из операций изменения не имеет права переводить переменную-отношение в состояние, нарушающее ее собственный предикат.


 

А также другие работы, которые могут Вас заинтересовать

49075. Крупные детали (коленчатые валы, муфты, промежуточные валы и др. детали должны иметь повышенную твёрдость 260-300 НВ) 242 KB
  Конструкционные стали Улучшаемые стали. Конструкционные стали применяемые для изготовления валов Термическая обработка сталей. Выбор термической обработки стали марки 40ХНМА.
49076. Расчет термической обработки стали марки 5ХНМ 275.5 KB
  Если обрабатывается мягкий материал (дерево, пластмассы, цветные металлы) или при обработке стали и чугуна применяются малые скорости резания и стружка имеет малое сечение, то в единицу времени на процесс резания затрачивается мало энергии. Если обработка происходит при больших скоростях резания, обрабатываются твердые металлы и стружка имеет большое сечение
49077. ИССЛЕДОВАНИЕ ОРГАНА КОНТРОЛЯ ПОГАСАНИЯ ДУГИ 136.5 KB
  Исследуемая модель линии При угле передачи 0 и переходном сопротивлении Rпер=30 Ом напряжение на зажимах реактора относительно земли в фазе А где первый график модуль напряжения а второй угол. Используя значения напряжения после t=0.02 с изменяя место короткого замыкания а также значение угла передачи можно получить зависимости: Рисунок 2 Зависимость напряжения на реакторе от места повреждения при угле передачи 30 Рисунок 3 Зависимость напряжения на реакторе от места повреждения при...
49080. ДАТЧИК ВЛАЖНОСТИ 248.5 KB
  Описание физической величины Описание и выбор метода измерения влажности Метод высушивания Дистилляционный метод Экстракционные методы Химический метод Метод СВЧ-влагометрии Нейтронный метод Инфракрасные влагомеры Кондуктометрические датчики Выбор метода Выбор и описание датчика Влагомер ВП4 Влагомер для порошкообразных материалов Датчик влажности для формовочной смеси Датчик влажности для зерна Автоматическая...
49081. Разработка рациональной системы применения удобрений в конкретных почвенно-климатических условиях хозяйства 1.06 MB
  Производственные показатели для составления системы применения удобрений Выход навоза заготовка хранение и технология внесения органических удобрений Составление системы применения удобрений в расчете на планируемый урожай при освоении севооборота Составление системы применения удобрений на планируемый урожай в освоенном севообороте
49083. Шестипольный полевой севооборот в отделении совхоза Калининской области 1.31 MB
  Производственные показатели для составления системы применения удобрений. Выход навоза заготовка хранение и технология внесения органических удобрений. Технология внесения органических удобрений на примере одного поля. Составление системы применения удобрений на планируемый урожай при освоении севооборота18 4.