Как назвать базу данных

от admin

21) ЛУЧШИЙ Список Базы Данных

Ниже приведен отобранный список Top Free базы данных, с популярными функциями и ссылками для скачивания. Этот список сравнения содержит инструменты с открытым исходным кодом, которые могут иметь функции Freemium.

1) MySQL

MySQL – это реляционная база данных с открытым исходным кодом, которая работает на различных платформах, таких как Windows, Linux, Mac OS и т. Д.

Платформа: Linux, Windows и Mac.

Языки: C, Java, SQL, C ++, Perl, Python, Tcl и PHP.

Облачная версия: Да

Особенности:

  • Инструмент обеспечивает масштабируемость и гибкость
  • У инструмента есть сильные стороны сети и хранилища данных
  • Обеспечивает высокую производительность
  • Имеет надежную поддержку транзакций

Вердикт: MySQL может использоваться для упакованного программного обеспечения, а также для критически важных для бизнеса систем и крупных веб-сайтов.

2) PostgreSQL

PostgreSQL – это система управления базами данных с открытым исходным кодом корпоративного класса. Он поддерживает как SQL для реляционных, так и JSON для нереляционных запросов. Он поддерживается опытным сообществом разработчиков, которые внесли огромный вклад в создание высоконадежного программного обеспечения для управления базами данных.

Платформа: Mac, Windows и Linux.

Языки: PL / Tcl, PL / pgSQL, PL / Python и PL / Perl.

Облачная версия: Нет.

Особенности:

  • Совместим с различными платформами, используя все основные языки и промежуточное ПО
  • Резервный сервер и высокая доступность
  • Инструмент имеет развитую функциональность программирования на стороне сервера
  • Репликация на основе журнала и триггера SSL.
  • Он предлагает самый сложный механизм блокировки.
  • Поддержка многоверсионного управления параллелизмом
  • Обеспечивает поддержку клиент-серверной сетевой архитектуры.
  • Инструмент является объектно-ориентированным и совместимым с ANSI-SQL2008
  • PostgreSQL позволяет связываться с другими хранилищами данных, такими как NoSQL, которые действуют как федеративный концентратор для баз данных polyglot.

Вердикт: PostgreSQL позволяет создавать собственные типы данных и диапазон методов запросов. Вы можете запустить процедуру хранения на разных языках программирования.

3) MongoDB

MongoDB – это документно-ориентированная база данных NoSQL, используемая для хранения больших объемов данных. Это база данных, которая появилась в середине 2000-х годов. Он подпадает под категорию базы данных NoSQL.

Платформа: кроссплатформенная

Языки: C #, C, Java, C ++, Perl, Scala, Ruby и т. Д.

Облачная версия: Да

Особенности:

  • Полностью автоматизированное масштабирование и управление сложными, высокодоступными, многоузловыми кластерами с помощью вызовов API.
  • Этот инструмент позволяет создавать глобально распределенные кластеры.
  • Легко восстановить данные при необходимости.
  • Он предлагает визуализацию, мониторинг и оповещение по более чем 80 метрикам, которые отслеживают состояние вашего кластера или интегрируются со сторонними решениями для мониторинга.
  • Инструмент имеет мощный язык запросов
  • Он использует богатые документы JSON для хранения таблиц в реляционной базе данных.
  • Он предоставляет MongoDB Atlas, который является глобальной облачной базой данных.

Вердикт: MongoDB позволяет вам проверить документ. Он не подходит для приложений, имеющих сложные транзакции.

4) OrientDB

OrientDB – это многомодельная база данных NoSQL с открытым исходным кодом, которая помогает организациям раскрыть возможности графических баз данных без развертывания нескольких систем для обработки других типов данных. Это поможет вам повысить производительность и безопасность при поддержке масштабируемости.

Платформа: Linux, Mac OS X, Windows, Solaris и HP-UX

Языки: Java, PHP, Nodejs, .NET, Python, C, JavaScript, Ruby, Scala, Elixir, Android, Perl.

Облачная версия: Да

Особенности:

  • Unified Multi-Model API – для более быстрого развертывания
  • TinkerPop 3 за состояние быстрых и эффективных обновлений.
  • Инструмент ориентирован на масштабируемость и производительность.
  • Предлагает расширенный планировщик запросов.

