Invest-currency.ru

Как обезопасить себя в кризис?
10 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Коммерческие и бесплатные субд плюсы и минусы

Сравнение производи­тельности типовой конфигурации 1С 8.2 при использовании бесплатных СУБД: PostreSQL, IBM DB2

Область применения бесплатных решений СУБД

С выходом новой редакции MS SQL Server 2012, анонсом MS SQL Server 2014 CTP2 и внедрением новой политики лицензирования «на ядра» у многих ИТ-администраторов возник вопрос: «А есть ли альтернатива?». Многие видят ее в переходе на облачные решения или SaaS, когда вопрос о лицензировании ложится на компанию, предоставляющую эти услуги.

Другие пытаются оптимизировать затраты путем нахождения «лазеек» в методике лицензирования Microsoft. Но мы попробуем пойти альтернативным путем. Учитывая, что большинство компаний используют MS SQL Server только для 1С, мы можем протестировать альтернативные СУБД, которые поддерживает 1С. Сегодня мы протестируем несколько бесплатных СУБД, таких как PostgreSQL и IBM DB2 (тут и далее под IMB DB2 мы будем подразумевать бесплатный выпуск IBM DB2 Express-C).

Весь класс бесплатных СУБД хорошо зарекомендовал себя в повседневных задачах. На территории бывших республик СССР они не так распространены в среде Windows и чаще всего являются уделом либо специальных продуктов, либо используются в бесплатных операционных системах. Одним из ярких примеров является связка postfix + PostgreSQL в мире почтовых серверов.

Сравнение характеристик СУБД и их поддержка в 1С

Обе системы официально поддерживаются компанией 1С. Выпускаются релизы и наборы патчей для совместимой работы с 1С. На официальном сайте пользователей системы 1С:Предприятие 8 мы можем найти последние дистрибутивы данных продуктов с уже интегрированными патчами от 1С. В наличии есть версии как под Windows/ Linux, так и под различную архитектуру х86/х64, что не может не радовать. Сделаем краткий обзор данных СУБД. Обратимся к таблице 1:

Таблица 1 — Сравнение характеристик СУБД

В данный момент на сайте доступны следующие стабильные релизы:

  • IBM DB2 v9.7 FP6 от 05.10.2012 г.
  • PostgreSQL 9.1.2-1.1C от 10.02.2012 г.

Также доступны для тестирования новые конфигурации PostgreSQL 9.1.9-1.1C
и 9.2.4-1.1C от 01.10.2013 г.

Практическое тестирование с использованием нового теста Гилева и «боевой» конфигурации. Сравнение платной СУБД MS SQL и бесплатных

Для тестирования возьмем виртуальный сервер для 1С такой конфигурации 1 CPU Intel Xeon E5620 2.4 GHz, c 4 GB RAM, OS Windows 2008R2 Standard, используя виртуализацию на базе технологии Hyper-V. Для тестирования будут использованы версии СУБД под данную ОС и х64-разрядности (использование ОС Windows обосновано, сравнение будет с СУБД MS SQL 2008R2 Standard, используя одни и те же драйвера для всего оборудования). Тестирование будем проводить новым тестом от господина Гилева для оценки возможностей клиент-серверного варианта 1С:Предприятие 8.2. Данный тест подбирает оптимальный размер буфера для работы (размер строки) и показывает, сколько потоков может «вытянуть» система. Все результаты занесем в таблицу 2.

Таблица 2 — Результаты сравнительных тестов СУБД

Рассмотрим графики, полученные в самих тестах.

Графики, полученные при использовании СУБД — PostgreSQL:

Рисунок 1 – График 1, PostgreSQL

Рисунок 2 – График 2, PostgreSQL

Рисунок 3 – График 3, PostgreSQL

Анализируя данные графики, можно сделать вывод, что система сможет выдержать от 10 до 14 высоконагруженных задач при размере буфера в 656 Кб.

Графики, полученные при использовании СУБД — IBM DB2:

