Тикунов В. С. Геоинформатика. Обеспечение надежности хранения данных в БД. Поддержка языков управления БД. Типовая организация СУБД.

Скачать полную версию учебника (с рисунками, формулами, картами, схемами и таблицами) одним файлом в формате MS Office Word Скачать книгу

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

Поддержка языков управления БД. Для работы с базами данных Используются специальные языки, называемые языками баз данных. Первоначально в СУБД поддерживалось несколько специализированных по функциям языков. В современных СУБД обычно поддерживается единый интегрированный язык, содержащий все необходимые средства для работы с БД, начиная от ее создания, и обеспечивающий базовый пользовательский интерфейс с базами данных. Стандартным языком наиболее распространенных в настоящее время реляционных СУБД является язык SQL (Structured Query Language). Язык SQL позволяет определять схему реляционной БД и манипулировать данными. При этом именование объектов БД (таблиц и их столбцов) поддерживается на языковом уровне в том смысле, что компилятор языка SQL производит преобразование имен объектов в их внутренние идентификаторы на основании специально поддерживаемых служебных таблиц-каталогов. Внутренняя часть СУБД (ядро) вообще не работает с именами таблиц и их столбцов.
Язык SQL содержит специальные средства определения ограничений целостности БД, которые тоже хранятся в специальных таблицах-каталогах. Обеспечение контроля целостности БД производится на языковом уровне. Компилятор SQL для операторов модификации БД на основании имеющихся в БД ограничений целостности генерирует соответствующий программный код.
Специальные операторы языка SQL позволяют определять так называемые представления БД, фактически являющиеся хранимыми в БД запросами (результатом любого запроса к реляционной БД является таблица) с именованными столбцами. Для пользователя представление является такой же таблицей, как любая базовая таблица, хранимая в БД, но с помощью представлений можно ограничить или наоборот расширить «видимость» БД для конкретного пользователя. Поддержание представлений производится также на языковом уровне.
Наконец, авторизация доступа к объектам БД производится также на основе специального набора операторов SQL. Идея состоит в том, что для выполнения операторов SQL разного вида пользователь должен обладать различными правами доступа к БД. Пользователь, создавший таблицу БД, обладает полным набором прав для работы с этой таблицей, в том числе правом разрешения доступа другим пользователям. Контроль прав доступа поддерживается на уровне языка.

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

Логически в реляционной СУБД можно выделить:
- внутреннюю часть — ядро СУБД (часто его называют Data Base Engine);
- компилятор языка БД (обычно SQL);
- подсистему поддержки времени выполнения;
- набор утилит.

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

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

Отмеченные преимущества и постепенное накопление методов и алгоритмов организации реляционных баз данных и управления ими привели к тому, что в середине 80-х годов XX в. реляционные системы практически вытеснили с мирового рынка ранние СУБД.
К недостаткам реляционных СУБД относятся некоторая ограниченность (как следствие простоты) их использования при сложных структурах данных, в том числе пространственно-определенных данных разных моделей, а также невозможность адекватного отражения семантики предметной области.

Скачать полную версию учебника (с рисунками, формулами, картами, схемами и таблицами) одним файлом в формате MS Office Word Скачать книгу