logo search
ИТ в экономике / учебник / Козырев_Информационные технологии в экономике и управлении_2000

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

Рассмотрим вопросы структурной организации баз данных. По своей сущности система управления базами данных (СУБД) является инструментом расширения возможностей операционной системы при работе с базами данных. Организацию баз данных (БД) можно анализировать с двух сторон: под углом зрения внемашинной логики взаимосвязи объектов и с точки зрения ее последующей внутрима-шинной, физической реализации [121; 104-119].

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

Известны три разновидности информационно-логической модели:

1) иерархическая модель данных (ИМД) основана на графическом способе и предусматривает поиск данных по одной из ветвей «дерева», в котором каждая вершина имеет только одну связь с вершиной более высокого уровня. Для осуществления поиска необходимо указать полный путь к данным, начиная с корневого элемента;

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

3) в реляционной модели баз данных (РМД) реализуется табличный способ. В РМД таблица называется отношением, строка – кортежем, а столбцы – атрибутами. Область, в которой находится подмножество возможных значений атрибута, является областью определения атрибута – доменом. Характер таблицы (отношения) определяется не только количеством кортежей m, но и числом атрибутов n, которое определяет арность отношения. При наличии одного атрибута (n = 1) отношение называется унарным, двух атрибутов (n = 2) – бинарным, трех атрибутов (n = 3) – тернарным и т.д. Основное требование к отношению РМД состоит в том, что значения атрибутов должны быть элементарной, неделимой информационной единицей, что создает возможность применения в целях обработки математического аппарата реляционной алгебры. Следует также учитывать: во-первых, что фиксированный порядок следования атрибутов не играет особой роли и допустима любая последовательность их обработки, во-вторых, порядок следования картежей безразличен и, в-третьих, отношение не может иметь двух одинаковых кортежей. Работа с реляционной моделью часто включает удаление и добавление кортежей и атрибутов, что ведет к искажению информации и вызывает необходимость нормализации приведения отношений к нормальной форме (НФ) в соответствии с описанными ранее основными требованиями. Используются четыре нормальные формы: первая (1 НФ), вторая (2 НФ), третья (3 НФ), четвертая (4 НФ). Каждая из форм нормализации достигается проведением соответствующего этапа нормализации. Все отношения обязательно должны находиться в форме 1 НФ, что обеспечивается применением декомпозиции (разделения) отношения на эквивалентную совокупность отношений более низкого уровня.

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

• сохранению смыслового содержания логической модели;

• максимальной экономии внешней памяти;

• минимизации затрат по управлению данными;

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

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

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

Цепной список. В конце каждой записи файла, в дополнительном поле указывается адрес связи (АС) для перехода к другой записи, что позволяет задавать любую последовательность выборки. Для начала поиска в цепной структуре необходимо войти в запись заголовка или фиксатор списка (ФС), где хранится адрес начала списка (АНС). В дополнительном поле последней читаемой записи указывается адрес конца списка (КС). Список можно сделать кольцевым (цепным), если поместить в дополнительное поле последней записи адрес фиксатора списка. Кроме того, в запись может быть добавлено любое количество адресов, что обеспечивает множество вариантов выборки.

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

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

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

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

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

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

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

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

• языковые средства (трансляторы с языков описания данных, языков манипулирования данными, языков программирования, редакторов и отладчиков);

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

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

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

СУБД классифицируют на основании внешней, информационно-логической модели на три вида: иерархические, сетевые, реляционные. Наиболее популярны реляционные СУБД dBase HI Plus, FoxBase, FoxPro, Clipper, dBase IV, Clarion, Paradox, Oracle и др.

При обеспечении обработки (трансляции) программ СУБД может работать в двух режимах:

• интерпретации, когда программа обрабатывается и выполняется последовательно с синтаксическим контролем, преобразованием и немедленным выполнением каждого оператора в виде сгенерированных машинных команд;

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

В режиме интерпретации работают СУБД dBase III Plus, FoxBase, в режиме компиляции СУБД Clipper, в смешанном режиме – СУБД Clarion.

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

1) По степени открытости различают:

• открытые (включающие) языки, которые являются стандартными языками программирования, расширенными специальными средствами подъязыка данных (операторами манипулирования данными). При использовании открытого языка компиляция исходной программы протекает в два этапа: компиляция с подъязыка данных с преобразованием в операторы включающего языка и компиляция всей программы с получением объектного модуля;

• замкнутые (автономные) языки (dBase, Clipper, SQL, QBE и др.), которые являются специализированными средствами работы с базами данных. По сравнению с открытыми, замкнутые языки обладают более широкими возможностями манипулирования данными, но уступают по вычислительным параметрам.

2) По степени алгоритмизации:

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

• декларативные языки, например QBE, допускают только указание результата без описания конкретных шагов по его получению.

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