В нелинейной структуре выделяется понятие «агрегат», являющийся как бы таблицей в таблице (табл. 1.12). Агрегат может быть двух видов: вектор и повторяющиеся поля. Возможности реализации структур таблиц зависят от выбранной модели данных (МД). Реляционная и иерархическая модели данных реализуют только линейную структуру, тогда как сетевая и объектно-ориентированная модели позволяют использовать и нелинейную структуру. Особенности конкретной реализации определяются классами БД и СУБД.
Таблица 1.12
Шифр студента
Оценки по семестрам
№
Фамилия
Дисциплина
…
Скоков П.Н.
…
Петров A.M.
Информатика
…
Математика
…
…
…
…
Под классификацией понимается разделение множества на подмножества по неформально предложенному признаку. В силу многогранности баз данных и СУБД (комплекса технических и программных средств для хранения, поиска, защиты и использования данных) имеется множество классификационных признаков. Классификация БД по основным из них приведена на рис. 1.12.
Рис. 1.12. Классификация баз данных 39
Особо поговорим о статических и динамических БД.
В статических БД частота обновления данных много ниже частоты их считывания. Данные напрямую не связаны со временем. Например, анкетные данные, которые используются гораздо чаще, чем изменяются. Именно для статических БД строилась изначально теория баз данных.
В статических БД данные чаще изменяются, чем добавляются. В связи с этим основным требованием к ним стало простота обновления, что достигается разделением таблицы на несколько в процессе нормализации. Формируются чаще всего первая, вторая и третья нормальная формы, реже — четвертая и пятая. Использование второй и выше форм говорит о глубокой нормализации.
В последнее время все чаще обращаются к динамическим БД, в которых частоты считывания и обновления данных соизмеримы. В динамических БД время выступает явно в виде понятий момента времени (дата) или интервала времени (семестр, месяц, год). Например, данные об успеваемости студентов групп за время обучения (по семестрам).
Для таких БД более характерно не изменение, а добавление данных и процедура глубокой нормализации теряет актуальность. Нормализация может ограничиваться первой нормальной формой.
Отдельно следует классифицировать системы управления базами данных (рис. 1.13). Базы данных могут классифицироваться и с точки зрения экономической: — бесплатные и платные (бесприбыльные, коммерческие); по форме собственности (государственные, негосударственные); по степени доступности (общедоступные, с ограниченным кругом пользователей).
Рис. 1.13. Классификация СУБД
В настоящее время имеются дополнительные, необщепринятые предложения по выделению таких классов, как активные БД (фактически — экспертные системы, ранее называвшиеся дедуктивными базами данных); пространственные БД (связанные с хранением графических файлов, например, географических карт); временные БД, в которых время присутствует в явном виде в качестве полей таблиц. Поскольку два последних класса входят в состав других классов и самостоятельного значения пока не имеют, от этой линии классификации здесь воздержимся.
В дальнейшем сосредоточим внимание на видеобазах данных-текстов (таблиц) со структурированными данными документального характера. Речь пойдет об открытых СУБД, как правило, операционного типа.
До середины 90-х годов XX в. под базой данных понимали статические БД, которые впоследствии получили название операционных (транзакционных) БД, а за рубежом — OnLine Transaction Processing (OLTP).
К середине 90-х годов в базах данных класса OLTP скопилось столько хронологической информации, что объем БД резко возрос, а быстродействие начало падать. Например, в работе деканата чаще всего требуются детальные данные о текущем учебном годе. В то же время в БД хранятся ретроспективные данные и за предыдущие годы. Такие данные необходимы значительно реже и чаще всего в агрегированном виде. Например, выдать фамилии студентов, которые три последних семестра получали только отличные оценки.
Стало ясно, что ретроспективную информацию следует периодически передавать в отдельную БД. К тому же выяснилось, что ретроспективные данные обладают новым качеством: они позволяют вырабатывать стратегические решения. Возникла возможность формирования систем поддержки принятия стратегических решений (СППР). Такие системы получили за рубежом название OnLine Analytic Processing (OLAP).
Связь OLTP и OLAP показана на рис. 1.14. OLAP служит как бы дополнением OLTP.
OLAP сразу была оценена по достоинству менеджерами, поскольку позволяла: существенно повысить эффективность труда руководителей различного ранга; повысить конкурентоспособность фирм; получать дополнительно высокую прибыль.
Приведенные характеристики системы OLAP позволяют заметить, что при проектировании этой системы, как и при проектировании OLTP, возникают сложности, определяемые следующими обстоятельствами:
• потребностью в значительных вычислительных ресурсах для обработки большого объема данных;
• проблемами, связанными с незаполненностью (отсутствием данных) или отсутствием необходимых полей в операционной БД;
• увеличением сложности сопровождения и реструктуризации;
• значительной длительностью создания и заполнения OLAP. OLAP, по сравнению с OLTP характеризуется несколько другими свойствами, как это видно из табл. 1.13.
Рис. 1.14. Соотношение OLTP и OLAP
В дальнейших рассуждениях, при отсутствии специальной оговорки, под СУБД будем понимать операционную базу данных.
СУБД представляет собой оболочку, с помощью которой после построения структуры таблиц, задания связей между таблицами и заполнения таблиц данными получается соответствующая база данных. В связи с этим полезно поговорить о системе программно-технических, организационных и «человеческих» составляющих (рис. 1.15).
Программные средства включают трансляторы и систему управления, обеспечивающую ввод—вывод, обработку и хранение информации, создание, модификацию и тестирование БД.
Базовыми внутренними языками программирования являются языки четвертого поколения. В качестве базовых языков могут использоваться С, C++, Pascal, Object Pascal. Язык C++ позволяет строить программы как на языке Visual Basic с его широким спектром возможностей, более близкий и понятный даже пользователю-непрофессионалу, так и на непроцедурном (декларативном) языке структурированных запросов SQL. Ранее отмечалось, что исторически для системы управления базой данных сложились три языка:
1)язык описания данных (ЯОД), называемый также языком описания схем — для построения структуры («шапки») таблиц БД;
2)язык манипулирования данными (ЯМД) — для заполнения БД данными и операций обновления (запись, удаление, модификация);
3)язык запросов — язык поиска наборов величин в файле в соответствии с заданной совокупностью критериев поиска и выдачи затребованных данных без изменения содержимого файлов и БД (язык преобразования критериев в систему команд).
В настоящее время функции всех трех языков выполняет язык SQL, относящийся к классу языков, базирующихся на исчислении кортежей.
Вместе с тем сохранились и языки запросов, например, язык запросов по примеру Query By Example (QBE) класса реляционного исчисления доменов. Отметим, что эти языки в качестве «информационной единицы» БД используют отдельную запись. С помощью языков БД создаются приложения, базы данных и интерфейс пользователя, включающий экранные формы, меню, отчеты. При создании БД на базе СУБД Paradox эти элементы (объекты) фиксируются в отдельных файлах. В СУБД Access, Interbase все созданные объекты размещаются в одном файле.
Для работы с созданной БД пользователю или администратору БД следует иметь перечень файлов — таблиц с описанием состава их данных (структуры, схемы). Для этого создается специальный файл, называемый словарем данных (репозитарием, словарем-справочником, энциклопедией). Описание БД относится к метаинформации.
В качестве технических средств могут выступать супер- или персональные компьютеры с соответствующими периферийными устройствами.
Организационно-методические средства — это совокупность инструкций, методических и регламентирующих материалов, описаний структуры и процедуры работы пользователя с СУБД и БД.
Пользователей возможно разделить на две основные категории:
• конечные пользователи (КП);
• администраторы баз данных (АБД).
Особо следует поговорить об администраторе базы данных. Естественно, что база данных строится для конечного пользователя, однако первоначально предполагалось, что КП не смогут работать без специалиста-программиста, которого назвали администратором базы данных. С появлением СУБД они взяли на себя значительную часть функций АБД, особенно для БД с небольшим объемом данных. Однако для крупных централизованных и распределенных баз данных потребность в АБД сохранилась. В широком плане под АБД понимают системных аналитиков, проектировщиков структур данных и информационного обеспечения, проектировщиков технологии процессов обработки, системных и прикладных программистов, операторов, специалистов в предметной области и по техническому обслуживанию. Иными словами — в крупных базах данных это могут быть коллективы специалистов.
В обязанности АБД входит: анализ предметной области, статус информации и пользователей; проектирование структуры и модификация данных; задание и обеспечение целостности; загрузка и ведение БД; защита данных; обеспечение восстановления БД; сбор и статистическая обработка обращений к БД, анализ эффективности функционирования БД; работа с пользователем.
Одним из важнейших инструментов АБД является словарь.
В заключение отметим, что в работе с базами данных выделяют следующие процедуры:
• построение (создание, проектирование) БД;
• использование БД;
• функционирование БД.
Эти процедуры определяют содержание (составляющие) теории БД: создание, использование, функционирование.
При реализации БД основными элементами структуры БД являются собственно база данных (система таблиц с данными); интерфейс пользователя, алгоритм приложения (при современном подходе к проектированию БД или алгоритм преобразования — при традиционном подходе).
Перейдем к более подробному рассмотрению OLAP.
В составе OLAP можно выделить такие архитектурные элементы (рис. 1.16):
• хранилище данных (ХД);
• менеджер загрузки;
• менеджер хранилища данных;
• менеджер запросов.
Рис. 1.16. Состав OLAP
Хранилище данных, в первом приближении, возможно (по аналогии с OLTP) считать базой данных, тогда как систему OLAP— СУБД. В нем можно условно выделить электронный архив, хранящий детальные ретроспективные данные, и агрегированные (обработанные) данные.
ХД реализуется с помощью многомерной модели, которая имеет несколько разновидностей: собственно многомерная (Multidimensional OLAP—MOLAP), реляционная (Relational OLAP—ROLAP), гибридная (Hibrid OLAP—HOLAP).
Менеджер загрузки осуществляет преобразование данных, поступающих из операционных БД, и прежде всего — форматирование по «стандарту» OLAP.
Менеджер хранилища данных выполняет следующие операции:
• анализ непротиворечивости исходных данных;
• создание необходимых индексов и видов;
• денормализацию;
• резервное копирование.
Менеджер запросов управляет пользовательскими запросами, возможно с графиками процесса выполнения запроса.