Вердикт: OrientDB имеет возможность выполнять репликацию с несколькими мастерами, совместно использовать данные с использованием кластеров и автоматизировать распределенные запросы и транзакции.

5) MariaDB

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

Платформа: Windows, Linux и Mac.

Языки: C #, Java, C ++, Python и др.

Облачная версия: Да

Особенности:

  • Он работает под лицензиями GPL, BSD или LGPL.
  • Он поставляется со многими механизмами хранения, включая высокопроизводительные, которые можно интегрировать с другими системами управления реляционными базами данных.
  • Это обеспечивает кластерную технологию Galera.
  • MariaDB может работать в разных операционных системах и поддерживает множество языков программирования.

Вердикт: MariaDB является альтернативой MySQL. Это обеспечивает высокую масштабируемость благодаря простой интеграции.

6) SQLite

SQLite – это встроенная система управления реляционными базами данных с открытым исходным кодом, разработанная примерно в 2000 году. Это база данных с нулевой конфигурацией, без требований сервера или установки. Несмотря на свою простоту, он перегружен популярными функциями систем управления базами данных.

Платформа: Blackberry, Symbian, Maemo, Android, MeeGo, WebOS, NetBSD, FreeBSD, illumos, Solaris 10, Windows и Tizen.

Языки: C, C #, C ++, Java, PHP, Python, Ruby и др.

Облачная версия: Да

Особенности:

  • SQLite очень легкий по сравнению с другими системами управления базами данных, такими как SQL Server или Oracle.
  • Он имеет библиотеку в памяти, которую вы можете вызывать и использовать напрямую, без установки или настройки.
  • Вам не требуется выделенный сервер для хранения базы данных. База данных хранится на жестком диске компьютера.

Вердикт: SQLite – это библиотека языка программирования C, которая

предлагает автономный, надежный и полнофункциональный движок базы данных SQL.

7) Кассандра

Cassandra – это бесплатный инструмент, предназначенный для управления большим количеством данных на самых разных серверах. Инструмент предлагает поддержку для репликации в нескольких центрах обработки данных.

Платформа: кроссплатформенная

Языки: SQL, Go, C ++, Python и Node JS

Облачная версия: Да

Особенности:

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

Вердикт : Cassandra для тех людей, которые хотят масштабируемости и высокой доступности без снижения производительности.

8) Microsoft SQL

SQL Server – это СУБД, разработанная Microsoft. SQL Server поддерживает ANSI SQL, который является стандартным языком SQL (язык структурированных запросов). Однако SQL Server поставляется с реализацией языка SQL T-SQL (Transact-SQL).

Платформа: Docker Engine, Ubuntu, SUSE Linux Enterprise Server и Red Hat Enterprise Linux.

Языки: C, C ++, Java и C #

Облачная версия: Да

Особенности:

  • Он обеспечивает интеграцию структурированных и неструктурированных данных с возможностями SQL Server и Spark.
  • Этот инструмент обеспечивает масштабируемость, производительность и доступность для критически важных, интеллектуальных приложений, хранилищ данных и хранилищ данных.
  • Он предлагает расширенные функции безопасности для защиты ваших данных.
  • Доступ к многофункциональным интерактивным отчетам Power BI для принятия более быстрого и качественного решения.

9) CouchDB

CouchDB – это программное обеспечение с открытым исходным кодом, основанное на общих стандартах для доступа к вашим важным данным. Он хранит данные на вашем сервере или у ведущего поставщика услуг по вашему выбору.

Платформа: кроссплатформенная

Языки: Java, Python, C ++, Perl, C, JavaScript, PHP и т. Д.

Облачная версия: Нет

Особенности:

  • Это позволяет вам запускать логический сервер базы данных на любых виртуальных машинах.
  • Инструмент CouchDB работает с внешними инструментами, такими как балансировщики нагрузки, HTTP и прокси-серверы.
  • Также обеспечивает поддержку аутентификации и сеанса.
  • Кластер CouchDB позволяет вам сохранять данные с избыточностью.

Вердикт: CouchDB предлагает масштабируемое решение. Это также обеспечивает гибкость для хранения данных.

