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

  • Category: База данных
  • Publisher: сайтworks
  • March 24,2017

Базы данных для ваших данных!

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

Oracle 12c выпуск 2

Лицензия: Собственность

База данных Oracle является реляционной базой данных используется для хранения информации. Он обрабатывает сбор данных как единое целое. Там, как правило, огромный уровень комфорта, независимо от того, какой продукт или промышленности, при переходе с самым старым и самым установленным продуктом на рынке. Аргумент в пользу Oracle 12c, однако, не только включать в себя долговечность; продукт также поддерживает большинство серверных операционных систем и хорошо известный и уважаемый за его стабильность, мощные функции управления базами данных и практически нерушимой доставки данных. Но, пожалуй, самый лучший аргумент для этой SQL платформы в его имени; «с» в 12с выступает за облака, и новейший Oracle итерация является особенно эффективной в своей способности управлять базами данных как реальные облачными услуги благодаря обработке данных в оперативной памяти и многопользовательской архитектуру. Дополнительные и впечатляющие функции включают в себя новую подключаемую функцию базы данных, которая улучшает использование ресурсов, делая это легко и безопасно для консолидации баз данных на меньшем количестве серверов, а также ряд усовершенствований, повышающих общую скорость работы. базы данных SQL Oracle, всегда был отличным выбором; 12с еще лучше. Она доступна на предприятии, стандартные и стандартные одного издания, с различными функциями и ценами, чтобы соответствовать.


MySQL

Лицензия: Open Source

MySQL используется сотнями тысяч веб-сайтов, а также является основой для внутреннего применения. Остается (в основном) с открытым исходным кодом и бесплатным для пользователей сообщества. Он работает практически с любой операционной системой вы можете думать и прост в установке и работе.
Он также выполняет очень хорошо для большинства из аппаратной конфигурации. Хотя это иногда получают изворотливым с точки зрения использования CPU и таблицы коррупции, и это не самый лучший выбор для повышающего масштабирования. Если у вас есть деньги и требования, Oracle 12c является лучшим продуктом - но MySQL был промышленным стандартом в течение очень долгого времени, и это по-прежнему «простой» сделать выбор.

Microsoft SQL Server

Лицензия: Собственность

Это реляционная система управления базами данных, разработанная Microsoft. Сервер базы данных в основном сервер с большими объемами данных, которые могут быть доступны несколько пользователями из отдаленных районов. Это означает, что любое приложение, программное обеспечение, работающее на любой системе, в любой части мира, должно быть в состоянии хранить и извлекать данные из сервера базы данных через любую сеть. Есть много релизов Microsoft SQL Server до сихов с самым последним релизом является SQL Server 2016. Microsoft предлагает множество изданий для пользователей, чтобы выбрать из каждого издания, предлагая различные функции. Некоторые издания упомянуты ниже.
Enterprise
Стандартный
Web
Бизнес-аналитика
Рабочая группа

PostgreSQL

Лицензия: Open Source

Вы не слышите, как много о PostgreSQL в качестве двух других участников в этом списке приобретает максимальную целевую аудиторию, но PostgreSQL сделала огромный знак по работе с базами данных для таких тяжеловесов, как Yahoo и Skype, а также много сайтов онлайн игр - и имеет приобрел свой размер рынка браконьерства давних пользователей Oracle. Одно огромное преимущество PostgreSQL является то, что это с открытым исходным кодом, но имеет большие эксплуатационные преимущества, как: многоверсионное управление параллелизмом, горячее резервное копирование, репликация асинхронная и поддержка табличных пространств между ними. PostgreSQL весы очень хорошо, очень легко управлять и использовать и хорошо играет со всеми основными операционными системами. И если вы ищете помощь или предложения, есть очень активное сообщество PostgreSQL, который внес большой вклад в развитие и совершенствование базы данных.

MariaDB

Лицензия: Open Source

Один из самых популярных Open Source реляционных баз данных MariaDB была создана тем же набором людей, которые создали MySQL (который был приобретен Oracle). Необходимость создания альтернативы MYSQL сделал путь для развития MariaDB.
MariaDB построен на современной архитектуре, что придает ему гибкость, которая поддерживает использование возникающих на рынке.

