Любая организация, создающая свою IT-инфраструктуру и открывающая представительство в интернете, сталкивается с необходимостью решить, какую систему управления базами данных или, сокращенно, СУБД она будет использовать. В этой статье мы подробно расскажем, для чего нужны СУБД, какие бывают их виды и на что ориентироваться, выбирая подходящую именно вашему бизнесу.
Начать следует с основных терминов. База данных — это массив упорядоченных структурированных данных, где каждому элементу соответствует свой набор свойств. Базы могут различаться по структуре и типам представления данных; иногда данные могут быть зашифрованы. Именно в базах данных хранится информация о транзакциях пользователей и их действиях на сайте.
Соответственно, система управления базами данных — это специальный софт, который выступает для БД интерфейсом или связующим звеном между пользователями и массивами данных. Благодаря СУБД ваши сисадмины смогут без проблем удалять, добавлять, фильтровать и находить элементы, менять их структуру и создавать резервные копии.
Грамотно подобранная СУБД нужна в IT-инфраструктуре компании для выполнения следующих операций:
Сегодняшний рынок может предложить бизнесу несколько сот, а то и тысяч наименований систем управления базами данных — как проприетарных, так и распространяющихся бесплатно. Однако заслуживают внимания лишь десятки, а изменения в социально-политических реалиях и, как следствие, политиках компаний, производящих софт, иногда сужают этот выбор до единиц.
Тем не менее, чтобы сориентироваться, как лучше управлять базами данных в рамках именно вашего проекта, необходимо понимать, какие типы СУБД в принципе существуют и как работают. Тем более что, решений с открытым кодом, которые можно доработать под свои нужды, не так уж мало.
Далее поговорим о том, какие типы СУБД вообще существуют. Как и для большинства других программных продуктов, для систем управления базами данных предусмотрено несколько классификаций, построенных вокруг тех или иных параметров. Рассмотрим основные из них.
Принято выделять локальные и распределенные системы управления базами данных.
Большинство современных СУБД могут выступать как в локальном, так и распределенном качестве, например — OpenEdge, SQLite, Microsoft SQL Server.
Согласно этому основанию для классификации, системы управления базами данных делят на на клиент-серверные, файл-серверные и встраиваемые.
Существуют два основных типа языка запросов: SQL и NoSQL.
Любая система управления базами данных включает четыре основных элементов:
С точки зрения структуры и организации данных существует большое число разных типов СУБД. Рассмотрим наиболее распространенные из них.
Старейший вариант, обязанный своим появлением фирме Oracle еще в 1979, и до сих пор остающийся одним из самых востребованных: по некоторым данным до 90% информационных систем до сих пор используют реляционные базы.
В основе лежит реляционная модель, в которой данные упорядочиваются в форме таблиц. СУБД, использующие реляционные базы, надежны и безопасны, а также максимально просты в работе, что является залогом их популярности, однако могут демонстрировать низкую производительность при работе с большими объемами данных, а также не всегда удобны, если данные не структурированы.
В качестве некоммерческих вариантов можно назвать MySQL и SQLite: первая подойдет для высоконагруженных веб-проектов, связанных с разработкой и аналитикой, вторая — для сервисов, подразумевающих локальное хранение данных.
Из платных решений до недавнего времени широкую популярность имели Oracle Database и Microsoft SQL Server, включающие такие функции, как поддержка многопоточной обработки, масштабирование баз данных, защита информации и автоматическое управление ресурсами. Однако в связи с уходом Oracle и Microsoft с российского рынка, использовать на свой страх и риск можно при условии, что лицензия была оплачена ранее, а, главное — лишь в автономном режиме без возможности установки обновлений и помощи поддержки.
Также можно обратить внимание и на российские варианты, базирующиеся на открытом проекте PostgreSQL.
Второй тип СУБД, это «ключ — значение» (key-value database или key-value store). NoSQ-базы данных в таких системах представлены в виде хеш-таблиц, где каждой записи соответствует только один идентификатор, состоящий из ключа и значения. При этом структура элементов в таблице не обязана быть жесткой: она может быть похожа на лог, в котором новые записи заносятся в конец, а не в определенное место.
Key-value СУБД как правило применяются в проектах, для которых приоритетной является скорость ответа на запрос, а сами данные достаточно просты. Примером может послужить хранения кэша данных, онлайн-списков, обработки истечения срока действия, разделения сеансов, построения рейтинга и т.д. В качестве примеров баз такого типа можно назвать Redis, DynamoDB и Aerospike.
СУБД, работающие с базами, в которых данные структурируются в виде отдельных документов, а не таблиц или «логов». Это дает возможность хранить и эффективно работать со слабо структурированной информацией, которая хранится целиком и также выдается по одному запросу.
С реляционными такие СУБД роднит то, что в них также можно использовать ссылки на другие записи в базе, однако они куда эффективнее для хранения каталожной информации: например, в интернет-магазинах каждый товар чаще всего имеет большое число атрибутов, управлять которыми с помощью реляционных СУБД затруднительно. В числе примеров документных баз можно упомянуть MongoDB, CouchDB и Amazon DocumentDB.
СУБД, использующие базы данных, в которых элементы представлены в форме графов (graph store), каждый узел которых образует связи с другими узлами и напоминает паутину. Данные хранятся в каждом узле хранятся, а взаимосвязи между ними называются ребрами. В ребрах прописаны начальный и конечный узлы, направление и тип, которые описывают характер связи между узлами, например «дуб — дерево».
Прохождение графа занимает мало времени, что построение связей происходит не при запросах к БД, а хранится в них постоянно. Благодаря этому графовые СУБД часто можно встретить в социальных сетях, рекомендательных сервисах, системах поиска скидок, разных агрегаторах и других проектах, где для пользователя нужно получить информацию о взаимосвязи между несколькими данными. Среди известных graph store можно назвать Amazon Neptune, Neo4j и InfiniteGraph.
Еще один тип СУБД — Column family store. На первый взгляд может показаться, что их базы данных похожи на SQL (и там, и там есть столбцы и строки), однако в колоночных базах данных колонки существуют независимо друг от друга и добавление в них новых атрибутов никак не отражается на остальных частях базы, что позволяет хранить в этих NoSQL-базах неструктурированные записи.
В отличие от реляционных систем управления базами данных, где при запросе поиск осуществляется по всей таблице, в колоночных он производится только по конкретным столбцам, что на порядок ускоряет получение нужных данных для анализа. Это делает колоночные СУБД незаменимыми для получения данных из таблиц, размер которых может достигать сотен ТБ, а возможность сильного сжатия данных экономит место на серверах. Это делает колоночные СУБД незаменимыми для аналитических систем класса business intelligence (ROLAP) и аналитических хранилищ данных (data warehouses). В числе известных колоночных баз данных можно назвать ClickHouse, Apache Druid, Vertica, BigQuery и Teradata.
Подводя итоги, можно констатировать, что выбор СУБД зависит от задач бизнеса, его IT-инфраструктуры и бюджета. Санкционное давление и уход с отечественного рынка таких крупных игроков, как Oracle и Microsoft стали для многих компаний стимулом для перехода на доработанные опенсорсные решения, и сегодня на российском рынке можно найти достойные решения, основанные на проекте PostgreSQL.
Также всегда актуальным остается облачное решение СУБД, которое можно получить у хостинг-провайдеров в качестве сервиса, чтобы сэкономить и обеспечить бесперебойную работу IT-систем. Если вашей организации требуется готовое облачное решение для любых целей (удаленная работа офиса, нагруженные онлайн-проекты, резервное хранение данных), обратитесь в Максиплейс и вы сможете легко арендовать облачную инфраструктуру. Обратите внимание, что в расширенную поддержку (SLA premium) у нас входит полное администрирование СУБД от профессиональных инженеров.
Статья добавлена 9 месяцев назад. Автор - Blog Admin