Функции систем управления базами данных (СУБД)

Функции систем управления базами данных (СУБД)


Содержание


1. Какие основные функции СУБД?

К основным функциям, которые выполняются системами управления базами данных относятся:

  • непосредственное управление данными во внешней памяти;
  • управление буферами оперативной памяти;
  • управление транзакциями;
  • ведение журнала или протокола выполненных операций в базе данных;
  • поддержка языков баз данных.

2. Что означает непосредственное управление данными во внешней памяти?

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

Носители информации нужны в двух случаях:

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

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

Для обеспечения непосредственного управления данными во внешней памяти современные СУБД:

  • имеют собственную систему наименования объектов;
  • могут использовать возможности существующих файловых систем (запоминающих устройств);
  • могут использовать низкоуровневые операции при работе с внешними запоминающими устройствами.

3. Что означает управление буфером оперативной памяти?

Одной из важных характеристик системы управление базами данных есть скорость обработки информации в базе данных. Скорость обработки информации существенно зависит от размера базы данных.

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

4. Что называется транзакцией? В чем состоит суть управления транзакциями?

При работе с любой базой данных выполняется бесконечная последовательность операций. Если последовательность операций объединена в единое целое (с точки зрения СУБД), то эта последовательность называется транзакцией.

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

Если хотя бы одна из операций транзакции заканчивается неудачно, то транзакция считается невыполненной. В этом случае происходит откат транзакции (ROLLBACK). При откате транзакции база данных возвращается в состояние, которое было до начала выполнения транзакции.

5. Для чего нужно управление транзакциями в базе данных?

Поддержка транзакций есть важным условием для логической целостности базы данных. Это касается как однопользовательских так и многопользовательских СУБД.

Задача механизма транзакций – повлиять на пользователя таким образом, чтобы он ощущал себя единым пользователем СУБД. Даже в случае, если с СУБД параллельно работает большое количество пользователей. Фактически, транзакция есть единицей активности пользователя по отношению к базе данных.



6. Что такое сериализация и серийный план транзакций?

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

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

транзакция база данных рисунок

Рис. 1. Пример сериализации транзакций в случае трех пользователей

7. Что происходит, если две транзакции хотят иметь доступ к одному и тому же объекту базы данных?

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

8. Что такое журнализация или ведение протокола в базе данных?

Журнализация или ведение протокола выполненных команд необходима для восстановления последнего согласованного состояния базы данных после аппаратного или программного сбоя.

Журнализация необходима для обеспечения надежности сохранения данных во внешней памяти (на носителях информации).

Аппаратные сбои возникают вследствие:

  • мгновенной остановки компьютера (например, отключение питание, «зависание» операционной системы). Такой аппаратный сбой еще называют «мягкий» сбой;
  • потерей информации на носителях внешней памяти. Такой вид сбоя называется «жесткий сбой».

Программные сбои – это, как правило, ошибки в самых программах. Программные сбои могут возникать как в пользовательских программах, так и в самой СУБД.

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

9. Какие требования к сохранению журнала изменений базы данных?

Журнал изменений в базе данных ведется особенно надежно. Журнал изменений есть недоступен для пользователей СУБД. Часто ведутся две копии журнала изменений, которые размещаются на разных носителях.

10. Что такое стратегия «упреждающей» записи при ведении журнала изменений?

Стратегия упреждающей записи (Write Ahead Log – WAL) есть своеобразным протоколом, который работает по следующему принципу: прежде чем изменить объект базы данных, предварительно в журнале надо сформировать запись об изменении данного объекта.

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

11. Что такое локальный журнал транзакций? Какое отличие локального журнала транзакций от общесистемного?

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

Ведение локального журнала транзакций поддерживается в некоторых СУБД.

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

12. Какие основные шаги выполняются СУБД для восстановления базы данных при «мягком» сбое?

«Мягкий сбой» – это случай, когда произошла мгновенная остановка работы компьютера. Примеры «мягких» сбоев:

  • отключение питания компьютера (аппаратный сбой);
  • «зависание» операционной системы;
  • ошибки программирования программ, которые взаимодействуют с базой данных.

При «мягком» сбое могут отсутствовать:

  • объекты, которые были модифицированы транзакциями, но эти транзакции еще не завершились на момент сбоя (измененные объекты незавершенных транзакций);
  • объекты, которые на момент сбоя размещались в буфере оперативной памяти и которые были модифицированы завершенными транзакциями. Но эти объекты, в результате сбоя, еще не успели сохраниться на внешних носителях, и все равно исчезли бесследно. Как известно, информация из оперативной памяти при выключении питания исчезает бесследно.

После мягкого сбоя СУБД выполняет следующие основные шаги:

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

13. Какие основные шаги выполняются при «жестком» сбое для восстановления базы данных?

Жесткий сбой характеризуется потерей информации на носителях внешней памяти.

В этом случае, для восстановления базы данных используют:

  • журнал операций;
  • архивную копию базы данных. Архивная копия базы данных – это полная копия базы данных, которая была сделана на некоторый момент ведения журнала. Если удачно создается архивная копия базы данных, то на данный момент, предшествующие операции в журнале фиксируются и новый учет в журнале начинается из этой позиции.

Важным здесь есть наличие самого журнала.

14. Что такое избыточность данных в базе данных?

Избыточность данных в базе данных – это когда кроме самих данных в базе данных сохраняется еще и другая необходимая информация. Эта информация используется системой управления базами данных.

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

15. Что собою представляет функция поддержки языков баз данных?

Любая СУБД должна поддерживать языки баз данных. Это означает, что для работы с данными в базе данных, должны использоваться специальные языки. Эти языки называются языками баз данных (например, SQL, MDX, SPARQL, FoxPro, PL/Perl и т.д.).

Для современных баз данных в основном выделяются два языка:

  • язык определения схем данных (Schema Definition Language, SDL). Этот язык используется для определения логической структуры базы данных;
  • язык манипулирования данными (Data Manipulation Language, DML). Такой язык содержит набор операторов манипулирования данными (добавление, удаление и изменение данных) и выборки данных из базы данных.

Для современных реляционных баз данных стандартным языком использования есть язык SQL (Stuctured Query Language). Этот язык позволяет определять схему данных и манипулировать этими данными.


Связанные темы