Перейти к содержимому

Базы данных какие бывают

  • автор:

Какие базы данных существуют и для чего их используют: SQL, NoSQL, OLAP

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

Иллюстрация: rawpixel.com / Graphue / Freepik / nadine shaabana / Unsplash / Дима Руденок для Skillbox Media

Редакция «Код» Skillbox Media

Редакция «Код» Skillbox Media

Онлайн-журнал для тех, кто влюблён в код и информационные технологии. Пишем для айтишников и об айтишниках.

Дмитрий Степанов

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

Ссылки

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

Вот наиболее важные критерии для выбора базы данных:

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

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

Реляционные базы данных — самые распространённые. Вот лишь самые популярные из них: Oracle, Microsoft SQL Server, PostgreSQL, MySQL. Такие базы данных обеспечивают построчное хранение данных в таблицах, что подразумевает строгую структуру данных. А ещё подразумевается, что за одно обращение к базе вы будете запрашивать относительно небольшое количество записей.

Такие решения, как правило, довольно хорошо работают, если общий объём ваших данных не превышает нескольких терабайт (конечно, при наличии подходящей инфраструктуры), что в целом делает их подходящими для большинства проектов — особенно на начальном этапе разработки.

Реляционные базы данных стоит выбирать, если вам важны следующие характеристики:

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

Выбор конкретной реляционной базы данных зависит от дополнительных требований к безопасности, поддержке и других факторов. Например, в банковской сфере предпочитают использовать Oracle и Microsoft SQL Server. Однако это платные решения — а открытая и бесплатная PostgreSQL тоже показывает очень хорошую производительность, активно развивается и распространяется по свободной лицензии. Если у вас совсем небольшой проект, можно использовать любую реляционную БД.

Базы данных NoSQL

Альтернативой для реляционных баз данных являются NoSQL-базы. Это могут быть документоориентированные графовые базы данных или key-value-хранилища.

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

Документоориентированные базы (например, MongoDB, Amazon DocumentDB, CouchDB и другие) хранят данные сразу готовыми «документами», а не в таблицах и строках — как реляционные БД. Этот способ хранения подходит, когда структура данных может изменяться или ваши основные сценарии использования подразумевают загрузку составной структуры. Документоориентированные базы очень близки к формату ресурсов, которыми обмениваются клиент и сервер, что упрощает подготовку данных для передачи по сети.

В статьях и книгах в качестве типового примера работы таких БД часто приводят сценарий загрузки страницы пользователя в социальной сети. В этом случае у человека есть основные данные: ФИО, дата рождения, пол — и дополнительная информация, которая может включать в себя несколько элементов и требовать разной структуры. Например, места учёбы, проживания, работы.

Как известно, у одного человека может быть много мест учёбы или проживания, а адреса в разных странах могут состоять из разных сущностей. В России это область → город → улица → дом, а во Франции — провинция → регион → город → улица → дом. Да, такие структуры можно собирать и на реляционных БД, однако в этом случае придётся выполнить несколько дополнительных запросов, чтобы собрать всю информацию о человеке и отрисовать его страницу.

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

При этом документоориентированные базы данных поддерживают возможность использования ссылок на другие записи в базе — а это позволяет приблизиться к реляционной модели. Кстати, реляционные модели тоже двигаются в сторону поддержки составных структур данных — таких как JSON — и позволяют выполнять поиск по содержимому «сложного, составного» поля.

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

Key-value-хранилища

Key-value-хранилища (Redis, Aerospike, DynamoDB и другие) хранят данные в виде хеш-таблицы. В такой модели у каждой записи есть только один индекс. При этом нет строгого ограничения на структуру значения. Как правило, такие базы данных изменяют данные по принципу логов, то есть всегда дописывают значения в конец, а удаление выполняется при помощи добавления специальной записи. Key-value-хранилища хорошо служат в качестве кэша, очереди или логирования.

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

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

Базы данных OLAP

