Справочник от Автор24
Нужна помощь?
Найдем эксперта за 5 минут
Подобрать эксперта
+2

Модели баз данных

Срочно нужна работа?
Мы готовы помочь!
Найти эксперта

Классификация БД по типу модели

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

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

Рассмотрим эти модели подробнее.

Иерархическая и сетевая модели.

Иерархическая модель БД содержит объекты с указателями связей от родительских объектов к объектам-потомкам и может быть представлена в форме древовидной структуры.

Вершину занимает корневой объект, далее объекты второго, третьего уровня и т.д.

При этом некоторые объекты-предки не имеют потомков, а другие имеют несколько, но у объекта-потомка всегда только один предок.

Замечание 1

Объекты, имеющие общего предка, называются близнецами (siblings).

Примерами иерархических бах данных могут служить:

  • файловые системы;
  • реестры настроек (например, реестр ОС Windows);
  • структуры документов (напримем Document Object Model в загруженных в браузер документах HTML).

Пример иерархической модели. Автор24 — интернет-биржа студенческих работ

Рисунок 1. Пример иерархической модели. Автор24 — интернет-биржа студенческих работ

Сетевые модели связаны с такими понятиями, как уровень, узел, связь.

Определение 1

Узел — это совокупность атрибутов, описывающих некоторый объект.

В иерархической модели узлы представляют собой вершины графа.

В сетевой каждый узел может быть связан с любым другим.

Можно сказать, что иерархическая модель является частным случаем сетевой, но выполнение простых запросов в сетевой модели - достаточно сложный процесс. Другим ее недостатком является неразрывная связанность с реализующим ее приложением, которое приходится изменять при изменении структуры данных.

Сетевая модель БД. Автор24 — интернет-биржа студенческих работ

Рисунок 2. Сетевая модель БД. Автор24 — интернет-биржа студенческих работ

Реляционная модель

Термин «реляционный» происходит от математического понятия отношение (relation). Упрощенным синонимом термина «отношение» является слово «таблица».

Замечание 2

«Таблица» - понятие с математической точки зрения нестрогое. Оно часто означает не «отношение», а его визуальное представление, демонстрируемое пользователю. Это может вести к логическим неувязкам. Например, неверно мнение о том, что реляционная модель данных имеет дело с «двумерными» таблицами. Отношения являются абстракциями, к ним неприменимы такие характеристики, как количество измерений.

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

Реляционная модель послужила толчком для развития относительно простого языка запросов SQL, который может освоить любой служащий-оператор после небольшой подготовки.

Модель "ключ-значение"

Несмотря на популярность, простоту и надежность, реляционная модель со временем обнаружила ряд недостатков:

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

В последнее время набирает популярность такая альтернатива реляционной модели, как "ключ-значение". Она появилась достаточно давно, но использовалась не для создания баз данных, а для удобства доступа к объектам в памяти компьютера (в программировании такие структуры известны как словари, хэш-таблицы, иногда просто объекты).

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

БД, построенная по модели "ключ-значение". Автор24 — интернет-биржа студенческих работ

Рисунок 3. БД, построенная по модели "ключ-значение". Автор24 — интернет-биржа студенческих работ

Ключ представляет собой идентификатор, по которому можно извлечь значение (оно может представлять собой объект любой сложности). Ключ может иметь осмысленную структуру, что позволяет выполнять в таких базах данных запросы, сопоставимые по эффективности с запросами SQL:

set writer:1:name:last 'Пушкин'
set writer:1:name:first 'Александр'
set writer:1:date:birth '1799'
set writer:1:date:death '1837'

keys 'writer:1:name*'
keys 'writer:1:date*'
keys 'writer:1:*'

Здесь идентификатор записей о писателе (1) "зашит" непосредственно в ключ, по которому осуществляется доступ к данным.

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

Дата написания статьи: 01.02.2019