Найти в Дзене

Реляционные и не реляционные базы данных

Перед вами карта компетенций системного аналитика и сегодня мы рассмотрим различные типы баз данных. Реляционные базы данных Базы данных бывают реляционными – про них мы говорили в предыдущей статье. В них данные хранятся в таблицах, связанных между собой определенным образом. В такие базы данных проще сохранять информацию, в них проще ее редактировать, но, если вы, например, хотите получить все данные по всем корзинам клиента (это иногда называют «агрегат»), вам придется использовать довольно сложный и тяжеловесный запрос. Не реляционные базы данных Если формирование таких агрегатов – наиболее частая ваша задача, имеет смысл посмотреть в сторону не реляционных баз данных. В таких базах уже хранятся полные или частичные агрегаты и по ID клиенты вы можете получить данные всех его корзин. Например, в формате json. Вот мы видим массив корзин, в каждой из которых есть счет и массив товаров. У товара есть наименование, описание и массив фоток. В таких базах данных запись и редактировани
Оглавление

Перед вами карта компетенций системного аналитика и сегодня мы рассмотрим различные типы баз данных.

Карта компетенций системного аналитика
Карта компетенций системного аналитика

Реляционные базы данных

Базы данных бывают реляционными – про них мы говорили в предыдущей статье.

Реляционная база данных
Реляционная база данных

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

Не реляционные базы данных

Не реляционные базы данных
Не реляционные базы данных

Если формирование таких агрегатов – наиболее частая ваша задача, имеет смысл посмотреть в сторону не реляционных баз данных. В таких базах уже хранятся полные или частичные агрегаты и по ID клиенты вы можете получить данные всех его корзин. Например, в формате json. Вот мы видим массив корзин, в каждой из которых есть счет и массив товаров. У товара есть наименование, описание и массив фоток. В таких базах данных запись и редактирование чуть сложнее, чем в реляционных, зато запросы намного более простые и скоростные. Существует несколько подтипов не реляционных баз данных.

База данных на графах

База данных на графах
База данных на графах

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

Документно-ориентированные базы данных

Документно-ориентированные базы данных
Документно-ориентированные базы данных

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

Заключение

В заключении подведем итоги.

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

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