Для аналитических систем, которые предполагают работу с огромными объёмами данных — в десятки терабайт, а то и несколько петабайт, — существует отдельный класс хранилищ, которые хранят данные в колонкоориентированной модели.

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

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

Большинство решений в этой области — например, Vertica, Teradata, BigQuery — стоят довольно дорого. Однако есть и решения с открытым исходным кодом, такие как ClickHouse, Apache Druid и другие.

Что же выбрать?

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

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

Если же ваш проект вырос до такого размера, когда этих решений недостаточно, имеет смысл добавлять key-value-хранилища в качестве кэша или искать другую гибридную модель управления данными.

А вот если вам необходимо построить систему аналитики с обработкой огромных объёмов данных, то, скорее всего, вам придётся рассматривать хранилища из категории OLAP. К ним относятся колонкоориентированные хранилища или хранилища категории семейства столбцов, такие как HBase или Google Cloud Bigtable.

Читайте также:

  • SQL и NoSQL: инь и ян в мире баз данных
  • SQL в картинках
  • Как ускорить базу данных с помощью индексов

Виды баз данных. Большой обзор типов СУБД

Часто, в обзорах видов баз данных упоминают реляционные и “другие”, “NoSQL” и т.д., либо приводят самые основные типы СУБД (базы данных), забывая о редких. В данной статье я постараюсь описать максимально полно виды баз данных и привести примеры конкретных реализаций. Разумеется, статья не претендует на всеохватность и классифицировать базы данных можно по разному, в том числе по типам оптимальной нагрузки и т.д., и все виды баз данных будут рассмотрены очень кратко. Но надеюсь, статья даст базовое представление о видах СУБД и принципах их работы.

В статье мы рассмотрим следующие типы баз данных:

  • Реляционные
  • Ключ-значение
  • Документо-ориентированные
  • Базы данных временных рядов
  • Графовые базы данных
  • Поисковые базы данных (Search Engines)
  • Объектно-ориентированные базы данных
  • RDF (Resource Description Framework)
  • Wide Column Stores
  • Мультимодальные СУБД
  • Native XML СУБД
  • GEO/GIS (пространственные) и специализированные СУБД
  • Event СУБД (баз данных переходов состояний)
  • Контентные СУБД
  • Навигационные (Navigational) СУБД
  • Векторные базы данных

Начнем с самого распространенного типа — реляционных СУБД.

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

Наиболее известными реляционными базами данных являются Open Source проекты PostgreSQL, MySQL и SQLite, а также проприетарные решения Oracle, Microsoft SQL Server и IBM Db2Relational.

Суть реляционных баз в хранении данных в связанных таблицах.

Пример хранения данных в реляционной СУБД

Стоит заметить, что реляционные базы бывают с хранением данных по строкам (PostgreSQL) и по столбцам/колонкам (ClickHouse, Vertica). Колоночные/столбцовые базы лучше подходят для аналитики, в то время как ориентация на строки лучше подходит для транзакционных нагрузок.

Отличие колоночных/столбцовых СУБД от строковых

Реляционные СУБД — самый распространенный тип баз данных. В подкате таблица из более чем 150 вариантов. Источником данного списка является данный сайт-агрегатор информации по базам данных.

Список реляционных баз данных (и инструментов, содержащих функционал, присущий базам данных, таких как SQL-движки и т.д.) и поддерживаемый тип данных.