Некоторые из точек, что делает MariaDB настолько популярным

Эффективные двигатели хранения

MariaDB поставляется вместе с плагинами и хранения машин, таких как Connect и Cassandra двигателей для хранения NoSQL движков; прокатки миграции из устаревших баз данных; Паук для сегментирования; TokuDB с фрактальными индексами etc.Most из них экранные для MySQL через третьи лицо. Тем не менее, MariaDB высвобождается с ними и, следовательно, делает его и эффективна проста в использовании.

превосходство производительности

Он разработал улучшенный оптимизатор запросов и другие показатели, связанный с чеком, который практически делает это быстрее, чем MySQL. Тем не менее, эти претензии MariaDB являются результатом comparrison на основе ситуации.

Легко перейти

Если вы используете один и тот же базовую версию MySQL, вы можете практически удалить его и установить MariaDB, и вы хорошо идти.
Переход к MariaDB так же легко, как установка MariaDB или эквивалентную команду на выбранном Linux привкусом.

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

От прошлого к настоящему

Нет смысла охватывать историю баз данных, цепляясь за любое сходство, поэтому моментом появления баз данных будет не античное время, а 60-е годы 20 века. Именно тогда компьютеры стали эффективным инструментом для коммерческих компаний, а организация COBASYL (COnference on DAta SYstems Language), создавшая в 1959 году язык COBOL и впоследствии наделив его возможностями для управления БД, помогла им управлять резко возросшими потоками информации.

К концу 60-х появилась первая сетевая модель данных, возникло понятие СУБД, а в 1974 году компания IBM стала работать над языком для System R . Так на свет появился SEQUEL (Structured English QUEry Language). Однако позже, когда стало известно, что такое название используется британской авиастроительной компанией, было решено немного сократить до привычного SQL.

С увеличением доступности компьютеров стали появляться ориентированные на простых пользователей БД (Paradox, RBASE 5000, RIM, Dbase III), API (ODBC, Excel, Access) и средства разработки (VB, Oracle Developer, PowerBuilder). Само-собой, тенденция охватила и интернет, на сегодняшний день эффективное взаимодействие с БД - негласное требование к любому ресурсу с более-менее динамической информацией.

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

Настоящее и будущее

До старта нового тысячелетия в IT доминировал реляционный подход к базам данных, однако необходимость повышать быстродействие неизбежно привела к развитию идеи NoSQL (not only SQL). Если вы с трудом представляете, что это и в чём разница, то перейдя по ссылке вы получите исчерпывающие ответы на все свои вопросы.

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

NoSQL подход позволяет избежать этих проблем за счёт отсутствия строгих информационных связей. Но тут возникает другая проблема - организация доступа. Решается она 4 основными способами: с помощью документной ориентации, расширяемых записей (разреженных матриц), ключей доступа и теории графов. Естественно, что подход NoSQL требует от разработчика больше знаний и умений, но результаты куда эффективнее. Именно поэтому считается, что SQL уже сейчас уходит в историю, а NoSQL - будущее всех БД.

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

Рейтинг

  1. Oracle;
  2. MySQL;
  3. Microsoft SQL Server;
  4. PostgreSQL;
  5. MongoDB;
  6. Cassandra;
  7. Microsoft Access;
  8. Redis;
  9. SQLite.

Итого, 7 из 10 представителей рейтинга - реляционные базы данных, а также по одному экземпляру документоориентированной БД (MongoDB), с распределёнными значениями (Cassandra) и использующей подход «ключ-значение» (Redis). Таким образом, на сегодняшний день доминирование реляционных баз данных неоспоримо, но что будет завтра?

Для ответа на этот вопрос обратимся на этом же ресурсе к разделу тренды . Если брать отметки времени в более чем в 2 или 4 года, то наибольший рост демонстрирует подход с использованием теории графов. В то же время за последний год максимальный рост популярности продемонстрировали БД на основе временных данных . Это относительно новый подход, он также считается NoSQL, преимущество сводится к созданию структуры на основе дат или временных диапазонов. На данный момент наиболее популярным представителем Time Series БД является InfluxDB.

