Студопедия

Главная страница Случайная лекция


Мы поможем в написании ваших работ!

Порталы:

БиологияВойнаГеографияИнформатикаИскусствоИсторияКультураЛингвистикаМатематикаМедицинаОхрана трудаПолитикаПравоПсихологияРелигияТехникаФизикаФилософияЭкономика



Мы поможем в написании ваших работ!




Теоретические сведения. 1. В реляционной БД можно использовать следующие типы условий целостности данных

1. В реляционной БД можно использовать следующие типы условий целостности данных:

ü обязательность данных (required data - NULL/NOT NULL);

ü проверка на правильность (validaty cheking – CHECK);

ü целостность таблицы (entity integrity – PRIMARY KEY);

ü ссылочная целостность (referential integrity – FOREIGN KEY);

ü деловые правила (business rules);

ü триггер(TRIGGER);

2. Столбец одной таблицы, значения в котором совпадают со значением столбца, являющегося первичным ключом (primary key) другой таблицы, называется внешним ключом (foreign key). Вместе первичный и внешний ключ образуют между таблицами связь (relation) типа
« предок-потомок » («главная-подчиненная», «master-detail»). Внешний ключ, как и первичный ключ, может представлять собой комбинацию столбцов. Если таблица связана с несколькими таблицами, то она может иметь несколько внешних ключей. Во многих СУБД внешний ключ может ссылаться на первичный ключ этой же таблицы.

3. Существует четыре типа изменений БД, которые могут нарушить ссылочную целостность:

ü добавление новой строки-потомка, внешний ключ которой не совпадает ни с одним из значений главного ключа строки-предка;

ü обновление внешнего ключа в строке-потомке на другое, значение которого не совпадает ни с одним из значений главного ключа строки-предка;

ü удаление строки-предка у которой есть строки-потомки;

ü обновление первичного ключа в строке-предке у которой есть потомки.

4. Стандарт SQL2 вводит правила удаления и обновления (ON UPDATE, ON DELETE), действующие при изменениях связанных таблиц. Можно задать одно из четырех возможных правил:

ü RESTRICT – запрещение на удаление строки-предка или обновление первичного ключа строки-предка, есть у нее есть строки-потомки;

ü CASCADE – выполнение каскадных удалений строк-потомков или обновлений значений внешнего ключа в строках-потомках при удалении строки-предка или обновление первичного ключа строки-предка, есть у нее есть строки-потомки;

ü SET NULL – занесение значения NULL во внешний ключа в строках-потомках при удалении строки-предка или обновление первичного ключа строки-предка, есть у нее есть строки-потомки;

ü SET DEFAULT – занесение DEFAULT значения во внешний ключа в строках-потомках при удалении строки-предка или обновление первичного ключа строки-предка, есть у нее есть строки-потомки;

5. Две таблицы могут образовать ссылочный цикл (circularity, cross referencing ). Например, таблица SALESPEOPLE содержит столбец ofnum – внешний ключ для таблицы OFFICES, а таблица OFFICES содержит столбец snum – внешний ключ для таблицы SALESPEOPLE. Ссылочные циклы представляют особую проблему при автоматическом поддержании ссылочной целостности. Для предотвращения « блокировки при вводе » по крайней мере один из внешних ключей ссылочного цикла должен допускать значения NULL.

6. Внешние ключи объявляются при создании таблицы-потомка в команде CREATE TABLE c помощью ограничения на таблицу типа FOREIGN KEY.

7. Ключевое слово REFERENCESиспользуется для указания имени таблицы-предка и имени первичного ключа в ней для реализации внешнего ключа, как ограничения на столбец.

8. Ключевые слова ON DELETE и ON UPDATE задают вариант автоматических исправлений и удалений посредствам своих параметров RESTRICT, CASCADE, SET NULL,
SET DEFAULT, NO ACTION
.

9. Ключевые слова MATCH FULL (полное равенство) и MATCН PARTIAL(частичное равенство) используются при наличии составных внешних ключей.

10. Деловые правила (business rules) выходят за рамки стандарта SQL. Стандарт считает, что СУБД отвечает за хранение, организацию и обеспечение целостности данных, а за реализацию деловых правил должна отвечать прикладная программа, осуществляющая доступ к БД. При таком подходе проявляются следующие недостатки:

ü дублирование кода в программах;

ü недостаточная согласованность и различная трактовка деловых правил в программах;

ü трудность сопровождения при изменениях деловых правил;

ü сложность программ.

11. Во многих СУБД (Sybase, MS SQL) деловые правила реализуются посредствам понятия триггер(trigger). Триггер – действие, вызываемое событием, - последовательность операторов SQL, хранящихся в БД в виде специального объекта. С любым событием, вызывающем изменение таблицы, пользователь может связать сопутствующее действие, которое СУБД должно выполнять при каждом возникновении события. Возможны три таких события, возникающие при попытках изменить содержимое таблицы посредствам операторов INSERT, UPDATE, DELETE. В современных версиях SQL внутри триггера могут находится дополнительные операторы SQL: IF/THEN/ELSE, DO – WHILE, CALL, PRINT и т.д. Триггеры часто используются и для обеспечения реализации различных форм ссылочной целостности. Триггеры увеличивают сложность БД и скрывают от прикладного программиста бизнес-правила, не давая ему возможности полностью управлять всеми процессами, происходящими в БД. В этом их недостаток. Триггеры не вошли и в стандарт SQL2. Вместо них в SQL2 предложена расширенная форма ограничения CHECK, позволяющая использовать вложенные запросы. ( Trigger.txt )

12. Для создания и изменения объектов базы данных на практике применяют сценарии
(SQL script), составленные из операторов языка SQL. Тексты сценариев хранятся в виде обычных текстовых файлов, которым обычно дают расширение *.sql. Выполняют сценарии с помощью ISQL(Query Analyzer в MS SQL). В современных программах администратора БД (Enterprise Manager в MS SQL) есть специальные команды для создания сценария базы данных из операторов языка SQL (Generate SQL Script). ( VVGScript.sql )

Примечание : Access не содержит средств для выполнения сценариев SQL.

 


<== предыдущая страница | следующая страница ==>
Примеры запросов. 1. Создание таблицы MySalespeople (NULL/NOT NULL ограничение) | Примеры запросов. 1. Создание таблицы MyCustomers (FOREIGN KEY ограничение на таблицу)

Дата добавления: 2015-06-30; просмотров: 191; Нарушение авторских прав




Мы поможем в написании ваших работ!
lektsiopedia.org - Лекциопедия - 2013 год. | Страница сгенерирована за: 0.008 сек.