Полный список из 166 реляционных СУБД

  1. Oracle — реляционная, мультимодальная
  2. MySQL — реляционная, мультимодальная
  3. Microsoft SQL Server -реляционная, мультимодальная
  4. PostgreSQL — реляционная, мультимодальная
  5. IBM Db2Relational — мультимодальная
  6. Microsoft Access — реляционная
  7. SQLite — реляционная
  8. Snowflake — реляционная
  9. MariaDB — реляционная, мультимодальная
  10. Microsoft Azure SQL Database — реляционная, мультимодальная
  11. Hive — реляционная
  12. Databricks — мультимодальная
  13. Teradata — реляционная, мультимодальная
  14. Google BigQuery — реляционная
  15. FileMaker — реляционная
  16. SAP HANA — реляционная, мультимодальная
  17. SAP Adaptive Server — реляционная
  18. Microsoft Azure Synapse Analytics — реляционная
  19. Firebird — реляционная
  20. Informix — реляционная, мультимодальная
  21. Amazon Redshift — реляционная
  22. Impala — реляционная, мультимодальная
  23. Spark SQL — реляционная
  24. ClickHouse — реляционная, мультимодальная
  25. Netezza — реляционная
  26. Vertica — реляционная
  27. Presto — реляционная
  28. dBASE — реляционная
  29. Apache Flink — реляционная
  30. Greenplum — реляционная, мультимодальная
  31. Amazon Aurora — реляционная, мультимодальная
  32. H2 — реляционная, мультимодальная
  33. Oracle Essbase — реляционная
  34. Microsoft Azure Data Explorer — реляционная, мультимодальная
  35. Microsoft Azure Data Explorer — реляционная, мультимодальная
  36. CockroachDB — реляционная
  37. Derby — реляционная
  38. Interbase — реляционная
  39. Trino — реляционная, мультимодальная
  40. SingleStore — реляционная, мультимодальная
  41. SAP SQL Anywhere — реляционная
  42. Ingres — реляционная
  43. HyperSQL — реляционная
  44. Ignite — мультимодальная
  45. SAP IQ — реляционная
  46. Virtuoso — мультимодальная
  47. OpenEdge — реляционная
  48. Oracle NoSQL — мультимодальная
  49. Google Cloud Spanner — реляционная
  50. YugabyteDB — реляционная, мультимодальная
  51. MaxDB — реляционная
  52. TiDB — реляционная, мультимодальная
  53. Apache Druid — мультимодальная
  54. InterSystems Caché — мультимодальная
  55. InterSystems IRIS — мультимодальная
  56. DuckDB — реляционная
  57. SAP Advantage Database Server — реляционная
  58. HEAVY.AI — реляционная, мультимодальная
  59. 4D — реляционная
  60. Percona Server for MySQL — реляционная
  61. EDB Postgres — реляционная
  62. Apache Drill — мультимодальная
  63. EXASOL — реляционная
  64. Apache Phoenix — реляционная
  65. Citus — реляционная, мультимодальная
  66. Datomic — реляционная
  67. Empress — реляционная
  68. GridGain — мультимодальная
  69. OceanBase — реляционная, мультимодальная
  70. MonetDB — реляционная, мультимодальная
  71. VoltDB — реляционная
  72. Tibero — реляционная
  73. TimesTen — реляционная
  74. IBM Db2 warehouse — реляционная
  75. SQLBase — реляционная
  76. Firebolt — реляционная
  77. Fauna — мультимодальная
  78. mSQL — реляционная
  79. MatrixOne — реляционная
  80. DataEase — реляционная
  81. Oracle Rdb — реляционная
  82. Altibase — реляционная
  83. PlanetScale — реляционная, мультимодальная
  84. NonStop SQL — реляционная
  85. Cubrid — реляционная
  86. Infobright — реляционная
  87. Apache Kylin — реляционная
  88. GBase — реляционная
  89. Apache HAWQ — реляционная
  90. NuoDB — реляционная
  91. Dolt — реляционная, мультимодальная
  92. solidDB — реляционная
  93. FoundationDB — мультимодальная
  94. 1010data — реляционная
  95. openGauss — реляционная, мультимодальная
  96. HFSQL — реляционная
  97. Actian Vector — реляционная
  98. SQL.JS — реляционная
  99. OpenBase — реляционная
  100. Vitess — реляционная, мультимодальная
  101. Kognitio — реляционная
  102. StarRocks — реляционная
  103. TDSQL for MySQL — реляционная, мультимодальная
  104. DBISAM — реляционная
  105. FrontBase — реляционная
  106. TypeDB — мультимодальная
  107. NexusDB — реляционная
  108. Datacom/DB — реляционная
  109. Kinetica — реляционная, мультимодальная
  110. eXtremeDB — мультимодальная
  111. ScaleArc — реляционная
  112. VistaDB — реляционная
  113. Yellowbrick — реляционная
  114. Splice Machine — реляционная
  115. Postgres-XL — реляционная, мультимодальная
  116. Alibaba Cloud MaxCompute — реляционная
  117. AlaSQL — мультимодальная
  118. Apache Pinot — реляционная
  119. Alibaba Cloud AnalyticDB for MySQL — реляционная, мультимодальная
  120. SQream DB — реляционная
  121. Sequoiadb — мультимодальная
  122. Kingbase — реляционная, мультимодальная
  123. Trafodion — реляционная
  124. R:BASE — реляционная
  125. Apache Doris — реляционная
  126. Transbase — реляционная
  127. Lovefield — реляционная
  128. Raima Database Manager — мультимодальная
  129. Alibaba Cloud AnalyticDB for PostgreSQL — реляционная
  130. Tajo — реляционная
  131. Mimer SQL — реляционная
  132. Kyligence Enterprise — реляционная
  133. YDB — мультимодальная
  134. Databend — реляционная
  135. Actian PSQL — реляционная
  136. Alibaba Cloud ApsaraDB for PolarDB — реляционная
  137. Brytlyt — реляционная
  138. XtremeData — реляционная
  139. TransLattice — реляционная
  140. ElevateDB — реляционная
  141. Comdb2 — реляционная
  142. Linter — реляционная, мультимодальная
  143. AntDB — реляционная
  144. FeatureBase — реляционная
  145. LeanXcale — Multi-model
  146. PipelineDB — реляционная
  147. GeoSpock — реляционная, мультимодальная
  148. Faircom DB — мультимодальная
  149. Tibco ComputeDB — реляционная
  150. Valentina Server — реляционная
  151. PieCloudDB — реляционная
  152. BigObject — реляционная
  153. Edge Intelligence — реляционная
  154. Fujitsu Enterprise Postgres — реляционная, мультимодальна
  155. EsgynDB — реляционная
  156. Transwarp KunDB — реляционная
  157. JethroData — реляционная
  158. MyScale — мультимодальная
  159. OushuDB — реляционная
  160. AgensGraph — мультимодальная
  161. SmallSQL — реляционная
  162. ActorDB — реляционная
  163. DaggerDB — реляционная
  164. EdgelessDB — реляционная
  165. K-DB — реляционная
  166. Sadas Engine — реляционная

