logo search
ИТУ-МГУДТ

8.4. Технологии использования систем управления базами данных

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

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

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

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

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

Система управления базами данных (СУБД) (Data Base Management System - DBMS) - это комплекс программных средств, предназначенный для централизованного создания и использования на ЭВМ совокупности баз данных в рамках различных приложений, в интересах определенной со­вокупности пользователей. СУБД расширяет возможности операционной системы при работе с базами данных. Системы управления базами данных как новый вид программного обес­печения появились в начале 70-х гг. прошлого столетия. Необходимость разработки и применения СУБД как самостоятельной программной системы обусловлено следующим:

- наличие специфических параметров логической и физической организации баз данных, на которые не ориентированы операционные системы и языки программирования;

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

- требования по организации доступа к данным диктуют необходимость разработки специальных алгоритмов и управляющих программ;

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

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

Реляционная модель отражает накапливаемую информацию в виде таблиц, над которыми выполняются логические операции (операции реляционной алгебры). В рамках указанной модели таблица называется отношением, строка – кортежем, столбец – атрибутом. Область определения атрибута (домен) - это область, в которой находится множество возможных значений атрибута. Основное требование к отношению в рамках реляционной модели состоит в том, что значения атрибутов должны быть элементарной, неделимой информационной единицей, а это и дает возможность применения в целях обработки математического аппарата реляционной алгебры. Простота и гибкость этой модели данных позволили ей занять лидирующие позиции на соответствую­щем секторе рынка. Наиболее популярны СУБД: dBase III Plus, FoxBase, FoxPro, Clipper, dBase IV, Clarion, Paradox, Oracle. Имеющиеся негативные моменты в реляционной модели: невозможность представления и манипулирования данными сложной структуры (тексты, простран­ственные данные).

Объектно-ориентированные модели наиболее близки по своей структуре фрагментам реального мира, поскольку предполагают работу с описаниями его объектов. Важнейшие области применения объектных СУБД – системы автоматизированного проектирования (САПР), моделирование, мультимедиа, управление организацией. Они используются при построении распределенных вычислительных систем. Подобные СУБД отличаются высоким быстродействием, надежностью, представляют разнообразный интерфейс для разработчиков и пользователей. К числу таких СУБД относятся ORACLE 8.0, ONTOS, Jasmine, ODB-Jupiter. Все большее распространение объектно-ориентированных моделей является важной тенденций в использовании СУБД.

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

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

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

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

Для создания, ведения и корректировки баз данных используются пакеты СУБД, которые включают:

- средства поддержки языковых средств – трансляторы с языков описания данных, языков манипулирования данными, языков программирования, редакторов и отладчиков;

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

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

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

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

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

Журнализация и восстановление БД после сбоев позволяет достигнуть надежного хранения дан­ных во внешней памяти. Эта функция требует из­быточности хранения данных, причем та их часть, которая использу­ется для восстановления последнего согласо­ванного состояния БД после аппаратного или программного сбоя, хранится особенно надежно. В этих целях осуществляется ведение журнала изменений базы данных. Практикуется «упреждающая» запись в журнал (прото­кол Write Ahead Log): сведения об изменении любого объекта БД фиксируется во внешней памяти журнала раньше, чем они попадают во внешнюю память основной час­ти БД.

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

Структурно СУБД включает следующие основные части: ядро СУБД (Data Base Engine), ком­пилятор языка БД, набор утилит. Ядро СУБД включает управление данными во внешней памяти, управление буферами оперативной памяти, управление трансакция­ми и журнализацию. Ядро обладает собственным интерфейсом, недоступным пользователю и используемым в программах, производи­мых компилятором, а также в утилитах. Ядро является основ­ной резидентной частью СУБД. При использовании архитектуры «клиент-сервер» ядро является основным элементом серверной части системы.

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

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

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

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

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

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

Современные языки СУБД не толь­ко реализуют функции определения и манипулирования данными, но и располагают средствами, свой­ственными традиционным языкам программирования. Они могут использоваться как функционально полное средство для создания прикладных программ и для формулировки запросов пользо­вателей к БД. Такие языки называют автономными.

Конечные пользователи СУБД разделяются на две категории - прямые и косвенные. Те, кто относится к группе прямых пользователей, в отличие от косвен­ных, самостоятельно без посредников общаются с ЭВМ. Они спо­собны разрабатывать новые приложения.

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

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

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