Главная » SQL, Базы данных » Преимущества подхода, предусматривающего использование базы данных

0

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

■     Возможность совместного доступа к данным

Этот вопрос уже обсуждался в разделе 1.2, но для полноты проанализируем его еще раз. Совместный доступ к данным означает не только возможность доступа к ним с помощью нескольких существующих приложений базы данных, но и возможность разработки новых приложений для работы с этими же данными. Другими

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

■      Сокращение избыточности данных

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

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

■      Устранение противоречивости данных (до некоторой степени)

В действительности это следует из предыдущего пункта. Возьмем  пример из жизни. Пусть служащий с табельным номером ЕЗ, работающий в отделе с номером D8, представлен двумя различными записями в базе данных. Предположим, что в СУБД не учтено это дублирование (т.е. избыточность данных не контролируется). Тогда рано или поздно  обязательно возникнет ситуация, при которой эти две записи перестанут быть согласованными, после того как одна из них будет изменена, а другая — нет. В этом случае база данных станет противоречивой. Ясно, что  противоречивая база данных будет предоставлять пользователю неправильную, противоречивую информацию.

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

■    Возможность поддержки транзакций

Транзакция (transaction) — это логическая единица работы (точнее,  логическая единица работы базы данных), обычно включающая несколько  операций базы данных (в частности, несколько операций модификации данных). Стандартный пример — перевод некоторой суммы денег со счета А на счет В. Очевидно, что в данном случае необходимы два изменения: списание некоторой суммы со счета

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

Примечание. Упомянутое выше свойство неразрывности (atomicity) транзакций — это не единственное положительное следствие поддержки транзакций. Однако в  отличие от прочих,  оно  вполне  применимо  даже  в  однопользовательской   среде.  (С  другой стороны,  в  однопользовательских  системах  поддержка   транзакций  часто  совсем  не предоставляется,  а  подобные  функции  просто  возлагаются  на  пользователя.)  Полное описание  различных  преимуществ  поддержки  транзакций  и  способов  их  достижения приведено в главах 15 и 16.

Обеспечение целостности данных

Задача  обеспечения   целостности   заключается   в   гарантированной   поддержке   правильности  данных  в  базе  (насколько  это  возможно).  Противоречие   между  двумя записями,  представляющими  один  "факт",  является  примером  утраты  целостности данных  (см.  обсуждение  этого  вопроса  выше  в  данном   разделе).  Конечно,  эта конкретная проблема может возникнуть лишь при наличии избыточности в хранимых данных.  Но  даже  если  избыточность   отсутствует,  база  данных  может  содержать неправильную  информацию.   Например,  в  базе  данных  может  быть  указано,  что сотрудник отработал 400  рабочих часов в неделю вместо 40, или зафиксирована его принадлежность  к  отделу,  которого  не  существует.  Централизованное  управление базой   данных   позволяет   избежать   подобных   проблем   (насколько   это   вообще возможно). Для этого администратор данных определяет (а администратор базы данных реализует) ограничения целостности (integrity constraints), которые будут  применяться при любой попытке внести какие-либо изменения в соответствующие данные.

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

Организация защиты данных

Благодаря полному контролю над базой данных администратор базы данных (безусловно, в соответствии с указаниями администратора данных) может обеспечить доступ к ней только через определенные каналы. Для этой цели могут устанавливаться ограничения защиты (security  constraints),  или  правила,  которые  будут  контролироваться  при  любой  попытке доступа к конфиденциальным данным. Можно установить

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

Возможность согласования противоречивых требований

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

Возможность введения стандартизации

Благодаря централизованному управлению базой данных администратор базы данных (по указанию администратора данных) может обеспечить соблюдение всех необходимых  стандартов,  регламентирующих   представление  данных  в  системе. Стандарты могут быть частными,  корпоративными, ведомственными, промышленными,  национальными  и  международными.  Стандартизация  представления данных наиболее важна  с  точки зрения обмена данными и их пересылки между системами. (Наибольшую актуальность этот вопрос приобретает в случае распределенных систем, речь о которых пойдет в главах 2, 21 и 27.) Кроме того, стандарты именования и документирования данных важны как в отношении их совместного использования, так и в отношении их описания.

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

Источник: Дейт К. Дж., Введение в системы баз данных, 8-е издание.: Пер. с англ. — М.: Издательский дом «Вильямс», 2005. — 1328 с.: ил. — Парал. тит. англ.

По теме:

  • Комментарии