Тема №19

19 СИСТЕМЫ УПРАВЛЕНИЯ БАЗАМИ ДАННЫХ (СУБД)

Система управления базами данных (Data Base Management System—DBMS) — это совокупность языковых и программных средств, предназначенных для создания, ведения и совместного использования базы данных многими пользователями.

19.1 Классификация СУБД

СУБД классифицируют по ряду признаков. По степени универсальности различают СУБД общего и специального назначения.

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

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

По типу поддерживаемой модели данных СУБД делятся:

• на иерархические. Первой иерархической СУБД была система IMS (Information Management System) компании IBM, коммерческое распространение которой началось в 1968 г.;

• сетевые. Первой сетевой СУБД считается система IDS (Integrated Data Store), разработанная компанией General Electric немного позже системы IMS;

• реляционные. Первые реляционные СУБД System R фирмы IBM, Ingres Калифорнийского университета появились в 1970-х гг., а коммерческие СУБД этого класса — DB2 (IBM), Oracle и другие — были выпущены в начале 1980-х гг. В это лее время появились реляционные СУБД для персональных компьютеров — продукты семейства dBase;

• постреляционные. В качестве их примеров приведем СУБД imiVers, Bubba и Dasdb;

• объектно-ориентированные. Первые объектно-ориентированные СУБД появились уже в середине 1980-х гг. К их числу можно отнести СУБД ORION американской компании МСС, Gem Stone американской фирмы Servio Logic, Iris фирмы Hewlett-Packard;

объектно-реляционные. На основе этой модели в Калифорнийском университете была разработана СУБД Postgres. Но первой СУБД, официально называемой объектно-реляционной системой, была UniSQL корейской компании UniSQL, выпущенная в 1991 г.;

• многомерные. К числу многомерных СУБД можно отнести следующие: UniData компании IBM, D3, nwBase, mvEnter-prize компании Raining Data и jBASE компании jBASE.

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

19.2 Функциональные возможности СУБД

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

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

• актуализация хранящихся в ней данных;

• быстрое извлечение из базы необходимых данных по запросам пользователей, в том числе по так называемым незапланированным запросам, т.е. запросам, заранее не предусмотренным в системе;

• выполнение вычислений над данными;

• создание экранных шаблонов — форм, обеспечивающих удобство работы с данными;

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

• разработка приложений;

• экспорт данных в другие базы и импорт данных из других баз данных;

• публикация данных в сети Интернет.

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

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

19.3 Языковые и программные средства СУБД

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

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

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

Язык манипулирования данными — ЯМД (Data Manipulation Language — DML) позволяет вставлять, обновлять, удалять и извлекать данные из базы.

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

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

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

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

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

19.4 Архитектура СУБД

Архитектура системы — это представление о совокупности функциональных компонентов системы и их взаимосвязях.

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

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

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

3. Функции управления данными. Они обеспечивают организацию ввода, обработки и хранения данных.

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

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

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

• процессор запросов;

• процессор форм;

• генератор отчетов;

• средства обработки, реализованные на языках программирования.

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

Обобщенная структура функциональных компонентов СУБД показана на рисунке 19.1.

Рисунок 19.1 – Структура функциональных компонентов СУБД

19.5 Режимы работы пользователя в СУБД

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

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

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

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

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

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

19.6 Направления развития СУБД

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

19.6.1 Расширение множества типов обрабатываемых данных

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

Современные СУБД предоставляют средства для работы с такого типа данными. Так, СУБД Microsoft Access хранит данные разнообразных типов.

19.6.2 Интеграция технологий баз данных и Web-технологий

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

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

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

В основе Web-технологии лежит создание Web-документов с использованием языка разметки HTML. Ограниченные средства этого языка не позволяют эффективно решать ряд проблем, в частности обмен структурированными документами. Для преодоления этого недостатка разработан новый стандарт языка разметки Web-документов — XML. В отличие от HTML язык XML позволяет описывать не только структуру документа, но и его содержание, а также обеспечивать разные способы отображения.

Использование этого языка привело к появлению так называемых XML-ориентированных СУБД. Число таких систем постоянно растет, совершенствуются технологии их разработки. Системы такого рода (например, Tamino XML Server компании Software AG, Ipedo XML Database компании Ipedo) находят широкое применение в электронном бизнесе, дистанционном образовании, поддержке научных исследований и в других отраслях.

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

19.6.3 Системы управления базами знаний

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

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

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

СУБД продолжают эволюционировать в направлении более точного отображения постоянно усложняющегося реального мира.