close

Вход

Забыли?

вход по аккаунту

код для вставкиСкачать
Основные функции СУБД
1. Непосредственное управление данными во внешней памяти. Обеспечение
необходимых структур внешней памяти, для хранения как пользовательских
данных, так и метаданных, а также вспомогательных данных, например для
ускорения доступа (структуры данных для ускорения доступа поиска называется
индексами). Некоторые СУБД активно используют возможности существующих
файловых систем. Другие СУБД работают с внешними запоминающими
устройствами на низком уровне. В любом случае, пользователи не обязаны
знать, использует ли СУБД файловую систему, если использует, то как
организованы файлы. Этот уровень скрыт от пользователя.
2. Функция именования объектов базы данных. Доступ ко всем объектам
производится по их именам. В некоторых СУБД есть многоуровневое
именование. В реляционных СУБД фиксирование количество уровней.
3. Управление буферами оперативной памяти. Если бы каждый раз когда требуется
считать или записать данные, СУБД обращалась бы к диску, работа шла бы
очень медленно. Единственным реальным способом увеличения скорости работы
с данными является буферизация данных в оперативной памяти. В некоторых
ОС, в частности UNIX, существуют средства буферизации данных, но СУБД
обычно использует свои собственные средства. Существует класс СУБД, которые
ориентированы на постоянное присутствие в оперативной памяти всей базы
данных.
4. Управление транзакциями. Понятие транзакции необходимо для поддержания
логической целостности базы данных. Здесь имеется ввиду целостность как
внутренней структуры, так и для пользовательских данных. То свойство, что
каждая транзакция начинается при целостном состоянии базы данных, и
оставляет это состояние целостным после своего завершения. Делает удобным
использование понятия транзакции как единицы пользовательской активности по
отношению к базе данных. С управлением транзакциями в
многопользовательских СУБД связаны важные понятия сериализации транзакций
и сериального плана выполнения группы транзакций. Сериализация параллельно
выполняющихся транзакций - это такой порядок планирования их работы, при
котором общий результат этой группы транзакций эквивалентен результату
некоторого их последовательного выполнения. Существуют различные
алгоритмы сериализации транзакций, разделяющиеся на 2 больших класса блокировочные и версионные.
5. Журнализация. Одним из основных требований к СУБД является надежность
хранения данных во внешней памяти. Это означает, что СУБД должна быть
способна восстановить последнее согласованное состояние базы данных после
аппаратного или программного сбоя. Сбои обычно делятся на мягкие (просто
отключение питания) и жесткие (потеря информации на внешних носителях). В
любом случае для восстановления базы данных нужно располагать некоторой
дополнительной информацией. Иными словами, поддержание надежности
хранения данных требует избыточности данных, причем та часть данных, которая
используется для восстановления после сбоев, должна храниться наиболее
надежно. Традиционный метод поддержания такой избыточной информации - это
ведение журнала изменения базы данных. Журнал - это специальная часть базы
данных, недоступная пользователям, часто хранящаяся на отдельном устройстве
или даже в нескольких копиях на разных устройствах. Журнал содержит записи
обо всех изменениях основной части базы данных. Записи в журнале могут
производиться на логическом или физическом уровне. Во всех случаях
придерживаются стратегии упреждающей записи в журнал (WAL - Write Ahead
Log). Это означает, что запись об изменении любого объекта базы данных
должна попасть во внешнюю память журнала раньше, чем сам измененный
объект попадет во внешнюю память основной части базы данных. Известно, что
если в СУБД корректно соблюдается протокол WAL, то с помощью журнала
можно решить все проблемы восстановления базы данных после любого сбоя.
Журнал также используется для индивидуального отката транзакций. Для
восстановления базы данных после жестких сбоев используют журнал и
архивную копию базы данных.
6. Поддержка языков баз данных. Современные СУБД обычно поддерживают
единый интегрированный язык, содержащий все необходимые средства для
работы с базой данных. Стандартным языком наиболее распространенных
реляционных СУБД является язык SQL. Практически каждая СУБД имеет свой
диалект языка SQL. Основные части:
1.
DDL (Data Definition Language) - предназначен для создания схемы базы
данных и манипулирования ей.
2.
DML (Data manipulation language) - изменяет именно пользовательские
данные, не трогая схему.
3.
SELECT для выборки информации из базы данных.
4.
DCL (Data Control Language) - сюда обычно относят управление
доступом пользователей к объектам базы данных, управление параметрами
пользовательских сессий И так далее.
7. Архивирование и восстановление данных. Задача создания копий базы данных
без прерывания работы самой базы данных является нетривиальной, но
средства для этого имеются в большинстве современных СУБД.
Типовая организация современной СУБД.
Все компоненты СУБД делятся на серверную и клиентскую часть. Наиболее
основным компонентом серверной части является ядро СУБД. Также к серверной
части относится компилятор языка базы данных, может быть также компилятор
процедурного расширения данного языка, подсистема поддержки времени
выполнения.
Ядро СУБД отвечает за управление данными во внешней памяти, управление
буферами оперативной памяти, управление транзакциями и журнализацию. В
некоторых СУБД, компоненты, отвечающие за эти функции, выделены в виде
отдельных процессов. Ядро СУБД обладает собственным интерфейсом,
недоступным пользователям напрямую. Этот интерфейс используется в программах,
создаваемых компилятором языка SQL и в утилитах базы данных. Ядро СУБД
является основной резидентной частью СУБД.
Основной функцией компилятора является компиляция операторов языка в
некоторую выполняемую программу. Поскольку язык является декларативным,
компилятор должен сам решить, каким образом должен быть выполнен
соответствующий оператор языка. Здесь применяются достаточно сложные методы
оптимизации операторов. В некоторых случаях программа, получаемая в результате
компиляции, находится в некотором внутреннем машинно-независимом коде и тогда
выполнение этой программы производится с помощью специальной подсистемы
поддержки времени выполнения, представляющей собой интерпретатор этого
внутреннего языка.
Утилиты базы данных - это специальные программы для выполнения отдельных
задач. Они могут входить в состав как серверной, так и клиентской части СУБД.
Например, загрузка и выгрузка БД. Глобальная проверка целостности базы данных.
Некоторые утилиты программируются с использованием интерфейса ядра СУБД,
другие работают как обычные клиентские задачи. Также в число утилит обычно
входят средства администрирования базы данных. При работе в сети также
необходимы средства поддержки взаимодействия компонент СУБД через сеть.
Также в состав СУБД (ее клиентской части) обычно входят интерфейсы для работы
с базой данных из прикладных программ. (API - Application Programming Interface).
На платформе Microsoft: ODBC Open Database Connectivity. ADO. OleDB.
Java: JDBC Java Database Connectivity.
Qt
1/--страниц
Пожаловаться на содержимое документа