10) Оракул

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

Платформа: Windows и Linux

Языки: C ++, COBOL, C, Java, Visual Basic и Pl / SQL.

Облачная версия: Да

Особенности:

  • Oracle Cloud оптимизирован для высокопроизводительных рабочих нагрузок баз данных, потоковых рабочих нагрузок и больших данных Hyperscale.
  • Вы можете легко перейти на облако.
  • Он предоставляет услуги, основанные на том, как вы хотите работать, чтобы запустить облако Oracle в своем центре обработки данных.

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

11) ДинамоДБ

Amazon DynamoDB – это нереляционная база данных. Эта система баз данных обеспечивает постоянную задержку и предлагает встроенную защиту и кэширование в памяти. DynamoDB – это серверная база данных, которая автоматически масштабируется и резервирует ваши данные для защиты.

Платформа: кроссплатформенная

Языки: Go, Node.js, Java, .NET, C #, Ruby, Python, PHP и Perl.

Облачная версия: Да

Особенности:

  • Поддержка модели данных ключ-значение и документа.
  • DynamoDB предлагает вторичные индексы, которые обеспечивают гибкость запроса по любому атрибуту.
  • Amazon DynamoDB Accelerator обеспечивает высокую скорость чтения для вашей DynamoDB.
  • DynamoDB интегрируется с AWS Lambda для обеспечения триггеров.

Вердикт: DynamoDB является базой данных документов и может использоваться для различных целей.

12) Neo4j

Neo4j – это графическая база данных NoSQL с открытым исходным кодом, реализованная на Java. Это сохраняет ваши данные в графиках, а не в таблицах.

Платформа: кроссплатформенная

Языки: Java, Cypher Query Language, JavaScript, Java и др.

Облачная версия: Да

Особенности:

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

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

13) Firebirdsql

Firebird – это СУБД с открытым исходным кодом, работающая на Microsoft Windows, macOS, Linux и нескольких платформах Unix.

Платформа: Linux, Windows, HP-UX, macOS, Solaris и AIX.

Языки: C / C ++ и COBOL

Облачная версия: Да

Особенности:

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

Вердикт: Firebird имеет удобную для разработчиков языковую поддержку, хранимые процедуры и триггеры.

Выбираем базу данных

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

Если вы ранее уже использовали какую-то БД, вы можете просто сказать: “Я выберу эту базу, потому что знаком с ней”. Это вполне подходящее решение, когда производительность не критична для вашего проекта. В противном случае выбор неподходящей базы станет препятствием при расширении проекта. Исправить ошибку может быть довольно сложно. Даже если вы работаете в зрелом проекте, который использует конкретную БД, важно знать ее ограничения и понимать, когда стоит добавить базу другого типа к вашему стеку. Комбинирование нескольких баз данных довольно распространено.

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

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

Эти базы состоят из связанных между собой таблиц. Каждая строка таблицы представляет собой запись. Почему такие базы называются реляционными? Потому, что они строятся на отношениях между объектами, описанными в БД.

Допустим, у вас есть таблица с информацией о студентах и таблица оценок курса (курс, оценка, идентификатор студента). Каждая строка с оценкой соотносится с записью о студенте. На диаграмме ниже значение в столбце Student ID указывает на строки в таблице Students по их значению в столбце ID .

Все данные из реляционных баз данных запрашиваются с помощью SQL-подобных языков, имеющих встроенную поддержку операции объединения. Реляционные базы позволяют индексировать столбцы для быстрых запросов. Из-за своей структурированной природы, схема реляционных баз данных определяется до ввода данных. Примеры таких баз:

  • MySQL.
  • PostgreSQL.
  • Oracle.
  • MS SQL Server.

NoSQL базы данных

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

Это семейство БД называется NoSQL (Not only SQL — не только SQL), так как многие NoSQL базы данных поддерживают SQL, но это не самый лучший вариант их использования. Cуществует 4 типа баз данных NoSQL.

Документные

Атомарной (неделимой) единицей таких БД является документ. Каждый документ — JSON, схема может различаться в разных документах и содержать разные поля. Документные БД позволяют индексировать некоторые поля документа для ускорения запросов на основе этих полей. Следовательно, во всех документах есть поля.

