Что такое информационная технология?

Вид материалаДокументы

Содержание


Какова типовая организация системы управления базами данных?
Каковы состав и назначение языковых средств системы управления базами данных?
Подобный материал:
1   ...   14   15   16   17   18   19   20   21   ...   30

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


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

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

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

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

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

Каковы состав и назначение языковых средств системы управления базами данных?


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

Реализация языковых средств интерфейсов может быть осуществлена различными способами:

для высококвалифицированных пользователей языковые средства представляются в их явной синтаксической форме;

в других случаях функции языков могут быть доступны косвенным образом, когда они реализуются в форме различного рода меню, диалоговых сценариев или заполняемых пользователем таблиц. По таким входным данным интерфейсные средства формируют адекватные синтаксические конструкции языка интерфейса и передают их на исполнение или включают в генерируемый код языка приложения. Интерфейсы с неявным использованием языка широко применяются в СУБД для персональных ЭВМ. В этом случае используется (для реляционных СУБД), например, табличный язык Query-By-Example (QBE), разработанный M. Злуфом.

Языковые средства используются для выполнения двух основных функций:

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

для инициирования выполнения операций манипулирования данными.

Первая из этих функций обеспечивается языком описания данных (ЯОД; Shema Definision Language). Его часто называют языком определения данных. Описание данных средствами ЯОД называют схемой базы данных. Оно включает описание логической структуры данных и налагаемых на нее ограничений целостности в рамках тех правил, которые регламентированы моделью данных, используемой СУБД. Помимо указанных функций, ЯОД некоторых СУБД обеспечивает ограничение доступа к данным или полномочий пользователей.

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

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

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

В настоящее время имеются многочисленные примеры языков СУБД, объединяющих возможности описания данных и манипулирования данными в единых синтаксических рамках. Более того, в современных СУБД обычно поддерживается единый интегрированный язык, содержащий все необходимые средства для работы с базой данных и обеспечивающий базовый пользовательский интерфейс с базами данных. Наиболее популярным и стандартным для реляционных СУБД является язык SQL (Structured Query Language), разработанный фирмой IBM и реализованный в реляционной СУБД System R, а впоследствии и в коммерческой системе DB2. Другим примером языков этого класса могут служить: язык Quel системы Ingres, созданный Калифорнийским университетом, языковые средства большинства СУБД для персональных ЭВМ, например, язык dBase семейства СУБД фирмы Asthon — Tate и многочисленных совместимых с ним систем, язык СУБД: R:Base фирмы Microrim.

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

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

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

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

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

Изучение простейших возможностей языков конечных пользователей не требует больших затрат времени. Такой уровень подготовки (обычно 1—3 дня) позволит пользователю разрабатывать несложные приложения.

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