Тарифы Услуги Сим-карты

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

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

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

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

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

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

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

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

Все реляционные СУБД поддерживают 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 в ближайшие годы смогут значительно потеснить лидеров в разработке сложных информационных систем.

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

Чтобы лучше разобраться в СУБД, ознакомьтесь с .

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

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

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

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

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

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

Такого рода ограничения обычны для реляционных баз данных. Фактически, они и формируют суть отношений.

Популярные РСУБД

В этой статье мы расскажем о 3 наиболее популярных РСУБД:

  • SQLite: очень мощная встраиваемая РСУБД.
  • MySQL: самая популярная и часто используемая РСУБД.
  • PostgreSQL: самая продвинутая и гибкая РСУБД.

SQLite

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

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

Поддерживаемые типы данных

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

Note: для получения более подробной информации ознакомьтесь с документацией .

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

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

Недостатки

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

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

  • Встроенные приложения: все портируемые не предназначенные для масштабирования приложения - например, локальные однопользовательские приложения, мобильные приложения или игры.
  • Система доступа к дисковой памяти: в большинстве случаев приложения, часто производящие прямые операции чтения/записи на диск, можно перевести на SQLite для повышения производительности.
  • Тестирование: отлично подойдёт для большинства приложений, частью функционала которых является тестирование бизнес-логики.

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

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

MySQL

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

Поддерживаемые типы данных

  • TINYINT: очень маленькое целое.
  • SMALLINT: маленькое целое.
  • MEDIUMINT: целое среднего размера.
  • INT или INTEGER: целое нормального размера.
  • BIGINT: большое целое.
  • FLOAT: знаковое число с плавающей запятой одинарной точности.
  • DOUBLE, DOUBLE PRECISION, REAL: знаковое число с плавающей запятой двойной точности.
  • DECIMAL, NUMERIC: знаковое число с плавающей запятой.
  • DATE: дата.
  • DATETIME: комбинация даты и времени.
  • TIMESTAMP: отметка времени.
  • TIME: время.
  • YEAR: год в формате YY или YYYY.
  • VARCHAR: строка переменной длины.
  • TINYBLOB, TINYTEXT: BLOB- или TEXT-столбец длиной максимум 255 (2^8 — 1) символов.
  • BLOB, TEXT: BLOB- или TEXT-столбец длиной максимум 65535 (2^16 — 1) символов.
  • MEDIUMBLOB, MEDIUMTEXT: BLOB- или TEXT-столбец длиной максимум 16777215 (2^24 — 1) символов.
  • LONGBLOB, LONGTEXT: BLOB- или TEXT-столбец длиной максимум 4294967295 (2^32 — 1) символов.
  • ENUM: перечисление.
  • SET: множества.

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

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

Недостатки

  • Известные ограничения: по определению, MySQL не может сделать всё, что угодно, и в ней присутствуют определённые ограничения функциональности.
  • Вопросы надёжности: некоторые операции реализованы менее надёжно, чем в других РСУБД.
  • Застой в разработке: хотя MySQL и является open-source продуктом, работа над ней сильно заторможена. Тем не менее, существует несколько БД, полностью основанных на MySQL (например, MariaDB). Кстати, подробнее о родстве MariaDB и MySQL можно из нашего с создателем обеих РСУБД - Джеймсом Боттомли.

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

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

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

  • SQL-совместимость: поскольку MySQL не пытается полностью реализовать стандарты SQL, она не является полностью совместимой с SQL. Из-за этого могут возникнуть проблемы при интеграции с другими РСУБД.
  • Конкурентность: хотя MySQL неплохо справляется с операциями чтения, одновременные операции чтения-записи могут вызвать проблемы.
  • Недостаток функций: в зависимости от выбора движка MySQL может недоставать некоторых функций.

PostgreSQL

PostgreSQL - это самая продвинутая РСУБД, ориентирующаяся в первую очередь на полное соответствие стандартам и расширяемость. PostgreSQL, или Postgres, пытается полностью соответствовать SQL-стандартам ANSI/ISO.

PostgreSQL отличается от других РСУБД тем, что обладает объектно-ориентированным функционалом, в том числе полной поддержкой концепта ACID (Atomicity, Consistency, Isolation, Durability).

Будучи основанным на мощной технологии Postgres отлично справляется с одновременной обработкой нескольких заданий. Поддержка конкурентности реализована с использованием MVCC (Multiversion Concurrency Control), что также обеспечивает совместимость с ACID.

Хотя эта РСУБД не так популярна, как MySQL, существует много сторонних инструментов и библиотек для облегчения работы с PostgreSQL.