А какие базы данных используете вы? И какая на ваш взгляд наиболее перспективная NoSQL БД?

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

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

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

  • работа с базами на внешней (диски, ленты и т. д.) и оперативной памяти;
  • совместный доступ пользователей;
  • контроль изменений, архивирование и восстановление баз;
  • предоставление языка доступа для ;
  • утилиты для создания, модификации и управления базами.

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

Реляционные системы управления

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

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

Реляционная модель успешно используется и в разработке Интернет-проектов. Примерами являются СУБД MySQL и PostgreSQL.

Технология NoSQL

Увеличение объемов информации и усложнение взаимосвязей привело к появлению новых систем управления базами данных. Информация перестала быть независимой друг от друга, и иногда вообще невозможно жестко описать ее структуру. Реляционные базы уже не могут справляться с такими задачами. Это привело к появлению нового типа информационных баз и систем управления ими, получивших общее название NoSQL («нет SQL»).

  1. «Ключ-Значение» . Самые популярные СУБД - Redis, Voldemort, Tokyo Cabinet и Dynomite.
  2. Клоны СУБД BigTable. Разработана Google для внутреннего использования в поисковой системе. Официально BigTableне предлагается, но есть СУБД на ее основе. Это Hadoop, Hypertable и Cassandra.
  3. Документо-ориентированные. Наиболее популярны Berkeley DB XML, MongoD, eXist и CouchDB.
  4. Базы на основе Используется в Neo4j, Sones graphDB и AllegroGraph.

Будущее СУБД

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

Реляционные базы данных уже давно используются в программировании. В своё время они обрели популярность благодаря простоте и удобству реляционной модели работы с данными.

Данная статья анализирует различия между наиболее популярными реляционными системами управления базами данных (СУБД): SQLite, MySQL и PostgreSQL.

Системы управления базами данных

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

Реляционные системы управления базами данных

Реляционные СУБД для работы с данными используют реляционную модель. Эта модель хранит любую информацию в таблицах в виде связанных записей с атрибутами.

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

Отношения и типы данных

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

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

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

Примечание : Базы данных NoSQL не имеют таких строгих ограничений, поскольку они не выстраивают таких отношений между данными. Чтобы узнать больше о NoSQL, читайте .

Популярные реляционные базы данных

В данной статье мы рассмотрим три наиболее важные и популярные СУБД с открытым исходным кодом.

  • SQLite: встроенная мощная система управления базами данных.
  • MySQL: самая популярная и широко распространённая БД.
  • PostgreSQL: продвинутая SQL-совместимая объектная СУБД с открытым исходным кодом.

Примечание : Приложения с открытым исходным кодом почти всегда дают пользователям право на свободное использование и изменение кода. Ответвляя код, вы можете создать совершенно новое приложение. Одним из ответвлений MySQL, например, является MariaDB .

SQLite

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

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

Типы данных SQLite

  • NULL: пустое значение.
  • INTEGER: целочисленное значение (зависимо от объёма значение хранится в 1, 2, 3, 4, 6 или 8 байтах).
  • REAL: число с плавающей точкой, хранится в виде 8-байтного IEEE.
  • TEXT: текстовая строка, хранится в зашифрованном виде (UTF-8, UTF-16BE или UTF-16LE).
  • BLOB: бинарные данные, хранятся в том виде, в котором были введены.

Преимущества SQLite

  • Простое строение на основе файлов: вся база данных состоит всего из одного файла, что увеличивает её портативность.
  • Стандарты: несмотря на простоту, система SQLite основана на SQL. Некоторые функции опущены (RIGHT OUTER JOIN или FOR EACH STATEMENT), однако вместо них добавлены другие.
  • SQLite отлично подходит для разработки или тестирования. На этих этапах почти всегда необходимо простое, но масштабируемое решение.

Недостатки SQLite

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

Когда лучше использовать SQLite

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

Когда лучше не использовать SQLite

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

MySQL

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

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

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