Рисунок 4 – График 1, IBM DB2

Рисунок 5 – График 2, IBM DB2

Рисунок 6 – График 3, IBM DB2

Анализируя данные графики, можно сделать вывод, что система сможет выдержать от 8 до 10 высоконагруженных задач при размере буфера в 128 Кб. Но при этом возможны проблемы с откликом приложения из-за низкой скорости работы СУБД с дисками.

Графики, полученные при использовании СУБД – MS SQL2008R2 Standard:

Рисунок 7 – График 1, MS SQL2008R2 Standard

Рисунок 8 – График 2, MS SQL2008R2 Standard

Рисунок 9 – График 3, MS SQL2008R2 Standard

Анализируя данные графики, можно сделать вывод, что система сможет выдержать 8-9 высоконагруженных задач при размере буфера в 464 Кб. При этом скорость работы системы будет хорошая.

На данных СУБД были протестированы и «боевые» базы, но в однопользовательском режиме. В ходе теста были использованы выгрузки объемами 1-1.5 Гб конфигурации УТ 11.1. В ходе испытаний не были замечены какие-либо ошибки. Время отклика приложений было на хорошем уровне. Были выполнены замеры производительности на тяжелых участках этой конфигурации, таких как вызов пункта «Список партнеров» и «Написать письмо».

Рисунок 10 – Время выполнения обработки «Список партнеров»

На данной диаграмме меньшее значение является лучшим. В среднем PostgreSQL немного проигрывает MS SQL, а IBM DB2 — и вообще позади. Аналогичная ситуация и со вторым тестом. PostgreSQL и MS SQL идут практически равными, а IBM DB2 — позади.

Рисунок 11 – Время выполнения обработки «Написать письмо»

Выводы о целесообразности внедрения 1С на бесплатных СУБД. Плюсы и минусы бесплатной СУБД

Теперь проанализируем полученные результаты. Согласно результатам, полученным с использованием теста Гилева, все системы показали себя практически на одном уровне. Единственными минусом данного теста является отсутствие возможности пользователю выбрать размер буфера (строки) для тестирования.

Обратимся к результатам работы с «боевой» базой. Тут ситуация более выразительна. Даже при тестировании нагрузки одним пользователем, IBM DB2 показывает отставание на 0,1-0,15 секунд на «тяжелом» запросе, поэтому вопрос об использовании данной СУБД в рабочей среде снимается. Разница между PostgreSQL и MS SQL Server практически не видна. Но это при тестировании нагрузки одним пользователем, соответственно, при увеличении количества пользователей данный разрыв будет увеличиваться в пользу MS SQL Server. Это также подтверждается практикой внедрений клиент-серверных решений на базе PostgreSQL с последующей оптимизацией плана запросов, а также использования прямых запросов в СУБД.

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

К плюсам данных СУБД можно отнести:

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

К минусам данных СУБД можно отнести:

  • отсутствие технической поддержки и большого опыта работы в связке с 1С;
  • алгоритмы резервного копирования, обслуживания и резервирования выполнены в виде отдельных модулей (наследие от Linux систем), что не привычно для Windows пользователя.

Альтернативным вариантом размещения 1С может стать облачный сервер. В состав этого продукта входят лицензии на MSSQL, так что за адекватные деньги удается достичь оптимальной производительности 1С.

EFSOL Системная интеграция. Консалтинг

7 лучших бесплатных программных решений с открытым исходным кодом для управления базами данных

IT-отделы работают с мизерным бюджетом. Поэтому сокращение расходов позволит компании не только оставаться на плаву, но и направить сэкономленные средства на развитие. Чтобы рациональнее использовать имеющийся бюджет, познакомимся с 7 бесплатными программными продуктами для разработки баз данных и решениями DBM с открытым исходным кодом.

CUBRID