Из отечественных игроков можно выделить

  • Postgres Pro — доработанный под корпоративные задачи PostgreSQL.
  • Jatoba — как и вариант выше, основана на PostgreSQL.
  • Квант-Гибрид — еще один вариант PostgreSQL.
  • Ред — СУБД на базе Interbase/Firebird
  • ProximaBD — на основе PostgreSQL.
  • Arenadata DB — корпоративное решение на основе Greenplum
  • YDB — serverless решение от Яндекса. Это Open Source продукт, который доступен в том числе как для on-premise инсталляций, так и как управляемый сервис с dedicated/serverless моделью потребления.

Вы можете развернуть реляционные базы данных PostgreSQL и MySQL в облаке Amvera Cloud c помощью простого push в выделенный Git-репозиторий. Для этого нужно выполнить несколько простых шагов, описанных в инструкциях для PostgreSQL и MySQL соответственно. Стоимость хостинга баз данных начинается от 170 руб. в месяц.

Реляционные базы закрывают широкий спектр задач, начиная от транзакционных баз и заканчивая аналитическими, но не являются “серебряной пулей” для всех задач. Рассмотрим другие виды базы данных.

Key-value (ключ значение) базы данных

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

Принцип Key-Value

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

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

Наиболее известными и широко используемыми Key-Value решениями являются Redis и Memcached.