Поддерживаемые типы данных

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

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

  • Полная SQL-совместимость .
  • Сообщество: PostgreSQL поддерживается опытным сообществом 24/7.
  • Поддержка сторонними организациями: несмотря на очень продвинутые функции, PostgreSQL используется в многих инструментах, связанных с РСУБД.
  • Расширяемость: PostgreSQL можно программно расширить за счёт хранимых процедур.
  • Объектно-ориентированность: PostgreSQL - не только реляционная, но и объектно-ориентированная СУБД.

Недостатки

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

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

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

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

  • Скорость: если всё, что нужно - это быстрые операции чтения, не стоит использовать PostgreSQL.
  • Простые ситуации: если вам не требуется повышенная надёжность, поддержка ACID и всё такое, использование PostgreSQL - это стрельба из пушки по мухам.

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
Платные лицензии СУБД предпочтительнее бесплатных, когда проект полагается на возможности конкретной БД, и для него важно, чтобы используемые возможности работали так, как заявлено, а проблемы в их работе оперативно устранялись. Сейчас коммерческие и свободные БД используются одинаково часто, а большинство новых проектов выбирают свободные БД, поскольку возможности по работе с данными и стабильность примерно находятся на одном уровне у платных и бесплатных СУБД.

И Azure SQL Database .

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

Microsoft повысила свой конкурентоспособный уровень, запустив бесплатные инструменты Developer Edition of SQL Server и Database Migration Service для миграции баз данных SQL Server и Oracle в среду Azure SQL Database.

Несмотря на эти сильные стороны SQL Server многие корпоративные заказчики по-прежнему не считают эту СУБД подходящей для критически важных приложений, а ряд клиентов Microsoft недовольны схемой лицензирования этого продукта корпорации. Microsoft все сложнее удерживать и привлекать клиентов на фоне того, как конкурирующие Google и Amazon предлагают более привлекательные цены на свои продукты.

К достоинствам Oracle на рынке аналитики отнесли правильную стратегию обновления портфеля облачных продуктов, поддержку совместимости со старыми решениями (три четверти клиентов Oracle работают с Oracle Database более 10 лет) и высокие показатели удовлетворенности продуктами.

Минусами Oracle эксперты сочли сложности лицензирования и проблемы, связанные с поддержкой клиентов и выпуском обновлений. Чтобы упростить установку исправлений, вендор начал выпускать их один раз в квартал.

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

Говоря об IBM, аналитики Gartner указали на богатую функциональность (в том числе облачные и гибридные возможности), которой обладают продукты OPDBMS компании, а также активное использование популярных решений с (Hadoop , Kafka , Parquet, Spark и др.) и функций резервного копирования и восстановления данных в/из Swift и AWS S3 . На пользу IBM играет и глобальное присутствие корпорации.

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

Кроме того, как отмечают специалисты, база данных DB2 проигрывает большинству конкурентов по скорости обработки транзакций, загрузки данных (ingestion) и их автоматического распределения. IBM проделала большую работу в том, чтобы упростить восприятие бренда на рынке (в частности, DB2 переименовала в Db2), однако клиенты, по всей видимости, не увидели эти изменения или безразлично отнеслись к ним.

Расстановка сил на рынке СУБД может кардинально измениться - IDG

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

У компании 30-летняя история на рынке поставок хранилищ данных в сочетании с подготовленным оборудованием и специализированным ПО базы данных аналитики. Teradata имеет более 1 тыс. организаций-заказчиков по всему миру.

Продукты Teradata включают решения для интеллектуального анализа данных, ведомственные решения, ориентированные на поиск данных и корпоративные решения. Её портфолио содержит облачные решения и продукты для работы с большими данными. Aster Data добавила новые возможности в линейку продуктов Teradata (такие как MapReduce, неструктурированные данные и графический анализ).

В 2010 году Sybase была приобретена компанией SAP. В квадранте Gartner рассматривается СУБД SAP Sybase IQ , ставшая первой колоночной СУБД. Она же является основным хранилищем данных СУБД SAP/Sybase. У Sybase тысячи клиентов Sybase IQ во всём мире.

Oracle предлагает широкий спектр продуктов, позволяющий клиентам сделать выбор при разработке хранилища, использовать сертифицированную конфигурацию или приобрести устройство, готовое к настройке хранилища и нагрузке. В дополнение к СУБД и сертифицированным конфигурациям Oracle предлагает три фирменных продукта Exadata : Oracle Exadata X2-2 для хранилищ данных и смешанных рабочих нагрузок, Oracle Exadata X2-8 для облачных решений и Oracle Exadata Storage Expansion Rack X2-2 для увеличения ёмкости хранилища. Oracle сообщает о наличии более 300 тыс. клиентов по всему миру.