Бесплатный вариант с открытым исходным кодом, оптимизированный специально для веб-приложений. Сервис предназначен для обработки больших объемов данных и генерации многочисленных параллельных запросов. Это решение реализовано на языке программирования C.

  • Множественная степень дробления блокировок;
  • Создание резервных копий онлайн;
  • Инструменты GUI и драйверы для JDBC , PHP , Python , Perl и Ruby ;
  • Поддержка встроенного сегментирования базы данных для масштабирования;
  • В крупных системах данные разделяются по нескольким экземплярам базы данных;
  • Репликация полнотекстовых баз данных и согласованность транзакций.
  • Не работает в системах Apple ;
  • Нет отладчика сценариев;
  • Руководство доступно только на английском и корейском языках;
  • Обсуждения на официальном форуме , как правило, устаревшие ( большинству из них несколько лет ).

Firebird

Эта реляционная база данных использовалась в производственных системах (под разными названиями) с 1981 года и реализует многие стандарты ANSI SQL . Firebird может работать на Linux , Windows и различных Unix-платформах .

  • API трассировки для мониторинга в реальном времени;
  • Аутентификация с проверкой подлинности Windows ;
  • Четыре поддерживаемые архитектуры: SuperClassic , Classic , SuperServer и Embedded ;
  • Разнообразные средства разработки: коммерческие инструменты – FIBPlus и IBObjects ;
  • Возможность автоматического развертывания для очистки базы данных;
  • Уведомления о событиях из триггеров базы данных и хранимых процедур;
  • Бесплатная поддержка глобального сообщества Firebird . Что важно при разработке требований к базам данных.
  • Интегрированная поддержка репликации не включена и доступна только в качестве дополнения;
  • Нехватка временных таблиц и интеграции с другими системами управления базами данных;
  • Аутентификация с проверкой подлинности Windows недостаточна по сравнению с решениями, доступными в других операционных системах.

MariaDB

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

  • Масштабируемость с простой интеграцией;
  • Доступ в режиме реального времени;
  • Основные функции MySQL ( MariaDB является альтернативой MySQL );
  • Альтернативные механизмы хранения, оптимизация серверов и патчи;
  • Обширная база знаний по разработке баз данных SQL , накопленная в течение 20 лет работы MariaDB .
  • Отсутствует плагин проверки сложности пароля;
  • Отсутствует memcached интерфейс ( распределённая система кэширования в оперативной памяти );
  • Нет трассировки оптимизатора.

MongoDB

MongoDB была основана в 2007 году и известна как « база данных для великих идей ». Проект финансируется такими известными инвесторами, как Fidelity Investments , Goldman Sachs Group , Inc. , и Intel Capital . С момента своего создания MongoDB была скачена 20 миллионов раз и поддерживается более чем 1000 партнерами. Эти партнеры придерживаются принципа бесплатного решения с открытым исходным кодом.

  • Проверка документов;
  • Зашифрованный механизм хранения.

Популярные варианты использования:

  • мобильные приложения;
  • каталоги продуктов;
  • управление контентом;
  • Real-time Приложения с механизмом хранения в памяти ( бета-версия );
  • сокращает время между первичным сбоем и восстановлением.
  • Не подходит для приложений, требующих сложных транзакций;
  • Не подходит для устаревших приложений;
  • Молодое решение: программное обеспечение меняется и быстро развивается.

MySQL

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

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

  • Проверка на стороне сервера;
  • Возможность локального использования;
  • Гибкая система привилегий и паролей;
  • Безопасное шифрование всего трафика паролей;
  • Библиотека, которая может быть встроена в автономные приложения;
  • Предоставляет сервер в качестве отдельной программы для сетевого окружения клиент/сервер.

Недостатки практической разработки и администрирования баз данных MySQL Приобретена компанией Oracle :

  • пользователи полагают, что MySQL больше не подпадает под категорию бесплатного и открытого программного обеспечения;
  • больше не поддерживается сообществом;
  • пользователи не могут исправлять ошибки и патчи;
  • проигрывает другим решениям из-за медленных обновлений.

