Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
рЕФЕРАТ.doc
Скачиваний:
54
Добавлен:
28.03.2015
Размер:
91.65 Кб
Скачать

3.1.Целостность базы данных

Це́лостность ба́зы да́нных (database integrity) — соответствие имеющейся в базе данных информации её внутренней логике, структуре и всем явно заданным правилам. Каждое правило, налагающее некоторое ограничение на возможное состояние базы данных, называется ограничением целостности (integrity constraint). Примеры правил: вес детали должен быть положительным; количество знаков в телефонном номере не должно превышать 25; возраст родителей не может быть меньше возраста их биологического ребёнка и т.д.

Задача аналитика и проектировщика базы данных — возможно более полно выявить все имеющиеся ограничения целостности и задать их в базе данных.

Целостность БД не гарантирует достоверности содержащейся в ней информации, но обеспечивает по крайней мере правдоподобность этой информации, отвергая заведомо невероятные, невозможные значения. Таким образом, не следует путать целостность БД с достоверностью БД. Достоверность (или истинность) есть соответствие фактов, хранящихся в базе данных, реальному миру. Очевидно, что для определения достоверности БД требуется обладание полными знаниями как о содержимом БД, так и о реальном мире. Для определения целостности БД требуется лишь обладание знаниями о содержимом БД и о заданных для неё правилах. Поэтому СУБД может (и должна) контролировать целостность БД, но принципиально не в состоянии контролировать достоверность БД. Контроль достоверности БД может быть возложен только на человека, да и то в ограниченных масштабах, поскольку в ряде случаев люди тоже не обладают полнотой знаний о реальном мире.

Итак, БД может быть целостной, но не достоверной. Возможно и обратное: БД может быть достоверной, но не целостной. Последнее имеет место, если правила (ограничения целостности) заданы неверно.

3.2. Проверка целостности базы данных

Для проверки целостности базы данных Transact-SQL использует набор операторов DBCC. Операторы DBCC в SQL Server 2000 и SQL Server 7.0 содержат ряд улучшений по сравнению с операторами DBCC, которые применялись в SQL Server 6.5.

• Существенно снижена потребность в запуске этих операторов. В результате изменений архитектуры SQL Server устойчивость баз данных повысилась настолько, что больше не требуется часто проверять их целостность.

• Не обязательно запускать операторы проверки DBCC во время обычных процедур резервного копирования и обслуживания. Их следует запускать при проверке системы перед внесением крупных изменений, например модернизацией аппаратного и программного обеспечения или после аппаратного сбоя. А также при подозрении на наличие ошибок в системе.

• В SQL Server 2000 введен новый параметр PHYSICAL ONLY, который позволяет ускорить работу операторов DBCC, заставляя их проверять лишь те типы ошибок, которые, по всей вероятности, сгенерированы в результате аппаратных сбоев. Следует запускать проверку DBCC с параметром PHYSICAL ONLY, если есть подозрение на наличие аппаратной ошибки на сервере баз данных.

• Операторы DBCC сами по себе стали работать значительно быстрее. Проверка сложной базы данных выполняется, как правило, в 5—10раз быстрее, а отдельных объектов — более чем в 300 раз быстрее. В SQL Server 6.5 DBCC CHECKDB обрабатывал таблицы последовательно. Для каждой таблицы сначала выполнялась проверка структуры данных, а затем проверка каждого индекса по отдельности. В результате этой процедуры операции чтения совершались довольно хаотично. В SQL Server 2000 DBCC CHECKDB no мере последовательного сканирования базы данных выполняет параллельную проверку нескольких объектов. SQL Server 2000 также использует преимущества многопроцессорности при параллельном исполнении операторов DBCC.

• Уровень блокировки, который требуется операторам DBCC из SQL Server 2000, намного ниже, чем в SQL Server 7.0. Теперь операторы DBCC из SQL Server 2000 могут выполняться одновременно с операторами модификации данных, что существенно снижает их негативное влияние на работу пользователей с базой данных.

• Операторы DBCC ИЗ SQL Server 2000 способны сами исправлять замеченные ими небольшие ошибки. Также они могут исправлять некоторые ошибки в структуре двоичного дерева индексов или ошибок в некоторых распределяемых структурах.

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