Лекция 12
Базы данных и базы знаний
Архитектура системы БД.
Программное обеспечение
Пользователи
Модели данных
Системы баз знаний
Архитектура системы бд.
Хранение и обработка данных является важнейшей задачей разработки компьютерных систем. Одним из ее решений явилось создание специализированных программно-аппаратных систем, получивших название систем баз данных или баз данных (БД). Исследования и разработки в области систем баз данных были чрезвычайно успешными на протяжении их сорокалетней истории. Они привели к появлению развитой индустрии баз данных, практически затрагивающей каждую более или менее серьезную организацию в мире. Было бы немыслимо управлять большими массивами постоянно увеличивающейся в объеме информации без систем БД.
Архитектура системы БД состоит из следующих четырех компонентов: аппаратное обеспечение (по сути является компьютером или компьютерной сетью, в которой создается система БД); программное обеспечение; пользователи; данные.
2. Программное обеспечение
Программное обеспечение занимает промежуточное положение между "физической" базой данных, хранящей физические записи, и пользователями БД. Это программное обеспечение называется системой управления базой данных — СУБД (Data Base Management Systems — DBMS) и представляет собой набор программных средств, посредством которого осуществляется управление базой данных и доступ к данным.
К числу основных функций СУБД принято относить следующие.
Непосредственное управление данными во внешней памяти. Эта функция заключается в обеспечении необходимых структур внешней памяти, как для хранения непосредственных данных, входящих в БД, так и для служебных целей. СУБД поддерживает собственную систему именования объектов БД. Существует множество различных способов организации внешней памяти баз данных. Конкретные методы организации внешней памяти выбираются в тесной связи со всеми остальными решениями.
Управление буферами оперативной памяти. СУБД обычно работают с БД значительного размера. Этот размер существенно превышает доступный объем оперативной памяти. При обращении к любому элементу данных производится обмен с внешней памятью, и система работает со скоростью устройства внешней памяти. Единственным способом увеличения этой скорости является буферизация данных в оперативной памяти. Поэтому в СУБД поддерживается набор буферов оперативной памяти с дисциплинами замены буферов. Для управления буферами основной памяти разрабатываются согласованные алгоритмы буферизации, журнализации и синхронизации.
Управление транзакциями. Транзакция — это последовательность операций над БД, рассматриваемых СУБД как единое целое. Либо транзакция успешно выполняется и СУБД фиксирует (COMMIT) изменения БД, произведенные ею во внешней памяти, либо ни одно из этих изменений никак не отражается на состоянии БД. Понятие транзакции необходимо для поддержания логической целостности БД. Роль транзакций гораздо существеннее в многопользовательских СУБД. Каждая транзакция начинается при целостном состоянии БД и оставляет это состояние целостным после своего завершения. Это делает очень удобным использование понятия транзакции как единицы активности пользователя по отношению к БД;
Журнализация. СУБД должна обеспечивать надежное хранение данных во внешней памяти, т.е. СУБД должна иметь возможность восстановить последнее согласованное состояние БД после любого аппаратного или программного сбоя.
Обыкновенно рассматриваются два вида аппаратных сбоев: так называемые мягкие сбои — внезапная остановка работы компьютера (например, аварийное выключение питания) и жесткие сбои — потеря информации на носителях внешней памяти. Примерами программных сбоев могут быть аварийное завершение работы СУБД (из-за ошибки в программе или некоторого аппаратного сбоя) или аварийное завершение пользовательской программы, в результате чего некоторая транзакция остается незавершенной. Первый вариант можно рассматривать как особый вид мягкого аппаратного сбоя, а при возникновении второго требуется ликвидировать последствия только одной транзакции.
В любом случае для восстановления БД нужно располагать некоторой дополнительной информацией, т.е. поддержание надежного хранения данных в БД требует избыточности хранения данных. Наиболее распространенный метод поддержания такой избыточной информации — ведение журнала изменений БД. Журнал — это особая часть БД, недоступная пользователям СУБД и поддерживаемая особо тщательно (иногда поддерживаются две копии журнала, располагаемые на разных физических дисках), в которую поступают записи обо всех изменениях основной части БД.
Поддержка языков БД. Для работы с базами данных используются специальные языки баз данных. Чаще всего выделяются два языка — язык определения данных (DDL — Data Definition Language или SDL — Schema Defenition Language) и язык манипулирования данными (DML — Data Manipulation Language). SDL/DDL служит, главным образом, для определения логической структуры БД, a DML содержит набор операторов манипулирования данными, т.е. операторов, позволяющих заносить данные в БД, удалять, модифицировать или выбирать существующие данные.
Во многих СУБД обычно поддерживается единый интегрированный язык, содержащий все необходимые средства для работы с БД, начиная от ее создания, и обеспечивающий базовый пользовательский интерфейс с базами данных. Стандартным языком реляционных СУБД является язык SQL (Structured Query Language). Язык SQL сочетает средства SDL/DDL и DML, т.е. позволяет определять схему реляционной БД и манипулировать данными. Язык SQL содержит специальные средства определения ограничений целостности БД. В реляционной СУБД можно выделить наиболее внутреннюю часть — ядро СУБД (Data Base Engine), компилятор языка запросов БД (обычно SQL), подсистему поддержки времени выполнения, набор утилит.
Условно программные средства СУБД можно разделить на следующие основные части.
Процессор запросов, включающий компилятор ЯМД, интерпретатор ЯОД и подсистему обработки запросов. Процессор осуществляет всю работу по обработке запросов к БД и определению структуры БД. Запрос представляет собой программу, которая записывается на ЯМД — языке высокого уровня — и обеспечивает поиск данных в базе данных. Структура запроса в системах БД относительно проста, что позволяет легко ею понимать, автоматически генерировать и оптимизировать. Современные языки запросов (например, SQL) являются, по большей части, декларативными, поскольку они выражают, что должно быть возвращено из базы данных, без ссылок на структуры хранения или алгоритмы доступа к этим структурам.
Менеджер памяти, состоящий из менеджера транзакций, менеджера буфера и файлового менеджера.
Утилиты — программы, разработанные для администратора БД и используемые для выполнения различных административных задач: загрузки (создания первоначальной версии БД), выгрузки/перезагрузки, предполагающей создание и загрузку резервных копий БД, реорганизации, применяемой для перераспределения данных БД, статистических процедур и процедур анализа состояния БД.
СУБД позволяют структурировать и организовать данные для их компьютерного хранения и обработки. В настоящее время СУБД составляют основу большинства компьютерных информационных систем. СУБД устранили многие недостатки традиционных файловых систем, такие как несвязность, несогласованность и избыточность данных.