PostgreSQL

PostgreSQL является еще одним выдающимся решением с открытым исходным кодом, работающим во всех основных операционных системах, включая Linux , UNIX ( AIX , BSD , HP-UX , SGI IRIX , Mac OS X , Solaris , Tru64 ) и Windows . PostgreSQL полностью отвечает принципам ACID ( атомарность, согласованность, изолированность, устойчивост ь).

  • Возможность создания пользовательских типов данных и методов запросов;
  • Среда разработки баз данных выполняет хранимые процедуры более чем на десятке языков программирования: Java , Perl , Python , Ruby , Tcl , C/C ++ и собственный PL/pgSQL ;
  • GiST ( система обобщенного поиска ): объединяет различные алгоритмы сортировки и поиска: B-дерево , B+-дерево , R-дерево , деревья частичных сумм и ранжированные B+ -деревья ;
  • Возможность создания для большего параллелизма без изменения кода Postgres , например, CitusDB .
  • Система MVCC требует регулярной « чистки »: проблемы в средах с высокой скоростью транзакций;
  • Разработка осуществляется обширным сообществом: слишком много усилий для улучшений.

SQLite

Провозгласившая себя самой распространенной СУБД в мире, SQLite зародилась в 2000 году и используется Apple , Facebook , Microsoft и Google . Каждый релиз тщательно тестируется. Разработчики SQLite предоставляют пользователям списки ошибок, а также хронологию изменений кода каждой версии.

  • Нет отдельного серверного процесса;
  • Формат файла – кросс-платформенный;
  • Транзакции соответствуют требованиям ACID ;
  • Доступна профессиональная поддержка.

Не рекомендуется для:

  • клиент-серверных приложений;
  • крупномасштабных сайтов;
  • больших наборов данных;
  • программ с высокой степенью многопоточности.

Я пропустила что-то из существенных преимуществ или недостатков решений для разработки баз данных , перечисленных выше? Считаете, что есть лучшие альтернативные СУБД ? Поделитесь своим мнением в комментариях.

Данная публикация представляет собой перевод статьи « The Top 7 Free and Open Source Database Software Solutions » , подготовленной дружной командой проекта Интернет-технологии.ру

Обзор систем управления базами данных (СУБД) для систем контроля и управления доступом (СКУД)

Источник: Журнал «Технологии Защиты» № 1, 2014

Терминология

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

База данных — представленная в объективной форме совокупность самостоятельных материалов, систематизированных таким образом, чтобы эти материалы могли быть найдены и обработаны с помощью электронной вычислительной машины.

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

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

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

Требования к СУБД, применяемым в СКУД

Какие же особенные требования следует предъявить к СУБД, используемой в СКУД с точки зрения пользователя?

  • Во-первых — надёжность: никакие данные не должны пропасть! Сбои должны быть минимизированы и не должны приводить к потерям данных, базы должны быть надёжно защищены от несанкционированного доступа, на режимных объектах могут потребоваться функции шифрования данных, необходимо также обеспечивать регулярное резервное копирование баз данных и возможность восстановления из архива при необходимости.
  • Во-вторых — производительность: СУБД должна обеспечивать приемлемый уровень производительности для решения возложенных на неё задач.
  • В-третьих, на мой взгляд, это уверенность в том, что СУБД будет поддерживаться производителем, и вы не останетесь один на один с проблемой в случае какого-то серьёзного сбоя или сложной ситуации.

Виды СУБД

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

Способы доступа к БД

  1. Клиент-серверные СУБД.
  2. Файл-серверные СУБД.
  3. Встраиваемые СУБД.

В клиент-серверных СУБД (Microsoft SQL Server, Oracle, Firebird, PostgreSQL, InterBase, MySQL и др.)

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

Все промышленные СУБД на данный момент являются именно клиент-серверными.

В файл-серверных СУБД (Paradox, Microsoft Access, FoxPro, dBase и др.), наоборот,

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

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