Полный список из 72 Key-Value СУБД под катом

  1. Redis — Key-value, мультимодальная
  2. Amazon DynamoDB — мультимодальная
  3. Microsoft Azure Cosmos DB — мультимодальная
  4. Memcached — Key-value
  5. etcd — Key-value
  6. Hazelcast — Key-value, мультимодальная
  7. Aerospike — мультимодальная
  8. Ehcache — Key-value
  9. Riak KV — Key-value
  10. Ignite — мультимодальная
  11. OrientDB — мультимодальная
  12. Google Cloud Bigtable — мультимодальная
  13. GemFire — Key-value, мультимодальная
  14. ArangoDB — мультимодальная
  15. Infinispan — Key-value
  16. Oracle NoSQL — мультимодальная
  17. RocksDB Key-value
  18. Oracle Berkeley DB — мультимодальная
  19. InterSystems Caché — мультимодальная
  20. InterSystems IRIS — мультимодальная
  21. LevelDB — Key-value
  22. LMDB — Key-value
  23. Geode — Key-value
  24. Amazon SimpleDB — Key-value
  25. Geode — Key-value
  26. Amazon SimpleDB — Key-value
  27. Oracle Coherence — Key-value
  28. GridGain — мультимодальная
  29. Tarantool — Key-value, мультимодальная
  30. GT.M — Key-value
  31. ZODB — Key-value
  32. FoudationDB — мультимодальная
  33. NCache — Key-value
  34. WebSphere eXtreme Scale — Key-value
  35. Hibari — Key-value
  36. MapDB — Key-value
  37. BoltDB — Key-value
  38. Graph Engine — мультимодальная
  39. Scalaris — Key-value
  40. KeyDB — Key-value
  41. Project Voldemort — Key-value
  42. Upscaledb — Key-value
  43. Cloudflare Workers KV — Key-value
  44. Elliptics — Key-value
  45. Tokyo — Tyrant — Key-value
  46. LeanXcale — мультимодальная
  47. Immudb — Key-value, мультимодальная
  48. STSdb — Key-value
  49. TomP2P — Key-value
  50. ArcadeDB — мультимодальная
  51. Speedb Key-value
  52. Faircom DB — мультимодальная
  53. Kyoto Tycoon — Key-value
  54. Skytable — Key-value
  55. HyperLevelDB — Key-value
  56. YTsaurus — мультимодальная
  57. InfinityDB — Key-value
  58. Tigris — мультимодальная
  59. Badger — Key — value
  60. Dragonfly — Key — value
  61. LedisDB — Key-value
  62. TerarkDB — Key-value
  63. Cachelot.io — Key-value
  64. ScaleOut StateServer — Key-value
  65. JaguarDB — Key-value
  66. Resin Cache — Key-value
  67. Faircom EDGE — мультимодальная
  68. SwayDB — Key-value
  69. BergDB — Key-value
  70. CortexDB — мультимодальная
  71. Helium — Key-value
  72. Tkrzw — Key-value

Из отечественных СУБД здесь следует отдельно выделить Tarantool, распространяемый под лицензией Упрощенная BSD и имеющий отдельную версию для крупных корпоративных клиентов. В Tarantool реализована гибридная схема данных: key-value, документно-ориентированная, реляционная и пространственная.

Вы можете развернуть Key-value базу данных Redis в облаке Amvera Cloud c помощью простого push в выделенный Git-репозиторий. Для этого нужно выполнить несколько простых шагов, описанных в инструкции по развертыванию Redis. Стоимость хостинга Redis начинается от 170 руб. в месяц.

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

Если вам нужно хранить много файлов/документов и вы не хотите задумываться (до разумных пределов, разумеется) о структуре хранения, иерархии, связях, вам может подойти одна из документо-ориентированных баз данных. Дополнительным преимуществом являются широкие возможности для масштабирования.

