Найти тему

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

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

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

К СУБД относятся следующие основные виды программ:

  • полнофункциональные СУБД;
  • серверы БД;
  • клиенты БД;
  • средства разработки программ работы с БД.

Полнофункциональные СУБД (ПФСУБД) представляют собой тради­ционные СУБД, которые сначала появились для больших машин, затем для мини-машин и для ПЭВМ. Из числа всех СУБД современные ПФСУБД являются наиболее многочисленными и мощными по своим возможностям. К ПФСУБД относятся, например, такие пакеты, как Clarion Database Developer, DataЕase, DataFlex, d Base IV, Microsoft Access, Microsoft FoxPro и Paradox R:BASE.

Обычно ПФСУБД имеют развитый интерфейс, позволяющий с помо­щью команд меню выполнять основные действия с БД: создавать и моди­фицировать структуры таблиц, вводить данные, формировать запросы, раз­рабатывать отчеты, выводить их на печать и т. п. Для создания запросов и отчетов не обязательно программирование, а удобно пользоваться языком QBE (Query By Example — формулировки запросов по образцу, см. подраз­дел 3.8). Многие ПФСУБД включают средства программирования для про­фессиональных разработчиков.

Некоторые системы имеют в качестве вспомогательных и дополнитель­ные средства проектирования схем БД или CASE-подсистемы. Для обеспе­чения доступа к другим БД или к данным SQL-серверов полнофункцио­нальные СУБД имеют факультативные модули.

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

Примерами серверов БД являются следующие программы: NetWare SQL (Novell), MS SQL Server (Microsoft), InterBase (Borland), SQLBase Server (Gupta), Intelligent Database (Ingress).

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

В случае, когда клиентская и серверная части выполнены одной фирмой, естественно ожидать, что распределение функций между ними выполнено рационально. В остальных случаях обычно преследуется цель обеспечения доступа к данным «любой ценой». Примером такого соединения является случай, когда одна из полнофункциональных СУБ играет роль сервера, а вторая СУБД (другого производителя) — poль клиента. Так, для сервера БД SQL Server (Microsoft) в роли клиентом (фронтальных) программ могут выступать многие СУБД, такие как dBASE IV, Blyth Software, Paradox, DataЕase, Focus, 1-2-3, MDBS III, Revelation и другие.

Средства разработки программ работы с БД могут использоваться для создания разновидностей следующих программ:

  • клиентских программ;
  • серверов БД и их отдельных компонентов;
  • пользовательских приложений.

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

К средствам разработки пользовательских приложений относятся систе­мы программирования, например Clipper, разнообразные библиотеки про­грамм для различных языков программирования, а также пакеты автомати­зации разработок (в том числе систем типа клиент-сервер). В числе наиболее распространенных можно назвать следующие инструментальные системы: Delphi и Power Builder (Borland), Visual Basic (Microsoft), SILVERRUN(Computer Advisers Inc.), S-Designor (SDPи Powersoft) и ERwin(LogicWorks).

Кроме перечисленных средств, для управления данными и организации обслуживания БД используются различные дополнительные средства, к примеру мониторы транзакции (см. подраздел 4.2).

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

Персональные СУБД обычно обеспечивают возможность создания пер­сональных БД и недорогих приложений, работающих с ними. Персональ­ные СУБД или разработанные с их помощью приложения зачастую могут выступать в роли клиентской части многопользовательской СУБД. К пер­сональным СУБД, например, относятся Visual FoxPro, Paradox, Clipper, dBase, Access и др.

Многопользовательские СУБД включают в себя сервер БД и клиент­скую часть и, как правило, могут работать в неоднородной вычислительной среде (с разными типами ЭВМ и операционными системами). К многополь­зовательским СУБД относятся, например, СУБД Oracle и Informix.

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

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

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

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

Названные языки в различных СУБД могут иметь отличия. Наибольшее распространение получили два стандартизованных языка: QBE (Query By Example) — язык запросов по образцу и SQL (Structured Query Language — структурированный язык запросов. QBE в основном обладает свойствами языка манипулирования данными, SQL сочетает в себе свойства язык обоих типов — описания и манипулирования данными.

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

  • управление данными во внешней памяти;
  • управление буферами оперативной памяти;
  • управление транзакциями;
  • ведение журнала изменений в БД;
  • обеспечение целостности и безопасности БД.

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

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

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

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

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

  • атомарность (выполняются все входящие в транзакцию операции или
    ни одна);
  • сериализуемость (отсутствует взаимное влияние выполняемых в одно
    и то же время транзакций);
  • долговечность (даже крах системы не приводит к утрате результатов
    зафиксированной транзакции).

Примером транзакции является операция перевода денег с одного сче­та на другой в банковской системе. Здесь необходим, по крайней мере,
двухшаговый процесс. Сначала снимают деньги с одного счета, затем до­бавляют их к другому счету. Если хотя бы одно из действий не выпол­нится успешно, результат операции окажется неверным и будет нарушен баланс между счетами. I

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

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

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

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

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

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

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