Типы данных MySQL

  • TINYINT: целое число в диапазоне от -128 до 127 (1 байт).
  • SMALLINT: целое число от -32768 до 32767 (2 байта).
  • MEDIUMINT: число от -8388608 до 8388608 (3 байта).
  • INT или INTEGER: число в диапазоне от -2147683648 до 2147683648 (4 байта).
  • BIGINT: число от -2 63 до 2 63 -1 (8 байт).
  • FLOAT: число с плавающей точкой (4 байта).
  • DOUBLE, DOUBLE PRECISION, REAL: число с двойной точностью и плавающей точкой.
  • DECIMAL, NUMERIC: величины повышенной точности.
  • DATE: дата.
  • DATETIME: дата и время.
  • TIMESTAMP: временная метка.
  • TIME: время в формате hh:mm:ss.
  • YEAR: год (по умолчанию хранится в виде 4 цифр, но можно настроить и 2).
  • CHAR: строка фиксированной длины.
  • VARCHAR: строки переменных.
  • TINYBLOB, TINYTEXT: Тип TEXT позволяет хранить текст, а BLOB — изображения, звук, электронные документы и т.п. Максимальная длина – 225 символов.
  • BLOB, TEXT: большие объемы текста, максимум 65535 символов.
  • MEDIUMBLOB, MEDIUMTEXT: аналогично предыдущему, но максимум до 16777215 символов.
  • LONGBLOB, LONGTEXT: аналогично предыдущему, но максимум до 4294967295 символов.
  • ENUM: принимает только одно из значений заданного множества.
  • SET: принимает любой или все элементы из значений заданного множества.

Преимущества MySQL

  • Простота в работе: MySQL очень просто установить и настроить. Сторонние инструменты, в том числе визуализаторы (интерфейсы) значительно упрощают работу с данными.
  • Функциональность: MySQL поддерживает огромное количество функций SQL.
  • Безопасность: MySQL предоставляет много встроенных продвинутых функций для защиты данных.
  • Масштабируемость и производительность: MySQL может работать с большими объёмами данных.

Недостатки MySQL

  • Ограничения: структура MySQL накладывает некоторые ограничения, из-за которых не смогут работать продвинутые приложения.
  • Уязвимости: метод обработки данных, применяемый в MySQL, делает эту СУБД немного менее надёжной по сравнению с другими СУБД.
  • Медленное развитие: хотя MySQL является продуктом с открытым исходным кодом, он очень медленно развивается. Однако тут следует заметить, что на MySQL основано несколько полноценных баз данных (например, MariaDB).

Когда использовать MySQL

  • Распределенные операции: автономный сервер баз данных MySQL поддерживает множество операций и предоставляет несколько дополнительных функций.
  • Высокая безопасность данных: MySQL предлагает высокую защиту данных.
  • Веб-сайты и веб-приложения: несмотря на ограничения MySQL может поддерживать работу почти любого сайта и веб-приложения. Этот гибкий и масштабируемый инструмент прост в использовании.
  • Пользовательские решения: MySQL можно подогнать под строгие требования сайта или приложения.

Когда лучше не использовать MySQL

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

PostgreSQL

PostgreSQL – это продвинутая открытая объектно-ориентированная СУБД. PostgreSQL реализует SQL-стандарты ANSI/ISO.

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

Основанная на надёжной технологии СУБД PostgreSQL может одновременно обрабатывать большое количество задач. Поддержка согласованности достигается без блокирования операций чтения благодаря MVCC.

Хотя СУБД PostgreSQL не так популярна, как MySQL, для неё тоже разработано большое количество дополнительных инструментов и библиотек, которые упрощают работу с данными и увеличивают производительность СУБД.

