Обзор моделей данных

Длительное время термин «модель данных» использовался без формального определения. Одним из первых специалистов, который достаточно формально определил это понятие, был Э. Кодд. В статье «Модели данных в управлении базами данных» он определил модель данных как комбинацию трёх компонентов:

  1. коллекции типов объектов данных, образующих базовые строительные блоки для любой базы данных, соответствующей модели;

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

  3. коллекции операций, применимых к таким экземплярам объектов для выборки и других целей.

Различают следующие модели данных:

  • Иерархическая.

  • Сетевая.

  • Реляционная.

  • Объектно-ориентированная.

  • Документная.

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

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

Модель - это не просто способ структурирования данных: она также определяет набор операций, которые могут выполняться над данными. Реляционная модель, например, определяет такие операции, как select (project) и join. Хотя эти операции могут быть не явными в конкретном языке запросов, они обеспечивают основу, на которой строится язык запросов.

Иерархическая модель

В иерархической модели, данные организованы в виде древовидной структуры, подразумевая одного родителя для каждой записи. Поле сортировки сохраняет одноуровневые записи в определенном порядке. Иерархические структуры широко использовались в ранних системах управления базами данных мейнфреймов, таких как IBM IMS, и теперь описывают структуру XML-документов. Эта структура допускает одно взаимное отношение между двумя типами данных. Эта структура очень эффективна для описания многих взаимосвязей в реальном мире; Рецепты, оглавление, порядок абзацев / стихов, любую вложенную и отсортированную информацию.

Эта иерархия используется как физический порядок записей в хранилище. Доступ к записи осуществляется путем навигации вниз по структуре данных с помощью указателей в сочетании с последовательным доступом. Из-за этого иерархическая структура неэффективна для некоторых операций с базой данных, когда полный путь (в отличие от восходящей линии связи и поля сортировки) также не включен для каждой записи. Такие ограничения были компенсированы в более поздних версиях IMS дополнительными логическими иерархиями, наложенными на базовую физическую иерархию.

Сетевая модель

Сетевая модель расширяет иерархическую структуру, позволяя отношения «многие ко многим». Модель была наиболее популярна заменой на реляционную модель и определялась спецификацией CODASYL.

Сетевая модель организует данные с использованием двух фундаментальных понятий, называемых записями и наборами. Записи содержат поля (которые могут быть организованы иерархически, как в языке программирования COBOL). Наборы (не путать с математическими наборами) определяют отношения «один ко многим» между записями: один владелец, многие члены. Запись может быть владельцем в любом количестве наборов и членом в любом количестве наборов.

Набор состоит из круговых связанных списков, где один тип записи, владелец набора или родительский элемент, появляется один раз в каждом круге, а второй тип записи, подчиненный или дочерний, может появляться несколько раз в каждом круге. Таким образом, между любыми двумя типами записей может быть установлена иерархия, например, тип A является владельцем B. В то же время может быть определен другой набор, где B является владельцем A. Таким образом, все множества содержат общий ориентированный граф (Право собственности определяет направление) или сетевую конструкцию. Доступ к записям является либо последовательным (обычно в каждом типе записи), либо навигацией в круговых связанных списках.

Сетевая модель способна представлять избыточность данных более эффективно, чем в иерархической модели, и может быть более одного пути от узла-предка до потомка. Операции сетевой модели являются навигационными по стилю: программа поддерживает текущую позицию и перемещается из одной записи в другую, следуя отношениям, в которых участвует запись. Записи также можно найти, указав значения ключа. Хотя это не является существенной особенностью модели, сетевые базы данных обычно реализуют установленные отношения с помощью указателей, которые непосредственно адресуют местоположение записи на диске. Это дает отличную производительность поиска за счет таких операций, как загрузка базы данных и реорганизация.

Популярными продуктами СУБД, которые его использовали, были IDMS Cincom Systems и Total ID Cullinet. IDMS получила значительную клиентскую базу; В 1980-х годах он принял реляционную модель и SQL в дополнение к своим оригинальным инструментам и языкам. Большинство объектных баз данных (изобретенных в 1990-х годах) используют навигационную концепцию для быстрой навигации по сетям объектов, обычно используя идентификаторы объектов как «умные» указатели на связанные объекты. Объективность / БД, например, реализует так называемые отношения один к одному, один-ко-многим, многие-к-одному и многие-ко-многим, которые могут перекрещивать базы данных. Многие базы данных объектов также поддерживают SQL, сочетая сильные стороны обеих моделей.