Тема_1 (1122328), страница 7
Текст из файла (страница 7)
Кузнецов. Базы данных.75 Технология БД. ФунОсновные функции и компоненты СУБД (14)Функции СУБД (10). Поддержка языков БД (1)Для работы с базами данных используются специальные языки, вцелом называемые языками баз данных.В ранних СУБД поддерживалось несколько специализированных посвоим функциям языков.Чаще всего выделялись два языка:язык определения схемы БД (SDL - Schema Definition Language)и язык манипулирования данными (DML - Data Manipulation Language).SDL служил, главным образом, для определения логическойструктуры БД, т.е. той структуры БД, какой она представляетсяпользователям.DML содержал набор операторов манипулирования данными, т.е.операторов, позволяющих заносить данные в БД, удалять,модифицировать или выбирать существующие данные.Более подробно языки ранних СУБД мы рассмотрим в следующейтеме.03.09.2009С.Д.
Кузнецов. Базы данных.76 Технология БД. ФунОсновные функции и компоненты СУБД (15)Функции СУБД (11). Поддержка языков БД (2)В современных СУБД обычно поддерживается единый интегрированныйязык, содержащий все необходимые средства для работы с БД, начиная отее создания, и обеспечивающий базовый пользовательский интерфейс сбазами данных.Стандартным языком наиболее распространенных в настоящее времяреляционных СУБД является язык SQL (Standard Query Language).Перечислим основные функции реляционной СУБД, поддерживаемые на«языковом» уровне (т.е. функции, поддерживаемые при реализацииинтерфейса SQL).Прежде всего, язык SQL сочетает средства SDL и DML, т.е. позволяетопределять схему реляционной БД и манипулировать данными.Именование объектов БД (для реляционной БД – в основном, именованиетаблиц и их столбцов) поддерживается на языковом уровне в том смысле,что компилятор языка SQL производит преобразование имен объектов в ихвнутренние идентификаторы на основании специально поддерживаемыхслужебных таблиц-каталогов.Внутренняя часть СУБД (ядро) вообще не работает с именами таблиц и ихстолбцов.03.09.2009С.Д.
Кузнецов. Базы данных.77 Технология БД. ФунОсновные функции и компоненты СУБД (16)Функции СУБД (12). Поддержка языков БД (3)Язык SQL содержит специальные средства определенияограничений целостности БД.Ограничения целостности хранятся в специальных таблицахкаталогах, и обеспечение контроля целостности БД производитсяна языковом уровне, т.е.
при первичной обработке операторовмодификации БД компилятор SQL на основании имеющихся в БДограничений целостности генерирует соответствующийпрограммный код.Специальные операторы языка SQL позволяют определять такназываемые представления БД, фактически являющиесяхранимыми в БД запросами (результатом любого запроса креляционной БД является таблица) с именованными столбцами.Для пользователя представление является такой же таблицей, каклюбая базовая таблица, хранимая в БД, но с помощьюпредставлений можно ограничить или наоборот расширитьвидимость БД для конкретного пользователя.Поддержка представлений производится также на языковомуровне.03.09.2009С.Д. Кузнецов.
Базы данных.78 Технология БД. ФунОсновные функции и компоненты СУБД (17)Функции СУБД (13). Поддержка языков БД (4)Наконец, авторизация доступа к объектам БД производитсятакже на основе специального набора операторов SQL.Идея состоит в том, что для выполнения операторов SQLразного вида пользователь должен обладать различнымиполномочиями.Пользователь, создавший таблицу БД, обладает полнымнабором полномочий для работы с этой таблицей.В число этих полномочий входит полномочие на передачувсех или части полномочий другим пользователям, включаяполномочие на передачу полномочий.Полномочия пользователей описываются в специальныхтаблицах-каталогах, контроль полномочий поддерживаетсяна языковом уровне.03.09.2009С.Д.
Кузнецов. Базы данных.79 Технология БД. ФунОсновные функции и компоненты СУБД (18)Типовая организация современной СУБД (1)Организация типичной СУБД и состав ее компонентовсоответствует рассмотренному выше набору функций. Напомним,что мы выделили следующие основные функции СУБД:Логически в современной реляционной СУБД можно выделитьуправление данными во внешней памяти;управление буферами оперативной памяти;управление транзакциями;журнализация и восстановление БД после сбоев;поддержка языков БД.наиболее внутреннюю часть – ядро СУБД (часто его называют DataBase Engine),компилятор языка БД (обычно SQL),подсистему поддержки времени выполнения,набор утилит.В некоторых системах эти части выделяются явно, в других - нет,но логически такое разделение можно провести во всех СУБД.03.09.2009С.Д.
Кузнецов. Базы данных.80 Технология БД. ФунОсновные функции и компоненты СУБД (19)Типовая организация современной СУБД (2)Ядро СУБД отвечает за управление данными во внешней памяти,управление буферами оперативной памяти, управление транзакциями ижурнализацию.Соответственно, можно выделить такие компоненты ядра (по крайнеймере, логически):менеджер данных,менеджер буферов,менеджер транзакцийи менеджер журнала.Функции этих компонентов взаимосвязаны, и для обеспечения корректнойработы СУБД все эти компоненты должны взаимодействовать потщательно продуманным и проверенным протоколам.Ядро СУБД обладает собственным интерфейсом, обычно не доступнымпользователям напрямую и используемым в программах, производимыхкомпилятором SQL (или в подсистеме поддержки выполнения такихпрограмм) и утилитах БД.Ядро СУБД является основной резидентной частью СУБД.При использовании архитектуры «клиент-сервер» ядро является базовойсоставляющей серверной части системы.03.09.2009С.Д.
Кузнецов. Базы данных.81 Технология БД. ФунОсновные функции и компоненты СУБД (20)Типовая организация современной СУБД (3)Основной функцией компилятора языка БД является компиляцияоператоров языка БД в некоторую выполняемую программу.Основной проблемой реляционных СУБД является то, что языки этихсистем (а это, как правило, SQL) являются непроцедурными, т.е. воператоре такого языка специфицируется некоторое действие над БД,но эта спецификация не является процедурой, а лишь описывает внекоторой форме условия совершения желаемого действия.Поэтому компилятор должен решить, каким образом выполнятьоператор языка прежде, чем произвести программу.Применяются достаточно сложные методы оптимизации операторов.Результатом компиляции является выполняемая программа,представляемая в некоторых системах в машинных кодах, но болеечасто в выполняемом внутреннем машинно-независимом коде.В последнем случае реальное выполнение оператора производится спривлечением подсистемы поддержки времени выполнения,представляющей собой, по сути дела, интерпретатор этоговнутреннего языка.03.09.2009С.Д.
Кузнецов. Базы данных.82 Технология БД. ФунОсновные функции и компоненты СУБД (21)Типовая организация современной СУБД (4)Наконец, в отдельные утилиты БД обычновыделяют такие процедуры, которые слишкомнакладно выполнять с использованием языкаБД, например, загрузка и выгрузка БД, сборстатистики, глобальная проверка целостностиБД и т.д.Утилиты программируются с использованиеминтерфейса ядра СУБД, а иногда даже спроникновением внутрь ядра.03.09.2009С.Д. Кузнецов.
Базы данных.83 Технология БД. ФунЗаключение (1)Развитие аппаратных и программных средств управления внешнейпамятью диктовалось потребностями ИС, для построения которыхтребовалась возможность надежного долговременного хранения большихобъемов данных, а также обеспечение достаточно быстрого доступа к этимданным.Системы управления файлами во внешней памяти обеспечиваютминимальные потребности ИС, предоставляя средства распределения иструктуризации дисковой памяти, именования файлов, авторизациидоступа и поддержки многопользовательского режима.На примере тривиальной ИС были показаны ситуации, в которыхвозможности ФС явно недостаточны.Более того, попытки расширения возможностей ФС путем включения вприложение дополнительных программных компонентов во многих случаяхне приводят к успеху.В пределе такие попытки могут привести к появлению самостоятельногопрограммного продукта, обладающего некоторыми чертами СУБД.Однако настоящие СУБД являются настолько большими и сложнымипрограммными системами, что вероятность успешного создания«самодельной» СУБД ничтожно мала.03.09.2009С.Д.
Кузнецов. Базы данных.84 Технология БД. ФунЗаключение (2)При выборе технологии построения ИС нужно тщательно оценивать ипрогнозировать ее потенциальные потребности в средствахуправления данными.Конечно, любую ИС можно основывать на использованиипромышленной, большой и мощной СУБД.Но вполне может оказаться так, что в действительности приложениебудет использовать доли процентов общих возможностей СУБД.Накладные расходы (затраты на дополнительную аппаратуру,лицензирование дорогостоящего программного продукта, увеличениеобщего времени выполнения операций) могут оказатьсянеоправданными.СУБД решают множество проблем, которые затруднительно иливообще невозможно решить при использовании ФС.При этом существуют приложения, для которых вполне достаточнофайлов; приложения, для которых необходимо решать, какой уровеньработы с данными во внешней памяти для них требуется, иприложения, для которых, безусловно, нужны базы данных.03.09.2009С.Д. Кузнецов.
Базы данных.85 Технология БД. Фун.