Встраиваемые СУБД (SQLite, Firebird Embedded, Microsoft SQL Server Compact и др.)

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

Встраиваемая бесплатная СУБД SQLite широко используется в известной мобильной ОС Android, разработанной в компании Google, и во многих мобильных приложениях.

Схема лицензирования

  1. Бесплатные СУБД.
  2. Коммерческие промышленные СУБД (большинство производителей предлагают также бесплатную ограниченную версию).

Файл-серверные и встраиваемые СУБД практически все являются бесплатными, из бесплатных клиент-серверных СУБД наиболее известные: Firebird, PostgreSQL и MySQL.

Чисто коммерческий продукт, разработанный компанией Borland: СУБД InterBase. Ранее у этой СУБД была бесплатная версия с открытым исходным кодом: InterBase 6.0, но проект InterBase 6.0 Open Source Edition перестал поддерживаться компанией Borland. В 2001 году группа энтузиастов создала отдельный Open source проект СУБД Firebird, упомянутой выше, который получил широкую известность и множество поклонников среди разработчиков.

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

Сравнение свободных и коммерческих СУБД

Свободные СУБД

  • Бесплатно.
  • Менее требовательны к железу.
  • Богатый функционал.
  • Хорошая производительность.
  • Надежность.
  • Проект в любой момент может закрыться, т.к. поддерживается энтузиастами.
  • Сложнее найти грамотного специалиста для обслуживания.

Коммерческие СУБД

  • Высокая производительность.
  • Масштабируемость.
  • Надёжность.
  • Поддерживаемость.
  • Задокументированность.
  • Встроенные инструменты для разработки и администрирования.
  • Требовательность к ресурсам.
  • Высокая цена.

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

При превышении максимального размера базы запись в БД прекратится, но эту проблему легко предотвратить. В основном, объём требуется для хранения постоянно накапливающихся в системе событий, остальные данные (настройки контроллеров, данные субъектов доступа, уровни доступа и т.п.) относительно статичны и только на сверхкрупных системах могут превысить ограничения бесплатных Express-версий. Необходимо настроить средствами вашей СУБД процедуру периодического удаления старых событий из БД. Во многих СКУД эти процедуры предусмотрены разработчиками и их надо просто настроить.

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

СУБД в СКУД

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

Как видно, большинство производителей СКУД поставляют бесплатную версию промышленной клиент-серверной СУБД Microsoft SQL Server Express Edition и свободную (бесплатную) кроссплатформенную СУБД Firefird (примерно 50 на 50).

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

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

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

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

Бесплатные СУБД;

MS SQL (www.microsoft.com)

Обзор рынка

В настоящее время существует множество различных СУБД. Некоторые из них просят денег, некоторые нет (но думаю, тоже не откажутся при случае).

Рынок корпоративных серверных СУБД представлен Oracle, MS SQL, DB2, Sybase и InterBase.

Oracle (www.oracle.com)

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

Продукт известной всем фирмы. Первая версия была разработана совместно с Sybase в 1988 году и предназначалась только для платформы OS/2. Следующие версии этого продукты были созданы для NT-based систем и тесно интегрированы с ОС, что не удивительно. Для компании гораздо выгоднее, чтобы ее СУБД использовались на ее же операционной системе – так совместимость лучше (кто знает операционную систему лучше, чем ее производитель?).

DB2 (www-4.ibm.com)

Это детище IBM (DB2 Universal Database), которое представляет собой серию продуктов для различных систем. Впервые проект появился на рынке в 1996 году. Приятно, что при переносе DB2 на другую (не IBM’овскую) платформу компания старается максимально эффективно использовать возможности этой платформы.

Sybase (www.sybase.com)

