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

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

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


 

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

48452. Теорія ймовірностей 467.82 KB
  Функція розподілу випадкової величини та її властивості. Статистична функція розподілу Лекція 11 Точкові та інтервальні оцінки параметрів розподілу. Довірчі інтервали для параметрів нормального розподілу. Поняття статистичної гіпотези. Функція розподілу випадкової величини та її властивості.
48453. Популяція як елементарна еволюційна одиниця. Елементарний еволюційний матеріал 85.34 KB
  При вивченні еволюційного процесу важливе значення має дослідження генофонду популяції сукупність генотипів усіх особин. Таким чином виникає генетична гетерогенність популяції. Завдяки панміксії вільному схрещуванню складна генетична структура популяції знаходиться в стані динамічної рівноваги. Разом з тим не завжди навіть усередині популяції панміксія буває повною.
48454. Лекція як форма викладення навчального матеріалу 240.5 KB
  Лекція - це логічно викладений, системно послідовний комплекс усних методів навчання (інформаційне повідомлення, пояснення, розповідь, бесіда), спрямований на реалізацію студентами репродуктивної або продуктивної творчої активності.
48456. Возрастная психология как наука 592 KB
  Возрастная психология изучает возрастные особенности психических процессов возможности усвоения знаний ведущие факторы развития личности и т. Единство возрастной и педагогической психологии в том что у них общие объекты изучения ребенок подросток юноша взрослый человек которые являются объектами изучения возрастной психологии если изучаются в плане динамики возрастного развития и объектами изучения педагогической психологии если рассматриваются как обучающиеся и воспитуемые в процессе целенаправленных...
48457. ЗАМЕТКИ ПО РУССКОМУ СЛОВООБРАЗОВАНИЮ 21.91 KB
  Морфемы двух типов: 1 основы непроизводные первичные 2 аффиксы присоединение которых к первичным основам превращает их в основы производные. значение слов с производной основой всегда определимо посредством ссылки на значение соответствующей первичной основы если по выделении из состава какойнибудь основы известного звукового комплекса в остатке получится звуковой комплекс не обладающий какимнибудь значением представляющий собой пустое звукосочетание то выделение произведено неправильно то есть не отразило реального факта языка....
48458. Установление консулата. Расцвет консульства во Франции 31.01 KB
  Consult период в истории Франции во время которого власть в стране фактически принадлежала Наполеону Бонапарту но юридически его власть была различным образом ограничена. Вторым и третьим консулами с правом совещательного голоса становятся Камбасерес 1753 1824 и Лебрен Шарль Франсуа 1739 1824 Избрание членов Сената и Государственного совета Репрессивные меры против печати Учреждение префектур и административная реформа Разгром Австрии и упрочение власти Бонапарта Покушение на Бонапарта 3 нивоза IX года и изгнание...
48459. ЭЛЕКТРОТЕХНИЧЕСКОЕ И КОНСТРУКЦИОННОЕ МАТЕРИАЛОВЕДЕНИЕ 642.05 KB
  При изучении хаотического теплового и направленного под действием силы электрического поля движения электронов был выведен закон Ома. Связь плотности тока J в амперах на квадратный метр и напряженности электрического поля в вольтах на метр в проводнике дается известной формулой: дифференциальная форма закона...
48460. Радиосвязь и электронные приборы 5.04 MB
  Варисторы Варистор полупроводниковый резистор сопротивление которого зависит от приложенного напряжения. где U I Напряжения и ток варистора. Для повышения обратного напряжения диоды включаются последовательно. Стабилитроны Полупроводниковый диод напряжение на котором в области пробоя слабо зависит от тока и который используется для стабилизации напряжения.