Типы данных PostgreSQL

  • bigint: знаковое восьмибайтное целое число.
  • bigserial: восьмибайтное целое число с автоинкрементом.
  • bit [(n)]: битовая строка фиксированной длины.
  • bit varying [(n)]: битовая строка с переменной длиной.
  • boolean: логическое значение (true/false).
  • box: четырёхугольник на плоскости.
  • bytea: бинарные данные.
  • character varying [(n)]: строка символов с переменной длиной.
  • character [(n)]: строка символов с фиксированной длиной
  • cidr: адрес сети IPv4 или IPv6.
  • circle: круг на плоскости.
  • date: дата (год, месяц, день).
  • double precision: число с плавающей точкой двойной точности (8 байт).
  • inet: адрес хоста IPv4 или IPv6.
  • integer: знаковое четырёхбайтовое целое число.
  • interval [(p)]: промежуток времени.
  • line: бесконечная линия на плоскости.
  • lseg: сегмент линии на плоскости.
  • macaddr: MAC (Media Access Control) адрес.
  • money: валюта.
  • numeric [(p, s)]: точное числовое значение с выбранной точностью.
  • path: геометрический путь на плоскости.
  • point: геометрическая точка на плоскости.
  • polygon: закрытый геометрический путь на плоскости (полигон)
  • real: число с плавающей точкой одинарной точности (4 байта).
  • smallint: знаковое двухбайтное целое число.
  • serial: четырёхбайтное целое число с автоинкрементом.
  • text: строка символов с переменной длиной.
  • time [(p)] : время дня (без часового пояса).
  • time [(p)] with time zone: время дня и часовой пояс.
  • timestamp [(p)] : временная метка (дата и время) без часового пояса.
  • timestamp [(p)] with time zone: временная метка с часовым поясом.
  • tsquery: запрос текстового поиска.
  • tsvector: документ текстового поиска.
  • txid_snapshot: снапшот ID-транзакции уровня пользователя.
  • uuid: универсальный уникальный идентификатор.
  • xml: данные XML.

Преимущества PostgreSQL

  • Система управления базами данных PostgreSQL открытая, SQL-совместимая, свободная.
  • Активное сообщество PostgreSQL поможет найти решение любой проблемы, связанной с СУБД, в любое время суток.
  • Поддержка сторонних инструментов: помимо встроенных продвинутых функций, PostgreSQL поддерживает множество открытых сторонних инструментов для проектирования, управления данными и т.п.
  • Масштабируемость и расширяемость.
  • Объектно-ориентированность.

Недостатки PostgreSQL

  • Производительность: в некоторых ситуациях производительность PostgreSQL ниже, чем у MySQL.
  • Невысокая популярность.
  • В связи с вышеперечисленными недостатками не все хостинг-провайдеры поддерживают PostgreSQL.

Когда использовать PostgreSQL

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

Когда лучше не использовать PostgreSQL

  • Если приложению нужны быстрые операции чтения.
  • Если приложению не нужна абсолютная целостность данных, ACID или сложная структура, PostgreSQL может стать слишком сложным решением.
  • Репликация данных сложнее, чем в MySQL, потому в кластерах PostgreSQL лучше не использовать.
Tags:

1. Какие тренды в развитии серверных СУБД вы бы могли отметить в 2015–2016 годах?

Виталий Чесноков , QSOFT
Самые главные тренды в развитии современных СУБД: использование виртуализации и GRID-технологии, самодиагностика и автоматическое исправление, использование NoSQL-СУБД в Big Data, использование NewSQL-СУБД, выполнение C/C++ кода в адресном пространстве СУБД.

За последние несколько лет многократно выросли объемы данных, подходящих для обработки и хранения в БД. Был принято изменение закона «О персональных данных», гласящее, что персональные данные граждан РФ необходимо хранить на территории РФ. В некоторых западных странах так же действуют подобные законы. Все это приводит нас к необходимости кластеризации и разбиения данных на части.

Повсеместно растет процент использования NoSQL-СУБД, где это возможно, ввиду высокой скорости работы с данными и возможности сравнительно простой кластеризации. Получает распространение новый тип СУБД - NewSQL. В основные беспрецедентные функции NewSQL входят: возможность асинхронной мастер-мастер репликации, заменяющей классическую master-slave схему и обеспечивающей большую гибкость для высоконагруженных проектов; упрощение администрирования и обеспечение динамического управления базой; поддержка хранимых процедур на C/C++ и возможность выполнения C/C++ кода в адресном пространстве СУБД (обеспечивают практически неограниченную расширяемость и невероятный прирост в производительности); улучшение средств диагностики и отладки.

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

Николай Фетюхин , MST
Переход к NoSQL и специализация баз данных. Например, можно обратить внимание на Redis и Tarantool. Последний содержит даже свой сервер приложений. Интересный тренд - совмещенные СУБД и backend, как Parse от Facebook. Также плавная миграция баз данных в облака.