Изначально компания разрабатывала серверную СУБД совместно с Microsoft. В 1994 году компании разошлись и стали разрабатывать свои программные продукты независимо друг от друга. В результате у Sybase получился продукт под названием Adaptive Server Enterprise. Продукт существует под разные оси и предназначен для применения на крупных предприятиях. Существует еще одна линия серверных продуктов Sybase, которая ведет свое начало от СУБД Watcom SQL Anywhere. Этот продукт называетсяSQL Anywhere Studio, отличается своей компактностью и простотой администрирования. Предназначен в основном для обслуживания небольших групп пользователей. Также существуют версии для применения в мобильных устройствах.

InterBase (www.borland.com, www.interbase-world.com)

Продукт компанииBorland Inc. Довольно компактная, устойчивая и производительная СУБД, способная работать на различных ОС. Визитная карточка системы – отсутствие острой необходимости напрягаться при разработке БД. Так как в другие пакеты этой фирмы (например, Delphi) встроены весьма удобные средства для разработки приложений на базе Interbase. Продукт стал популярным вследствие того, что долгое время распространялся бесплатно вместе со средствами разработки. Но кушать хочется всем, и Interbase стал платным (что-то странное вообще происходит со многими серьезными проектами).

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

MySQL – быстрая, но немного ограниченная СУБД. Хорошо подходит для проектов, не требующих сложных баз (например, для web-проектов).

PostgreSQL– мощная и тяжелая система, отвечающая всем современным стандартам СУБД. Больше подходит для серьезных проектов, требующих сложных баз данных. По скорости работы PostgreSQL уступает MySQL. И администрирование PostgreSQL — огромный геморрой. PostgreSQL — это реляционно-объектная СУБД, в которой есть некоторые расширения для работы с таблицами, на которые можно легко отображать иерархии объектов. Но это еще не чисто объектная СУБД.

Но не забывай, что выбор СУБД зависит от поставленной задачи. Ассортимент услуг, которые предлагают описанные выше СУБД, в основном приходится на «клиент-серверную» архитектуру. Но кроме больших корпораций, которым необходима серверная технология СУБД, существуют еще и маленькие фирмы, которым нет смысла ставить дорогостоящий сервер в одном углу офиса, а компьютер-клиент — в другом. Для этого и используют локальные (настольные) СУБД. Основные представители этого рынка: Microsoft Access, Paradox, Visual FoxPro и dBase.

В чем сходства и различия?

Изначально компании сами создавали свои форматы файлов баз данных и свои языки программирования для работы с этими БД. Но прогресс необратимо продвигался вперед, и вскоре пользователи и разработчики стали ощущать потребность в стандартизации. Производителям пришлось сделать свои интерфейсы открытыми (типа ADO, BDE, ODBC, JDBC и т.д.). Другими словами, ко всем СУБД можно получить доступ по одному и тому же интерфейсу.

Стандартным языком для БД стал SQL 92. Каждый производитель вносил в него свои изменения и улучшения, но любая СУБД поддерживает классический SQL. На данный момент этот язык не удовлетворяет полностью требованиям разработчиков, так как он не объектный, а процедурный. Существует еще язык QBE, который тоже поддерживают современные СУБД и является языком запросов по образцу. Проще говоря, в этом языке запросы формируют визуально. В SQL же запросы пишутся в текстовом формате.

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

SQLite, MySQL и PostgreSQL: сравниваем популярные реляционные СУБД

  • Переводы, 9 сентября 2016 в 21:32
  • Иван Бирюков

Реляционные базы данных используются уже очень давно. Они стали популярными благодаря успешным реализациям реляционных моделей в системах управления, оказавшимся весьма удобными для работы с данными. В этой статье мы сравним три самые популярные реляционные системы управления базами данных (РСУБД): SQLite, MySQL и PostgreSQL.

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

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

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

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

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

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

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

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

«Дата 3 Консалтинг», Москва, до 180 000 ₽

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

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

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

В этой статье мы расскажем о 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.
  • CHAR: строка фиксированного размера, дополняемая справа пробелами до максимальной длины.
  • 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.

Ссылка на основную публикацию
Adblock
detector