Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Shpory_BSBD.doc
Скачиваний:
3
Добавлен:
01.03.2025
Размер:
1.68 Mб
Скачать

Вопрос 26. Поддержание целостности данных. Табличные ограничения. Ссылочные ограничения. Правила.

Для СУБД при обеспечении целостности (Ц) в первую очередь необходимо контролировать адекватность или точность отображения предметной области в БД.

К угрозам нарушения Ц относятся:

- избыточность данных;

- потенциальная противоречивость данных;

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

- отсутствие поддержки пользовательских типов данных;

- несогласованность данных при выполнении транзакции;

- несогласованность данных при многопользовательской работе СУБД.

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

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

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

Табличные ограничения позволяют контролировать данные при заполнении таблицы БД они позволяют предотвратить ввод данных, которые не возможны в данной предметной области. Табличные ограничения могут относиться как к таблице, так и отдельным ее столбцам. Табличные ограничения задаются при создании или изменении таблицы при помощи операторов Create Table и Alter Table. Табличные ограничения могут относиться к нескольким столбцам таблицы.

Ссылочные ограничения обеспечивают связи между таблицами БД. Такое ограничение требует, чтобы каждому значению поля одной таблицы соответствовало ровно одно значение поля другой таблицы. Ограничения накладываются с помощью механизма внешних ключей, либо с помощью инструкции references. Использование ссылочных ограничений не опускает наличие связи «многие ко многим»: при удалении значений из основной таблицы необходимо обеспечить каскадное удаление всех значений из ссылающихся таблиц.

Правила позволяют вызывать выполнение заданных действий в случае определенных изменений в БД. Типичные действия это вызов процедуры. Правила ассоциируются с конкретной таблицей, и обрабатываются при изменении именно в этой таблице. Это позволяет поддерживать сколь угодно сложное соотношение между элементами БД.

create rule <имя>

after delete on <таблица>

execute procedure <имя>

27. Поддержание целостности данных. Параллельное выполнение транзакций. Основные аномалии.

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

Всего существует 4 проблемы параллельного выполнения транзакций:

1) пропавшее изменение

Одной транзакцией были проигнорированы изменения, внесенные другой транзакцией.

2) проблема промежуточных данных

Одной транзакции стали доступны промежуточные результаты другой транзакции.

3) проблема несогласованности данных

ПРИМЕЧАНИЕ: считается, что БД находится в противоречивом состоянии.

Одной транзакции стали доступны окончательные результаты другой транзакции.

4) проблема строк-призраков

Два одинаковых запроса получили два разных результата. Появились строки-призраки из-за того, что они не были оформлены в виде транзакций.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]