Использование

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

  • MongoDB
  • CouchDB
  • DocumentDB

Колоночные

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

Читать:
Когда в россии появился скотч

Использование

В тех случаях, когда удобно делать запросы к подмножеству столбцов (оно не обязательно должно быть одинаковым каждый раз!). Колоночные БД обрабатывают такие запросы очень быстро, так как читают только конкретные колонки (в то время как строчные БД должны читать строки полностью).

В науке о данных часто бывает, что каждая колонка представляет определенную характеристику. Как специалист по данным я часто тренирую свои модели на подмножествах характеристик и проверяю отношения между ними и оценками (корреляция, дисперсия, значимость). То же подходит и для логов— в них зачастую множество полей, но при каждом запросе используются только некоторые. Например:

  • Cassandra.

Ключ-значение

В этих БД запросы только на основе ключа — вы запрашиваете ключ и получаете его значение.

Такие БД не поддерживают запросы между различными значениями записей, вроде такого: выбрать все записи, где город — Нью-Йорк.
Полезное свойство этих БД — поле времени жизни (Time-to-Live, TTL), в котором можно задать отдельно для каждой записи и состояния, когда их нужно удалить из БД.

Достоинства

Это очень быстрые БД. Во-первых, потому что используют уникальные ключи, во-вторых, потому что большинство БД типа ключ-значение хранят данные в оперативной памяти, что обеспечивает быстрый доступ к данным.

Недостатки

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

Использование

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

  • Redis
  • Memcached

Графовые

Содержат узлы, отображающие объекты, а также ребра, отображающие отношения между ними.

Использование
Созданы для работы с графовыми данными, такими как сети знаний или социальные сети. Примеры баз:

  • Neo4j
  • InfiniteGraph

Реляционные или документные?

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

Правила составления имен в MySQL

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

На подбор имени элемента, с которым мы работаем, может оказывать влияние ряд факторов, ключевыми среди которых являются:

Профессиональная приемка квартиры в новостройке в Москве и области.

  • Ограничения по набору символов, которые могут быть использованы
  • Ограничения по количеству символов
  • Контекст в котором используется имя
  • Режим в котором работает сервер, на котором расположена наша СУБД

Теперь рассмотрим их подробнее:

Символы, которые мы можем использовать

К допустимым относят:

  • Все цифры и буквы, которые используются и корректно распознаются на сервере
  • Значок доллара «$»
  • Значок нижнего подчеркивания «_»

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

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

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

К ограничениям имен баз данных и таблиц помимо двух вышеперечисленных относится следующие:

  • Запрещено использовать в именах точки. Даже если имя заключено в кавычки. Это связанно с тем, что сервер считывает точку как специальный разделитель, что в конечном итоге ведет к ошибкам.
  • Запрещено использовать слеши « /» «\». При их появлении в имени появляется ошибка связанная с тем, что сервер некорректно считывает символы запрещенные в именах файлов и каталогов операционных систем, на которых он работает.

Длина, которой могут достигать имена

  • 64 символа — максимально допустимый размер для имен БД, таблиц, столбцов и индексов.
  • 256 символов — максимально допустимый размер для псевдонимов.

Обращения по именам (квалификаторы)

Базы данных

Выбрать вариант обращения к БД проще всего, поскольку он у нас всего один — просто указание имени…

Таблицы
  • Обращение к таблице по полностью квалифицированному имени:
Столбцы
  • Аналогично таблицам мы можем использовать в обращении полностью квалифицированное имя: При таком варианте у нас в запросе четко определены как БД, так и таблица со столбцом к которым мы обращаемся: db_name.tbl_name.col_name
  • При использовании частично квалифицированного имени мы указываем таблицу и столбец, но не указываем БД: tbl_name.col_name
  • Не квалифицированные имена. Это наиболее распространенная форма запросов, поскольку необходимости в их полной квалификации зачастую просто нет. Стоит только помнить, что в обработке запроса будет участвовать текущая БД. Для доступа к данным из другой БД нам нужны более квалифицированные запросы.

Режим работы сервера

Если при запуске сервера были заданы параметры —ansi или —sql-mode=ANSI_QUOTES при составлении имен могут быть использованы и обычные двойные кавычки «”».

