Глава 10. Управление базами данных в СУБД
Для обеспечения эффективного контролируемого управления доступом к данным, целостности и сокращения избыточности хранимых данных большинство СУБД должны быть тесно связаны с операционной системой: многопользовательские приложения, обработка распределенных запросов, защита данных, использование многопроцессорных систем и мультипоточных технологий требуют использовать ресурсы, управление которыми обычно является функцией ОС. Соответственно, средства управления доступом и обеспечения защиты также обычно интегрируются с соответствующими средствами операционной системы.
Напомним, что с точки зрения операционной системы база данных – это один или несколько обычных файлов ОС, доступ к данным которых осуществляется не напрямую, а через СУБД. При этом данные обычно располагаются на машине-сервере, а СУБД обеспечивает корректную и эффективную их обработку из приложений, выполняющихся на машинах-клиентах.
С другой стороны, в рамках СУБД, база данных – это логически структурированный набор объектов, связанных не только с хранением и обработкой прикладных данных, но и обеспечивающих целостность БД, управление доступом, представление данных и т.д. Например, в MSSQLServer база данных включает следующие объекты:
- таблицы;
- хранимые процедуры;
- триггеры;
- представления;
- правила;
- пользовательские типы данных;
- индексы;
- пользователи;
- роли;
- публикации;
- диаграммы.
Кроме того, при создании базы данных для нее всегда определяется журнал транзакций, который используется для восстановления состояния базы данных в случае сбоев или потери данных. Журнал размещается в одном или нескольких файлах. В журнале регистрируются все транзакции и все изменения, произведенные в их рамках. Транзакция не считается завершенной, пока соответствующая запись не будет внесена в журнал.
Управление системой баз данных производится обычно с помощью нескольких сервисных программ – отдельных приложений, выполняемых в среде операционной системы. Рассмотрим основные функции и компоненты управления на примере сервера реляционных баз данных MSSQLServer.
Большая часть функций администрирования[1] работы пользователей, серверов и баз данных сосредоточена в приложении SQLServerEnterpriseManager, которое позволяет осуществлять, в том числе, следующие функции:
- запускать и конфигурировать SQLServer;
- управлять доступом пользователей к объектам БД;
- создавать и модифицировать базы данных и их объекты, такие, как таблицы, индексы, представления и т.д.
- управлять выполнением заданий «по расписанию»;
- управлять репликациями;
- создавать резервные копии баз данных и журналов транзакций.
[1] Большинство функций администрирования, таких как создание, удаление или редактирование объектов БД в SQLServer можно проводить тремя способами: при помощи специализированных диалоговых «мастеров», средствами EnterpriseManager или командами языка T-SQL (надмножество языка SQL-92, включающее дополнительные функции, операторы условия и цикла, хранимые процедуры и т.д.), выполняемым из приложения или, например, из утилиты QueryAnalizer.