Справочник от Автор24
Найди эксперта для помощи в учебе
Найти эксперта
+2

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

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

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

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

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

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

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

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

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

Замечание 1

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

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

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

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

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

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

«Модели баз данных» 👇
Помощь эксперта по теме работы
Найти эксперта
Решение задач от ИИ за 2 минуты
Решить задачу
Помощь с рефератом от нейросети
Написать ИИ
Определение 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
Получи помощь с рефератом от ИИ-шки
ИИ ответит за 2 минуты
Все самое важное и интересное в Telegram

Все сервисы Справочника в твоем телефоне! Просто напиши Боту, что ты ищешь и он быстро найдет нужную статью, лекцию или пособие для тебя!

Перейти в Telegram Bot