Какую СУБД выбрать и почему

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

Какие СУБД существуют и как их выбирать

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

  1. Реляционные
  2. Key-value
  3. Документные
  4. Графовые
  5. Колоночные
  6. Time Series
  7. Spatial
  8. Search engines
  9. Объектные

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

  • Тип проекта. Для небольшого pet-project может подойти любая встраиваемая или бесплатная СУБД. Коммерческий проект требует от СУБД соблюдения стандартов безопасности, производительности, скорости работы и т. д. Здесь возможностей бесплатных СУБД может не хватить.
  • Что будет храниться. Некоторые СУБД лучше работают с текстом, другие заточены под медиаконтент. Если знать, что будет храниться в БД, выбор СУБД станет проще.
  • Объём. В технической документации для каждой СУБД указаны лимиты на объём одного файла, таблицы и других объектов. В случае, когда нужно хранить большие массивы данных, заранее проверьте способность системы управления базами данных «переваривать» такие объёмы.
  • Нагрузка и масштабируемость. Важно заранее предусмотреть возможный рост нагрузки, который неизбежно возникнет при расширении компании. Бесконечно наращивать оперативную память, процессоры и другие ресурсы не получится, поэтому выбирайте СУБД с прицелом на способность переносить текущие и двукратно увеличенные нагрузки, а также масштабироваться в будущем.
  • Файловая или серверная. Ваша база данных может работать по сети и локально. От этого зависит выбор СУБД. Они бывают файловые и серверные.
  • Отказоустойчивость и безопасность. Для некоторых проектов отказоустойчивость — критично важный параметр. Что будет, если упадёт БД банка, объяснять не нужно. Поэтому ориентируйтесь на реальные потребности проекта в уровне отказоустойчивости СУБД. Аналогично и с безопасностью — сертификаты, шифрование, дополнительные возможности нужны для крупных проектов. Небольшому достаточно и менее «навороченной» СУБД.
  • Стоимость. Существуют бесплатные опенсорсные решения, которые дают много возможностей, но требуют самостоятельной поддержки. Есть платные СУБД с поддержкой от разработчика. Выбор зависит от бюджета проекта.

Далее рассмотрим типы СУБД и их особенности.

Реляционные СУБД

Классическое решение, появившееся в 1979 году благодаря компании Oracle. Реляционные БД построены на отношениях между её объектами и пригодны для обработки небольших транзакций с обилием вставок и минимальным временем отклика. Например, Oracle Database подойдёт для коммерческих проектов, где требуется производительность и есть ресурсы для администрирования этой дорогой и сложной СУБД.

Реляционные БД

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

Также хорошо известны Microsoft SQL, PostgreSQL. Получается, что нельзя ответит на вопрос, какая СУБД лучше, MySQL или PostgreSQL. Они обе хорошо для своих задач.

Документные

Документно-ориентированные СУБД хранят документы — структурированные тексты, имеющие конкретный синтаксис. Это популярная разновидность NoSQL СУБД, которая подходит для проектов, где в таблицах хранят объекты с разной структурой (списки, словари). Нельзя сказать, что это база для систем документооборота, хотя Документные СУБД сохраняют состояние, а не поведение. Зато они поддерживают проверку схему и сейчас активно развиваются. Среди популярных СУБД этого типа — CouchDB, MongoDB, Amazon DocumentDB.

Графовые

Графовые СУБД

Особые СУБД, предназначенные для хранения информации, связанной с графами (узлы, вершины, связи между узлами). Хорошо подходят для социальных сетей, где требуется хранить связи между пользователями по разным критериям. Среди популярных СУБД этого типа можно перечислить Neo4j, Amazon Neptune, InfiniteGraph, InfoGrid.

Колоночные

Колоночные БД отличаются от реляционных тем, что информация в них хранится столбцами, а не построчно. Значение атрибута любого из объектов прочитывается сразу. Используются они в качестве хранилищ данных с большим (от ста миллионов записей) объёмом информации, и при обработке скромных объёмов не способны продемонстрировать свои преимущества.

