АЧМ - Алгоритмы и Численные Методы
Поиск  
АЧМ - Алгоритмы и Численные Методы  


Лекция 2

Основные функции СУБД

Базы данных – логическое объединение и описание данных. СУБД – ПО для работы с БД.

БД – данные + описание (системный каталог, словарь данных). Элементы описания – метаданные.

К числу основных функций СУБД принято относить следующие:

Непосредственное управление данными во внешней памяти

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

Управление буферами оперативной памяти

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

Управление транзакциями

Транзакция - это последовательность операций над БД, рассматриваемых СУБД как единое целое.

Классическая модель

Атомарность (atomicity), непротиворечивость (consistency), изолированность (isolation), долговременное сохранение (durability)

Расширение – вложенная транзакция (nested transactions).

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

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

Ограничения целостности – правила поддержки непротиворечивости, которые не должны нарушаться в БД.

Журнализация

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

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

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

Поддержка языков БД

Для работы с базами данных используются специальные языки, в целом называемые языками баз данных. В ранних СУБД поддерживалось несколько специализированных по своим функциям языков. Чаще всего выделялись два языка - язык определения схемы БД (SDL - Schema Definition Language) и язык манипулирования данными (DML - Data Manipulation Language).

DDL (Data Definition Language) – указание типа данных, их структуры, средства создания ограничений для данных.

DML (Data Manipulation Language) – организация запросов. Процедурные и непроцедурные – способы извлечения данных.

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

Основные функции СУБД, поддерживаемые на "языковом" уровне:

  • сочетает средства SDL и DML
  • содержит средства определения ограничений целостности БД
  • авторизация доступа к объектам БД

Контролируемый доступ к БД

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

Типовая организация современной СУБД

Естественно, организация типичной СУБД и состав ее компонентов соответствует указанному ранее набору функций.

В состав БД как сложной человеко-машинной системы включаются следующие взаимосвязанные и взаимозависимые компоненты:

  1. Информационная компонента – базы данных, описание баз данных (схемы), информация о пользователях, информация о предметной области и некоторая другая информация.
  2. Словарь данных (метаинформация) - содержит информацию об объектах, их свойствах, отношениях, сведения о данных, хранимых в БД, их возможные значения, форматы. Словарь используют программисты в процессе описания прикладных программ; пользователи обращаются к словарю для организации запроса к информационной среде. Однако не все СУБД поддерживают словари данных.

  3. Программные средства (обеспечение взаимодействия всех частей системы при ее функционировании) – СУБД, операционная система, прикладное программное обеспечение.
  4. Языковые средства (обеспечение интерфейса пользователей с банком данных) – языки описания данных, языки манипулирования данными, языки запросов и другие языки.
  5. Технические средства – универсальные ЭВМ, периферийные средства для ввода информации в базу данных, периферийные средства для отображения выводимой информации и другие.
  6. Организационно-методические средства – инструкции, методические и регламентирующие материалы, предназначенные для пользователей разных категорий, взаимодействующих с банком данных. Администраторы, разработчики, прикладные программисты, пользователи.

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

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

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

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

Преимущества СУБД

- контроль за избыточностью данных (не исключение)

- непротиворечивость данных

- получение большего количества полезных данных

- совместное использование данных

- поддержка целостности данных

- повышенная безопасность

- стандарты

- повышение эффективности с ростом масштабов системы

- улучшение производительности, параллельность, упрощение сопровождения

- резервирование и восстановление

Недостатки СУБД

- сложность

- размер

- стоимость

- затраты на преобразование

- производительность

- уязвимость


KDSW Logo  © Copyright 2005 KDSW Systems [ Kamaev Dmitry SoftWorks ]