Принцип организации хранения документов в докумнто-ориентированной СУБД

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

Наиболее популярной документо-ориентированной базой данных на текущий момент является MongoDB.

Как хранятся данные в MongoDB

Полный список из 56 решений документо-ориентированных баз данных подкатом

1. MongoDB — Документо-ориентированная, мультимодальная

2. Amazon DynamoDB — мультимодальная

3. Databricks — мультимодальная

4. Microsoft Azure Cosmos DB — мультимодальная

5. Couchbase — Документо-ориентированная, мультимодальная

6. Firebase Realtime Database — Документо-ориентированная

7. CouchDB — Документо-ориентированная, мультимодальная

8. Google Cloud Firestore — Документо-ориентированная

9. MarkLogic — мультимодальная

10. Realm — Документо-ориентированная

11. Aerospike — мультимодальная

12. Google Cloud Datastore — Документо-ориентированная

13. Virtuoso — мультимодальная

14. OrientDB — мультимодальная

15. ArangoDB — мультимодальная

16. RavenDB — Документо-ориентированная, мультимодальная

17. Oracle NoSQL — мультимодальная

18. IBM Cloudant — Документо-ориентированная

19. RethinkDB — Документо-ориентированная, мультимодальная

20. InterSystems IRIS — мультимодальная

21. PouchDB — Документо-ориентированная

22. CloudKit — Документо-ориентированная

23. Apache Drill — мультимодальная

24. Amazon DocumentDB — Документо-ориентированная

25. Mnesia — Документо-ориентированная

26. LiteDB — Документо-ориентированная

27. Fauna — мультимодальная

28. Datameer — Документо-ориентированная

29. GigaSpaces — мультимодальная

30. FoundationDB — мультимодальная

31. AllegroGraph — мультимодальная

32. HPE Ezmeral Data Fabric — мультимодальная

33. CrateDB — мультимодальная

34. LokiJS — Документо-ориентированная

35. BigchainDB — Документо-ориентированная

36. AlaSQL — мультимодальная

37. SurrealDB — мультимодальная

38. Sequoiadb — мультимодальная

39. Percona Server for MongoDB — Документо-ориентированная

40. HarperDB — Документо-ориентированная

41. EJDB — Документо-ориентированная

42. YDB — мультимодальная

43. ArcadeDB — мультимодальная

44. Bangdb — мультимодальная

45. XTDB — Документо-ориентированная

46. YTsaurus — мультимодальная

47. OrigoDB — мультимодальная

48. WhiteDB — Документо-ориентированная

49. ToroDB — Документо-ориентированная

50. SenseiDB — Документо-ориентированная

51. Acebase — Документо-ориентированная

52. iBoxDB — Документо-ориентированная

53. RaptorDB — Документо-ориентированная

54. NosDB — Документо-ориентированная

55. CortexDB — мультимодальная

56. JasDB — Документо-ориентированная

Из отечественных решений, к документо-ориентированным базам данных можно отнести СУБД Енисей.

И в рамках одной из модальностей к таким базам можно отнести YDB и YTsaurus.

Вы можете развернуть документо-ориентированную базу данных MongoDB в облаке Amvera Cloud c помощью простого push в выделенный Git-репозиторий. Для этого нужно выполнить несколько простых шагов, описанных в инструкции по развертыванию MongoDB. Стоимость хостинга MongoDB начинается от 170 руб. в месяц.

Базы данных временных рядов

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

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

Общие характеристики баз данных временных рядов:

  • Данные временных рядов всегда собираются на протяжении определенного периода времени.
  • Данные из рабочих нагрузок являются новыми и записываются как вставки. Уже существующие данные не обновляются путем замены.
  • Когда данные записываются, они автоматически назначаются последнему интервалу времени.

