Это первый выпуск в серии статей про СУБД , в рамках которых буду достаточно простыми словами давать информацию про то, что сейчас есть на рынке баз данных, и что выбрать для решения своих задач.
Заметил, что когда спрашиваешь кого-нибудь, особенно на собеседовании, какие типы СУБД существуют, то первое что вспоминают многие – это реляционные базы данных, и NoSQL, а вот про разновидности часто забывают или не могут сформулировать их отличие. Поэтому начнем с простого перечисления наиболее используемых.
- Реляционные
- Ключ-значение
- Документные
- Графовые
- Колоночные
Тем, кому не хочется долго читать, может сразу перейти на итоговую таблицу .
Нужно обязательно сделать ремарку, что некоторые крупные производители, имеют в своем арсенале несколько типов СУБД, как в виде отдельных продуктов, так и в виде внутренней реализации. Например, у Oracle на самом деле чего только нет, начиная с классической реляционной СУБД, продолжая с отдельным продуктом Oracle NoSQL Database, который может использоваться и как документная, и как колоночная, и как ключ-значение. Отдельное решение от того же Oracle, Autonomous Data Warehouse – это уже специализированное решение для хранилищ данных. Еще один отдельный продукт от Oracle – Oracle Graph Server для работы с графами, и еще много другого. Этому можно посвятить отдельную серию статей.
Инструменты DevOps. Автоматизация работы с БД
Реляционные СУБД
Начнем по порядку, классические, реляционные СУБД чаще всего используются для построения решений OLTP (Online Transaction Processing). В таких решениях СУБД работает с небольшими по размерам транзакциями, но идущими большим потоком, и при этом от системы требуется минимальное время отклика, а так же возможность, при определенных условиях, отменить любые изменения выполняемых в рамках транзакции. Если вы строите систему, в рамках которой требуется хранить значительное количество сущностей (таблиц), с различными типами связей между ними (один-к-одному, один-к-многим, многие-ко-многим), то это скорее всего про реляционные СУБД.
Наиболее известные СУБД такого типа — Oracle, Microsoft SQL, PostgreSQL, MySQL.
Когда выбирать реляционную СУБД
Один из основных признаков, который говорит о том что нужно выбирать реляционную СУБД – это высокая нормализация данных. Дополнительными признаками будет необходимость обработки большого кол-ва коротких транзакций, с большей долей операций на вставку
Когда не выбирать реляционную СУБД
Если предполагается хранить не структурируемые данные, или наоборот очень простые структуры типа ключ-значение, то лучше посмотреть в сторону документных СУБД и специализированных СУБД типа ключ-значение соответственно.
Так же один из признаков, что имеет смысл подумать не о реляционных СУБД, это такой факт как необходимость часто обновлять значения в одних и тех же строках. Обычно это обходится «дорого» в реляционных СУБД, и нужно применять «продвинутую магию» что бы делать это корректно.
Пишем класс для работы с БД MySQL
Конечно, тут есть много «но», или «а если очень хочется», и других ситуаций, когда данные рекомендации можно игнорировать. Это нормально, особенно когда за дело берется эксперт, который знает как это сделать.
СУБД типа ключ-значение
Наверное один из самых простых типов СУБД. В упрощенном виде, это некая таблица с уникальным ключом и собственно связанным с ним значением, в котором может быть что угодно. Чаще всего такие СУБД используют для кэширования, т.к. они очень быстро работают, а это и не сложно, когда есть уникальный ключ, и запрос возвращает только одно значение. У некоторых представителей данных СУБД есть возможность работать полностью в памяти, а так же есть возможность задавать срок жизни записи, после истечения которого, записи будут автоматически удаляться.
Наиболее известные СУБД такого типа — Redis и Memcached.
Когда выбирать СУБД ключ-значение
Если СУБД будет использоваться для кэширования данных или для брокеров сообщений, то это очень подходящий тип. Так же, такая СУБД хорошо подходит для баз где нужно хранить достаточно простые структуры, и иметь к ним очень быстрый доступ.
Когда не выбирать СУБД ключ-значение
Если вы предполагаете хранить в базе данных много сущностей (таблиц), а у сущностей будут сложные структуры с разными типами данных. Так же, если вы предполагаете делать из этой таблицы сложные запросы которые возвращают множества строк.
Документные СУБД
Документные или документно-ориентированные СУБД — это одна из наиболее популярных разновидностей NoSQL СУБД, где основной единицей логической модели данных является документ — структурированный текст, с определенным синтаксисом.
Иногда встречаются мнения что модель данных в документных БД похожа на модель данных в объектно-ориентированных базах данных. В этом есть доля правды, единственная реальная разница между ними заключается в том, что базы данных документов только сохраняют состояние, но не поведение.
Так же, само название «документо-ориентированная» подчас вводит в заблуждение, и мне встречались коллеги, которые считали, что это база для систем документооборота. Нет, это не так.
Интересно, что документные СУБД развиваются достаточно активно, и сейчас некоторые из них, в том числе, поддерживают проверку схемы.
Известными представителями таких СУБД являются CouchDB, MongoDB, Amazon DocumentDB.
Когда выбирать документную СУБД
Если нужно хранить объекты в одной сущности, но с разной структурой. Если нужно хранит структуры, включая объекты, списки и словари, особенно в формате близкому к JSON.
На самом деле область применения документных СУБД очень широкая. Их можно использовать как компактную базу данных для отдельно взятого микро-сервиса, так и для вполне масштабных решений, в качестве хранилища состояний чего-либо.
Когда не выбирать документную СУБД
Не самое лучшее решение для реализации транзакционная модели, и точно не лучший вариант для формирования отчетности.
Графовые СУБД
Графовые СУБД — специфичный тип, предназначены для работы с графами, с их узлами, свойствами, и произвольными отношениями между узлами.
Очень простой пример, это организация связей в различного типа социальных сетях, где нужно хранить связи между пользователями (узлами) по разным критериям (родственные связи, коллеги, общие интересы).
Известные представители этого типа субд — Neo4j, Amazon Neptune, InfiniteGraph, InfoGrid.
Когда выбирать графовые СУБД
Точно стоит обратить внимание на графовые СУБД, если строите какое-то подобие социальной сети, или реализуете систему оценок и рекомендаций. Ну и во всех случаях когда вы хорошо понимаете что такое графы, и для чего это нужно.
Когда не выбирать графовые СУБД
Практически во всех остальных случаях, кроме указанных выше, лучше воздержаться от использования графовых СУБД.
Колоночные СУБД
Колоночные СУБД очень похожи на реляционные. Они так же состоят из строк, которые имеют атрибуты, а строки группируются в таблицах. Различия в логических моделях несущественные, а вот на уровне физического хранения данных различия значительные.
В реляционных СУБД данные хранятся «построчно», это означает что для считывания значения определенной колонки, придется прочитать практически всю строку, как минимум от первой до нужной колонки. В колоночной СУБД данные хранятся «поколоночно», т.е. колонка — это как отдельная таблица. Соответственно чтение будет происходить из конкретного столбца сразу. На практике это реально работает очень быстро (проверено мной на нескольких реализованных хранилищах данных).
Основные преимущества колоночных СУБД – эффективное выполнения сложных аналитических запросов на больших объемах, и легкое, практически мгновенное, изменение структуры таблиц с данными, плюс существенная компрессия и сжатие, которое позволяет значительно экономить место.
Яркие представители колоночных СУБД — Sybase IQ (ныне SAP IQ), Vertica, ClickHouse, Google BigTable, InfoBright, Cassandra.
Когда выбирать колоночные СУБД
Один из весомых аргументов за использование именно колоночной СУБД — это если вы хотите построить хранилище данных, и планируете делать выборки со сложными аналитическими вычислениями. Косвенный признак, который так же может сигнализировать о том, что имеет смысл, хотя бы посмотреть в сторону колоночных СУБД — это если количество строк, из которых делаются выборки, превышает сотни миллионов.
Когда не выбирать колоночные СУБД
Учитывая специфику колоночных СУБД, будет не эффективно ее использовать, если выборки достаточно простые, параметры выборки статичны, и если преобладают выборки по ключевым значениям. Так же, если количество строк в таблице, из которой делается выборка, меньше сотен миллионов строк, то скорее всего не будет большого преимущества, по сравнению с реляционной СУБД.
Нужно так же иметь ввиду, что в колоночных СУБД могут быть и другие ограничения. Например, может отсутствовать поддержка транзакций, а язык запросов может отличаться от классического SQL, и прочее.
Итоги
Важное замечание – не пытайтесь сразу все задачи решить в рамках одной СУБД. Это более чем нормально иметь несколько разных типов СУБД. Так же, не пытайтесь сразу определиться с производителем СУБД, или связать свою жизнь с одним конкретным брендом.
При выборе типа СУБД следует, прежде всего, исходить из типа решаемых задач, типов обрабатываемых данных, перспектив роста и масштабирования.
Обращайте так же внимание на популярность и наличие широкого круга разработчиков и средств разработки – это даст вам возможность, при необходимости, найти ответ на возникший вопрос быстро.
В данной статье я намеренно не делаю акцент на выбор между облачными и on-premise решениями — эта тема одной из следующих статей.
Итак, в таблице представленной ниже, кратко собрано то, что описано выше в статье.
Тип СУБД
Когда выбирать
Примеры популярных СУБД
Нужна транзакционность; высокая нормализация; большая доля операций на вставку
Oracle, MySQL, Microsoft SQL Server, PostgreSQL
Задачи кэширования и брокеры сообщений
Для хранения объектов в одной сущности, но с разной структурой; хранение структур на основе JSON
CouchDB, MongoDB, Amazon DocumentDB
Задачи подобные социальным сетям; системы оценок и рекомендаций
Neo4j, Amazon Neptune, InfiniteGraph, InfoGrid
Хранилища данных; выборки со сложными аналитическими вычислениями; количество строк в таблице превышает сотни миллионов
Vertica, ClickHouse, Google BigTable, Sybase SAP IQ, InfoBright, Cassandra
Надеюсь данная статья оказалась полезной.
В следующих статьях посмотрим на выбор между облачными и on-premise СУБД, платными и бесплатными, и многое другое.
Источник: habr.com
Изучаем управление базами данных: — 7 лучших бесплатных систем с открытым исходным кодом
IT-отделы работают с мизерным бюджетом. Поэтому сокращение расходов позволит компании не только оставаться на плаву, но и направить сэкономленные средства на развитие. Чтобы рациональнее использовать имеющийся бюджет, познакомимся с 7 бесплатными системами, позволяющими осуществлять разработку и управление базами данных и решениями DBM с открытым исходным кодом.
CUBRID
Бесплатная программа для создания базы данных с открытым исходным кодом, оптимизированная специально для веб-приложений. Данный сервис предназначен для обработки больших объемов данных и генерации многочисленных параллельных запросов. Это решение реализовано на языке программирования C.
- Множественная степень дробления блокировок;
- Создание резервных копий онлайн;
- Инструменты GUI и драйверы для JDBC , PHP , Python , Perl и Ruby ;
- Поддержка встроенного сегментирования базы данных для масштабирования;
- В крупных системах данные разделяются по нескольким экземплярам базы данных;
- Репликация полнотекстовых баз данных и согласованность транзакций.
- Не работает в системах Apple ;
- Нет отладчика сценариев;
- Руководство доступно только на английском и корейском языках;
- Обсуждения на официальном форуме , как правило, устаревшие ( большинству из них несколько лет ).
Firebird
Этот конструктор баз данных использовался в производственных системах (под разными названиями) с 1981 года и реализует многие стандарты ANSI SQL . Firebird может работать на Linux , Windows и различных Unix-платформах .
- API трассировки для мониторинга в реальном времени;
- Аутентификация с проверкой подлинности Windows ;
- Четыре поддерживаемые архитектуры: SuperClassic , Classic , SuperServer и Embedded ;
- Разнообразные средства разработки: коммерческие инструменты – FIBPlus и IBObjects ;
- Возможность автоматического развертывания для очистки базы данных;
- Уведомления о событиях из триггеров базы данных и хранимых процедур;
- Бесплатная поддержка глобального сообщества Firebird . Что важно при разработке требований к базам данных.
- Интегрированная поддержка репликации не включена и доступна только в качестве дополнения;
- Нехватка временных таблиц и интеграции с другими системами управления базами данных;
- Аутентификация с проверкой подлинности Windows недостаточна по сравнению с решениями, доступными в других операционных системах.
Программное обеспечение для работы с базой данных MariaDB
Созданная разработчиками MySQL , MariaDB используется такими техническими гигантами, как Wikipedia , Facebook и даже Google . MariaDB – это сервер базы данных, который предлагает встраиваемую замену функционала MySQL . Безопасность является главным принципом и приоритетом разработчиков СУБД . В каждом релизе они добавляют все патчи безопасности MySQL и при необходимости улучшают их.
- Масштабируемость с простой интеграцией;
- Доступ в режиме реального времени;
- Основные функции MySQL ( MariaDB является альтернативой MySQL );
- Альтернативные механизмы хранения, оптимизация серверов и патчи;
- Обширная база знаний по разработке баз данных SQL , накопленная в течение 20 лет работы MariaDB .
- Отсутствует плагин проверки сложности пароля;
- Отсутствует memcached интерфейс ( распределённая система кэширования в оперативной памяти );
- Нет трассировки оптимизатора.
MongoDB
MongoDB была основана в 2007 году и известна как « база данных для великих идей ». Проект финансируется такими известными инвесторами, как Fidelity Investments , Goldman Sachs Group , Inc. , и Intel Capital . С момента своего создания MongoDB была скачена 20 миллионов раз и поддерживается более чем 1000 партнерами. Эти партнеры придерживаются принципа бесплатного решения с открытым исходным кодом.
- Проверка документов;
- Зашифрованный механизм хранения.
Популярные варианты использования:
- мобильные приложения;
- каталоги продуктов;
- управление контентом;
- Real-time приложения с механизмом хранения в памяти ( бета-версия );
- сокращает время между первичным сбоем и восстановлением.
- Не подходит для приложений, требующих сложных транзакций;
- Не подходит для устаревших приложений;
- Молодое решение: программное обеспечение меняется и быстро развивается.
MySQL
Самый именитый представитель нашего обзора программ для разработки базы данных . Бесплатная база данных MySQL существует с 1995 года и теперь принадлежит компании Oracle . СУБД имеет открытый исходный код. Также существует несколько платных версий, которые предлагают дополнительные функции, такие как гео-репликация кластера и автоматическое масштабирование.
Поскольку MySQL является отраслевым стандартом, она совместима практически со всеми операционными системами и написана на языках C и C ++ . Это решение является отличным вариантом для международных пользователей. Сервер СУБД может выводить клиентам сообщения об ошибках на нескольких языках.
- Проверка на стороне сервера;
- Может использоваться как локальная база данных;
- Гибкая система привилегий и паролей;
- Безопасное шифрование всего трафика паролей;
- Библиотека, которая может быть встроена в автономные приложения;
- Предоставляет сервер в качестве отдельной программы для сетевого окружения клиент/сервер.
Недостатки практической разработки и администрирования баз данных MySQL Приобретена компанией Oracle :
- пользователи полагают, что MySQL больше не подпадает под категорию бесплатного и открытого программного обеспечения;
- больше не поддерживается сообществом;
- пользователи не могут исправлять ошибки и патчи;
- проигрывает другим решениям из-за медленных обновлений.
PostgreSQL
PostgreSQL является еще одним выдающимся решением с открытым исходным кодом, работающим во всех основных операционных системах, включая Linux , UNIX ( AIX , BSD , HP-UX , SGI IRIX , Mac OS X , Solaris , Tru64 ) и Windows . PostgreSQL полностью отвечает принципам ACID ( атомарность, согласованность, изолированность, устойчивост ь).
- Возможность создания пользовательских типов данных и методов запросов;
- Среда разработки баз данных выполняет хранимые процедуры более чем на десятке языков программирования: Java , Perl , Python , Ruby , Tcl , C/C ++ и собственный PL/pgSQL ;
- GiST ( система обобщенного поиска ): объединяет различные алгоритмы сортировки и поиска: B-дерево , B+-дерево , R-дерево , деревья частичных сумм и ранжированные B+ -деревья ;
- Возможность создания для большего параллелизма без изменения кода Postgres , например, CitusDB .
- Система MVCC требует регулярной « чистки »: проблемы в средах с высокой скоростью транзакций;
- Разработка осуществляется обширным сообществом: слишком много усилий для улучшений.
SQLite
Провозгласившая себя самой распространенной СУБД в мире, SQLite зародилась в 2000 году и используется Apple , Facebook , Microsoft и Google . Каждый релиз тщательно тестируется. Разработчики SQLite предоставляют пользователям списки ошибок, а также хронологию изменений кода каждой версии.
- Нет отдельного серверного процесса;
- Формат файла – кросс-платформенный;
- Транзакции соответствуют требованиям ACID ;
- Доступна профессиональная поддержка.
Не рекомендуется для:
- клиент-серверных приложений;
- крупномасштабных сайтов;
- больших наборов данных;
- программ с высокой степенью многопоточности.
Есть идеи?
Я пропустила что-то из существенных преимуществ или недостатков решений для разработки баз данных , перечисленных выше? Считаете, что есть лучшие альтернативные СУБД ? Поделитесь своим мнением в комментариях.
МЛ Мария Логутенко автор-переводчик статьи «
Источник: www.internet-technologies.ru
Как выбрать систему управления базами данных: сравнение лучших СУБД
Перед разработкой проектов любых масштабов всегда встает вопрос: «А какую СУБД мне выбрать?». И это неудивительно, ведь вариантов довольно много, а запутаться в них может даже профессионал. Чтобы понять, какую систему управления базами данных выбрать, следует учитывать ряд критериев и тип программного обеспечения.
В этой статье мы дадим несколько рекомендаций по выбору СУБД, а также рассмотрим наиболее популярные системы, которые подойдут под разные задачи.
Критерии выбора
Под критериями подразумеваются важные параметры, которые влияют на выбор СУБД. Например, в первую очередь следует понять, для какого проекта подбирается ПО. Затем нужно ответить на вопрос «Какие данные будут храниться в СУБД?». И так далее. Как только вы определитесь с четкими критериями, вам станет проще ориентироваться в обилии программного обеспечения.
Тип проекта
Проект может быть коммерческим или персональным. От него напрямую зависит, какую именно СУБД вы будете выбирать. Если вы планируете реализацию проекта для себя, то, как правило, речь не идет о каких-то масштабных вещах. Чаще всего это что-то для души или, например, обучения в ВУЗе. В таких случаях рекомендуем обратить внимание на встраиваемые или бесплатные СУБД.
Если же планируется создание коммерческого проекта, то здесь уже выбор немного усложняется. Следует учитывать бюджет, требуемые ресурсы, безопасность и прочие критерии. Подробнее о них поговорим ниже.
Что будет храниться в базе данных
В зависимости от типа хранения выбор СУБД также отличается. Например, одни системы лучше работают с текстовой информацией, другие – с медиафайлами. Определитесь, что именно будет содержаться в вашей БД, и тогда выбор заметно сузится.
Объем хранилища
Как мы уже говорили выше, если проект планируется персональный, то над объемом хранилища сильно переживать не стоит: под небольшие задачи подойдут многие СУБД. Если же речь идет о крупномасштабных проектах, то выбор будет не такой очевидный. Связано это с тем, что многие системы управления базами данных предоставляют документацию, где детально расписано, какие есть ограничения на те или иные файлы.
Тип базы данных
База данных может быть серверная или файловая – это важное условие, которое следует учитывать при выборе системы. Первый подходит для работы по сети, второй – для локальных задач. Если вам нужно, чтобы БД была вместе с приложением без установки дополнительного ПО, то стоит выбрать файловую систему. Отличный тому пример – SQLite.
Нагрузка и масштабируемость
Еще один критерий – требуемая нагрузка. Здесь следует ответить на вопрос: «Сколько пользователей будут одновременно работать с базой данных?». Также важно заранее предусмотреть масштабируемость. Учитывайте, что постоянно увеличивать ОЗУ, процессор и другие параметры не получится. Поэтому выбирайте СУБД с прицелом на способность переносить текущие и двукратно увеличенные нагрузки.
Безопасность и отказоустойчивость
Безопасность важна для каждого коммерческого проекта. В этот критерий входят такие параметры, как шифрование, сертификаты и прочие возможности, способные защитить базу данных.
Отказоустойчивость позволяет сохранить всю информацию при возможных сбоях системы – выключении электричества, физических воздействиях и прочем. Для некоторых сфер это один из важнейших критериев, например, банковской.
Стоимость
СУБД бывают двух типов – бесплатные и платные. Первые, как правило, отлично подходят для небольших персональных и учебных проектов. Вторые – более осознанный выбор для компаний разных масштабов. Если вы хотите, чтобы ваша система всегда работала стабильно и приносила прибыль бизнесу, то лучше остановиться на выборе платной СУБД.
Однако есть еще вариант open source – он подойдет для коммерческих проектов с ограниченным бюджетом. Такие системы надежные, но их поддержкой придется заниматься самостоятельно.
Поддержка и администрирование
Важно, чтобы выбранная СУБД постоянно развивалась и имела техническую поддержку, к которой можно обратиться в любой момент. Убедитесь, что она работает круглосуточно и без выходных, иначе оперативно решить проблему не получится.
Со стороны администрирования следует учитывать, что бывают сложные СУБД. Например, для работы с Oracle Database требуется особая квалификация. Для таких систем нужен отдельный специалист, а значит – дополнительные вложения. Если есть ограничения по бюджету, то лучше оставить свой выбор на простой СУБД, например, SQLite.
Комьюнити теперь в Телеграм
Подпишитесь и будьте в курсе последних IT-новостей
Основные типы СУБД с примерами
При выборе СУБД также учитывайте, что они могут различаться. Существует несколько основных типов – это реляционная, документная, графовая, колоночная и Key-value. Давайте разберем каждый из видов и посмотрим, чем они друг от друга отличаются.
Реляционные
Этот тип СУБД основан на принципах реляционной модели данных, в которой вся информация представлена в виде таблиц, состоящих из строк и столбцов. Реляционная СУБД позволяет осуществлять различные манипуляции с данными: добавление, удаление, изменение и поиск с использованием языка запросов SQL.
Основное преимущество такой системы – простота и удобство применения. Все данные хранятся в виде таблиц, которые легко использовать. Кроме того, реляционные СУБД обладают высокой степенью надежности и безопасности – они обеспечивают целостность информации и предоставляют механизмы для контроля доступа к данным.
Из минусов реляционных СУБД стоит отметить невысокую производительность при работе с большими объемами данных, сложность создания и изменения структуры таблиц и ограниченность в работе с неструктурированными данными.
Примеры СУБД:
- Oracle Database – позволяет управлять большим объемом данных, обеспечивать высокую производительность и надежность при работе с БД. Oracle Database включает множество функций: поддержку многопоточной обработки, масштабирование баз данных, защиту информации и автоматическое управление ресурсами.
- MySQL – одна из самых популярных и распространенных СУБД в мире, используемых в таких отраслях, как веб-разработка, бизнес-аналитика и других.
- SQLite – предназначена для использования в приложениях, которые требуют локального хранения данных. Эта СУБД обеспечивает быстрый доступ к информации и поддерживает стандарт SQL для выполнения запросов и управления БД.
Документная
Такой тип СУБД был разработан для хранения, управления, поиска и извлечения документов. В отличие от реляционного типа, который хранит всю информацию в виде таблиц, документные СУБД используют данные в формате документов. Это позволяет более гибко организовывать и сохранять все конфиденциальные сведения, особенно когда имеются неструктурированные данные – текстовые документы, изображения и видео.
Из плюсов стоит отметить, что документный тип позволяет эффективно управлять большими объемами данных, которые не могут быть организованы в виде таблицы. Также такие СУБД предоставляют возможность легко создавать и обновлять документы, что упрощает процесс управления БД.
Примеры СУБД:
- MongoDB – позволяет использовать данные в формате JSON-подобных документов. MongoDB отличается гибкостью и масштабируемостью, благодаря чему можно обрабатывать большие объемы данных.
- Couchbase – предназначена для хранения крупных файлов. Использует технологию распределенного кэширования, которая позволяет быстро получать доступ к данным в режиме реального времени. Также Couchbase обеспечивает поддержку множества протоколов – HTTP, JSON, REST и многих других.
Графовые
Графовая СУБД – инструмент, предназначенный для хранения информации, связанной с графами, где используются узлы, вершины и связи между узлами. Хорошо подходят для социальных сетей, где требуется сохранять взаимосвязи между пользователями по разным условиям.
Примеры СУБД:
- Neo4j – база данных с открытым исходным кодом. Использует язык запросов Cypher.
- Amazon Neptune – предоставляет полностью управляемую среду. Это позволяет системе легко масштабироваться и иметь высокую доступность данных.
- InfiniteGraph – была создана для хранения и обработки больших графовых структур, которые могут содержать миллионы объектов и связей между ними.
Ключ-значение
Ключ-значение (от англ. Key-Value) – это один из типов нереляционных баз данных NoSQL. Такие СУБД выглядят как системы хранения данных, где каждый элемент данных представлен парой ключ-значение.
Key-Value широко используются в качестве кеша для ускорения доступа к данным, а также для хранения сессий пользователей. Они могут быть полезны в системах, где требуется быстрое чтение и запись данных без сложных запросов и связей между таблицами.
Примеры СУБД:
- Redis – работает в оперативной памяти и способна обрабатывать огромные объемы данных за очень короткое время благодаря своей высокой производительности. Redis поддерживает множество типов данных: строки, списки, хэши, множества и упорядоченные множества.
- Amazon DynamoDB – полностью управляемая NoSQL база данных, разработанная Amazon Web Services. Она предназначена для обработки любого объема данных и обеспечивает быстродействие в масштабах от миллисекунд до миллиардов запросов в день.
Колоночные
Последний тип СУБД, о котором мы поговорим, – колоночный. Он хранит данные не в виде строк, а в виде столбцов. Это позволяет ускорять выполнение запросов к большим объемам данных, особенно при работе с аналитическими системами, где требуется обработка большого количества информации.
Чаще всего колоночные СУБД используются в банковских и медицинских сферах, так как их можно легко масштабировать, а производительности хватает для любых типов задач.
Примеры СУБД:
- ClickHouse – СУБД от Яндекса с открытым исходным кодом. Она специализируется на аналитических задачах и предназначена для обработки больших объемов данных. ClickHouse способна обрабатывать миллиарды строк данных за секунды благодаря своей архитектуре и оптимизации под различные запросы.
- InfoBright – специально создана для аналитических работ: OLAP (Online Analytical Processing) и BI (Business Intelligence). Использует уникальный метод сжатия данных, что позволяет сократить объем хранимой информации без потери качества.
- Cassandra – подходит для обработки больших объемов данных в режиме реального времени. В Cassandra применяется модель NoSQL и распределенный алгоритм хранения данных, который обеспечивает быстрый доступ к информации.
Заключение
Выбор СУБД – задача не из простых, особенно, когда поджимают сроки и нужно быстро определиться с типом ПО. В первую очередь нужно расписать все критерии, на которые вы будете опираться в дальнейшем. Опишите, какой именно проект стоит перед вами: сколько на него нужно памяти, что в нем будет храниться, какая нужна нагрузка и так далее. Когда критерии будут ясны, останется только подобрать тип СУБД и уже определиться с конечным выбором программного обеспечения.
Источник: timeweb.com