Корпорация IBM предлагает как автономные решения СУБД, так и устройства для хранилищ данных. В настоящее время на рынке представлено семейство IBM Smart Analytics System (ISAS) и бренд Netezza . ПО хранилищ данных IBM - InfoSphere Warehouse доступно для Unix , Linux , Windows и z/OS. IBM имеет тысячи клиентов баз данных по всему миру и более 500 клиентов на устройства (комбинация Netezza и ISAS).

Greenplum является частью подразделения компании EMC - Data Products, разрабатывающего хранилища данных СУБД массово-параллельной архитектуры (MPP), работающих на Linux и Unix. Продукт реализуется в виде устройства или автономной СУБД. Компания имеет в мире более 400 клиентов.

Microsoft продолжает продажу своих решений SQL Server 2008 DBMS (Release 2) Business Data Warehouse и Fast Track Data Warehouse для обеспечения хранилища данных клиентов, которым не требуется СУБД массово-параллельной архитектуры. Microsoft выпустила собственное ​​устройство хранилища данных массово-параллельной архитектуры - SQL Server 2008 R2 Parallel Data Warehouse (Microsoft) в ноябре 2010 года.

В состав претендентов в этом квадранте вошла лишь компания 1010data.

Компания 1010data создана 11 лет назад как провайдер управляемого сервиса хранилища данных с интегрированной СУБД и решением бизнес-аналитики () для финансового сектора. В последнее время её решения применяются и в секторе розничных/потребительских упакованных товаров (CPG). 1010data может разместить свои решения с использованием модели программного обеспечения как услуги (SaaS) или поддерживать управляемое решение на площадке клиента. У 1010data около 200 заказчиков.

Сектор дальновидных игроков представлен компанией Vertica

Производители СУБД Обзор MS SQL 2014 Лекция № 2. 2 Бутенко И. В. 2017 год

Введение Клиент-серверная архитектура: Кл - “активная” программа, Срв – пассивная. Реляционная база данных - это набор информации, сгруппированной в одну или несколько таблиц.

Производители СУБД IDC 2015 г. Oracle – 45% IBM – 18% Microsoft – 20% SAP– 5% Other – 12% Российская СУБД ЛИНТЕР компании РЕЛЭКС.

Рынок СУБД для ФГИС Федеральные инф. системы РФ (2015) Microsoft – 41, 1% Oracle - 28%. My. SQL – 15, 6% Postgree. SQL – 9, 7 IBM – 3, 1%

Oracle 1977 г. – Software Development Laboratories (SDL). 1979 г. – Relational Software, Inc. (RSI). Выпустила первую коммерческую СУБД Oracle v 2 на основе языка запросов SQL. 1982 г. – Oracle Systems 2013 г. – СУБД Oracle Database 12 c.

Oracle В результате поглощения Sun Microsystems ($7, 4 млрд.), к Oracle перешли активы My. SQL AB и свободно распространяемая СУБД My. SQL. Последняя версия 02. 2016 году – 5. 6. 29. Berkeley DB - встраиваемая нереляционная СУБД, перешедшая к Oracle в 2006 году в результате приобретения компании Sleepycat Software.

Виды лицензий Named User Plus (NUP) - лицензирование по количеству именованных пользователей. Процессор (Processor, CPU) - это процессор, на котором установлены и/или работают продукты Oracle.

Редакции 12 c Express Edition – бесплатная редакция; оперативная память - 1 Гб, 1 процессор, Win, Linux 32 x. Max объем пользовательских данных 4 Гб. Personal Edition (460$/NUP) – Версия для разработчиков. Standard Edition One ($5800/проц.) – не может устанавливаться на системы, имеющие более 2 -х процессорных разъёмов. Standard Edition ($17500/проц.) – не может устанавливаться на системы, имеющие более 4 -х процессорных разъёмов. Enterprise Edition ($47600/проц.) – содержит все компоненты Oracle Database, а также допускает расширение.

IBM 1896 – Tabulating Machine Company. 1921 – International Business Machines. 1968 – Иерархическая СУБД IMS (Information Management System). 1978 – Реляционная СУБД System R. 2001 – покупка Informix. 2013 – DB 2 10. 5 2014 – IBM Informix 12. 10 Panther

Редакции DB 2 Express–C – базовая бесплатная версия. Нет тех. поддержки. Максимум 2 ядра и 1 процессор, 2 Гб ОЗУ. Personal Edition – поддерживает однопользовательскую разработку. Everyplace – версия для карманных компьютеров. Express Edition – до 4 ядер (процессоры Intel) и до 4 Гб ОЗУ. Можно использовать только на 2 -х процессорных 2 -х ядерных серверах (для Intel) или слабее. Workgroup Server Edition – до 16 Гб ОЗУ. Enterprise Server Edition – полнофункциональная версия. http: //publib. boulder. ibm. com/infocenter/db 2 luw/v 9 r 7/index. j sp? topic=/com. ibm. db 2. luw. licensing. doc/r 0053238. ht ml