Петр Урваев , SimbirSoft
Функции, успешно себя зарекомендовавшие в одних СУБД, через некоторое время реализуются и в других продуктах. Например, материализованные представления, вначале появившиеся в Oracle DBMS, через некоторое время были реализованы в MS SQL Server, а затем появились и в PostgreSQL. Преимущества, которые предоставляют NoSQL-решения постепенно также реализуются в реляционных СУБД. Например, в последних версиях PostgreSQL реализована поддержка работы с данными в формате JSON.

Евгений Гусев , ITECH
Изменения последних лет в сегменте СУБД носили как частный - применительно к отдельным лидирующим продуктам, так и структурный характер, так что трендов множество. Во-первых, гетерогенность. Переход к модели микросервисов дал возможность гибко подбирать средства решения задачи хранения данных, не ограничиваясь одним. Во-вторых, развитие NoSQL, in-memory storages. В-третьих, Big Data - революция, потребовавшая переосмыслить как методику хранения данных, так и само понятие «данные». В-четвертых, колоночные (column-oriented) БД.

2. По-вашему мнению, существует ли тенденция перехода СУБД в «облака»? Какие существуют плюсы и минусы данного подхода?

Виталий Чесноков , QSOFT
Да, безусловно такая тенденция существует. Для начала нужно разделять два принципиальных подхода в работе СУБД в облаке.

Первый - разворачивание в облаке виртуальной машины с СУБД. Можно загрузить на нее собственный образ или воспользоваться заранее заготовленным, с уже оптимизированной СУБД. По сути такая виртуальная машина принципиально не отличается от обычного физического сервера. Основным преимуществом по сравнению с физическим сервером является легкость масштабирования, как вертикального (можно в любой момент выделить для данной «виртулки» больше ресурсов), так и горизонтального (создание новой «виртуалки» занимает всего несколько минут). Еще один существенный плюс - высокая доступность облачных виртуальных машин (99,9%–99,99%). Также облачные хостеры предоставляют множество дополнительных услуг, таких как мониторинг, резервное копирование, панель управления сервером и т.д.

Принципиально иным подходом является облачная СУБД. В данном случае клиент покупает не сервер, а просто услугу использования СУБД. Текущий рынок публичных облачных СУБД, составляющий $400 млн, к 2017 году увеличится до $1,2 млрд. Основные плюсы данного подхода: оплата не предоставленных ресурсов (которые могут и «простаивать»), а лишь реально использованных: объем хранимых данных, количество обрабатываемых СУБД операций; нет необходимости настраивать и администрировать СУБД - эти задачи полностью лежат на хостере; нет необходимости задумываться о масштабировании; хостер предоставляет множество удобных и интуитивно понятных инструментов для управления СУБД; высокая доступность. Основным минусом является отсутствие возможности тонкой настройки СУБД.

Также можно отдельно выделить такой подвид облачной СУБД как DbaaS (Database as a Service). Практически всегда конкретный DbaaS - это одна определенная СУБД, предоставляемая в облаке непосредственными разработчиками. Отсюда очевидно выводится и разница в бизнес-моделях: облачные СУБД подходят для масштабных типовых задач, а DbaaS - для специализированных, под конкретную марку движка БД, с возможностью прямого общения с его разработчиками. Кроме того, DbaaS позволяет значительно точнее подобрать систему под нужную нагрузку, в частности за счет регулирования количества клиентских подключений.

Николай Апурин , Artwell
Тенденция существует. Большинство крупных (общероссийских) систем уже используют облачные БД.

Николай Фетюхин , MST
Тенденция слабая. Использование облаков хоть и снижает некоторые издержки, но приводит к новым расходам. Использование облака может быть выгодно лишь для проектов со слабой посещаемостью.

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

Петр Урваев , SimbirSoft
Тенденция перехода СУБД в облака существует как часть общего тренда по переносу в облака всей IT-инфраструктуры организаций. Основным плюсом такого подхода является возможность передать сопровождение БД. К минусам можно отнести хранение важных данных на неподконтрольной площадке. Пользователь облачного хранилища при необходимости уничтожения хранящихся данных не может быть уверен, что данные действительно стерты.

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

3. Какие факторы влияют на выбор СУБД? Для каких проектов больше подходят SQL базы данных, а для каких - NoSQL?

