Что такое СУБД
Для преодоления подобных проблем, были созданы системы для работы с базами данных. Они позволяют автоматизировать хранение информации.
Для чего служит СУБД
СУБД (Система управления базами данных) — специализированная программа (чаще комплекс программ), предназначенная для организации и ведения базы данных.
Что делает СУБД:
- Помогает вносить новую информацию. Благодаря тому, что структура уже создана, нужное поле для ввода можно найти с помощью встроенных инструментов СУБД;
- Быстро обновляет информацию при многопользовательском доступе. Если над базой данных работают несколько человек, изменения отобразятся у всех сразу, в режиме реального времени;
- Уменьшает риск ошибки. Основные типы СУБД:
Основные типы СУБД:
- Реляционные. Они представляют собой набор таблиц со столбцами и строками;
- NoSQL(нереляционные). В таких базах хранятся неструктурированные данные;
- Объектно-ориентированные. Базы данных, в которых информация представлена в виде объектов, как в объектно-ориентированных языках программирования;
- Распределенные. База данных состоит из нескольких файлов, причём каждый из них может находиться на разных серверах;
- Хранилища данных. Эти базы нацелены на то, чтобы максимально быстро выполнять запросы и анализировать их. Поиск данных.
Что входит в состав СУБД
Система управления базами данных (СУБД) — это комплекс инструментов:
- Ядро — управляет данными во внешней и оперативной памяти, а также фиксирует изменения в последнем сохранении. Это нужно на случай отказа;
- Процессор языка. Оптимизирует запросы на извлечение и изменение данных;
- Подсистема поддержки времени исполнения. Интерпретирует программы, которые создают пользовательский интерфейс СУБД;
- Сервисные программы. Это утилиты, которые создают дополнительные возможности для работы с данными.
Как работает СУБД
Типы:
- Общего назначения. Такой тип создан в качестве программы, которую можно установить на определенную модель оборудования с определённой операционной системой. Такие CУБД можно использовать в любой отрасли;
- Специализированные. Используются редко и только в специфических областях, в которых СУБД общего назначения применить нельзя.
Типы взаимодействия с разными СУБД:
- Файл-сервер. В этом типе взаимодействия, с компьютера пользователя тоже направляется запрос на сервер баз данных. Но есть отличие: сервер отправляет на компьютер файл. Файл наполняется, изменяется и сохраняется уже на компьютере пользователя, а не на сервере. Один из популярных примеров такой СУБД — Microsoft Office Access.
- Клиент-сервер. В основе такого взаимодействия лежит сервер базы данных и СУБД — это программа, которая установлена для работы с базой данных. Запрос с компьютера пользователя отправляется к серверу баз данных. На сервере начинается поиск, и когда данные найдены, ответ передаётся компьютеру. Все изменения и сохранения остаются на сервере. По такому принципу работает СУБД MySQL.
Удачной работы! Если возникнут вопросы — напишите нам, пожалуйста, тикет из раздел «Помощь и поддержка».
Достоинства и недостатки СУБД
Вы уже знаете, что СУБД является передаточным механизмом между прикладной программой и информационным хранилищем. База данных — это та логическая структура информационного хранилища, которая представляется прикладному программисту, взаимодействующему с данными посредством СУБД. СУБД обеспечивает физическую и логическую независимость прикладной программы от данных. Можно сказать, что необходимость использования СУБД в построении информационной системы практически доказана. Другое дело, используется ли при разработке ИС СУБД независимых разработчиков, или же система управления базами данных разрабатывается в рамках работы над самой информационной системой.
Рассмотрим преимущества и недостатки использования СУБД сторонних разработчиков, т. е. СУБД, предназначенных для широкого использования в структурах информационных систем.
Преимущества СУБД
Поддержка многозадачного и многопользовательского режимов
Абсолютное большинство современных СУБД рассчитано на работу в многозадачном и многопользовательском режиме. Первое означает, что СУБД может запускать одновременно несколько задач (потоков) обработки данных. Например, запускать запросы от пользователя и, одновременно, по расписанию запускать какие-либо задачи управления данными, скажем, резервное копирование, обмен данными с другими СУБД (репликации) и т. п. В многопроцессорных системах современные СУБД могут экономно распределять процессорную нагрузку между всеми выполняющимися потоками (распределять потоки между всеми процессорами).
С другой стороны, современные СУБД позволяют одновременно регистрироваться множеству пользователей. При этом, используя многозадачность, СУБД может одновременно обрабатывать запросы от множества пользователей. Все современные СУБД поддерживают транзакционные механизмы и блокировки для безопасной работы одновременно нескольких пользователей.
Система безопасности
Все СУБД, особенно промышленного типа (серверы баз данных), поддерживают систему ограничения доступа для различных пользователей и групп пользователей. Используя эту возможность, можно построить эффективную систему защиты конфиденциальности данных. При разработке информационной системы на основе СУБД можно просто воспользоваться уже готовой системой безопасности либо усовершенствовать ее, интегрировав систему безопасности ИС в систему безопасности СУБД. СУБД предоставляет разные механизмы ограничения доступа к данным: посредством представлений, хранимых процедур и функций, через непосредственное ограничение доступа к таблицам (ограничение операций, которые может выполнять пользователь в таблице). Кроме этого, СУБД позволяют хранить данные в зашифрованном виде если вдруг вы захотите скачать крокодильчик свомпи на компьютер
Резервное копирование
Резервное копирование — это простой и вместе с тем наиболее эффективный способ зашиты данных от повреждения. Современные СУБД обладают весьма мощной системой резервного копирования. Эта система позволяет производить резервное копирование без участия пользователя по расписанию или наступлению какого-либо события. Кроме этого, современные СУБД позволяют копировать не всю базу данных, а только те изменения, которые были в ней сделаны со времени последнего копирования (дифференциальное копирование). Также СУБД поддерживают и зеркальные базы данных, которые гарантированно содержат копию той или иной базы данных.
Поддержка транзакционных механизмов
Все современные СУБД поддерживают транзакционные механизмы. Эти механизмы являются одним из важных средств защиты данных от сбоев. Транзакции гарантируют, что даже после сбоя данные будут находиться в непротиворечивом состоянии. Использование транзакций в многопользовательской работе приводит к взаимодействию транзакций друг с другом, что может привести к получению неадекватной информации от информационной системы. Для предотвращения такой ситуации в СУБД предусмотрены довольно сложные механизмы блокировок, позволяющие устранить опасное взаимодействие.
Контроль целостности данных
Все СУБД поддерживают в том или ином виде контроль целостности баз данных. Этот контроль позволяет гарантировать уникальность ключей, непротиворечивость данных, хранящихся в столбцах таблиц, соответствие внешних и первичных ключей. Кроме этого, СУБД предоставляют наиболее мощный механизм поддержания корпоративной целостности — триггеры.
Поддержка стандартов
Разные СУБД в той или иной степени поддерживают существующие стандарты, в частности стандарты SQL. Наличие той или иной поддержки стандарта даст определенную гарантию (хотя и не полную) использовать последующие версии данной СУБД или переход на другую СУБД. Кроме этого, следование стандартам позволяет легче интегрировать ИС с другими информационными системами.
Масштабируемость
Разработчики СУБД большое значение придают масштабируемости своего продукта. Это означает, что:
- при улучшении аппаратной части компьютера (увеличения объема оперативной памяти, количества процессоров и т. д.) производительность системы должна увеличиваться;
- увеличение объемов обрабатываемой информации (объем баз данных, количество запросов за определенный промежуток времени) не должно сильно сказываться на производительности системы.
Разработчики СУБД уже многие годы работают над этой проблемой, улучшая масштабируемость своих СУБД от версии к версии. Это очень важное преимущество передынформационными системами, которые разрабатываются без использования СУБД широкого применения.
Показатели производительности
Большое значение придают разработчики СУБД показателям производительности. Это один из самых конкурентных показателей любой СУБД. Прикладной программист может полностью положиться на высокие показатели производительности СУБД и сосредоточиться на других свойствах разрабатываемой системы.
Наличие средств администрирования данных
Важнейшее достоинство использования СУБД общего назначения — это наличие в них всевозможного инструментария по администрированию базы данных. Как правило, СУБД предоставляет программы для визуальной разработки баз данных. Это первостепенное преимущество таких СУБД. Интерактивное взаимодействие с базой данных помимо разрабатываемой программы дает возможность разработчиком оперативно реагировать на меняющуюся ситуацию, появление новых требований, выявление ошибок и т. д. Кроме этого, для наиболее популярных СУБД имеется большое количество программ администрирования, созданных сторонними разработчиками).
Недостатки СУБД
Сложность сопровождения
Некоторые СУБД довольно сложны для администрирования. Для того чтобы использовать функциональность СУБД наиболее полно, требуется, чтобы администратор СУБД, администраторы баз данных, конечные пользователи, разработчики системы обладали определенными знаниями в области баз данных, а также в возможностях конкретной СУБД. Несомненно, обучение персонала или подбор квалифицированных кадров требует определенных материальных затрат, которые увеличиваются с повышением сложности программного продукта.
Размер СУБД
СУБД могут потребовать значительного дискового пространства и других ресурсов. Сами базы данных, в связи со сложной их структурой, также могут потребовать значительного дискового пространства.
Стоимость СУБД
Стоимость современных СУБД может быть очень существенной и достигать огромных сумм (до миллиона долларов). Кроме этого, требуются большие расходы на сопровождение системы. Все это, разумеется, войдет в стоимость разрабатываемой информационной системы и в стоимость ее эксплуатации.
Обзор систем управления базами данных (СУБД) для систем контроля и управления доступом (СКУД)
Любая современная сетевая СКУД нуждается в базе данных, так как является по своей сути информационной системой, предназначенной для хранения, обработки и анализа информации о происходящих на защищаемом объекте событиях. Также в СКУД должны храниться настройки оборудования, коды карт и личные данные пользователей, уровни доступа и другая нужная информация.
Источник:
статья была опубликована в журнале «Технологии Защиты» № 1, 2014
(обновлена 14 мая 2020 года)
Терминология
Частая ошибка многих специалистов по безопасности — некорректное использование термина «база данных» (БД) вместо термина «система управления базами данных» (СУБД). Давайте разберёмся, что к чему.
База данных — представленная в объективной форме совокупность самостоятельных материалов, систематизированных таким образом, чтобы эти материалы могли быть найдены и обработаны с помощью электронной вычислительной машины.
Система управления базами данных (СУБД) — совокупность программных и лингвистических средств общего или специального назначения, обеспечивающих управление созданием и использованием баз данных.
То есть, упрощённо, «база данных» — это сами данные, представленные в виде совокупности файлов на дисках, с которыми как раз работает «система управления базами данных» (СУБД) — программный продукт, имеющий средства для создания, наполнения, модификации и поиска по базам данных.
Разработчики различных приложений, в том числе и разработчики СКУД, работают именно с СУБД и выбирают СУБД под свои нужды.
Требования к СУБД, применяемым в СКУД
Какие же особенные требования следует предъявить к СУБД, используемой в СКУД с точки зрения пользователя?
- Во-первых — надёжность: никакие данные не должны пропасть! Сбои должны быть минимизированы и не должны приводить к потерям данных, базы должны быть надёжно защищены от несанкционированного доступа, на режимных объектах могут потребоваться функции шифрования данных, необходимо также обеспечивать регулярное резервное копирование баз данных и возможность восстановления из архива при необходимости.
- Во-вторых — производительность: СУБД должна обеспечивать приемлемый уровень производительности для решения возложенных на неё задач.
- В-третьих, на мой взгляд, это уверенность в том, что СУБД будет поддерживаться производителем, и вы не останетесь один на один с проблемой в случае какого-то серьёзного сбоя или сложной ситуации.
Виды СУБД
СУБД на данный момент существует великое множество и классифицируются они по разным признакам. Но мы не будем останавливаться в данной статье на всём многообразии этих типов, опустим перспективные и экзотические технологии типа объектно-ориентированных и иерархических СУБД. Стандартом де-факто в современных информационных системах являются реляционные СУБД, в которых данные хранятся в табличном виде, о них мы и будем говорить. Так чем же различаются все эти системы? Перечислю ключевые параметры важные как для разработчиков, так и для пользователей системы.
Способы доступа к БД
- Клиент-серверные СУБД
- Файл-серверные СУБД
- Встраиваемые СУБД
В клиент-серверных СУБД (Microsoft SQL Server, Oracle, Firebird, PostgreSQL, InterBase, MySQL и др.)
- Вся обработка данных ведётся в одном месте, на сервере, в том же месте, где хранятся (обычно) данные.
- К файлам данных имеет доступ только один сервер, одна система — это сама СУБД.
- Приложения-клиенты посылают запросы на обработку и получение данных из СУБД и получают ответы.
- Приложения-клиенты не имеют непосредственного доступа к файлам данных.
Все промышленные СУБД на данный момент являются именно клиент-серверными.
В файл-серверных СУБД (Paradox, Microsoft Access, FoxPro, dBase и др.), наоборот,
- Приложения имеют общий доступ ко всем файлам базы данных (хранящимся обычно в каком-то разделяемом файловом хранилище) и совместно обрабатывают эти данные.
- Каждое приложение самостоятельно обрабатывает данные.
На данный момент файл-серверная технология считается устаревшей, а её использование в крупных информационных системах — недостатком. Проблема в том, что файл-серверные СУБД не имеют многих преимуществ клиент-серверных, таких как кэширование данных, параллелизм запросов, высокая производительность и обладают рядом недостатков (сложности с поддержанием целостности базы, восстановлением, блокировками и т.д.), что приводит в свою очередь к пониженной надёжности и производительности. Состояние базы в файловых СУБД необходимо постоянно отслеживать и проводить операции по её «лечению» с помощью встроенных или сторонних утилит.
Встраиваемые СУБД (SQLite, Firebird Embedded, Microsoft SQL Server Compact и др.)
- Поставляются в составе готового программного продукта, не требуя процедуры самостоятельной установки.
- Предназначены для локального хранения данных приложения и не рассчитаны на коллективное использование в сети.
Встраиваемая бесплатная СУБД SQLite широко используется в известной мобильной ОС Android, разработанной в компании Google, и во многих мобильных приложениях.
Схема лицензирования
- Бесплатные СУБД
- Коммерческие промышленные СУБД (большинство производителей предлагают также бесплатную ограниченную версию)
Файл-серверные и встраиваемые СУБД практически все являются бесплатными, из бесплатных клиент-серверных СУБД наиболее известные: Firebird, PostgreSQL и MySQL.
Чисто коммерческий продукт, разработанный компанией Borland: СУБД InterBase. Ранее у этой СУБД была бесплатная версия с открытым исходным кодом: InterBase 6.0, но проект InterBase 6.0 Open Source Edition перестал поддерживаться компанией Borland. В 2001 году группа энтузиастов создала отдельный Open source проект СУБД Firebird, упомянутой выше, который получил широкую известность и множество поклонников среди разработчиков.
Большинство производителей промышленных СУБД дают возможность пользоваться бесплатными редакциями своих продуктов, которые являются урезанными по функционалу и по производительности вариантами полнофункциональной версии СУБД.
Сравнение свободных и коммерческих СУБД
Свободные СУБД
- Бесплатно.
- Менее требовательны к железу.
- Богатый функционал.
- Хорошая производительность.
- Надежность.
- Проект в любой момент может закрыться, т.к. поддерживается энтузиастами.
- Сложнее найти грамотного специалиста для обслуживания.
Коммерческие СУБД
- Высокая производительность.
- Масштабируемость.
- Надёжность.
- Поддерживаемость.
- Задокументированность.
- Встроенные инструменты для разработки и администрирования.
- Требовательность к ресурсам.
- Высокая цена.
В приведённой ниже таблице приведены ограничения наиболее часто используемых бесплатных редакций промышленных СУБД.
Компания-производитель | Бесплатные версии | Ограничения |
Microsoft | SQL Server 2005/2008 Express Edition | Размер базы данных — до 4 Гб, количество баз не ограничено, использует не более 1 Гб оперативной памяти и только 1 процессор (ядро) на многопроцессорных и многоядерных машинах. Поддерживаемые платформы: только Windows 2005 — только x86, 2008 — x86 и x64. |
SQL Server 2008 R2/2012/2014/2016/2017/2019 Express Edition | Размер базы данных — до 10 Гб, количество баз не ограничено, использует не более 1 Гб оперативной памяти и только 1 процессор (ядро) на многопроцессорных и многоядерных машинах. Поддерживаемые платформы: только Windows x86 и x64. | |
Oracle | Oracle Database 11g Express Edition, (Oracle Database XE) | Суммарно до 11Гб пользовательских данных, использует не более 1Гб оперативной памяти и только 1 процессор (ядро) на многопроцессорных и многоядерных машинах. Поддерживаемые платформы: Windows x86, Linux x64. |
IBM | IBM DB2 Express-C | Размер базы не ограничен, используется до 4Гб оперативной памяти и до 2-х процессоров. Поддерживаемые платформы: Windows x86 и x64, Linux x86 и x64, Unix x86 и x64, Solaris x86 и x64, Mac OS X |
При превышении максимального размера базы запись в БД прекратится, но эту проблему легко предотвратить. В основном, объём требуется для хранения постоянно накапливающихся в системе событий, остальные данные (настройки контроллеров, данные субъектов доступа, уровни доступа и т.п.) относительно статичны и только на сверхкрупных системах могут превысить ограничения бесплатных Express-версий. Необходимо настроить средствами вашей СУБД процедуру периодического удаления старых событий из БД. Во многих СКУД эти процедуры предусмотрены разработчиками и их надо просто настроить.
Что касается ограничений по производительности: если система небольшая, не подразумевает больших нагрузок на СУБД, спокойно можно ограничиться бесплатной редакцией, её будет более чем достаточно. Если же задача накладывает повышенные требования на подсистему СУБД: большое количество пользователей в системе, большой трафик событий и поток обновлений данных в системе (объекты с большим количеством временных посетителей) и высокие требования к глубине архива событий, то всегда можно перейти с бесплатной редакции на коммерческий вариант, оплатив необходимую лицензию.
СУБД в СКУД
В таблице ниже приведены данные из открытых источников относительно типа применяемой СУБД в популярных в России системах контроля и управления доступом.
Microsoft SQL Server (в поставке 2012 Express), заявлена поддержка версий 2008/2012/2014
Как видно, большинство производителей СКУД поставляют бесплатную версию промышленной клиент-серверной СУБД Microsoft SQL Server Express Edition и свободную (бесплатную) кроссплатформенную СУБД Firefird (примерно 50 на 50).
Конкретный выбор той или иной СУБД — дело вкуса и предпочтений каждого производителя, благо — выбор есть. При выборе разработчики учитывают также вопросы удобства и простоты администрирования, наличие встроенных бесплатных инструментов для администрирования и разработки.
СУБД для СКУД помимо высокой надёжности и производительности должна быть удобной и недорогой в поддержке. Разработчики СКУД прекрасно понимают, что даже на крупных объектах зачастую нет выделенных специалистов для обслуживания СКУД, обладающих навыками администрирования СУБД, поэтому стараются включать в свои продукты функции, облегчающие и автоматизирующие процессы обслуживания базы данных.
Прежде всего — резервное копирование БД, основа основ, которая позволяет администратору системы спокойно спать. Все СУБД имеют собственные средства для создания резервных копий, но хорошим тоном считается, когда функция резервного копирования интегрирована в продукт и администратору необходимо лишь включить/настроить её и периодически проверять функционирование.
Вторая частая проблема — восстановление данных после сбоя. Здесь опять же на выручку приходит свежая резервная копия, но если её нет, или критично восстановление всех возможных данных, то потребуются дополнительные усилия. К счастью, в промышленных СУБД (чего не скажешь о старых файловых СУБД типа Paradox) такие явления происходят нечасто, их может вызвать разве что «умирающий» жёсткий диск или сбой электропитания. В этом случае потребуются услуги специалиста-администратора СУБД, который сможет с помощью встроенных в любую серьёзную СУБД инструментов восстановить максимум из возможного. Также следует учесть, что некоторые производители СКУД в рамках технической поддержки оказывают услуги по восстановлению баз.
Рекомендации
- При выборе СКУД обратите внимание на то, какая СУБД поставляется совместно с системой.
- Если вы эксплуатируете СКУД, то выясните, какая СУБД в ней используется.
- Оцените трафик данных и нагрузку в вашей системе, чтобы определиться с требуемыми аппаратными ресурсами сервера СУБД и нужной редакцией СУБД (проконсультируйтесь у производителя вашей СКУД при необходимости).
- Если в вашей СКУД используется Express-версия Microsoft SQL Server или Oracle, то необходимо задаться вопросом: «Насколько нам хватит бесплатного объёма базы?». Настройте периодическое удаление из базы старых событий средствами СКУД (если таковые имеются) либо же рассмотрите вопрос о миграции на платную неограниченную версию СУБД.
- Настройте резервное копирование баз данных средствами СКУД или же средствами СУБД и регулярно проверяйте его выполнение.
- Найдите специалиста по СУБД (администратора), к которому можно будет обратиться в случае повреждения базы данных, узнайте в технической поддержке производителя СКУД возможность предоставления такого рода услуг.
Хотите узнать больше?
Пройдите бесплатный курс «Основы систем контроля и управления доступом» в Академии Parsec. На курсе будут рассмотрены основные компоненты СКУД, их назначение и принципы работы, основные термины, необходимые для понимая устройства и специфики работы систем контроля доступа. По окончании курса вы получите сертификат.
Конфигуратор СКУД
Автоматический подбор оборудования и программного обеспечения профессиональной системы контроля доступа
Сравнение современных СУБД
Информацией, хранящейся в базе данных (БД), может быть всё что угодно: каталог продукции, информация о клиентах, контент веб-сайта и др. Для обеспечения доступа к информации, хранящейся в базе данных, а также для управления ею, применяют систему управления базами данных (СУБД). СУБД — это комплекс языковых и программных средств, предназначенный для создания, ведения и совместного использования БД многими пользователями. Обычно СУБД различают по используемой модели данных. Так, СУБД, базирующиеся на использовании реляционной модели данных, называют реляционными СУБД. Системы управления базами данных помогают отсортировать информацию, а также связать базы данных между собой, при этом предоставив отчет об изменениях и зарегистрированных событиях.
В этой статье мы обсудим самые популярные СУБД, которые реально используются повсеместно в настоящее время и обозначим их достоинства и недостатки. Несмотря на то, что статья написана в 2017 году, она по большей части остаётся актуальной и по сей день.
Интересуетесь максимально актуальными данными? Обратите внимание на две более свежие статьи «Анализ популярных реляционных и нереляционных систем управления базами данных» (с) 2022 г., которые опубликованы в журнале Системный администратор.
На что стоит обращать внимание
Несмотря на то, что все системы управления базами данных выполняют одну и ту же основную задачу (т.е. дают возможность пользователям создавать, редактировать и получать доступ к информации, хранящейся в базах данных), сам процесс выполнения этой задачи варьируется в широких пределах. Кроме того, функции и возможности каждой СУБД могут существенно отличаться. Различные СУБД документированы по-разному: более или менее тщательно. По-разному предоставляется и техническая поддержка.
При сравнении различных популярных баз данных, следует учитывать, удобна ли для пользователя и масштабируема ли данная конкретная СУБД, а также убедиться, что она будет хорошо интегрироваться с другими продуктами, которые уже используются. Кроме того, во время выбора следует принять во внимание стоимость системы и поддержки, предоставляемой разработчиком.
Если речь идёт о выборе СУБД для предприятия, то следует принять во внимание возможность СУБД «расти» вместе с развитием организации. Малому бизнесу могут потребоваться только базовые функции и возможности, а также небольшое количество информации, размещаемой в БД. Но требования могут существенно расти с течением времени, а переход на другую СУБД может стать проблемой.
Существует несколько популярных СУБД, как платных, так и бесплатных, которые можно рекомендовать для применения в организации. Выполняя поиск, рассмотрите как минимум перечень из десяти СУБД, приведённых ниже, включая отечественные продукты.
1. Oracle 12c
Неудивительно, что корпорация Oracle предлагает одноимённый продукт, с которого обычно начинается рассмотрение вариантов популярных СУБД. Первая версия Oracle была создана в конце 70-х годов. На данный момент у этого продукта блестящая репутация. Кроме того, существует несколько версий этого продукта для удовлетворения потребностей конкретной организации.
Актуальная версия Oracle на момент написания настоящей статьи — 12с — предназначена для облачных сред и может быть размещена на одном или нескольких серверах, это позволяет управлять базами данных, которые содержат миллиарды записей. Некоторые из функций новейшей версии Oracle включают в себя grid framework и использования как физических, так и логических структур.
Это означает, что физическое управление данными не влияет на доступ к логическим структурам. Кроме того, безопасность в этой версии доведена до высочайшего уровня, потому что каждая транзакция изолирована от других.
Достоинства
- Самые свежие инновации и впечатляющий функционал уже внедрены в этом продукте, поскольку компания Oracle стремится держать планку даже на фоне других разработчиков СУБД.
- Оракул является крайне надёжной, фактически это эталон надёжности среди подобных систем.
Недостатки
- Стоимость Oracle может оказаться непомерно высокой, особенно для небольших организаций.
- Система может потребовать значительных ресурсов уже сразу после установки, поэтому возможно потребуется модернизировать оборудование для внедрения Oracle.
Идеально подходит для крупных организаций, которые работают с огромными базами данных и разнообразными функциями.
2. MySQL
MySQL — одна из самых популярных СУБД для веб-приложений. Фактически, является стандартом de facto для веб-серверов, которые работают под управлением операционной системы Linux. MySQL — это бесплатный пакет программ, однако новые версии выходят постоянно, расширяя функционал и улучшая безопасность. Существуют специальные платные версии, предназначенные для коммерческого использования. В бесплатной версии наибольший упор делается на скорость и надежность, а не на полноту функционала, который может стать и достоинством и недостатком — в зависимости от области внедрения.
Разработку и поддержку MySQL осуществляет корпорация Oracle, получившая права на торговую марку вместе с поглощённой Sun Microsystems, которая ранее приобрела шведскую компанию MySQL AB. Продукт распространяется как под GNU General Public License, так и под собственной коммерческой лицензией. Помимо этого, разработчики создают функциональность по заказу лицензионных пользователей. Именно благодаря такому заказу почти в самых ранних версиях появился механизм репликации.
Эта СУБД позволяет выбирать различные движки для системы хранения, которые позволяют менять функционал инструмента и выполнять обработку данных, хранящихся в различных типах таблиц. Гибкость СУБД MySQL обеспечивается поддержкой большого количества типов таблиц: пользователи могут выбрать как таблицы типа MyISAM, поддерживающие полнотекстовый поиск, так и таблицы InnoDB, поддерживающие транзакции на уровне отдельных записей. Более того, СУБД MySQL поставляется со специальным типом таблиц EXAMPLE, демонстрирующим принципы создания новых типов таблиц. Благодаря открытой архитектуре и GPL-лицензированию, в СУБД MySQL постоянно появляются новые типы таблиц. Она также имеет простой в использовании интерфейс, и пакетные команды, которые позволяют удобно обрабатывать огромные объемы данных. Система невероятно надежна и не стремится подчинить себе все доступные аппаратные ресурсы.
Достоинства
- Распространяется бесплатно
- Прекрасно документирована
- Предлагает много функций, даже в бесплатной версии
- Пакет MySQL включен в стандартные репозитории наиболее распространённых дистрибутивов операционной системы Linux, что позволяет устанавливать её элементарно просто
- Поддерживает набор пользовательских интерфейсов
- Может работать с другими базами данных, включая DB2 и Oracle.
Недостатки
- Придётся потратить много времени и усилий, чтобы заставить MySQL выполнять несложные задачи, хотя другие системы делают это автоматически, например: создавать инкрементные резервные копии.
- Отсутствует встроенная поддержка XML или OLAP.
- Для бесплатной версии доступна только платная поддержка.
Идеально подходит для: организаций, которым требуется надежный инструмент управления базами данных, но бесплатный.
3. Microsoft SQL сервер
Ещё одной из популярных СУБД является программный продукт Microsoft SQL-сервер. Это система управления базами данных, движок которой работает на облачных серверах, а также локальных серверах, причем можно комбинировать типы применяемых серверов одновременно. Вскоре после выпуска Microsoft SQL Server 2016, Microsoft адаптировала продукт для операционной системы Linux, а на платформе Windows он работал изначально.
Одной из уникальных особенностей версии 2016 года является temporal data support (временная поддержка данных), которая позволяет отслеживать изменения данных с течением времени. Последняя версия Microsoft SQL-сервер поддерживает dynamic data masking (динамическую маскировку данных), которая гарантирует, что только авторизованные пользователи будут видеть конфиденциальные данные.
Достоинства
- Продукт очень прост в использовании
- Текущая версия работает быстро и стабильно
- Движок предоставляет возможность регулировать и отслеживать уровни производительности, которые помогают снизить использование ресурсов.
- Вы сможете получить доступ к визуализации на мобильных устройствах.
- Он очень хорошо взаимодействует с другими продуктами Microsoft.
Недостатки
- Цена для юридических лиц оказывается неприемлемой для большей части организаций
- Даже при тщательной настройке производительности SQL Server способен задействовать все доступные ресурсы
- Сообщается о проблемах с использованием службы интеграции для импорта файлов
- Есть смысл покупать лицензию на этот продукт, если уже внедрена (читай «куплена») экосистема Microsoft.
Идеально подходит для: крупных организаций, которые уже используют ряд продуктов Microsoft.
4. PostgreSQL
PostgreSQL является одним из нескольких бесплатных популярных вариантов СУБД, часто используется для ведения баз данных веб-сайтов. Это весьма старая систма, поэтому в настоящее время она хорошо развита, и позволяет пользователям управлять как структурированными, так и неструктурированными данными. Может быть использована на большинстве основных платформ, включая Linux (где особенно хорошо проявляется производительность). Прекрасно справляется с задачами импорта информации из других типов баз данных с помощью собственного инструментария.
Движок БД может быть размещен в ряде сред, в том числе виртуальных, физических и облачных. Самая свежая версия, PostgreSQL 9.5, предлагает обработку больших объемов данных и увеличение числа одновременно работающих пользователей. Безопасность была улучшена благодаря поддержке DBMS_SESSION.
Достоинства
- Является масштабируемым решением и позволяет обрабатывать терабайты данных.
- Поддерживает формат json.
- Существует множество предопределенных функций.
- Доступен ряд интерфейсов.
Недостатки
- Документация туманна, поэтому, возможно, ответы на некоторые вопросы придется искать в интернете.
- Конфигурация может смутить неподготовленного пользователя.
- Скорость работы может падать во время проведения пакетных операций или выполнения запросов чтения.
Идеально подходит для организаций с ограниченным бюджетом, но требует привлечения квалифицированных специалистов, когда требуется возможность выбрать уникальный интерфейс и использовать json.
5. MongoDB
Еще одна бесплатная система, которая имеет коммерческую версию — MongoDB. Считается одним из классических примеров NoSQL-систем, использует JSON-подобные документы и схему базы данных. Написана на языке C++. Она предназначена для приложений, которые используют как структурированные, так и неструктурированные данные. Ядро является очень гибким и работает при подключении базы данных к приложениям через драйверы MongoDB. Существует широкий выбор доступных драйверов, поэтому легко найти драйвер, который будет работать с требуемым языком программирования.
Поскольку изначально система MongoDB не была разработана для обработки моделей реляционных данных (хотя может это выполнять), могут возникнуть проблемы производительности, если попытаться использовать её таким образом. Однако, движок предназначен для обработки различных данных, которые нельзя отнести к реляционным, и может хорошо справляться там, где другие движки работают медленно или вообще бессильны.
MongoDB 5.0 — это последняя версия (на июль 2021 г.), и она имеет новую подключаемую систему движков хранения. Документы могут быть проверены в процессе обновления или выполнения вставок, а функции текстового поиска были улучшены. Новая способность частичного индексирования может привести к более высокой производительности, уменьшая размер индексов.
Достоинства
- Скорость и простота в использовании
- Движок поддерживает json и другие традиционные документы NoSQL.
- Данные любой структуры могут быть сохранены/прочитаны быстро и легко.
Недостатки
- SQL не используется в качестве языка запросов.
- Инструменты для перевода SQL-запросов в MongoDB доступны, но их следует рассматривать именно как дополнение.
- Программа установки может занять много времени.
Подходит для организаций, работающих с разнородными данными, которые тяжело поддаются классификации. Для внедрения потребуются высококлассные специалисты.
6. MariaDB
Эта СУБД является бесплатной, но как и многие другие бесплатные приложения, предлагает платные версии. Есть множество доступных плагинов расширений, пожалуй, это самая быстро-развивающаяся СУБД на данный момент.
MariaDB фактически — это ответвление от СУБД MySQL, разрабатываемое сообществом под лицензией GNU GPL. Разработку и поддержку MariaDB осуществляет компания MariaDB Corporation Ab и фонд MariaDB Foundation. Толчком к созданию стала необходимость обеспечения свободного статуса СУБД, в противовес политике лицензирования MySQL компанией Oracle. Система лицензирования MariaDB обязывает участников, желающих добавить свой код в основную ветку СУБД, обмениваться своими авторскими правами с MariaDB Foundation для охраны лицензии и возможности создавать критические исправления для MySQL.
Ведущий разработчик — Майкл Видениус, автор оригинальной версии MySQL и основатель компании Monty Program AB.
Ядро базы данных позволяет выбирать из нескольких систем хранения, и это делает использование ресурсов более оптимизированным, что повышает производительность запросов и обработки. В состав MariaDB включена подсистемы хранения данных XtraDB для возможности замены InnoDB, как основной подсистемы хранения. Также включены подсистемы Aria, PBXT и FederateX. Она полностью совместима с MySQL, и вполне подходит в качестве замены, т.к. полностью клонирован как набор команд, так и API. Многие разработчики MySQL были вовлечены в процесс разработки, а сейчас принимают участие в развитии.
Достоинства
- Производительность
- Индикаторы дадут вам знать, как обрабатывается запрос.
- Расширяемая архитектура и плагины позволяют настраивать инструмент в соответствии с вашими потребностями.
- Шифрование доступно в сети, сервере и уровне приложения.
Недостатки
- На данный момент стабильность ниже, чем у MySQL, поэтому даже на новых проектах можно рекомендовать устанавливать mysql.
- Движок довольно новый, поэтому пока нет никаких гарантий дальнейших обновлений.
- Как и во многих других бесплатных базах данных, вам придется платить за поддержку.
Идеальна как альтернатива MySQL, если MySQL не устраивает по каким-то причинам.
7. DB2
Созданная компанией IBM, DB2 представляет собой СУБД, которая имеет возможности NoSQL, и может читать JSON и XML-файлы. Ввиду того, что система разрабатывалась для серверов компании IBM модельного ряда iSeries, логично, что система работает на Windows, Linux и Unix.
Диалект языка SQL, используемый в DB2 за редкими исключениями строго декларативен, система снабжена многофазовым оптимизатором, строящим по этим декларативным конструкциям план выполнения запроса. В диалекте SQL DB2 отсутствуют подсказки оптимизатору, мало развит (а долгое время вообще отсутствовал) язык хранимых процедур, и, таким образом, всё направлено на поддержание декларативного стиля написания запросов. Язык SQL DB2 при этом является вычислительно полным, то есть потенциально позволяет в декларативной форме определять любые вычислимые соответствия между исходными данными и результатом. Это достигается в том числе за счёт использования табличных выражений, рекурсии и других развитых механизмов манипулирования данными.
Оптимизатор DB2 широко использует статистику распределения данных в таблицах (если процесс её сбора был выполнен администратором базы данных), поэтому один и тот же запрос на языке SQL может быть оттранслирован в совершенно различные планы выполнения в зависимости от статистических характеристик данных, которые он обрабатывает.
В рамках концепции повышения уровня интеграции средств безопасности в компьютерной системе, DB2 не имеет собственных средств аутентификации пользователей, интегрируясь со средствами операционной системы или специализированными серверами безопасности. В рамках DB2 осуществляется только авторизация пользователей, аутентифицированных системой.
DB2 является единственной реляционной СУБД общего назначения, имеющей реализации на аппаратно-программном уровне (система IBM i; также в оборудовании мэйнфреймов IBM System z реализуются средства поддержки DB2).
Современные версии DB2 обеспечивают расширенную поддержку использования данных в формате XML, в том числе операции с отдельными элементами документов XML.
Текущая версия DB2 — это LUW 11.1, которая предлагает разнообразные улучшения и доработки. Одно из них, ускорение Blu , которое предназначено, для того чтобы сделать эту базу данных быстрее. Пропуск данных предназначен для повышения быстродействия системы с большим количеством данных, чем может она может вместить в себя. Последняя версия DB2 также обеспечивает усовершенствованные функции аварийного восстановления, совместимости и аналитики.
Достоинства
- Blu Acceleration позволяет грамотно задействовать ресурсы для объёмных баз данных.
- Может быть размещена в облачном хранилище, на физическом сервере, или же и там, и там одновременно.
- Несколько задач могут выполняться одновременно с помощью планировщика задач.
- Коды ошибок и коды завершения позволяют легко отследить, какие задания выполняются или выполнились с помощью планировщика задач.
Недостатки
- Цена за пределами бюджета многих физических лиц и небольших организаций.
- Сторонние приложения или дополнительное программное обеспечение требуется, для того чтобы заставить функционировать кластеры или несколько вторичных узлов.
- Базовая поддержка доступна только в течение трех лет; после этого, она внезапно становится платной.
Подходит для: крупных организаций, которые планируют выжимать максимум из имеющихся ресурсов и обрабатывают большие БД.
8. SAP HANA
Разработанная компанией SAP SE, SAP HANA — это СУБД, с движком ориентированным на работу со столбцами, работающая с родными данными SAP и чужими данными. Ядро ориентировано на сохранение и извлечение данных из приложений и других источников на нескольких уровнях хранения. Система может быть размещена на физических серверах или в облаке.
Достоинства
- Она поддерживает SQL, OLTP и OLAP.
- Ядро снижает требования к ресурсам за счет использования сжатия.
- Данные хранятся в памяти, сокращая время доступа, в некоторых случаях, значительно.
- Отчеты формируются в реальном времени.
- Может взаимодействовать с рядом других приложений.
Недостатки
- Поставляется только для работы на ограниченном наборе оборудования: производитель производит сертификацию определённых моделей серверных узлов с конкретной конфигурацией
- Высокая стоимость лицензий даже если речь идёт о плате за программное обеспечение предприятия.
- Это всё ещё относительный новичок, требуются постоянные обновления.
Идеально подходит для: организаций, которые захватывают данные из приложений и при этом неограниченны в бюджете.
9. ЛИНТЕР
«Линтер» — российская СУБД, реализующая стандарт SQL:2003 (за исключением нескалярных типов данных и объектно-ориентированных возможностей) и поддерживающая большинство операционных систем, в том числе семейство Windows, различные версии UNIX, ОС реального времени (включая QNX).
К особенностям можно отнести защиту данных: 2 класс защиты данных от несанкционированного доступа и 2 уровень контроля отсутствия недекларированных возможностей. Мандатный контроль доступа к данным на уровне таблиц, столбцов записей и отдельных полей записей. Управление доступом к рабочим станциям и устройствам хранения информации. Контроль доступа к СУБД по расписанию. Управление протоколированием операций над БД (аудит). Аутентификация пользователей через LDAP, Kerberos, средствами операционной системы. Хеширование паролей по алгоритму FIPS 180-2 SHA-224.
18 марта 2016 года по решению Экспертного совета по российскому программному обеспечению при Минкомсвязи России СУБД ЛИНТЕР включена в единый реестр российских программ для электронных вычислительных машин и баз данных (реестр российского ПО).
Репликация асинхронная (в том числе и двунаправленная), возможна репликация с другими БД через ODBC.
Имеет утилиты конвертации, работающие через ODBC и ADO.NET. Конвертер из DBF-формата. Конвертер модели данных (из ERwin в ЛИНТЕР).
Достоинства
- Российская разработка
- Она поддерживает SQL:2003.
- Облегчается конвертация при переходе с других СБУД
- Рекомендована «Единым реестром российских программ».
Недостатки
- Падение эффективности в случае высокой динамики изменений.
Идеально подходит для: отечественных организаций, которые работают с конфиденциальными и персональными данными.
9. РЕД База Данных
«РЕД База Данных» — российская СУБД, работает на всех основных платформах и ОС (Windows, Linux, BSD Unix, IBM AIX, HP-UX, Sun Solaris и т.д.). Система модульная. Имеет открытый исходный код.
Возможность «горячего» резервного копирования и инкрементного резервного копирования. Сертифицирована ФСТЭК России. Соответствует отечественным требованиям по защите информации.
Может использоваться при создании информационных систем до класса защищенности 1Г включительно и при создании информационных систем персональных данных до 1 класса включительно. Полное соответствие принципам атомарности, непротиворечивости, изоляции, долговечности (ACID).
Имеются модули сопряжения практически для всех используемых сред разработки (драйверы ODBC, JDBC, C/C++, C#, Java, Delphi, PHP, Python, Perl, VB, и т.д.), результатов тестов этих модулей и гарантия стабильной работы.
Возможность работы во «встроенном» в ПО (embedded) локальном режиме в виде библиотеки DLL без отдельной установки и настройки СУБД, в т.ч. поддержка встраивания в виртуальную машину Java.
Достоинства
- Российская разработка
- Соответствует отечественным требованиям по защите информации
- Высокое быстродействие, сравнимое с лидерами рынка.
- Возможность хранения базы данных в одном отдельном файле.
Недостатки
- Низкая распространённость.
Идеально подходит для: отечественных организаций (включая оборонные), которые работают с конфиденциальными и персональными данными.
Обсуждение
Если сравнивать популярность современных СУБД с точки зрения их распространенности, то можно увидеть следующую картину по состоянию на 2013 год (рис. 1).
Рис. 1. Распространенность современных СУБД по состоянию на 2013 г.
C течением времени картина распространенности СУБД изменилась и в 2017 году приняла следующий вид (рис. 2).
Рис. 2. Распространенность современных СУБД по состоянию на 2017 г.
Необходимо отметить, что в опросе принимали участие специалисты, непосредственно занимающиеся разработкой, внедрением и эксплуатацией той или иной СУБД.
Приведем сводную таблицу, в которой постараемся упорядочить все рассмотренные особенности каждого программного продукта (таблица 1).
Таблица 1. Сравнительный анализ параметров СУБД