Редакции Informix Developer Edition – бесплатная некоммерческая версия. 1 ядро, 1 Гб ОЗУ, 8 Гб БД. Innovator-C Edition – бесплатная. 1 проц. , 4 ядра, 2 Гб ОЗУ. Choice Edition for Apple OS X and Win – 2 проц. , 8 ядер, 8 Гб ОЗУ. Growth Edition ($16050/проц.) – 4 проц. , 16 ядер, 16 Гб ОЗУ. Ultimate Edition – полнофункциональная версия. http: //www. ibm. com/developerworks/data/library/tec harticle/dm-0801 doe/index. html

Microsoft 1975 - MICROcomputer SOFTware 1988 – Microsoft и Sybsase выпустили первую версию SQL сервера для OS2. 1992 – Windows NT 3. 1 и SQL Sever 4. 2 для NT. 2005 – SQL Server 2005. 2008 – SQL Server 2008. 2014 – SQL Server 2014.

Редакции SQL Server Express Edition – поддерживает 1 процессор, 1 Гб памяти и БД до 10 Гб. Workgroup Edition – поддерживает до 2 процессоров, 4 Гб памяти, БД до 524 Пб (3743$/проц.). Standard Edition – поддерживает до 4 процессоров, 64 Гб памяти (7171$/проц.). Developer Edition – полнофункциональная версия для некоммерческого использования (37$/польз.). Enterprise Edition – полнофункциональная версия. 8 процессоров, 2 Тб памяти (27495$/проц.). Datacenter – максимальная версия (54990$/проц.). http: //www. microsoft. com/sqlserver/en/us/productinfo/compare. aspx

SAP 1976 г. - Systemanalyse und Programmentwicklung 2007 г. – приобретена Business Objects ($6, 8 млрд.). Анализ данных. 2010 г. – приобретена Sybase ($5, 8 млрд.). СУБД.

Прочие Inter. Systems: СУДБ Caché Enterprise. DB: открытый код (основа Postgre. SQL) Mark Logic: работа с неструктурированной информацией Maria. DB: открытый код + корп. версия

Службы SQL 2014 Analysis Services Reporting Services Integration Services Replication Notification Services Service Broker Full Text Search

Утилиты SQL 2014 Management Studio Books on-line Profiler Import and Export Data SQL Server Configuration Manager и т. п.

Системные БД master Содержит всю системную информацию. Записи о пользовательских логинах и все системные конфигурационные установки, информация обо всех остальных установленных в системе базах данных, включая их физическое размещение, а также информацию необходимую при их инициализации. msdb Эта база используется SQL Server Agent для хранения информации о задачах и предупреждениях, которые он должен выдавать. Кроме того там хранится протокол о выполненных задачах и их статусах.

Системные БД tempdb Содержит все временные таблицы и временные хранимые процедуры. Там же хранятся рабочие таблицы, создаваемые сервером. Это глобальный ресурс, к которому имеют доступ все пользователи. Эта база пересоздается при каждом рестарте сервера. Все временные объекты уничтожаются после разрыва соединения с пользователем. По умолчанию эта база растет, как ей необходимо. Возможно ее размещение в памяти. model Используется как шаблон при создании баз данных. При выполнении команды Create database сначала копируется вся информация, содержащаяся в этой базе. Tempdb тоже ее использует.

Объекты SQL Server Термин объект используется для описания компонента базы данных. Таблицы (table) – место хранения данных. Таблицы состоят из строк и столбцов. Хранимые процедуры – скомпилированная программа на языке SQL. Триггеры Представления Пользовательские типы данных Ограничения

Хранение объектов Физически БД представляет собой набор файлов, расположенных на диске. Формат этих файлов и детальные принципы работы с ними является коммерческой тайной производителя СУБД. Файлы данных (data file) – Основной или главный файл (Primary File) – Вторичный или дополнительный файл (Secondary File) Файлы журнала транзакций (transaction log files)

Создание БД CREATE DATABASE database_name [ ON [ [ , . . . n ] [ , [ , . . . n ] ] [ LOG ON { [ , . . . n ] } ] ] [ COLLATE collation_name ] [ WITH ]][; ]

Литература Крис Дейт «Введение в системы баз данных» Марк Шпеник, Оррин Следж и др. «Руководство администратора БД Microsoft SQL Server» Том Кайт «Oracle для профессионалов» Эрик Спирли «Корпоративные хранилища данных» Гектор Гарсиа-Молина, Конноли Т. , Кодд Э. , Чен П. , Дарвен Х. Inmon W. , Kimball R. , Marco D. , Tannenbaum Adrienne