Теория и практика построения баз данных (1088289), страница 88
Текст из файла (страница 88)
Примерами возможных структурных модификаций являются введение новых ключей, чистка данных, улаление ключей и установление новых связей между объектами. Когда производитель используемой СУБД объявляет о новых возможностях продукта, администратор базы данных должен рассмотреть их в свете потребностей сообщества пользователей. Если он решит внедрить эти новые возможности, разработчиков следует уведомить об этом и обу шть их использованию. Соответственно, помимо управления структурой базы данных администратор должен осуществлять управление и контроль над изменениями в СУБД.
В обязанности администратора базы данных могут входить и другие изменения в системс; какие именно — это зависит от используемой СУБД и другого программного и аппаратного обеспечения. Например, изменения в операционной системе или и сЪ-сервере могут повлечь за собой необходимость модификации некоторых возможностей, функций или параметров СУБД. Поэтому администратор базы данных должен также настраивать СУБД для совместной работы с другим используемым программным обеспечением. Первоначальный выбор параметров СУБД (таких как уровень изоляции транззкпий) происходит в момент, когда еще мало известно о том, как система будет работать в конкретном пользовательском окружении.
Следовательно, опыт работы с системой и результаты анализа ес производительности могут указать на необходимость изменений. Даже если производительность кажется приемлемой, возможно, администратор базы данных захочет исследовать, как изменение ее параметров будет влиять на производительность, Этот процесс называется настройкой (согни), или оптимизацией (орБппгшй), системы.
В списке приведен перечень обязанностей администратора базы данных по управлению СУБД. + Подготовка отчетов о работе базы данных. + рассмотрение жалоб пользователей на работу системы. + Оценка необходимости изменений в структуре базы данных или приложений. + Моляфикация структуры базы данных. + Оценка и внедрение новых возможностей и функций СУБД.
+ Настройка СУБД. а г Поддержание репозитория данных Представьте себе большое и активное интернет-приложение базы данных, подобное тем, что используются компаниями, занимаюгдимися электронной коммерцией, — например, продажей музыки в сети Интернет. Информацию для такой 414 Глава 11.
Многопользовательские базы данных Резюме 415 системы могут предоставлять несколько различных баз данных, десятки гкеЬ- страниц и сотни, если не тысячи, пользователей. Предположим, что компания, использующая это приложение, желает расширить ассортимент предлагаемых товаров, включив в него спортивные товары. Высшее руководство компании может попросить администратора базы данных оценить время и другие ресурсы, необходимые для того, чтобы настроить базу данных на поддержку новой линии продуктов. Чтобы администратор базы данных смг>г ответить на этот запрос, ему потребуются подробные метаданные, описывающие базу данных, ее приложения и компоненты этих приложений, пользователей и их права и привилегии, а также другие элементы системы.
Часть этих метаданных хранится в системных таблицах базы данных, но одной только этой части будет недостаточно, чтобы ответить на вопросы, задаваемые высшим руководством. Администратору базы данных требуются дополннтелыгые данные об объектах СОМ и Асг!чеХ, сценарных процедурах и функциях, АБР-страницах, таблицах стилей, определен>их типов документов и т.
п. Кроме того, хотя механизмы безопасности СУБД обеспечивают документирование данных о пользователях, группах и привилегиях, они делают это в высокоструктурировапной и зачастую неудобной форме. По этим причинам многие организации разрабатывают и поддерживают репозитарии данныт (г!ага героз1>ог!еэ), которые представляют собой коллекции лгетаданных, описывающих базу данных, ес приложения, шеЬ-страницы, пользователей и другис компоненты приложений. Репозпторпй может быть виртуальным в том смысле, что составляющие его метаданные собраны из различных источников, в числе которых может быть СУБД, программное обеспечение контроля версий, библиотеки кода, средства генерации и редактирования >кеЪ-страниц и т.
д. Репозитарий ланных также может быть интегрированным продуктом, который поставляется производителем САБЕ-средств или другими кампаниями, например М!сгозо>г или Огас!е. В любом из этих случаев администратор базы данных должен задуматься о построении репозитария данных задолго до того, как высшее руководство начнет задавать вопросы.
На самом леле репозитарий должен строиться при разработке системы, и его следует рассматривать как важную составляющую часть системы. В противном случае администратор базы данных будет «вечно догоняюшилгл, пытаясь поддерживать существующие приложения, адаптировать их к новым потребностям и каким-то образом собирать метаданные лля репозитория. Лучший вид репозиториев — это активные репозитарии (асс!че героз!Гог!сз). Они формируются в процессе разработки системы за счет того, что при создании компонентов системы автоматически создаются метаданныс. Менее желательным, но все же эффективным вариантом являются пассивные репозитарии (ркзз1че герозйойсз): заполнение таких рспозиторисв и создание метаданных для них происходит вручную.
Интернет создал невиданные возможности для расширения клиентской базы и увеличения продаж и рентабельности в бизнесе. Базы данных и приложения, используемые компаниями в своей работе, составляют ключевой элемент этого успеха. К сожалению, найдутся такие организации, росту которых будет препятствовать неспособность наращивать свои приложения или адаптировать их к меняющимся потребностям. Зачастую построить новузо систему оказывается проще, чем адан> ировать уже существук>шую; определенно, построение новой системы, которая интегрировалась бы со старой, в то же время заменяя ее, может быть весьма сложной задачей.
Резюме Многопользовательские базы данных ставят перед органиэациями, создающими и нспользу>ощими пх, сложные задачи, и в большинстве организаций в этой связи учреждена должность администратора базы данных, который призван обеспечить решение этих проблем. В этой книге термином адлгинистратор базы датгых обозначается человек илн группа людей, ответственные за конкретную базу данных, Адмиггистратг>р данных выполняет аналогичные функции, но они относятся ко всей совокупности информационных активов организации. Администрирование данных обсуждается в главе 17.
Основные функции администратора базы данных перечислены на рис. 11.1. Адлпшпстратор базы данных занимается первоначальной разработкой структур базы данных и обеспечивает управление их конфигурацией по мере возникновения потребностей в изменениях. Важной функцией администратора базы данных является подробное документирование структуры и изменений в ней. Управление параллельной обработкой имеет своей целью предотвращение непредусмотренного влияния действий одного пользователя на действия другого. Не существует какой-либо одной техники управления параллельной обработкой, которая годилась бы на все случаи жпзвп. Приходится находить компромисс между уровнем защищенности и пропускной способностью базы данных.
Транзакция, или логическая единица обработки, — это последовательность действий с базой данных, в которой либо выполняются все действия, либо не выполняется ни одно. Действия параллельных транзакций выполняются на сервере базы данных попеременно. В некоторых случаях при отсутствии управления параллельными транзакциями может произойти потеря обновлений. Еще одна проблема, возникающая прп параллельной обработке, — несогласованное чтение. Во избежание проблем, связанных с параллельной обработкой, элементы базы данных блокируются.
Неявные блокировки налагаются СУБД, явные блокировки палагаются прикладными программами. Размер блокируемого ресурса называется глубиной детализации блокировки. Монопольная блокировка предотвращает чтение заблокированного ресурса любым другим пользователем; коллективная блокировка позволяет другим пользователям читать заблокированный ресурс, но не позволяет обновлять его. Две параллельные транзакции, результаты выполнения которых совпадают с теми результатами, которые получились бы, если бы эти транзакции выполнялись отдельно, называются ссриалпзуемыл>и транзакциями. Одной из схем достижения серпализусмостп является двухфазная блокировка, прп которой блокировки налагаются на фазе нарастания и снимаются на фазе сжатия.
Особым 416 Глава 11. Многопользовательские базы данных Вопросы! группы 417 случаем двухфазной блокировки является стратегия, при которой блокировки налагаются на протяжении всей транзакции, но не снимаются, пока транзакция не будет завершена. Взаимная блокировка, или «смертельное объятие», возникает, когда каждая из двух транзакций ожидает доступа к ресурсу, заблокированному другой транзакцией.
Предотвратить взаимную блокировку можно, обязав транзакции налагать блокировки одновременно; если же взаимная блокировка произошла, то единственный способ снять ее — это прервать одну из транзакций (и отменить частично выполненную работу). При оптимистической блокировке предполагается, что конфликта между транзакциями не возникнет, а если таковой все-таки возникает, то система обрабатывает его последствия.
При пессимистической блокировке предполагается, что конфликт произойдет, и для его предотвращения заблаговременно принимаются меры. В общем случае оптимистическая блокировка является более предпочтительной для приложений, работающих с Интернетом, и для многих пнтрасетевых приложений. Большинство прикладных программ не налагает блокировки явным образом. Вместо этого они помечают рамки транзакции с помощью операторов ВЕ61й, СОММ1Т и кО~~ВАСК и указывают, какая стратегия управления параллельной обработки им требуется. СУБД самостоятельно налагает блокировки в соответствии с тем, какого поведения требует приложение.