Существует огромное количество разновидностей баз данных, которые различаются по разным критериям. Будут рассмотрены две основные.
Классификация моделей данных.
Под моделями данных подразумевается формальная теория представления и обработки данных в СУБД, которая включает в себя как минимум три аспекта:
1. аспект структуры: методы описания типов и логических структур данных в базе данных;
2. аспект манипуляции: методы манипулирования данными;
3. аспект целостности: методы описания и поддержки целостности базы данных.
В данную классификацию входят следующие разновидности баз данных:
§ Иерархические;
§ Сетевые;
§ Реляционные;
§ Объектно-ориентированные;
§ Гибридные;
Иерархические базы данных.
Из истории видно, что первыми базами данных были иерархическими. Иерархическая база данных основана на древовидной структуре хранения информации, которая напоминает файловую систему компьютера, и является совокупностью деревьев (лесом).
Наиболее известными и распространенным примером иерархической БД является Information Management System (IMS) фирмы IBM.
Организация хранения информации в иерархической базе данных осуществляется посредством упорядоченного набора деревьев одного типа, иначе говоря, запись в базе данных реализована в виде отношения «предок-потомок». На рис.1 показана схема организации такой БД на примере войсковой части, где Войсковая часть является предком объектов Командир и Бойцы, а объекты Командир и Бойцы – это потомки объекта Войсковая часть, и между этими типами записи поддерживаются связи. Реальная иерархическая база данных войсковой части может выглядеть, к примеру, так, как показано на рис.2.
Иерархические базы данных наиболее выгодны для моделирования структур с четко выраженной иерархией, что имело выражение в примере войсковой части, которая очевидно является естественной иерархией. Однако существует очень много структур , которые невозможно свести к простой иерархии, и в таком случае применение данной модели становиться невозможной. Примером может служить генеалогическое древо, которое, казалось бы, самым лучшим образом подходит под описываемую иерархическую базу даны, но осуществление в данном контексте невозможно, так как каждый потомок имеет не по одному предку, что требует иерархическая логика, а по два.
У этой модели данных есть существенный недостаток, по причине которого прекратили разрабатывать СУБД поддерживающих только иерархическую модель организации данных. Этим недостатком является невозможность реализовать отношения «многие-ко-многим», а так же ситуации, когда запись имеет несколько предков.
Сетевые базы данных.
Так как иерархические базы данных, в силу большого количества недостатков, которые, так же, включали большую избыточность, просуществовали недолго. Они были заменены подвижными, чуть более гибкими, сетевыми базами данных. То есть, главным отличием стала структура записи потомков, которая вместо связи «один потомок – один предок», могла реализовываться через «одни потомок – много предком».
Примером такой модели может служить схема организации сети железнодорожных путей, проиллюстрированная на рис.3. Из имеющегося рисунка видно, что каждая крупная железнодорожная станция может иметь связи (пути сообщения) с несколькими другими станциями. На рис.4 схематично изображена связь «многие ко многим», которую и имеет в своей логической основе сетевая база данных, при этом понятия предок и потомок размываются.
Рис. 3
Основным недостатком сетевых моделей является сложность реализации, разработки серьезных приложений, включающих в себя большую скорость выполнения запросов, и представление самой структуры данных.
Рис. 4
Реляционные базы данных.
Самым значимым прорывом в работе с базами данных, является реализация реляционной модели, которая произошла в связи с технически возросшими возможностями вычислительной техники и носителями информации. Основателем теории реляционных баз данных стал, уже упоминавшийся, математик Эдгар Френк Кодд в 1970-х годах.
Одной из основных задач реляционной модели стало упрощение, оптимизация структуры базы данных. В ней отсутствуют явные указатели на предков и потомков, и все данные представлены в виде простых таблиц, разбитые на строки и столбцы, на пересечении которых располагаются данные. Запросы к таким таблицам возвращают новые таблицы, которые сами могут становиться предметом дальнейшего запроса. В случае, если возвращается одно значение, оно тоже является таблицей, состоящей из одного столбца и строки.
Как уже упоминалось, для реляционных баз данных, был специально разработан непроцедурный языке запросов SQL, с помощью которого запрос возвращает таблицу, что означает, что результаты запроса можно записывать обратно в базу данных в виде таблицы, так же, результаты двух или более запросов, имеющие одинаковую структуру, можно объединить в одну таблицу.
Каждая база данных имеет возможность включать несколько таблиц, которые, как правило, связаны друг с другом, откуда и произошло название «реляционные» (от англ. relation – отношение, связь).
Пример реляционной модели показан рис.5, где приведена таблица catalog базы данных электронного магазина компьютерных комплектующих, которые распределены по разделам. Каждая строка этой таблицы представляет собой один вид товарных позиций, для описания которых используется поле id_catalog, являющимся уникальным номером раздела, поля name и description, соответственно название раздела и его описание.
Из всего вышесказанного можно дать простое определение реляционным базам данных, которое говорит, что это такие базы данных, в которых все данные организованны в виде таблиц, а все операции над этими данными сводятся к операциям над ними.
Объектно-ориентированные и гибридные базы данных.
В объектно-ориентированных базах данных данные хранятся в виде объектов. В этой модели используются понятия, которые присущи языкам программирования, такие как: класс, объект, метод. Впервые о них заговорили в середине 80-х годов, но на сегодняшний день такие базы данных еще не достигли популярности реляционных, так как значительно уступают им в производительности.
Гибридные, или иначе говоря, объектно-реляционные СУБД, являются совмещением в себе возможностей реляционных и объектно-ориентированных баз данных. Такие базы данных стали появляться в связи с тем, что объектные СУБД, пока что не получившие широкого применения, несомненно, будут развиваться в будущем, насколько это позволит уровень компьютерных технологий. Поэтому разработчики реляционных баз данных включают в свои базы средства работы с объектными типами данных. Примером такой реализации служит Oracle восьмой версии, который в 1997 году выпустила одноименная фирма, добавив в свою предыдущую версию исключительно реляционной базы данных Oracle 7.3 средства объектно-ориентированной разработки.