Виталий Чесноков , QSOFT
Основным фактором при выборе между SQL и NoSQL-СУБД являются нужды приложения. Для одних задач лучше подходит SQL, для других - NoSQL.

Можно выделить несколько ключевых различий между этими типами СУБД. Формат данных в SQL очень строгий, есть четкие схемы таблиц с указанием, где используется какой тип данных. В NoSQL нет заранее заданных схем документов - любая информация может быть добавлена в любой документ.
В SQL существуют сложные связи между различными таблицами. Данные в одной таблице часто являются ссылкой на данные в другой (принцип нормализации данных). В NoSQL, как правило, каждый документ является изолированной информационной единицей и хранит в себе все имеющиеся данные (принцип денормализации).
В SQL есть встроенные механизмы поддержки целостности данных (например, нельзя удалить запись из таблицы, если на нее ссылаются в других таблицах). В NoSQL таких механизмов нет, поэтому важна денормализация данных (в идеале - каждый документ хранит абсолютно всю информацию о каком-либо объекте).
В SQL есть механизм транзакций, который позволяет выполнить несколько SQL-запросов по принципу «все или ничего». В NoSQL подобный механизм существует только в пределах одного документа.
В идеальном случае NoSQL работает быстрее, чем SQL, за счет более простого метода хранения данных, который позволяет получить всю информацию об объекте простым запросом одного документа. Однако есть проблема, связанная с тем, что наиболее популярные NoSQL-СУБД появились достаточно недавно. Следствием этого является меньшее количество информации по этим СУБД и большее количество пока нерешенных проблем.
NoSQL гораздо проще масштабировать за счет отсутствия сложных логических связей между документами. К тому же большая часть NoSQL-СУБД изначально создавалась с упором на механизмы масштабирования.

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

Николай Апурин , Artwell
NoSQL - для нестандартных вычислений с огромным объемом данных. Но как показала практика, объемы до 20 миллионов записей отлично перерабатываются SQL-базами.

Николай Фетюхин , MST
Технологии NoSQL активно используются известными компаниями, в том числе в высоконагруженных проектах. Сохранение данных и простые выборки при использовании NoSQL будут действительно быстрыми. В случае более сложных запросов задачу придется решать на стороне продукта, что усложняет сам продукт. В чистом виде мы не выбираем NoSQL. Усложнение логики продукта и эмуляции базовых вещей SQL приводит к удорожанию проекта. И не каждое NoSQL-решение обеспечивает безопасность данных в критических ситуациях.

Петр Урваев , SimbirSoft
Выбор БД зачастую зависит от предпочтений архитектора, возможной нагрузки, необходимого функционала. SQL-БД позволяют четко определять схемы хранения данных и извлекать данные с использованием сложных запросов, NoSQL-БД позволяют хранить данные в менее упорядоченном формате и поддерживают горизонтальное масштабирование. Зачастую в распределенных системах используются одновременно SQL и NoSQL базы данных, каждая из которых решает свои задачи.

Евгений Гусев , ITECH
В современном состоянии SQL / NoSQL - скорее не конкурирующие, а дополняющие друг друга сущности. Использование в одном приложении SQL-решений, когда требуется работать со сложными данными в их взаимосвязи, и NoSQL, когда на передний план выходит скорость работы с неструктурированной информацией, - совершенно естественная практика.

4. Как вы оцениваете степень распространения платных лицензий СУБД среди пользователей? В каких случаях имеет смысл покупать лицензию?

Виталий Чесноков , QSOFT
Есть два различных варианта разделения СУБД па платные и бесплатные.

Первый - бесплатные версии коммерческих СУБД (есть у MS SQL, Oracle и т.д.) По сути это урезанная версия СУБД, в которой отсутствует часть функционала. Здесь основной фактор выбора очень прост - нужен ли данному проекту данный функционал. Реже бывает бесплатная версия, которая не отличается от коммерческой по функционалу, но реже обновляется (Couchbase Server).

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

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

Николай Апурин , Artwell
Зачем платить, если есть бесплатные? Тем не менее, много решений, которые могут работать только с платными БД. В основном, это иностранные практики.

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

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