Базы даных временных рядов часто используются для осуществления мониторинга различных метрик (будь то загрузка CPU, или показатели работы какого-либо датчика).

Когда вы смотрите в Grafana подобные графики, сама Grafana строит их на основе данных из СУБД временных рядов Prometheus.

Наиболее популярными и базами временных рядов являются Prometheus, InflubDB, Graphite.

Полный список из 43 СУБД для хранения временных рядов

Time Series, мультимодальная

7 основных типов баз данных

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

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

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

Примеры — MySQL, Oracle DB, PostgreSQL. Это самый популярный тип БД, в которых информация хранится в виде таблиц. В строках находится описание каждого отдельного свойства объекта, а столбцы нужны для извлечения определённых свойств из строки. Таблицы могут быть взаимосвязаны.

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

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

Резидентные базы данных

Примеры — Redis, Apache Ignite, Tarantool. Сведения хранятся в оперативной памяти. Данные обрабатываются быстро, поэтому резидентные БД популярны там, где нужно обеспечить максимально короткое время отклика. Они помогают управлять телекоммуникационным оборудованием, проводить торги в онлайн-режиме или Real-Time обслуживание. Базы in-memory поддерживают и быстрое написание, и быстрое чтение. В основном они работают с записями «ключ-значение», но также могут работать со столбцами.

Чтобы при неожиданной перезагрузке не потерять данные, нужно сделать запись с предварительным журналированием на энергонезависимом устройстве. Это можно отнести к минусам базы in-memory — приходится вкладываться в дорогостоящие инфраструктурные решения, чтобы обеспечить бесперебойное питание. Также нужно постоянно копировать информацию на твёрдые носители. Ещё один недостаток БД — дорогое масштабирование.

Поисковые базы данных

Пример — Elastic. Этот тип БД нужен для получения сведений через фильтр. Искать можно по любому введённому значению, в том числе по отдельным словам. Можно пользоваться полнотекстовым поиском. Поисковые базы данных хорошо масштабируются и удобны для хранения журналов, объёмных текстовых значений.

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

Базы данных с широкими столбцами

Примеры — Cassandra, Google BigTable, HBase. БД с широкими столбцами могут запрашивать большие объёмы данных быстрее, чем обычные реляционные. Сведения хранятся в виде записей «‎ключ-значение»‎ на жёстком диске или твёрдотельном накопителе. Базы данных с широкими столбцами позволяют выполнять быструю запись построчно и быстрое чтение по ключу.

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

Столбчатые базы данных

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

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

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

Примеры — CouchDB, Couchbase, MongoDB. Если в реляционных БД для извлечения данных нужно объединять таблицы, то в этих базах отлично хранится несвязанная информация в больших объёмах. Они поддерживают JSON. Для любого ключа можно создать сложное значение и сразу включить всю структуру данных в одну запись. Выборка по запросу может содержать части множества документов без их полной загрузки в оперативную память.

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

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

Примеры — OrientDB, Neo4j. Данные хранятся в виде графов, то есть моделей с узлами и связями. Они достаточно гибкие, с логичной структурой. Узлы служат для хранения сущностей данных, а рёбра — для хранения взаимосвязей между сущностями, которыми можно управлять.

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

Определяем базу данных под свои задачи

Как мы уже говорили, всё зависит от задач, которые вы будете выполнять. Нужно определить, какими особенностями должна обладать ваша БД.

Отталкиваться нужно от следующих факторов:

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

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

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

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

Что такое язык структурированных запросов (SQL)?

SQL — это язык программирования, используемый в большинстве реляционных баз данных для запросов, обработки и определения данных, а также контроля доступа. SQL был разработан в IBM в 1970-х годах. Со временем у стандарта SQL ANSI появились многочисленные расширения разработанные такими компаниями как IBM, Oracle и Microsoft. Хотя в настоящее время SQL все еще широко используется, начали появляться новые языки программирования запросов.

Эволюция базы данных

