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

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

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


 

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

71557. Ликвидация последствий Смуты. Первые Романовы. Закрепощение крестьян 67.5 KB
  Последствия Смуты были тяжелыми для страны. Лежали заброшенными пашни, т.к. крестьяне бежали из разоренных сел и деревень. Пошатнулись вотчинные и монастырские хозяйства. Они меньше вывозили продуктов на рынок и меньше потребляли, что сокращало торговлю. Пришли в упадок помещичьи хозяйства.
71558. Возвышение Москвы. Куликовская битва 103 KB
  С конца XIII века началось постепенное возрождение разрушенных в ходе монгольского завоевания городов, распашка заброшенной земли. Предпосылками объединения служили: никогда не исчезавшее полностью национальное самосознание, единый язык, единая вера, общие традиционные правовые нормы.
71559. Россия на рубеже XVI-XVII вв. Смутное время 69 KB
  После смерти Ивана Грозного в 1584 году началось царствование его слабоумного сына Федора Ивановича (1584-1598)г. Федор был человек набожный и малоспособный к управлению государством. Иван IV создал при сыне регентский совет. Реальная власть сосредоточилась в руках царского...
71560. История профессии 56 KB
  В настоящее время работа биологов приобретает огромное практическое значение для медицины, сельского хозяйства, промышленности, разумного использования природных ресурсов и охраны природы. Ведется много интересных и новых исследований, особенно в таких областях, как биотехнология, генная инженерия.
71561. Методы обучения 47 KB
  Особое место в системе активных методов обучения занимают деловые игры слушателям предоставляется информация об организации. Запрещение точных установок должно ориентировать инструктора-методиста как на гибкость преподавания так и на учет конкретного состава...
71562. Методологические основы психологии 115 KB
  Методология психологии это система принципов и способов организации и построения теоретической и практической деятельности направленной на познание психического мира человека. Основания научного психологического знания Общая теория психологии - это комплекс взглядов представлений идей понятий...
71563. Группы бактерий отдела Firmicutes 750 KB
  Типичным видом рода Streptococcus является Streptococcus lactis. Типичным видом рода Lactobacillus - Lactobacillus lactis. Гомоферментативные молочнокислые бактерии образуют практически только одну молочную кислоту. К ним относятся бактерии видов Streptococcus lactis...
71564. Группы бактерий отдела Gracilicutes 272 KB
  В результате скользящего движения клеток колонии миксобактерий разрастаются по поверхности субстрата и поэтому называются швармы. Внутри шварма клетки обычно распределены неравномерно, большая часть их находится в радиальных тяжах, а иногда в массивных складках по периферии шварма.
71565. ХАРАКТЕРИСТИКА СПОСОБОВ ГЕНЕТИЧЕСКОГО ОБМЕНА У БАКТЕРИЙ 755.5 KB
  Трансформация имеет практическое использование: для картирования бактериальной хромосомы; для конструирования промышленнополезных штаммов микроорганизмов; для введения в геном бактерий определенных маркеров или элиминирования нежелательных мутаций; как один из этапов получения...