Функциональная структура СУБД.

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

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

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

Язык, в котором описывается схема БД, например Ассемблер или ПЛ/1, называют включающим языком. Описание схемы здесь представляет собой набор макрокоманд языка, например Ассемблер, ПЛ/1,раздел в языке Кобол и набор команд языка описания схемы. Для подготовки описаний БД к работе ее схемы с помощью специального транслятора преобразуются в программы включающего языка, а затем полученные программы транслируются и редактируются.

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

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

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

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

Транслятор включающего языка может быть реализован как: специальный транслятор, способный транслировать инструкции включающего и базового языков; препроцессор, преобразующий команды доступа в команды включающего языка; в виде загрузочных модулей, вызываемых для выполнения команд доступа (оператор CALL в языках Кобол, ПЛ/1). Первых два способа реализации имеют преимущество перед третьим: правильность обращения проверяется на этапе компиляции, а не во время выполнения программы, что сокращает время доступа.

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

· создания (загрузки) БД;

· копирования содержимого БД с целью ее восстановления в случаях аварийных ситуаций;

· реорганизации БД, чтобы получить более эффективный ее вариант;

· печати как частей, так и БД;

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

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

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

Перечислим наиболее типичные функции современных, словарных систем.

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

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

3. Управление интерфейсами между словарями и базовым программным обеспечением. Типичными могут быть интерфейсы:

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

· систем управления к словарю (выбирающие информацию из концептуальных, внешних и внутренних схем для загрузки ее в словарь);

· словаря к компиляторам и библиотекам исходных программ (генерирующие описания данных для соответствующих программ);

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

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

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

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

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

1) Прикладная программа выдает приведенный выше запрос на чтение записей системе управления БД.

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

 

Рис. 1.3. Функционирование системы управления БД

3) Система управления БД получает в распоряжение схему БД и определяет, какие типы логических данных необходимы.

4) Система управления БД просматривает внутреннюю схему и определяет, какие физические записи нужно читать.

5) Система управления БД выдает ОС команду чтения требуемых записей.

6) Операционная система анализирует полученную команду и обращается к внешнему устройству, на котором расположена БД.

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

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

9) Система управления БД передает данные из СБ в рабочую область прикладной программы.

10) Система управления БД информирует приложение о результате выполнения запроса и аварийных ситуациях, происходящих в процессе реализации запроса.

11) Далее прикладная программа обрабатывает данные, помещенные в ее рабочую область.

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

Большинство СУБД представляется операционным системам как прикладная программа, какими бы сложными и мощными они ни были. Таким образом, достигается высокая степень независимости СУБД и ОС.

Данную вводную главу закончим рассмотрением развития СУБД с точки зрения архитектуры, предложенной группой ANSI/SPARC.

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

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

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

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

 

Упражнения

1.1.Определите следующие понятия: «информация», «данные», «файл», «база данных», «предметная область», «атрибут-признак», «атрибут-основание», «показатель», «домен», «система управления базами данных».

1.2. Назовите предпосылки появления БД.

1.3. Дайте определение БД.

1.4. Перечислите свойства БД.

1.5. Опишите пять основных компонентов БД и кратко поясните, для чего они предназначены.

1.6. Перечислите основные преимущества использования БД перед традиционной файловой системой хранения данных.

1.7. Нарисуйте архитектуру построения баз данных ANSI-SPARC. На ее основе поясните понятия логической и физической независимости данных.

1.8.Перечислите и охарактеризуйте цели использования БД.

1.9. Приведите пример БД, которая включает различные типы отношений между объектами.

1.10. Приведите пример нарушения целостности БД.

1.11. Объясните, что означает «защита данных».

1.12. Определите основные особенности уровней представления БД.

1.13. С помощью каких средств обеспечивается поддержка целостности данных в БД. Перечислите виды ограничителей целостности.

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

1.15. Схема связей между объектами, относящимися к БД ПРЕДПРИЯТИЕ, приведена на рис. 1.4. Атрибуты объектов описывает табл. 1.1.

1.Укажите, какие типы отношений существуют между объектами
в представленной схеме.

2. Выберите различные подсхемы для заданной схемы.

СЫРЬЁ ПРЕДПРИЯТИЕ ПОТРЕБИТЕЛИ
ПРОИЗВОДИТЕЛЬ   ОТДЕЛ ОБСЛУЖИВАНИЯ
ТОВАРЫ   УСЛУГИ

Рис. 1.4. Схема связей между объектами БД ПРЕДПРИЯТИЕ

 

Таблица 1.1. Объекты и атрибуты предприятия

 

Имя объекта Имя атрибута БД Развернутое наименование аргумента
СЫРЬЁ ВС СС Вид сырья Стоимость сырья
ПРОИЗВОДИТЕЛЬ ТП ХПП   ВП Тип производства Характеристика производственного процесса Вид продукции
ПРЕДПРИЯТИЕ НП АП Название предприятия Адрес предприятия
ТОВАРЫ НТ КТ ЦТ Наименование товара Количество товара Цена товара
ПОТРЕБИТЕЛИ НО АО ТО Название организации Адрес организации Телефон организации
ОТДЕЛ ОБСЛУЖИВАНИЯ АОО ТОО Адрес отдела обслуживания Телефон отдела обслуживания
УСЛУГИ ВУ СУ Вид услуги Стоимость услуги

1.16. Как добавить объекты ПОСТАВЩИКИ и РУКОВОДИТЕЛИ в заданную схему (рис. 1.4)?

1.17. Охарактеризуйте типы указателей.

1.18. Укажите, чем отличаются СУБД от ОС.