Популярные системы управления базами данных
Рейтинг СУБД
MS Access: где скачать дополнительные шаблоны?
Если вы не нашли подходящий шаблон среди предустановленных, то можете попробовать скачать шаблоны для Access из Интернета. К сожалению, количество загрузочных порталов, предоставляющих такие шаблоны, невелико, особенно в Рунете.
- Microsoft Templates
Для тех, кто владеет языками, существует сайт, Microsoft Templates. Он предлагает хорошую коллекцию бесплатных англоязычных шаблонов для любых продуктов Office, включая Access. Сайт содержит качественную подборку баз данных Access, разбитых по категориям — бизнес, нон-профит, для использования в образовании и так далее. Помимо этого, на сайте доступны шаблоны для Word, Excel, PowerPoint и других программ из офисного пакета MS. - Существует огромная англоязычная коллекция шаблонов для Microsoft Access — Access Templates. Сайт предлагает солидное количество шаблонов баз данных Access для самых различных отраслей, от образования и медицины до бухучета и программирования. Шаблоны сорируются по версиям Access, дате, популярности. Однако, для полноценного скачивания требуется платная регистрация, которая стоит $88 и достаточно неудобна для России, так как работает через PayPal. В шаблонах, скачанных бесплатно, будут заблокированы таблицы (впрочем, разблокировка — вопрос умения).
- На русском языке существует неплохой проект Access Help. Несмотря на коммерческую направленность проекта, его создатели свободно выкладывают примеры созданных ими баз в Интернет, чтобы их мог использовать любой желающий. Для скачивания доступны готовые базы данных Access для самых разных организаций, особенно для бизнеса.
Oracle
Oracle RDBMS (она же Oracle Database) на первом месте среди СУБД. Система популярна у разработчиков, проста в использовании, у нее понятная документация, поддержка длинных наименований, JSON, улучшенный тег списка и Oracle Cloud.
- Разработчик: Oracle Corporation
- Написана на:Assembly, C, C++
- Блог: Oracle NoSQL
- Скачать: Oracle NoSQL
- Последняя версия: 18.3
Особенности
- Обрабатывает большие данные.
- Поддерживает SQL, к нему можно получить доступ из реляционных БД Oracle.
- Oracle NoSQL Database с Java/C API для чтения и записи данных.
MySQL
MySQL работает на Linux, Windows, OSX, FreeBSD и Solaris. Можно начать работать с бесплатным сервером, а затем перейти на коммерческую версию. Лицензия GPL с открытым исходным кодом позволяет модифицировать ПО MySQL.
Эта система управления базами данных использует стандартную форму SQL. Утилиты для проектирования таблиц имеют интуитивно понятный интерфейс. MySQL поддерживает до 50 миллионов строк в таблице. Предельный размер файла для таблицы по умолчанию 4 ГБ, но его можно увеличить. Поддерживает секционирование и репликацию, а также Xpath и хранимые процедуры, триггеры и представления.
- Разработчик: Oracle Corporation
- Написана на C, C++
- Последняя версия: 8.0.16
- Скачать: MySql
Особенности
- Масштабируемость.
- Лёгкость использования.
- Безопасность.
- Поддержка Novell Cluster.
- Скорость.
- Поддержка многих операционных систем.
На что стоит обращать внимание
Несмотря на то, что все системы управления базами данных выполняют одну и ту же основную задачу (т.е дают возможность пользователям создавать, редактировать и получать доступ к информации, хранящейся в базах данных), сам процесс выполнения этой задачи варьируется в широких пределах. Кроме того, функции и возможности каждой СУБД могут существенно отличаться. Различные СУБД документированы по-разному: более или менее тщательно. По-разному предоставляется и техническая поддержка.
При сравнении различных популярных баз данных, следует учитывать, удобна ли для пользователя и масштабируема ли данная конкретная СУБД, а также убедиться, что она будет хорошо интегрироваться с другими продуктами, которые уже используются. Кроме того, во время выбора следует принять во внимание стоимость системы и поддержки, предоставляемой разработчиком.
Если речь идёт о выборе СУБД для предприятия, то следует принять во внимание возможность СУБД «расти» вместе с развитием организации. Малому бизнесу могут потребоваться только базовые функции и возможности, а также небольшое количество информации, размещаемой в БД. Но требования могут существенно расти с течением времени, а переход на другую СУБД может стать проблемой.
Существует несколько популярных СУБД, как платных, так и бесплатных, которые можно рекомендоватьдля применения в организации. Выполняя поиск, рассмотрите как минимум перечень из десяти СУБД, приведённых ниже, включая отечественные продукты.
Oracle 12c
Неудивительно, что корпорация Oracle предлагает одноимённый продукт, с которого обычно начинается рассмотрение вариантов популярных СУБД. Первая версия Oracle была создана в конце 70-х годов, имея на данный момент блестящую репутацию. Кроме того, существует несколько версий этого продукта для удовлетворения потребностей конкретной организации.
Актуальная версия Oracle на момент написания настоящей статьи — 12с — предназначена для облачных сред и может быть размещена на одном или нескольких серверах, это позволяет управлять базами данных, которые содержат миллиарды записей. Некоторые из функций новейшей версии Oracle включают в себя grid framework и использования как физических, так и логических структур.
Это означает, что физическое управление данными не влияет на доступ к логическим структурам. Кроме того, безопасность в этой версии доведена до высочайшего уровня, потому что каждая транзакция изолирована от других.
Достоинства
- Самые свежие инновации и впечатляющий функционал уже внедрены в этом продукте, поскольку компания Oracle стремится держать планку даже на фоне других разработчиков СУБД.
- СУБД от Оракул является крайне надёжной, фактически это эталон надёжности среди подобных систем.
Недостатки
- Стоимость Oracle может оказаться непомерно высокой, особенно для небольших организаций.
- Система может потребовать значительных ресурсов уже сразу после установки, поэтому возможно потребуется модернизировать оборудование для внедрения Oracle.
Идеально подходит для крупных организаций, которые работают с огромными базами данных и разнообразными функциями.
MySQL
MySQL — одна из самых популярных баз данных для веб-приложений. Фактически, является стандартом de facto для веб-серверов, которые работают под управлением операционной системы Linx. 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.
- Для бесплатной версии доступна только платная поддержка.
Идеально подходит для: организаций, которым требуется надежный инструмент управления базами данных, но бесплатный.
Microsoft SQL сервер
Ещё одной из популярных СУБД является программный продукт Microsoft SQL-сервер. Это система управления базами данных, движок которой работает на облачных серверах, а также локальных серверах, причем можно комбинировать типы применяемых серверов одновременно. Вскоре после выпуска Microsoft SQL сервер 2020, Microsoft адаптировала продукт для операционной системы Linux, а на Windows-платформе он работал изначально.
Одной из уникальных особенностей версии 2020 года является temporal data support (временная поддержка данных), которая позволяет отслеживать изменения данных с течением времени. Последняя версия Microsoft SQL-сервер поддерживает dynamic data masking (динамическую маскировку данных), которая гарантирует, что только авторизованные пользователи будут видеть конфиденциальные данные.
Достоинства
- Продукт очень прост в использовании
- Текущая версия работает быстро и стабильно
- Движок предоставляет возможность регулировать и отслеживать уровни производительности, которые помогают снизить использование ресурсов.
- Вы сможете получить доступ к визуализации на мобильных устройствах.
- Он очень хорошо взаимодействует с другими продуктами Microsoft.
Недостатки
- Цена для юридических лиц оказывается неприемлемой для большей части организаций.
- Даже при тщательной настройке производительности корпорация SQL Server способен занять все доступные ресурсы.
- Сообщается о проблемах с использованием службы интеграции для импорта файлов.
Идеально подходит для: крупных организаций, которые уже используют ряд продуктов Microsoft.
PostgreSQL
PostgreSQL является одним из нескольких бесплатных популярных вариантов СУБД, часто используется для ведения баз данных веб-сайтов. Это была одна из первых разработанных систем управления базами данных, поэтому в настоящее время она хорошо развита, и позволяет пользователям управлять как структурированными, так и неструктурированными данными. Может быть использован на большинстве основных платформ, включая Linux. Прекрасно справляется с задачами импорта информации из других типов баз данных с помощью собственного инструментария.
Движок БД может быть размещен в ряде сред, в том числе виртуальных, физических и облачных. Самая свежая версия, PostgreSQL 9.5, предлагает обработку больших объемов данных и увеличение числа одновременно работающих пользователей. Безопасность была улучшена благодаря поддержке DBMS_SESSION.
Достоинства
- Является масштабируемым и способен обрабатывать терабайты данных.
- Поддерживает формат json.
- Существует множество предопределенных функций.
- Доступен ряд интерфейсов.
Недостатки
- Документация туманна, поэтому, возможно, ответы на некоторые вопросы придется искать в интернете.
- Конфигурация может смутить неподготовленного пользователя.
- Скорость работы может падать во время проведения пакетных операций или выполнения запросов чтения.
Идеально подходит для организаций с ограниченным бюджетом, но квалифицированными специалистами, когда требуется возможность выбрать свой интерфейс и использовать json.
MongoDB
Еще одна бесплатная база данных, которая имеет коммерческую версию — MongoDB, она предназначена для приложений, которые используют как структурированные, так и неструктурированные данные. Ядро является очень гибким и работает при подключении базы данных к приложениям через драйверы MongoDB. Существует широкий выбор доступных драйверов, поэтому легко найти драйвер, который будет работать с требуемым языком программирования.
Поскольку изначально система MongoDB не была разработана для обработки моделей реляционных данных (хотя может это выполнять), могут возникнуть проблемы производительности, если вы попытаетесь использовать её таким образом. Однако, движок предназначен для обработки различных данных, которые нельзя отнести к реляционным, и может хорошо справляться там, где другие движки работают медленно или бессильны.
MongoDB 3.2 — это последняя версия, и она имеет новую подключаемую систему движков хранения. Документы могут быть проверены в процессе обновления или выполнения вставок, а функции текстового поиска были улучшены. Новая способность частичного индексирования может привести к более высокой производительности, уменьшая размер индексов.
Достоинства
- Скорость и простота в использовании
- Движок поддерживает json и другие традиционные документы NoSQL.
- Данные любой структуры могут быть сохранены/прочитаны быстро и легко.
Недостатки
- SQL не используется в качестве языка запросов.
- Инструменты для перевода SQL-запросов в MongoDB доступны, но их следует рассматривать именно как дополнение.
- Программа установки может занять много времени.
Подходит для организаций, работающих с разнородными данными, которые тяжело поддаются классификации. Для внедрения потребуются высококлассные специалисты.
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 не устраивает по каким-то причинам.
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 позволяет грамотно задействовать ресурсы для объёмных баз данных.
- Может быть размещена в облачном хранилище, на физическом сервере, или же и там, и там одновременно.
- Несколько задач могут выполняться одновременно с помощью планировщика задач.
- Коды ошибок и коды завершения позволяют легко отследить, какие задания выполняются или выполнились с помощью планировщика задач.
Недостатки
- Цена за пределами бюджета многих физических лиц и небольших организаций.
- Сторонние приложения или дополнительное программное обеспечение требуется, для того чтобы заставить функционировать кластеры или несколько вторичных узлов.
- Базовая поддержка доступна только в течение трех лет; после этого, вы должны заплатить за это.
Подходит для: крупных организаций, которые планируют выжимать максимум из имеющихся ресурсов и обрабатывают большие БД.
SAP HANA
Разработанная компанией SAP SE, SAP HANA — это СУБД, с движком ориентированным на работу со столбцами, работающая с родными данными SAP и чужими данными. Ядро ориентировано на сохранение и извлечение данных из приложений и других источников на нескольких уровнях хранения. Система может быть размещена на физических серверах или в облаке.
Достоинства
- Она поддерживает SQL, OLTP и OLAP.
- Ядро снижает требования к ресурсам за счет использования сжатия.
- Данные хранятся в памяти, сокращая время доступа, в некоторых случаях, значительно.
- Отчеты формируются в реальном времени.
- Может взаимодействовать с рядом других приложений.
Недостатки
- Поставляется только для работы на ограниченном наборе оборудования: производитель производит сертификацию определённых моделей серверных узлов с конкретной конфигурацией
- Высокая стоимость лицензий даже если речь идёт о плате за программное обеспечение предприятия.
- Это всё ещё относительный новичок, требуются постоянные обновления.
Идеально подходит для: организаций, которые захватывают данные из приложений и при этом неограниченны в бюджете.
ЛИНТЕР
«Линтер» — российская СУБД, реализующая стандарт SQL:2003 (за исключением нескалярных типов данных и объектно-ориентированных возможностей) и поддерживающая большинство операционных систем, в том числе семейство Windows, различные версии UNIX, ОС реального времени (включая QNX).
К особенностям можно отнести защиту данных: 2 класс защиты данных от несанкционированного доступа и 2 уровень контроля отсутствия недекларированных возможностей. Мандатный контроль доступа к данным на уровне таблиц, столбцов записей и отдельных полей записей. Управление доступом к рабочим станциям и устройствам хранения информации. Контроль доступа к СУБД по расписанию. Управление протоколированием операций над БД (аудит). Аутентификация пользователей через LDAP, Kerberos, средствами операционной системы. Хеширование паролей по алгоритму FIPS 180-2 SHA-224.
18 марта 2020 года по решению Экспертного совета по российскому программному обеспечению при Минкомсвязи России СУБД ЛИНТЕР включена в единый реестр российских программ для электронных вычислительных машин и баз данных (реестр российского ПО).
Репликация асинхронная (в том числе и двунаправленная), возможна репликация с другими БД через ODBC.
Имеет утилиты конвертации, работающие через ODBC и ADO.NET. Конвертер из DBF-формата. Конвертер модели данных (из ERwin в ЛИНТЕР).
Достоинства
- Российская разработка
- Она поддерживает SQL:2003.
- Облегчается конвертация при переходе с других СБУД
- Рекомендована «Единым реестром российских программ».
Недостатки
- Падение эффективности в случае высокой динамики изменений.
Идеально подходит для: отечественных организаций, которые работают с конфиденциальными и персональными данными.
РЕД База Данных
«РЕД База Данных» — российская СУБД, работает на всех основных платформах и ОС (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 течением времени картина распространенности СУБД изменилась и в 2020 году приняла следующий вид (рис. 2).
Рис. 2. Распространенность современных СУБД по состоянию на 2017 г.
Необходимо отметить, что в опросе принимали участие специалисты, непосредственно занимающиеся разработкой, внедрением и эксплуатацией той или иной СУБД. Приведем сводную таблицу, в которой постараемся упорядочить все рассмотренные особенности каждого программного продукта (таблица 1).
Таблица 1. Сравнительный анализ параметров СУБД
Microsoft Windows, Oracle Solaris,
IBM AIX,
HP-UX
Коммерческая Закрытый + + Платная
Microsoft Windows, Oracle Solaris,
macOS, FreeBSD
GNU GPL и коммерческая Открытый + + Платная
Microsoft Windows, Oracle Solaris,
IBM AIX,
macOS,
HP-UX,
QNX
Свободное и открытое программное обеспечение, разрешительная лицензия Открытый + + Платная
Microsoft Windows, Oracle Solaris,
FreeBSD,
macOS
GNU AGPL (СУБД) и Apache License (драйверы) Открытый + + Платная
Microsoft Windows, Oracle Solaris,
FreeBSD,
macOS
GNU GPL Открытый -* — Платная
Microsoft Windows, Oracle Solaris,
FreeBSD,
macOS
Проприетарная EULA Закрытый + — Бесплатная***
in-memory
SAP SE Linux** Коммерческая Закрытый + — Платная
Microsoft Windows, Oracle Solaris,
FreeBSD,
macOS,
QNX,
ИНТРОС
Коммерческая Закрытый + — Бесплатная****
Microsoft Windows, Oracle Solaris,
FreeBSD,
HP-UX
GNU GPL Открытый + — Платная
Примечания: *) нестабильность MariaDB зафиксирована при эксплуатации реального веб-сервера (при обслуживании drach.pro в том числе); **) только дистрибутивы SUSE и Red Hat Enterprise Linux; ***) в течение первых 36 месяцев; ****) в течение первых 12 месяцев.
Из всех представленных в таблице вариантов только Ред База Данных и ЛИНТЕР включены в «Единый реестр российских программ для электронных вычислительных машин и баз данных» (реестр российского программного обеспечения). 2 июня 2020 года Министерство связи и массовых коммуникаций Российской Федерации издало «Протокол экспертной оценки проектов по импортозамещению инфраструктурного программного обеспечения», в котором проект «СУБД PostgreSQL и связанные с ним решения» занимает 1-е место по направлению «Системы управления базами данных» протокола экспертной оценки. Исходя из таблицы можно сделать вывод, что при планирования веб-сервера следует в первую очередь обратить внимание на MySQL, которые остается востребованным в течение уже более десяти лет. Альтернативами будут Maria DB и PostgreSQL. Примечательно, что все перечисленные решения бесплатны. Если же речь заходит о внедрении БД на предприятие и осуществлении документооборота, то начать выбор следовало бы с Oracle Database, функционал и производительность которого действительно впечатляют. Уникальной в данном сегменте является MongoDB, её также можно уверенно рекомендовать для рассмотрения. При ограниченном финансировании следует рассмотреть вариант использования PostgreSQL для документооборота.
Microsoft SQL Server
Самая популярная коммерческая СУБД. Она привязана к Windows, но это плюс, если вы пользуетесь продуктами Microsoft. Зависит от платформы. И графический интерфейс, и программное обеспечение основаны на командах. Поддерживает SQL, непроцедурные, нечувствительные к регистру и общие языки баз данных.
- Разработчик: Microsoft Corporation
- Написана на C, C++
- Блог: SQL Server Blog
- Скачать: Microsoft SQL Server
Особенности
- Высокая производительность.
- Зависимость от платформы.
- Возможность установить разные версии на одном компьютере.
- Генерация скриптов для перемещения данных.
Программное обеспечение работы с современными базами данных
Цель лекции
: дать общее представление об основных задачах программного обеспечения баз данных, существующих подходов к решению этих задач, в том числе и о структурированном языке запросов SQL.
11.1. Основные задачи программного обеспечения баз данных
При работе с реляционными базами данных можно условно выделить две основные задачи:
- собственно работа с базой данных , включающая создание и ведение базы данных (создание структур таблиц, добавление записи в таблицу, удаление записи, обновление, выборка нужной записи );
- создание пользовательских приложений, включающих разработку пользовательского интерфейса по работе с базой данных.
Для решения указанных задач современные СУБД в своем составе могут содержать следующие программные средства: языки процедурного пошагового программирования, средства визуального программирования (графический интерфейс, диспетчер проекта, мастера и построители), средства создания объектно-ориентированных приложений. Кроме этого, при разработке пользовательских программ во многих СУБД допускается использование других языков программирования, а также использование библиотек разного рода. Так, например, при работе с СУБД ACCESS можно использовать язык программирования ACCESS , мастер ACCESS и язык программирования VISUAL BASIC.
При работе с клиент-серверными системами ситуация немного сложнее. Здесь в работе участвуют два типа компьютеров (сервер и клиент) и, соответственно, различают клиентское и серверное программное обеспечение. Серверное программное обеспечение включает язык программирования, поддерживающий создание и ведение базы данных, также реализацию поступающих от клиентов запросов пользователей к базе данных. Пользовательские приложения создаются и работают на компьютерах-клиентах. Именно эти компьютеры должны иметь, наряду со средствами формирования запросов к базе данных, средства разработки интерфейса. В связи с этим, для клиент-серверных СУБД программное обеспечение разделяется на две части: программное обеспечение – клиент и программное обеспечение – сервер. Заметим, что наряду с программным обеспечением – клиент, при разработке пользовательских программ в конкретной СУБД могут использоваться другие языки программирования, специальные библиотеки, другие системы программирования (определенные для этой СУБД). В качестве примера в таблице приводятся возможные варианты использования программного обеспечения для организации клиент-серверного взаимодействия в СУБД Microsoft SQL Server.
Таблица 11.1. Возможные варианты использования программного обеспечения в СУБД MS SQL Server
- Программное обеспечение клиента SQL-сервер (Transact SQL, SQL Server Query Analyzer и др.)
- MS Access (ODBC)
- MS Visual Basic
- MS Visual Studio
- MS Visual FoxPro
- Java (JDBC)
- Borland Delphi
- Borland C++Builder и др.
- Библиотеки функций (API, ODBC и др.)
Полное рассмотрение всего спектра программного обеспечения работы СУБД очень обширно и выходит за рамки данного пособия. Поэтому в данной работе будет рассмотрены только средства создания и ведения базы данных.
11.2. Проблемы создания и ведения реляционных баз данных
При создании базы данных и организации работы с ней возникают три основные проблемы:
- собственно создание базы данных (создание таблиц, индексов, ограничений целостности);
- обеспечение безопасности и разграничения доступа;
- организация доступа к элементам таблицы (выборка, редактирование, удаление, добавление).
Первая проблема может быть решена посредством создания в каждой конкретной СУБД некоторой утилиты, позволяющей пользователю в определенный момент осуществлять все необходимые действия по созданию базы данных. Однако это не полностью решает проблему. Такая утилита не позволяет создать таблицу динамически во время работы прикладной программы, не позволяет, например, добавить в таблицу сформированнный во время работы пользовательской программы столбец. Необходимы средства, дающие возможность формирования во время работы прикладной программы запроса на изменение структуры и содержания базы данных. То же самое можно сказать и о решении второй проблемы.
Более подробно рассмотрим возможный путь решения третьей проблемы. Организация доступа к базе данных является важнейшей функцией информационной системы. Пользователи постоянно работают с данными. Рассмотрим простой пример. Пусть у нас есть таблица СТУДЕНТ, хранящая информацию следующего рода:
СТУДЕНТ (Код студента, Фамилия, Имя, Отчество, Дата поступления).
Теперь мы хотим выполнить некоторый запрос к базе данных, результатом которого должны стать те строки таблицы СТУДЕНТ, для которых дата поступления окажется больше 01.06.2006. Рассмотрим последовательность действий для реализации данного запроса.
Любой человек, знакомый с программированием, легко представит себе реализацию подобного алгоритма на любом языке программирования высокого уровня. Вот, в частности, пример реализации на Object Pascal:
Table.First; while (not Table.Eof) do begin if FieldByName(«Дата поступления»).Value > «01.06.2006» then List.Add(FieldByName(«Фамилия»).AsString); Table.Next; end;
В этом случае разработчик приложения сам организует работу по выборке данных, программируя каждое движение по таблице (осуществляет навигацию по таблице). Такой подход к обработке данных, ориентированный на последовательную работу с отдельными записями, называется навигационным
. Здесь на конкретном языке программирования мы описываем процедуру — последовательность действий, необходимых для получения результата. Языки, в которых используется такой подход, называются процедурными. Очевидно, что с возрастанием сложности запроса существенно возрастает сложность процедуры и, соответственно, объем текста программы.
При работе с информационной системой пользователь реализует свои запросы к базе данных с помощью разработанных программистами прикладных программ. При навигационном подходе должны быть запрограммированы все возможные запросы. Очевидно, что заранее предугадать все запросы, потребность в которых может возникнуть и запрограммировать их, невозможно. С учетом того, что подавляющее большинство пользователей не владеет навыками программирования, это означает, что объем их действий будет ограничен рамками написанных программ, а именно, теми запросами, реализация которых предусмотрена заранее.
Кроме того, должен учитываться механизм взаимодействия в рамках архитектуры «клиент – сервер». Пользовательская программа выполняется на компьютере–клиенте. Запрос к базе данных реализуется компьютером – сервером. Необходим механизм формирования в пользовательской программе клиента запроса к базе данных сервера. В этом случае навигационный подход неприемлем. В связи с этим, для работы с базами данных разработан и используется другой подход, основанный на использовании так называемых языков запросов, которые задают не последовательность необходимых действий, а условия, которым должен удовлетворять результат
(при добавлении столбца, выборке записи, добавлении записи и т. п.). Такой подход решает все три вышеперечисленные проблемы.
С этой целью разработан и активно используется во всех базах данных – специальный язык запросов SQL
. Особо отметим, что основой языка являются операции реляционной алгебры.
Язык SQL (Structured Query Language – структурированный язык запросов) применяется для общения пользователя с реляционной базой данных
и состоит из трех частей
[ [ 11.2 ] ]:
- DDL (Data Definition Language) – язык определения данных. Предназначен для создания базы данных (таблиц, индексов и т.д.) и редактирования ее схемы.
- DCL (Data Control Language) – язык управления данными. Содержит операторы для разграничения доступа пользователей к объектам базы данных.
- DML (Data Manipulation Language) – язык обработки данных. Содержит операторы для внесения изменений в содержимое таблиц базы данных.
Как видно из написанного выше, SQL решает все рассмотренные ранее вопросы, предоставляя пользователю достаточно простой и понятный механизм доступа к данным, не связанный с конструированием алгоритма и его описанием на языке программирования высокого уровня. Так, вместо указания того, как необходимо действовать, пользователь при помощи операторов SQL объясняет СУБД, что ему нужно сделать. Далее СУБД сама анализирует текст запроса и определяет, как именно его выполнять.
В архитектуре «клиент – сервер» язык SQL занимает очень важное место. Именно он используется как язык общения клиентского программного обеспечения с серверной СУБД, расположенной на удаленном компьютере. Так, клиент посылает серверу запрос на языке SQL, а сервер разбирает его, интерпретирует, выбирает план выполнения, выполняет запрос и отсылает клиенту результат.
Посмотрим, как выглядит запрос на языке SQL, решающий задачу о выборке студентов по дате поступления.
SELECT Фамилия FROM Студент WHERE Дата поступления > «01.06.2006»
Может сложиться ложное впечатление, что появление языка SQL является альтернативой языков программирования высокого уровня. Это не соответствует действительности. Выполнение запроса средствами SQL все равно сводится к работе с отдельными записями, и от этого никуда не уйти. Важно понимать, что появление языка SQL дало, по крайней мере, две новые возможности.
PosgreSQL
Масштабируемая объектно-реляционная база данных, работающая на Linux, Windows, OSX и некоторых других системах. В PostgreSQL 10 есть такие функции, как логическая репликация, декларативное разбиение таблиц, улучшенные параллельные запросы, более безопасная аутентификация по паролю на основе SCRAM-SHA-256.
- Разработчик: PostgreSQL Global Development Group
- Написана на C
- Используется в компаниях: Apple, Cisco, Fujitsu, Skype, and IMDb
- Последняя версия: 11.2
- Блог: PostgreSQL
- Скачать: PostgreSQL
Особенности
- Поддержка табличных пространств, а также хранимых процедур, объединений, представлений и триггеров.
- Восстановление на момент времени (PITR).
- Асинхронная репликация.
MongoDB
Самая популярная NoSQL система управления базами данных. Лучше всего подходит для динамических запросов и определения индексов. Гибкая структура, которую можно модифицировать и расширять. Поддерживает Linux, OSX и Windows, но размер БД ограничен 2,5 ГБ в 32-битных системах. Использует платформы хранения MMAPv1 и WiredTiger.
- Разработчик: MongoDB Inc. в 2007
- Написана на C++
- Последняя версия: 4.1.9
- Блог: MongoDB
- Скачать: MongoDB
Особенности
- Высокая производительность.
- Автоматическая фрагментация.
- Работа на нескольких серверах.
- Поддержка репликации Master-Slave.
- Данные хранятся в форме документов JSON.
- Возможность индексировать все поля в документе.
- Поддержка поиска по регулярным выражениям.
PostgreSQL
PostgreSQL – это бесплатная реляционная система управления базами данных. Ее активно используют на UNIX-подобных платформах, для реализации как малых и средних, так и крупных проектов.
Самый лучший результат у PostgreSQL в рейтингах по версии Stack Overflow, где она занимает вторую строчку после MySQL.
PYPL и DB-Engines ставят PostgreSQL на четвертое место, опросы показывают, что PostgreSQL стоит на третьем месте по популярности, таким образом, PostgreSQL уверенно занимает четвертую позицию нашего рейтинга.
Заметка! Как создать таблицу в PostgreSQL с помощью pgAdmin 4.
DB2
Работает на Linux, UNIX, Windows и мейнфреймах. Эта СУБД идеально подходит для хост-сред IBM. Версию DB2 Express-C нельзя использовать в средах высокой доступности (при репликации, кластеризации типа active-passive и при работе с синхронизируемым доступом к разделяемым данным).
- Разработчик: IBM
- Написана на C, C++, Assembly
- Последняя версия: 11.1
- Скачать: DB2
Особенности DB2 11.1
- Улучшенное встроенное шифрование.
- Упрощённая установка и развёртывание.
MySQL WorkBench
Еще одна программа для создания баз данных. Она бесплатная, но есть и платная версия с улучшенными возможностями. В этой программе легко создавать связи с таблицами, да и вообще, просто удобно работать. Также плюсом является то, что можно показать БД в графическом виде. Большинство людей при работе с базами данных отдают предпочтение именно этой программе. В принципе, и PhpMyAdmin по возможностям не уступает, но все-таки она больше предназначена для работы с БД сайтов.
В этой статье были рассмотрены основные программы для создания баз данных. На самом деле их огромное множество, поэтому каждый выбирает инструмент под себя, но если же вы только осваиваетесь и желаете изучить эту область, то рекомендуется работать с MySQL WorkBench. После того как вы изучите основы SQL, для вас уже не будет существенной разницы, где работать, ведь запросы везде одинаковые. Удобно и то, что, создав базу данных в одной программе, можно ее открыть через другой софт, который тоже предназначен для работы с БД. При создании софта с базой данных не обойтись без этих знаний. Более того, освоив SQL, можно даже создать свое программное обеспечение для разработки и редактирования баз данных.
Microsoft Access
Система управления базами данных от Microsoft, которая сочетает в себе реляционное ядро БД Microsoft Jet с графическим интерфейсом пользователя и инструментами разработки ПО.
Идеально подходит для начала работы с данными, но производительность не рассчитана на большие проекты. В MS Access можно использовать C, C#, C++, Java, VBA и Visual Rudimental.NET. Access хранит все таблицы БД, запросы, формы, отчёты, макросы и модули в базе данных Access Jet в виде одного файла.
- Разработчик: Microsoft Corporation
- Последняя версия: 16.0
- Скачать: Microsoft Access
Особенности
- Можно использовать VBA для создания многофункциональных решений с расширенными возможностями управления данными и пользовательским контролем.
- Импорт и экспорт в форматы Excel, Outlook, ASCII, dBase, Paradox, FoxPro, SQL Server и Oracle.
- Формат базы данных Jet.
Обзор программных средств для реализации базы данных
В настоящее время в мире используется достаточно большое количество универсальных промышленных СУБД. Среди них можно выделить несколько несомненных лидеров, как по уровню развития технологий, так и по объему рынка — они вместе занимают более 90% мирового рынка СУБД. Это СУБД первого эшелона — Oracle, Microsoft SQL Server, MySQL, Microsoft Access и IBM DB2, в последнее время быстро становится популярна система с открытым кодом PostgreSQL. Список СУБД второго эшелона довольно велик, сюда относят такие СУБД, как Sybase, Informix, Ingress, Adabas, Interbase, Progress, Cache, Linter, Firebird, Teradata и т д.
Рассмотрим более подробно наиболее распространенные СУБД.
1. СУБД Oracle одна из наиболее мощных современных СУБД, предназначенных для реализации баз данных уровня корпорации, что предъявляет серьезные требования к серверу. Oracle может работать в большинстве операционных систем: Windows-NT, -2000, Linux, UNIX, AIX, Nowell Netware.
Использование Oracle в качестве СУБД дает возможность выбора языка программирования. Традиционно для этого используется язык PL/SQL, но можно использовать и гораздо более мощный язык программирования Java.
Oracle полностью располагает мощными и удобными средствами администрирования не только одного сервера, но и группы серверов, расположенных в разных частях планеты.
Основными преимуществами Oracle можно считать поддержку баз данных очень большого объема (до 64 Гбайт), мощные средства разработки и администрирования, поддержку многопроцессорности и двух языковых сред, а также интеграцию с Web. Вместе с этим программа предъявляет серьезные аппаратные требования и высокую цену.
2. СУБД MS SQL Server-2000 предлагает широкий спектр услуг администрирования и легко масштабируется. Это позволяет использовать ее в информационных системах для среднего бизнеса и больших компьютерных информационных системах (КИС).
В основе платформы MS SQL Server используется среда Windows. Главное преимущество программы тесная интеграция с программными продуктами от Microsoft и возможность экспорта/импорта данных в большинство распространенных форматов данных, что позволяет использовать MS SQL Server как центральное хранилище данных.
3. СУБД Borland Interbase содержит все, что требуется от СУБД, предназначенной для нужд малого и среднего бизнеса. К тому же начиная с версии 6.0 программа стала бесплатной, что тоже существенно. Программа нетребовательна к аппаратной части. Borland Interbase поддерживается платформами Windows и Linux, а также UNIX, NetBSD, FreeBSD.
Популярные языки программирования от Borland, как Delphi, Kylix и C++ Builder, поставляются с компонентами, позволяющими работать с данной СУБД. Именно это позволяет достичь очень высокого быстродействия программы.
4. СУБД MySQL получила широкое распространение в качестве средства работы с базами данных в Интернете. Программа совершенно нетребовательна к ресурсам сервера, на котором работает, очень быстрая и к тому же совершенно бесплатная: исходные коды и дистрибутивы для различных платформ доступны на сайте в Интернете. Изначально программа была ориентирована на операционную систему Linux, но сейчас уже существуют версии программы для операционных систем Windows, UNIX, NetBSD, FreeBSD, AIX. В последнее время программа завоевывает популярность у пользователей Macintosh с использованием операционной системой Mac OSX.
5. СУБД MS Access используется для решения локальных офисных задач с ограниченным объемом данных и формирование отчетов по результатам работы, при этом отчеты могут быть представлены в стандартном для офисных приложений виде.
MS Access одновременно является и средой разработки на двух языках программирования (Visual Basic и сильно усеченный диалект SQL), и CASE-средством, а также мощным и наглядным средством создания отчетов по результатам работы.
Программмное обеспечение позволяет создавать программы, состоящие из одного файла, содержащего как текст программы, так и реляционную базу данных сложной структуры. Access легко интегрируется с другими решениями от Microsoft. Это позволяет использовать ее как клиентскую часть информационного комплекса в связке с MS SQL Server, выступающей в качестве серверной части.
Успех Access заключается в прекрасной реализации продукта, рассчитанного как на начинающего, так и квалифицированного пользователя. В настоящее время это самая популярная настольная система управления базами данных.
В Microsoft Access присутствует язык программирования Visual Basic, который позволяет создавать массивы, свои типы данных, контролировать работу приложений. Также имеется один из самых лучших наборов визуальных средств разработки и представления информации среди аналогичных программных продуктов.
Вся работа с базой данных осуществляется через окно контейнера базы данных. Отсюда осуществляется доступ ко всем объектам: таблицам, запросам, формам, отчетам, макросам, модулям. Встроенный язык запросов SQL позволяет максимально гибко работать с данными и значительно ускоряет доступ к внешним данным.
Access воспринимает большое количество форматов данных, включая файловые структуры других СУБД. В приложение можно импортировать из текстовых файлов или электронных таблиц и экспортировать в них, предоставлять прямой доступ и обновлять файлы Paradox, FoxPro и других баз данных (БД).
Преимуществом Access является наличие средств проектирования приложения БД без знания языка программирования. Работа в Access начинается с определения реляционных таблиц и полей, предназначенных для хранения данных. Сразу после этого с помощью форм, отчетов, макросов и VBA можно определять действия над этими данными. Формы и отчеты используются для вывода на экран и дополнительных вычислений при работе с таблицами. В случае разработки более сложного приложения можно использовать язык Visual Basic.
Архитектура Access называет объектами все, что может иметь имя. В базе данных основными объектами являются таблицы, запросы, формы, отчеты, макросы и модули. В целом термин «база данных» обычно относится только к файлам, в которых хранятся данные, в Access же база включает все объекты, связанные с хранимыми данными, в том числе и те, которые определяются для автоматизации работы. Основными компонентами СУБД Access являются:
- Таблица — содержит информацию об объектах. Поля (столбцы) хранят характеристики объектов, а каждая запись (строка) содержит сведения об объекте.
- Запрос — фиксирует нужные данные из одной или нескольких таблиц. Для запроса можно использовать запрос по образцу или инструкцию SQL -запросы на выборку и обновление данных.
- Форма — отражает требования к данным таблиц или запросов. Формы можно распечатать. С помощью формы можно запустить макрос или VBA.
- Отчет — объект форматирования, вычисления итогов и печати данных.
- Макрос — описание действий Access в ответ на событие. Макрос открывает другую форму, может проверять поля при изменении его содержимого, открывать таблицы, запросы, просмотр или печать, запустить другой макрос или процедуру VBA
- Модуль — программа на языке Visual Basic для приложений, обнаружевает ошибки, которые не обнаруживает макрос. Модули могут быть независимыми объектами, содержащими функции, вызываемые из любого приложения или отчета для реакции на события.
В таблицах хранятся данные. Используя формы, можно выводить данные на экран или изменять их. Формы и отчеты получают данные как непосредственно из таблиц, так и через запросы. Для выполнения вычислений запросы могут использовать встроенные функции или функции, созданные с помощью Visual Basic для приложений.
События в формах или отчетах могут запускать макросы или процедуры VBA. Событие — любое изменение состояния объекта Access, например открытие формы, закрытие формы, ввод новой строки в форму, изменение содержимого текущей записи или элемента управления. Для обработки события можно создать макрос или процедуру VBA, с помощью которых можно предусмотреть реакцию на любое действие пользователя, вплоть до нажатия определенных клавиш во время ввода данных. С помощью макросов и модулей можно изменять ход выполнения приложения; открывать, фильтровать и изменять данные в формах и отчетах; выполнять запросы и создавать новые таблицы. Используя VBA, можно создавать, модифицировать и удалять любой объект Access, обрабатывать данные по строкам и по столбцам или каким-либо другим способом. Можно также вызывать процедуры из библиотек динамической компоновки Windows, чтобы использовать в приложении не только встроенные в Access функции, но и возможности Windows.
Таким образом, для разработки базы данных наиболее целесообразно использовать Microsoft Access.
Cassandra
СУБД активно используется в банковском деле, финансах, а также в Facebook и Twitter. Поддерживает Windows, Linux и OSX. Для запросов к БД Cassandra используется SQL-подобный язык — Cassandra Query Language (CQL).
- Разработчик: Apache Software Foundation
- Написана на: Java
- Последняя версия: 3.11.4
- Блог: Cassandra
- Скачать: Cassandra
Особенности
- Линейная масштабируемость.
- Быстрое время отклика.
- Поддержка MapReduce и Apache Hadoop.
- Максимальная гибкость.
- P2P архитектура.
Redis
Redis или Remote Dictionary Server — СУБД с открытым исходным кодом, которая снабжена механизмами журналирования и снимков. Поддерживаются списки, строки, хэши, наборы. Используется для БД, брокеров сообщений и кэшей. Все операции в Redis атомарные. Система написана на языке C и поддерживается практически всеми языками программирования.
- Разработчик: Salvatore Sanfilippo
- Последняя версия: 5.0.5
- Блог: Redis
- Скачать: Redis
Особенности
- Автоматическая обработка отказа.
- Транзакции.
- Сценарии LUA.
- Вытеснение LRU-ключей.
- Поддержка Publish/Subscribe.
Elasticsearch
Легко масштабируемая поисковая система корпоративного уровня с открытым исходным кодом. Благодаря обширному и продуманному API обеспечивает чрезвычайно быстрый поиск, работает в том числе с приложениями для обнаружения данных. Используется такими компаниями, как Википедия, The Guardian, StackOverflow, GitHub. ElasticSearch позволяет создавать копии индексов и сегментов.
- Разработчик: Elastic NV
- Написана на Java
- Последняя версия: 7.2.0
- Блог: Elasticsearch
- Скачать: Elasticsearch
Особенности
- Масштабируемость вплоть до нескольких петабайт структурированных и неструктурированных данных.
- Многопользовательская поддержка.
- Масштабируемый поиск, поиск в режиме реального времени.