базы данных
August 11, 2023

Базы данных. Часть 1. Типы баз данных

Что такое базы данных

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

Например, Моника и Фиби из «Друзей» решили открыть свою кофейню и размышляют, какие напитки будут продавать. Для начала они хотят проанализировать меню в других точках своего города. Затем составить базу данных из меню конкурентов, чтобы понять, какие напитки пользуются спросом и будут делать выручку, а какие — привлекать посетителей уникальностью: например, капучино с фисташками или матча-латте на банановом молоке.

Основные преимущества баз данных перед обычными таблицами:

  1. Базы данных позволяют обрабатывать, хранить и структурировать намного большие объёмы информации, чем таблицы.
  2. Удалённый доступ и система запросов позволяет множеству людей одновременно использовать базы данных.
  3. Объём информации в базах данных может быть огромным и не влиять на скорость работы.

Свойства базы данных

Удобное использование баз данных основано на их свойствах:

  1. Быстродействие Современные БД проектируются по принципу «получить данные прямо сейчас», чтобы пользователь не ждал отклик на запрос.
  2. Простота получения и обновления данных Какой бы высокой ни была скорость, это бессмысленно, если нужно сделать много сложных операций, чтобы получить, обновить или добавить данные в базу.
  3. Независимость структуры Изменения в любом количестве и качестве информации не должны влиять на структуру базы данных. Также изменения не должны касаться программного обеспечения и средств хранения, например жёсткого диска.
  4. Стандартизация Аналогично свойству независимости структуры: при обновлении программного обеспечения или СУБД (сокращение от «системы управления базами данных»), база данных не должна менять свою структуру или свойства.
  5. Безопасность данных Для каждой категории пользователей делают список ограничений и доступов, согласно которым можно взаимодействовать с информацией из БД.
  6. Интегрированность Данные должны быть логически связаны. И эти связи должны прослеживаться по структуре таблиц.
  7. Многопользовательский доступ Удалённо вносить изменения и получать информацию из БД могут сразу несколько человек с разных устройств.

Типы баз данных

БД чаще всего классифицируют в зависимости от того, как в них структурирована информация и как с ней взаимодействовать.

Иерархические

Простейшая структура, где записи, как ветви, отходят от «родителя». Информация связана по аналогии с папками на рабочем столе. У каждой записи есть физическая связь только с одной предыдущей, а отношение многих ко многим невозможно.

На примере базы данных для кофейни в виде иерархической структуры можно представить сорта кофе: Арабика (англ. Arabica), Робуста (англ. Robusta) и Либерика (англ. Liberica).

Сетевые

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

Можно построить граф с рецептами напитков, где связаны «Капучино» с «Эспрессо» и «Молоком», а «Эспрессо» — с «Кофейными зёрнами» и «Водой». «Латте» имеет связи с «Эспрессо», «Молоком» и «Молочной пеной».

Объектно-ориентированные

Базы данных, где информация о реальных вещах представлена в виде объектов под уникальным идентификатором. К ООБД обращаются на языке объектно-ориентированного программирования (ООП). Состояние объекта описывается атрибутами, а его поведение — набором методов. Объекты с одинаковыми атрибутами и методами образуют классы.

Объект в ООП создаётся как отдельная сущность со своими свойствами и методами работы. И как только объект создан, его можно вызвать по «имени», или коду, а не разрабатывать заново.

Например, при разработке руки главного героя в компьютерной игре программист один раз создаёт объект «рука». И когда нужно запрограммировать движения, достаточно сказать на языке программирования: «рука, сожми кулак» или «рука, поднимись вверх».

По такому же принципу работают и объектно-ориентированные базы данных. Данные формируются в объекты, и работать с ними можно как с рукой героя в примере.

Реляционные

Их также называют SQL — как язык программирования, с помощью которого создают, преобразовывают и управляют данными в реляционных БД. Записи и связи между ними организованы при помощи таблиц. В таблицах есть поле для внешнего ключа со ссылками на другие таблицы. Благодаря высокой организации и гибкости структуры реляционные БД применяются для многих типов данных.

В кофейне реляционные базы данных пригодились бы для описания рецептов, закупок и связей между ними. В таблице с поставщиками можно указать цены на один и тот же продукт у разных брендов. При выборе бренда данные будут автоматически попадать в таблицу «Закупка ингредиентов». Так можно будет настроить расчёт суммы всей закупки и себестоимости одного напитка. Каждый сотрудник сможет вывести данные по любому поставщику и обновить цены, если они изменятся.

Закупка ингредиентов

Состав капучино

Нереляционные (NoSQL)

Эту группу называют также NoSQL, потому что к таким базам данных нужны отличные от SQL-запросы.

В свою очередь такие БД делятся на следующие виды:

  • Базы данных «ключ-значение»

В таких базах данные сохраняются под ключами. Если хотите получить объект, например, изображение или текст, нужно ввести ключ. Таким образом часто хранят информацию о состоянии объектов, представленную различными типами данных. Каждому хранилищу разрабатывают свою схему именования ключей в зависимости от форматов значений.

  • Графовые базы данных

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

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

  • Колоночные базы данных

Подобно реляционным, в этих базах данные хранятся в виде таблиц. Но структура колонок строго не регламентирована — они могут объединяться в колоночные семейства с определённым форматом. Строки колоночного семейства имеют уникальные идентификаторы.

Например, в колоночном семействе «Десерты» будут строки «Печенье» и «Круассаны».

NewSQL базы данных

NewSQL совмещают реляционную модель, язык запросов SQL и распределённые горизонтально масштабируемые базы данных NoSQL. Этот тип появился на рубеже 2000-х и 2010-х годов как ответ на потребности рынка, которые существующие БД не могли удовлетворить. Так, SQL-базы не поддерживали масштабируемость на уровне NoSQL, а эти, в свою очередь, не отвечали стандартам точного выполнения оперативных транзакций ACID (англ. atomicity, consistency, isolation, durability — «атомарность, непротиворечивость, изолированность, долговечность»).

Для баз данных NewSQL характерны:

  • реляционная модель и транзакционность;
  • язык SQL для доступа к данным;
  • горизонтальная масштабируемость;
  • более быстрая производительность за счёт новых «движков».

Развитие типов баз данных не останавливается на NewSQL. Появляются новые гибридные модели (англ. multi-model databases), так как использование базы данных может решить разные задачи.