Колоночные СУБД удобны тем, что позволяют действительно быстро выполнять сложные аналитические запросы на больших объёмах данных. При этом структура таблиц с данными легко меняются, а эффективная компрессия позволяет экономить занимаемый БД объём памяти. Среди популярных СУБД этого типа можно назвать Vertica, ClickHouse, Google BigTable, InfoBright, Cassandra, SAP IQ.

Key-value

СУБД Key-value (также её называют «ключ-значение») — одна из самых из самых простых систем управления базами данных. Фактически она представляет собой таблицу с уникальным ключом и привязанным к нему значением. СУБД Key-value очень быстрые, поэтому их часто используют для кэширования данных и для брокеров сообщений. Некоторые типы таких СУБД позволяют работать полностью в памяти и задавать срок жизни записи, удаляя устаревшие данные. Среди популярных Key-value СУБД — Redis и Memcached.

Time Series

СУБД данного типа заточены под хранение данных временных меток или рядов. Например, данные собранные с датчиков контроля движения, метрик JVM, сетевые данные, ответы API и т. д. Информация хранится с отметками времени. Причём эти отметки индексируются и пишутся так, чтобы сведения можно было запрашивать быстрее, чем при работе с реляционными БД. Среди популярных СУБД этого типа можно вспомнить InfluxDB, Kdb+, Prometheus, TimescaleDB, QuestDB, AWS Timestream, OpenTSDB, GridDB.

Spatial

СУБД данного типа сконфигурированы для хранения геометрически ориентированных объектов: простых (линии, точки, многоугольники) и сложных (линейные сети, 3D-объекты). В них можно проводить с объектами разные операции — создания, трансформации, измерения, вычисления и пр. Такого рода СУБД обладают собственным типизированным SQL/MM языком. Среди популярных СУБД этого типа можно вспомнить Oracle Spatial, Microsoft SQL, PostGIS, SpatialLite.

Search engines

Этот тип СУБД необходим для организации полнотекстового поиска по разным данным (email, RSS-feed, JSON, XML, CSV), позволяет искать данные из других БД, по документам PDF и Microsoft Office. Такие СУБД используют инвертированные индексы, чтобы искать практически в режиме реального времени. Среди популярных СУБД этого типа можно назвать Apache Solr, Elasticsearch, Splunk.

Объектные

Данный тип СУБД предназначен для хранения и работы с объектами, у которых имеются свойства и методы. Основная задача таких СУБД заключается в избавлении разработчиков, использующих ООП, от необходимости трансформировать объекты в таблицы/строки и обратно. В объектных СУБД реализованы инкапсуляция и полиморфизм. Среди популярных СУБД этого типа можно назвать MongoDB Realm, InterSystems Caché, ObjectStore, Actian NoSQL DB, Objectivity/DB.

  • MS SQL Web;
  • MS SQL Standard;
  • PostgreSQL (typical);
  • PostgreSQL (high availability);
  • MySQL (typical);
  • MySQL (high availability).

Когда выбирать

Популярные СУБД данного типа

Нужна транзакционность; высокая нормализация; большая доля операций на вставку

Oracle, MySQL, Microsoft SQL Server, PostgreSQL, IBM DB2, SQLite

Задачи кэширования и брокеры сообщений

Redis, Memcached, etcd

Для хранения объектов в одной сущности, но с разной структурой; хранение структур на основе JSON

Couchbase, MongoDB, Amazon DocumentDB

Задачи подобные социальным сетям; системы оценок и рекомендаций

Neo4j, Amazon Neptune, InfiniteGraph, TigerGraph

Хранилища данных; выборки со сложными аналитическими вычислениями; количество строк в таблице превышает сотни миллионов

Vertica, ClickHouse, Google BigQuery, Sybase \ SAP IQ, InfoBright

Системы мониторинга, сбора телеметрии, и финансовые системы, с привязкой к временным меткам или временным рядам

InfluxDB, Kdb+, Prometheus, TimescaleDB, QuestDB, AWS Timestream, OpenTSDB, GridDB

Высокопроизводительная обработка данных, имеющих сложную структуру, с использованием языков объектно ориентированного программирования

MongoDB Realm, InterSystems Caché, ObjectStore, Actian NoSQL DB, Objectivity/DB

Похожие статьи