Модели данных
Данные могут представляться разными структурными моделями: реляционной, инвертированными списками, иерархической, сетевой, постреляционной. В настоящее время нашли широкое применение многомерные и объектно-ориентированные модели.
Мы остановимся на более подробном рассмотрении некоторых из них.
Иерархическая сетевая модель строится в виде древовидной структуры. При поиске данных дерево всегда просматривается сверху вниз. Первой СУБД, построенной на базе иерархической модели, стала система IMS, представленная компанией IBM в 1968 г.
Основным недостатком иерархической модели данных является отсутствие универсальности (трудно представить объекты реального мира в виде древовидной структуры с одним корнем), однако она хорошо отражает реальные иерархические связи, существующие между объектами предметной области (структура организации, каталог книг и т.д.).
В экономических информационных системах информация редко укладывается в иерархическую схему, поэтому как ее расширение была сформирована сетевая модель данных. Сетевая модель универсальна и имеет большие возможности по моделированию связей между объектами, в ней происходит объединение нескольких различных иерархий (рис. 11.1).
Основным ее недостатком является сложность изменения структуры: приходится знать и учитывать при перестройке множество различных связей между разнородными объектами.
Сетевая и иерархические модели являются навигационными[1]. Они разрабатывались в то время, когда главными требованиями являлись эффективность использования внешней памяти и быстрота выполнения поиска и других операций над данными. СУБД, построенные на основе этих моделей, используют физическую реализацию на уровне файлов и записей и в полной мерс независимыми от нее не являются.
Реляционная модель данных для СУБД[2] имеет строгое математическое обоснование в виде теории множеств (реляци-
Рис. 11.1. Сетевая модель данных
онная алгебра) и исчислении предикатов (реляционное исчисление).
Основными понятиями реляционных БД являются тип данных, домен, атрибут, кортеж, первичный ключ и отношение.
Тип данных – аналог типа данных в языках программирования. В современных реляционных БД это символьные, числовые, битовые строки, дата и время.
Домен – допустимое потенциальное множество значений данного типа (например, домен "Телефоны" определен как строка символов, но число его значений ограничено только геми строками, которые могут изображать телефонный номер).
Атрибут – величина, характеризующая свойство объекта, явления, процесса.
Основой реляционной модели является отношение (Relation), содержащее информацию об одном классе объектов предметной области и представляющее собой множество элементов, называемых кортежами.
Наглядной формой представления отношения является таблица, в которой значения атрибутов представлены столбцами (поля), а кортежи – строками (записями). База данных представляет собой совокупность таких таблиц. Отношения строятся по правилам, обеспечивающим минимальную избыточность хранения информации, целостность БД, легкость ее модификации.
Можно выделить следующие основные правила формирования отношений в форме таблиц:
• в таблице не может быть повторяющихся строк;
• порядок строк и столбцов произвольный;
• на пересечении столбца и строки может находиться только одно значение.
Первичный ключ – это поле или минимальный набор полей, однозначно идентифицирующих запись. Поиск любого конкретного элемента данных производится по имени таблицы, первичному ключу записи и имени поля.
Первичные ключи используются для идентификации строк в таблице, ускорения работы со строками таблицы, связывания таблиц.
Характерные особенности реляционных СУБД – это ненавигационность и обеспечение целостности.
К достоинствам реляционной модели можно отнести:
• простоту и доступность для понимания конечным пользователем (единственной информационной конструкцией является таблица);
• строгие правила, базирующиеся на математическом аппарате;
• полную независимость данных;
• для построения запросов и написания прикладных программ нет необходимости знания конкретной организации БД во внешней памяти.
В качестве недостатков реляционной модели можно выделить следующие:
• более низкая скорость доступа и необходимость большего объема внешней памяти (представляется незначительным, поскольку внешняя память и быстродействие современных компьютеров многократно возросли);
• большое количество таблиц затрудняет понимание структуры данных;
• предметную область не всегда можно представить в виде совокупности таблиц.
При построении экономических информационных систем в большинстве случаев используется именно реляционная модель и основанные на ней коммерческие продукты, поэтому для практического освоения взята реляционная СУБД.
К числу СУБД, поддерживающих реляционную модель, относятся MS Access, Dbase, FoxPro, Clipper и др.
Для преодоления недостатков реляционной модели развиваются постреляционная, многомерная и объектно-ориентированная модели.
Постреляционная модель данных – это расширенная реляционная модель, допускающая многозначные поля (поля, состоящие из подзначений). Совокупность значений таких полей рассматривается как таблица, встроенная в основную таблицу. Например, если покупатель в один заказ включает несколько наименований товара, то наименование товара является многозначным полем, и для каждого заказа в этом поле содержится столько значений, сколько различных продуктов имеется в заказе.
Достоинством постреляционной модели является наглядность представления информации и повышение эффективности се обработки, основным недостатком – необходимость решения проблем обеспечения целостности и непротиворечивости хранимых данных, что требует включения в СУБД дополнительных механизмов.
К числу СУБД, поддерживающих постреляционную модель, относятся uniVers, Bubba, Dasdb.
Объектно-ориентированная база данных (ООБД) – база данных, основанная на принципах объектно-ориентированной технологии.
Понятийный аппарат ООБД включает:
• объекты в смысле "объектов" объектно-ориентированного программирования;
• классы (понятие "тип данных" реляционной модели заменяется понятиями "класс" и "подкласс");
• наследование (классы образуют иерархию наследования, заимствуя свойства друг друга);
• атрибуты (характеристики объекта моделируются его атрибутами);
• сообщения и методы (каждый класс имеет определенную совокупность методов, классы взаимодействуют друг с другом посредством механизма сообщений);
• инкапсуляция (внутренняя структура объектов скрыта);
• идентификаторы объектов – дескрипторы.
Система управления ООБД должна обеспечить постоянное хранение объектов, причем в отличие от традиционной СУБД ООСУБД должна хранить в составе объекта как данные, так и программы (методы).
Каждый объект определенного класса имеет один и тот же набор методов, поэтому методы сохраняются только один раз – как методы класса, а данные для каждого экземпляра объекта хранятся отдельно.
В объектно-ориентированном моделировании не существует развитого математического аппарата, нет универсальной модели данных, отсутствует аналогичный SQL язык запросов высокого уровня, а при доступе к данным используется малоэффективный навигационный подход. Программный интерфейс создания приложения практически отсутствует, поэтому для разработки приложений используются алгоритмические языки программирования.
Объектно-ориентированные возможности появляются в ведущих современных СУБД (Oracle, Poet, Versant, Objectivity).