Базы данных значительно изменились с момента их появления в начале 1960-х годов. Исходными системами, которые использовались для хранения и обработки данных, были навигационные базы данных – например, иерархические базы данных (которые опирались на древовидную модель и допускали только отношение «один-ко-многим») и базы данных с сетевой структурой (более гибкая модель, допускающая множественные отношения). Несмотря на простоту, эти ранние системы были негибкими. В 1980-х годах стали популярными реляционные базы данных, в 1990-х годах за ними последовали объектно-ориентированные базы данных. Совсем недавно вследствие роста Интернета и возникновения необходимости анализа неструктурированных данных появились базы данных NoSQL. В настоящее время облачные базы данных и автономные базы данных открывают новые возможности в отношении способов сбора, хранения, использования данных и управления ими.

В чем заключается различие между базой данных и электронной таблицей?

Базы данных и электронные таблицы (в частности, Microsoft Excel) предоставляют удобные способы хранения информации. Основные различия между ними заключаются в следующем.

  • Способ хранения и обработки данных
  • Полномочия доступа к данным
  • Объем хранения данных

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

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

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

Реляционные базы данных
Объектно-ориентированные базы данных
Распределенные базы данных
Хранилища данных
Oracle NoSQL Database
Графовые базы данных

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

Базы данных с открытым исходным кодом
Облачные базы данных
Многомодельные базы данных
Документные базы данных/JSON
Автономные базы данных

Что такое программное обеспечение базы данных?

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

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

Что такое система управления базами данных (DBMS)?

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

В качестве примеров популярного программного обеспечения для управления базами данных, или СУБД, можно назвать MySQL, Microsoft Access, Microsoft SQL Server, FileMaker Pro, СУБД Oracle Database и dBASE.

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

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

Многие ведущие веб-сайты и веб-приложения используют СУБД MySQL, в том числе Airbnb, Uber, LinkedIn, Facebook, Twitter и YouTube.

Использование баз данных для повышения производительности бизнеса и улучшения процесса принятия решений

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

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

Задачи для баз данных

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

  • Значительно возросшие объемы данных. Стремительный рост данных от датчиков, подключенных приборов и десятков других источников заставляет администраторов искать способы эффективного управления и упорядочивания данных своих компаний.
  • Обеспечение безопасности данных. В наши дни регулярно случаются утечки данных и хакеры становятся все более изобретательными. Сейчас как никогда важно обеспечить защиту данных, но в то же время их легкую доступность для пользователей.
  • Удовлетворение растущих потребностей. В современной, динамичной бизнес-среде компаниям необходим доступ к данным в режиме реального времени – для своевременного принятия решений и использования новых возможностей.
  • Управление и обслуживание базы данных и инфраструктуры. Администраторы базы данных должны осуществлять постоянный мониторинг базы данных на наличие проблем, выполнять профилактическое обслуживание, а также устанавливать обновления и исправления программного обеспечения. Но базы данных становятся все более сложными, объемы данных растут, и компании сталкиваются с необходимостью привлечения дополнительных специалистов для мониторинга и настройки баз данных.
  • Устранение границ масштабируемости. Если бизнес хочет выжить, он должен развиваться, и возможности управления данными должны расти вместе с ним. Но администраторам баз данных очень сложно предугадать, какие мощности потребуются компании, особенно при использовании локальных баз данных.
  • Соблюдение требований к размещению данных, суверенитету данных и времени ожидания. Для одних компаний предпочтительнее, чтобы базы данных работали в локальной среде. В таких случаях идеальным вариантом являются готовые системы, настроенные и оптимизированные для размещения баз данных.

Решение всех этих задач может занимать много времени и отвлекать администраторов баз данных от решения стратегических задач.

Как автономные технологии улучшают управление базами данных

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

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

Дополнительные продукты

  • Oracle Autonomous Database
  • СУБД Oracle Database
  • Oracle Exadata
  • Oracle Autonomous Data Warehouse

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *