« Предыдущая Следующая »

2. Специальный раздел

2.1 Целостность данных

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

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

Целостность сущности имеет дело с ее структурой (первичным ключом и атрибутами). Если первичный ключ уникален, а все атрибуты скалярны и полностью зависят от первичного ключа, то целостность сущности обеспечена. В физической схеме целостность сущности поддерживает первичный ключ таблицы. Обеспечение целостности сущности непосредственно связано с нормализацией.

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

Ссылочная целостность. Понятие ссылочной целостности, прежде всего, связано с целостностью домена внешних ключей. Целостность домена подразумевает, что если некоторый атрибут имеет значение, значит, оно должно входить в домен. В случае внешних ключей доменом является список значений связанного первичного ключа.

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

Некоторые методы поддержания ссылочной целостности реализуются на уровне физической схемы. В физической схеме может поддерживаться декларативная ссылочная целостность (DRI), и к таблице может быть прикреплен триггер.

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

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

  1. поиск некорректных данных;
  2. поиск неполных данных;
  3. поиск сомнительных данных;
  4. поиск несогласованных данных.

Целостность транзакций. Транзакцией называется единый логический блок работы, например вставка 100 строк, обновление 1000 строк или выполнение логической цепочки обновлений. Качество продукта базы данных зависит от того, насколько его возможности выполнения транзакций соответствуют принципам атомарности, целостности и изолированности. Большая часть архитектуры SQL Server основана именно на этих свойствах.

  • Свойство атомарности подразумевает, что транзакция должна либо выполниться вся, либо не выполниться в целом. В конце транзакции она должна быть либо подтверждена, либо отменена. Если частично выполненная транзакция записывается на диск, то свойство атомарности нарушается.
  • Транзакция должна поддерживать целостность базы данных. Это значит, что транзакция начинает выполняться, когда база данных находится в целостном состоянии, при этом база должна остаться в целостном состоянии и после завершения транзакции. Целостность означает, что каждая строка и значение должны соответствовать моделируемой реальной ситуации, а все ограничения должны выполняться.
  • Каждая транзакция должна быть изолирована, то есть отделена от эффекта выполнения других транзакций. Независимо от того, что выполняет другая транзакция, первая должна иметь возможность продолжать работать с тем же набором данных, с которым начала. Изоляция является своеобразным забором между двумя транзакциями. Доказательством наличия изоляции является возможность многократно повторить последовательный набор транзакций над одним и тем же набором данных и каждый раз получить один и тот же результат.

Узким местом целостности транзакций является конкуренция — попытка множества пользователей одновременно извлечь или модифицировать одни и те же данные. Вопрос изоляции реже встает в маленьких базах данных, однако в производственной среде с тысячами пользователей целостность данных или производительность сильно пострадает.

Архитектура SQL Server поддерживает все свойства целостности транзакций. Это значит, что разработчику нужно понимать их, чтобы при создании баз данных взять на вооружение все возможности SQL Server, а администратору баз данных это поможет реализовать хороший план восстановления. Если объединить возможности SQL Server, аппаратного и программного обеспечения, модели базы данных, планов восстановления и обслуживания базы данных. Когда разработчик и администратор сотрудничают, чтобы правильно организовать эти компоненты, база данных работает отлично, а целостность транзакций высокая.

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

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

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

Каждая из транзакций останавливается в ожидании, пока вторая освободит нужный ей ресурс. В результате ни одна из них не может завершить свою работу. Если извне не поспособствовать одной из них или если одна из транзакций не завершит свою работу, то данная ситуация может продолжаться до бесконечности.

« Предыдущая Следующая »
Похожие публикации
Схемотехника телекоммуникационного сетевого устройства «Модем»
Курсовая работа по теме «Схемотехника телекоммуникационного сетевого устройства «Модем»» по предмету "Схемотехника телекоммуникационных устройств".