Какая программа предназначена для работы с базами данных
Что такое СУБД
Программное обеспечение для создания баз данных, хранения и поиска в них необходимой информации называется системой управления базами данных (СУБД).
С помощью СУБД пользователь может:
• создавать структуру базы данных;
• заполнять базу данных информацией;
• редактировать (исправлять, дополнять) структуру и содержание базы данных;
• выполнять сортировку (упорядочение) данных;
• осуществлять поиск информации в базе данных;
• выводить нужную информацию на экран монитора, в файл и на бумажный носитель;
• устанавливать защиту базы данных.
Именно наличие СУБД превращает огромный объём хранимых в компьютерной памяти сведений в мощную справочную систему, способную быстро производить поиск и отбор необходимой нам информации.
Интерфейс СУБД
Существуют СУБД, с помощью которых создаются крупные промышленные информационные системы. Для работы с этими системами нужны специальные знания, в том числе владение специализированными языками программирования.
Для ведения личных баз данных, а также баз данных небольших организаций используются более простые СУБД, работать с которыми могут обычные пользователи. Наиболее распространёнными СУБД такого типа являются Microsoft Access и OpenOffice Base. При запуске любой из них на экран выводится окно, имеющее строку заголовка, строку меню, панели инструментов, рабочую область и строку состояния (рис. 1.16).
Рис. 1.16. Среда OpenOffice Base
Основными объектами СУБД являются таблицы, формы, запросы, отчёты.
Таблицы — это главный тип объектов. С ними вы уже знакомы. В таблицах хранятся данные. Реляционная база данных может состоять из множества взаимосвязанных таблиц.
Формы — это вспомогательные объекты. Они создаются для того, чтобы сделать более удобной работу пользователя при вводе, просмотре и редактировании данных в таблицах.
Запросы — это команды и их параметры, с которыми пользователь обращается к СУБД для поиска и сортировки данных.
Отчёты — это документы, сформированные на основе таблиц и запросов и предназначенные для вывода на печать.
Создание базы данных
В качестве примера рассмотрим процесс создания базы данных «Наш класс». Она будет состоять из одной таблицы, имеющей следующую структуру:
СПИСОК (КОД, ФАМИЛИЯ, ИМЯ, ДАТА РОЖДЕНИЯ, ПОЛ, РОСТ, АДРЕС, УВЛЕЧЕНИЕ, НАЛИЧИЕ ПК) .
Поля КОД и РОСТ будут числовыми;
Поле ДАТА РОЖДЕНИЯ будет иметь тип «дата»;
Поле НАЛИЧИЕ ПК будет логическим;
все остальные поля будут иметь текстовый тип.
Поле КОД можно считать ключом таблицы базы данных (рис. 1.17).
Рис. 1.17. Имена и типы полей БД «Наш класс»
Создание базы данных начинается с открытия файла, в котором она будет храниться. Для этого нужно после запуска программы OpenOffice Base следовать указаниям мастера баз данных:
1) создать новую базу данных;
2) зарегистрировать базу данных (указать путь и имя файла).
Далее следует описать структуру таблицы (указать имена и типы всех полей) и ввести данные в таблицу.
Данные можно вводить непосредственно в таблицу (рис. 1.18), а можно создать для этого специальный шаблон — форму (рис. 1.19).
Рис. 1.18. Таблица для ввода данных
Рис. 1.19. Формы для ввода данных
После выполнения всех перечисленных выше действий будет получен следующий результат — рис. 1.20.
Рис. 1.20. Таблица «Список» базы данных «Наш класс»
Созданная и сохранённая база данных в дальнейшем может быть открыта для добавления новых записей, исправления и удаления существующих, изменения содержимого отдельных полей и структуры всей таблицы.
Данные из таблиц можно упорядочить по некоторому признаку. Например, фамилии учеников в классном журнале записывают в алфавитном порядке; телепередачи в программе — в соответствии со временем их выхода в эфир; уроки в расписании — по возрастанию их порядковых номеров.
Упорядочение данных по возрастанию или убыванию значений некоторого признака называют сортировкой. Для выполнения сортировки указывают имя поля (имена полей), по которому будет произведена сортировка, и её порядок (возрастание или убывание значений поля).
Запросы на выборку данных
После того как база данных будет создана, её можно использовать в качестве справочной системы.
Таблица, содержащая интересующие пользователя сведения, извлечённые из базы данных, называется справкой или запросом; она содержит только те записи и их поля, которые указаны в запросах на выборку данных, удовлетворяющих заданным условиям (условиям выбора).
В командах СУБД условия выбора записываются в форме логических выражений, сформированных из высказываний на естественном языке (табл. 1.6).
В логических выражениях имена полей базы данных связываются с определёнными значениями этих полей операциями отношений:
<= меньше или равно (не больше);
>= больше или равно (не меньше).
На уроках математики вы применяете эти операции, составляя и решая числовые равенства, неравенства и их системы; с их помощью вы записывали условия при программировании разветвляющихся алгоритмов.
Операции отношений применимы и к текстовым полям. Их сравнение построено на лексикографическом принципе: из двух слов меньшим считается то слово, первая буква которого идёт по алфавиту раньше; если первые несколько букв двух слов одинаковы, то сравнение производится по первой различающейся букве; если более короткое слово совпадает с началом более длинного слова, то первое считается меньшим.
Таблица 1.6
Условия выбора — простые логические выражения
Значение поля текстового типа и некоторая текстовая величина равны, если они содержат одинаковое количество символов и все их символы, стоящие в позициях с одинаковыми номерами, совпадают.
При сравнении текстовых величин следует иметь в виду, что пробел — это тоже символ, и он «меньше» любой буквы.
Сравнение дат построено так: одна дата считается меньше другой, если она относится к более раннему времени. Например, истинными будут следующие отношения:
Условия выбора могут задаваться не только простыми, но и составными логическими выражениями, содержащими логические операции (табл. 1.7). С основными логическими операциями И, ИЛИ, НЕ вы познакомились в 8 классе.
Таблица 1.7
Условия выбора — составные логические выражения
С помощью запросов пользователь может быстро найти в базе данных и вывести на экран компьютера интересующую его информацию. Но для решения большинства практических задач найденную информацию необходимо представить в определённой форме и подготовить к выводу на печать. Этот этап работы называется подготовкой отчёта.
Программы для работы с базами данных
Базы данных являются отличным инструментом учета информации, который используется многими организациями. Существуют специальные программы, позволяющие работать с такими системами. Предлагаем рассмотреть наиболее популярные и качественные из них.
Microsoft Access
Начать стоит с самой распространенной СУБД — Microsoft Access, — обладающей широкой функциональностью и простотой для начинающих пользователей. Ее используют как для обучения, так и для вполне практичных задач. Из наиболее примечательных опций стоит отметить наличие шаблонов различных баз и возможность переключения между двумя режимами — таблицы и конструктора. Шаблоны позволяют не тратить время на макет, а выбрать подходящий вариант: «Контакты», «Отслеживание активов», «Пользовательское веб-приложение», «Управление проектами» и др.
В каждой ячейке базы данных пользователь устанавливает тип данных, выбирая его из списка. Это может быть краткий или длинный текст, число, денежная сумма, дата и время, логическое значение, гиперссылка и т. д. Присутствует многофункциональный модуль для составления отчетов, запросов и форм, предусматривающий множество изменяемых параметров. Интерфейс поддерживает русский язык, а для начинающих пользователей реализовано подробное руководство с описанием всех процессов. Access является платным и распространяется в рамках офисного пакета от Microsoft.
LibreOffice
LibreOffice — это комплекс прикладных приложений, который может стать отличным аналогом Microsoft Office в целом и Access в частности. Рассматриваемый вариант можно использовать для работы с текстовыми документами, таблицами, презентациями, графическими изображениями, математическими записями и базами данных. Пакет устанавливается полностью, после чего пользователь сам выбирает необходимый модуль для запуска. Для БД используется формат ODB.
В LibreOffice предусмотрены практически все функции, которые можно найти в Access. При этом разработчики постарались сделать максимально простой и привлекательный инструмент без загромождения огромным количеством кнопок и категорий. В главном окне расположены только самые основные возможности. Однако в рассматриваемом решении отсутствует мастер для создания баз данных со стандартными шаблонами. Приложение обладает открытым исходным кодом и его можно бесплатно скачать на русском языке.
Database.NET
На очереди бесплатный продукт с открытым исходным кодом, предназначенный для работы с базами данных. В Database.NET можно создавать, импортировать и экспортировать, редактировать и удалять БД. Доступен экспорт в форматы CSV, XML и TXT, а также распечатка таблицы. Для работы с SQL предусмотрена удобная консоль с подсветкой синтаксиса.
Database.NET работает со всеми современными форматами баз данных и таблиц. Среди них Access, Excel, Firebird, MySQL, SQL Server, SQL Azure, SQLCE, SQLite, PostgreSQL, Oracle, DB2, OLEDB, ODBC и OData. Примечательно, что рассматриваемое решение не требует установки. Официальная версия является портативной, что позволяет записать ее на флешку и запускать на любом устройстве. Приложение можно установить бесплатно или приобрести расширенную версию. Присутствует русскоязычная локализация.
MySQL Workbench
Как понятно из названия, Workbench работает с базами на основе технологии MySQL. Она создана ее разработчиками, поэтому здесь сосредоточены все инструменты для создания и администрирования БД, которые могут пригодиться на практике. Подойдет даже для начинающих пользователей, поскольку все действия выполняются через удобный интерфейс. Из основных функций стоит отметить возможность установки шаблона для автоматического индексирования ячеек, выполнения запросов и смены сценариев SQL.
Важно отметить, что в MySQL Workbench предусмотрен модуль для визуального проектирования. Формирование таблиц и создание связей между ними осуществляется с помощью ER-диаграмм. Выделяется синтаксис SQL, отмечаются допущенные ошибки при наборе как обычного текста, так и кода. Интерфейс является весьма удобным, но он не поддерживает русского языка, что может стать проблемой.
Navicat
Navicat — это целая библиотека программ для работы с различными СУБД. На официальном сайте разработчика можно выбрать подходящую версию из доступных: MySQL, PostgreSQL, MongoDB, MariaDB, SQL Server, Oracle, SQLite. Помимо этого, решение может работать с облачными сервисами, такими как AmazonAWS, Google Cloud и др. Для подключения используются не только стандартные логин и пароль, но и туннели SSL, SSH или HTTP.
Интерфейс Navicat поделен на три основные части. В левом меню отображается список всех баз данных, к которому подключен пользователь. В центре размещена область для работы с таблицами, а справа можно ознакомиться с подробной информацией по выделенным объектам. Как и в случае с MySQL Workbench, для проектирования используются удобные ER-диаграммы. Можно установить ознакомительную версию или приобрести базовую, стандартную или коммерческую подписку. Русскоязычный интерфейс отсутствует.
DataExpress
DataExpress — еще один удобный инструмент для создания и администрирования баз данных. Он представлен в виде конструктора приложений с множеством функций. Таким образом, пользователь может создать персонализированную программу учета. В рассматриваемом решении собраны модули всех привычных СУБД: мастер ввода данных, опции фильтрации и поиска, шаблоны, автоматическая генерация значений и многое другое.
В основе системы используется технология RemObject Pascal Script, которая позволяет реализовать любые логические алгоритмы. Интерфейс DataExpress выполнен в простом стиле и нацелен на рядовых пользователей, что дает им возможность создавать отличные СУБД без использования языка программирования. Для работы в сети используется движок Firebird. Помимо этого, можно добавлять собственные расширения для повышения функциональности ПО.
dbForge Studio
Следующее решение работает с системами MySQL и MariaDB. Имеет приятный графический интерфейс для осуществления запросов, разработки и отладки объектов баз данных. Проектирование БД в dbForge Studio происходит с помощью SQL. При этом редактор подсвечивает синтаксис, отмечает ошибки в нем, а также имеет функцию отладки хранимых процедур. Присутствует и визуальный редактор для малоопытных пользователей.
В dbFogrge Studio реализованы инструменты для грамотного администрирования базы данных. Можно открыть доступ к таблицам нескольким пользователям, работающим в рассматриваемой СУБД. Предусмотрено автоматическое резервное копирование, функция импорта и экспорта, возможность копировать базу данных и многое другое. Данные в таблицах можно подвергнуть подробному анализу или создать отчет. Для этого используется специальный мастер с множеством параметров. Продукт является платным и поддерживает русский язык.
Paradox Data Editor
Paradox Data Editor позволяет просматривать и редактировать таблицы баз данных на движке BDE. Хотя интерфейс программы и является несколько устаревшим, взаимодействовать с ним довольно просто. Стоит отметить наличие средства просмотра технологии BLOB, возможность установки различных фильтров и поиска, отображение статистики по отдельным колонкам. Это лишь малая часть удобных функций, которыми наделено рассматриваемое решение.
Предусмотрена система безопасности, позволяющая установить пароль на БД. Доступен экспорт данных в различные форматы (HTML, CSV, Excel, RTF, SYLK) и печать на принтере. Русскоязычный интерфейс отсутствует, зато распространяется Paradox Data Editor на бесплатной основе.
Reportizer
Следующая программа не предназначена для создания и администрирования баз данных и представляет собой отличный инструмент для формирования отчетов БД и дальнейшего их экспорта в отдельный файл или печати на бумаге. Reportizer стабильно работает с Oracle, Interbase, Access, Excel, SQL Server и HTML. Приложение тестировалось на этих системах и показало хороший результат. Оно может работать и с другими форматами, но стабильность не гарантируется.
Отчеты редактируются с помощью удобного конструктора с панелью инструментов. Доступны следующие форматы для отчетов: HTML, TXT, DB, DBF, CSV, ASC, XLS и HTML. Предусмотрено два режима конструктора: визуальный и текстовый. Первый подойдет для начинающих пользователей, второй же ориентирован на опытных разработчиков, знакомых с Delphi. Доступна ознакомительная версия на 24 дня. Русский язык не поддерживается, но есть украинская версия.
HeidiSQL
HeidiSQL — многофункциональное средство для работы с базами данных, распространяющееся бесплатно и имеющее открытый исходный код. Как понятно из названия, рассматриваемое решение работает с технологией SQL, а именно MySQL, Microsoft SQL и PostgreSQL. Доступны все необходимые инструменты для проектирования, создания и редактирования БД. Присутствует как графический интерфейс, так и командная строка.
Среди основных функций стоит выделить подключение к серверу по туннелям, возможность импорта текстовых файлов, мониторинг и ограничение процессов клиента, добавление двоичных файлов и поиск по всем таблицам во всей базе данных. Русский язык не поддерживается, однако интерфейс довольно простой и нацелен на рядового пользователя.
Мы рассмотрели основные программы, предназначенные для работы с базами данных. Каждая из них поддерживает определенные форматы таких систем и подойдет далеко не для всех случаев. Но имея обширный перечень вариантов, найти нужное решение не составит труда.
Система управления базами данных: что это такое и зачем она нужна
Рассказываем, как устроены СУБД и какие они бывают, а также делимся подборкой из пяти самых популярных среди разработчиков баз данных.
Иллюстрация: Оля Ежак для Skillbox Media
В базах данных сегодня хранится буквально всё — ваши переписки, данные паспорта на «Госуслугах», пароли от сайтов, видео на хостингах, треки на музыкальных платформах. Но чтобы вся эта информация не потерялась, а данными было удобно управлять, придумали СУБД.
Что такое СУБД
Чтобы понять, что такое СУБД, нужно сначала узнать, что такое база данных (БД).
База данных — это набор упорядоченных и структурированных данных, которые хранятся на определённом компьютере. Проще всего представить её как большую Excel-таблицу, где у каждого элемента (строки) есть определённые свойства (столбцы).
Если создать базу данных для магазина продуктов, то у каждого товара — например, жвачки, шоколадки и бутылки воды, — будут свойства: цена, количество штук в наличии и срок годности.
Базы данных — это просто файлы на диске компьютера, куда можно записывать новые элементы. Но сами БД ничего не умеют и для них нужно писать свои методы для управления — например, для добавления нового элемента или поиска нужной записи. Чтобы облегчить работу программистам, придумали СУБД.
Система управления базами данных (СУБД) — это набор инструментов, которые позволяют удобно управлять базами данных: удалять, добавлять, фильтровать и находить элементы, менять их структуру и создавать резервные копии.
СУБД можно представить как прослойку между базой данных и пользовательскими запросами к ней.
Когда пользователь нажимает на кнопку на сайте — например, чтобы скачать картинку, — сайт составляет специальный запрос к базе данных и отправляет его в СУБД. Она разбирает его и ищет в базе данных запрашиваемую информацию, а затем возвращает обратно сайту. Он уже конвертирует их в читаемый для пользователя вид и отдаёт ему.
Без СУБД разработчикам пришлось бы самостоятельно искать в файлах баз данных информацию, которая им нужна. Можно сказать, что база данных без СУБД — это как машина без кузова. В теории это машина: можно её заправлять, менять масло и детали. Но нормально поездить на ней не получится. Придётся сначала всё прикрутить, сделать кузов и только потом уже ехать.
СУБД нужна, чтобы упростить жизнь программистам и дать им все инструменты для работы с базами данных.
Для чего нужны СУБД
СУБД нужны для всех манипуляций с базами данных, а именно чтобы:
- создавать базы данных и администрировать их: удалять, изменять и объединять;
- держать данные в структурированном виде и необходимом формате;
- защищать данные от нежелательных изменений и попыток взлома;
- загружать и сортировать данные с помощью фильтров;
- делать резервные копии, восстанавливать базы данных после сбоёв и поддерживать общую целостность.
С помощью СУБД разработчики следят за всеми изменениями в базах данных. А БД хранят информацию пользователей: их транзакции и действия.
Например, чтобы создать базу данных с каталогом всех товаров на маркетплейсе, нужно завести огромную таблицу со строками, где у каждой будут определённые свойства. Они могут быть такими:
- название товара;
- стоимость;
- количество единиц на складе;
- поставщик.
Чтобы держать такую таблицу в порядке и постоянно дополнять её новыми элементами, нужно обеспечить надёжность и высокую скорость работы. Для этого как раз и нужны СУБД.
Из чего состоит СУБД
СУБД — это набор инструментов, каждый из которых способен совершать с базой данных определённое действие: считывать её, удалять элементы или обрабатывать запросы от пользователя. И чтобы все эти инструменты правильно функционировали, у СУБД должна быть хорошо прописанная архитектура.
Главные элементы СУБД — ядро, процессор, программные средства и базы данных. Поговорим о каждом из них подробнее.
Ядро. Отвечает за работу всей системы в целом. Через него проходят все процессы обработки данных и их хранения. Ядро следит за всеми изменениями баз данных и фиксирует их.
Процессор, или компилятор. Занимается обработкой запросов от пользователей. Главная его задача — преобразовать SQL-запрос в понятные для компьютера команды, а затем вернуть результаты.
Программные средства, или утилиты. Нужны, чтобы пользователь мог вводить запросы, а администраторы могли настраивать доступ и другие необходимые параметры.
Базы данных. Место, где хранятся данные в упорядоченном, а иногда и в зашифрованном виде. Базы могут различаться по структуре и типам представления данных.
Виды СУБД
СУБД делят на разные типы и по разным параметрам. Мы рассмотрим, как они различаются в четырёх классификациях: по расположению баз данных, по хранению и обработке данных, по языку запросов, по структуре и организации данных.
По расположению баз данных
СУБД бывают локальные и распределённые.
Локальные. Это когда всё содержимое базы данных располагается на одном компьютере — обычно на сервере компании.
Распределённые. Это когда база данных частично находится на разных компьютерах — например, в облаке.
Современные СУБД могут быть одновременно локальными и распределёнными.
По хранению и обработке данных
Здесь СУБД делятся на клиент-серверные, файл-серверные и встраиваемые.
Клиент-серверные. Это когда СУБД с базой данных находятся на одном компьютере, к которому пользователи обращаются с запросами. Получить доступ к такой СУБД можно с любого компьютера.
Многие интернет-магазины заводят именно такую базу данных, чтобы пользователи могли быстро получать свежую информацию об их товарах.
Файл-серверные. Это когда база данных находится на одном сервере, а СУБД — на устройствах, с которых к базе отправляют запросы. Чтобы получить данные, у пользователя должна быть установлена и настроена СУБД.
Файл-серверные СУБД используют для локальных сервисов компаний — например, CRM-систем, где находятся данные о клиентах и документообороте.
Встраиваемые. Это локальные СУБД, которые представляют собой отдельный модуль для управления данными внутри приложений. Обычно они написаны в виде библиотек для разных языков программирования.
Например, Microsoft Access и «1С:Бухгалтерия» имеют такой тип СУБД.
По языку запросов
СУБД поддерживают язык структурированных запросов и неструктурированных.
SQL. Это язык для создания структурированных запросов к базам данных. Такие СУБД самые популярные в использовании.
NoSQL. Это язык для запросов, который основан на другом языке программирования — например, Python или JavaScript. СУБД с NoSQL обычно используют при работе с большими данными.
По структуре и организации данных
И последнее свойство, по которому делятся СУБД, — то, как они представляют информацию внутри баз данных.
Реляционные. Данные в виде таблиц, которые связаны друг с другом через сквозные параметры. Такая архитектура обеспечивает построчное хранение данных и нужна для создания строгой структуры. Ещё одна их особенность: за одно обращение к базе пользователь сможет получить лишь небольшое число элементов.
Каждая строка имеет уникальный идентификатор, или ключ. Поэтому найти нужные данные и связать их между собой в такой базе данных легко.
Реляционные базы данных используют, когда объём данных не превышает нескольких терабайт. Это делает их подходящими практически любому проекту.
Самые популярные среди реляционных баз данных — PostgreSQL, Microsoft SQL Server, MySQL, Oracle.
Реляционные базы данных применяют, когда важны следующие характеристики:
- Транзакционность. Для выполнения операции нужно сделать несколько запросов к базе данных. Это может быть, например, перевод денег с одной карты на другую через приложение банка.
- Частые изменения данных. Так как в реляционных базах данных строгая структура.
- Поиск по индексам. Каждый элемент такой базы данных — это строка, а искать элементы по строкам удобно.
- Запросы небольшого количества записей за раз. Реляционные базы данных работают как раз по этому принципу.
- Объём данных не превышает нескольких терабайт. Если будет больше, такая база данных будет работать медленнее.
Ключ — значение. Каждый элемент базы данных использует для хранения уникальный идентификатор, который состоит из ключа и значения. Этот способ хранения похож на тип данных «словарь» в языках программирования.
Базы данных типа «ключ — значение» имеют вид хеш-таблиц, в которых у каждой записи — только один индекс. При этом жёстких ограничений по структуре элементов нет.
Такие базы данных используют по принципу логов, когда новые записи заносят в конец хранилища. Удаляют элементы с помощью добавления специальной записи.
Ещё несколько способов использования баз данных типа «ключ — значение» — очереди, кэш и логирование.
Популярные базы данных типа «ключ — значение» — Redis, DynamoDB и Aerospike.
Документные. В отличие от реляционных баз данных, документоориентированные хранят информацию в виде «документов», а не таблиц и строк. Главное преимущество документных баз данных — возможность хранить информацию без строгого ограничения по структуре.
Документные базы данных умеют хранить информацию целиком и получать её одним запросом. Даже если структура элементов будет разной. Ещё документные базы данных позволяют использовать ссылки на другие записи в базе, что чем-то напоминает реляционную модель.
Популярные документные базы данных — MongoDB, CouchDB и Amazon DocumentDB.
Графовые. В них элементы имеют взаимосвязи в виде графа, где у каждого его узла есть множество связей с другими узлами. Такой вид баз данных напоминает паутину. Обычно эти базы данных используют в соцсетях или рекомендательных сервисах.
Каждый узел графовой базы данных содержит в себе данные, а чтобы составить взаимосвязи между узлами, используют рёбра. В них хранятся начальный и конечный узлы, направление и тип. Рёбра описывают взаимосвязи между двумя узлами — например, «родитель — потомок», — а также действия над ними.
Обойти весь граф можно очень быстро, потому что связи между узлами не считаются во время запроса, а сразу хранятся в базе данных. Поэтому графовые базы данных применяются в соцсетях, рекомендательных сервисах и системах выявления мошенничества, когда нужно построить взаимосвязи между данными и запросить их.
Популярные графовые базы данных — Amazon Neptune, Neo4j и InfiniteGraph.
Колоночные. В них данные хранятся последовательно в виде одной колонки, и предполагается, что на одном и том же месте в каждой колонке хранятся элементы, которые относятся к одной строке. Это позволяет эффективно сжимать данные и анализировать их — находить сумму, количество или среднее значение.
Колоночные базы данных позволяют загружать новые данные непрерывным потоком или порциями. При этом удалять их так нельзя.
Главная область применения колоночных баз данных — анализ данных. Такие базы аналитики и менеджеры компаний используют, чтобы хранить историю событий.
Популярные колоночные базы данных — ClickHouse, Apache Druid, Vertica, BigQuery и Teradata.
Популярные СУБД
СУБД существует много, но часто программисты пользуются семью самыми популярными — PostgreSQL, Microsoft SQL Server, MySQL, SQLite, MongoDB, Redis и Oracle.
PostgreSQL
Тип. Реляционная СУБД клиент-серверного вида.
Стоимость. Бесплатно.
Лицензия. PostgreSQL License, Open Source.
Для кого. Подходит для проектов любой сложности и объёма.
Преимущества. СУБД имеет большую функциональность и высокую производительность — например, она без проблем может работать с большими данными под высокой нагрузкой.
Язык запросов — SQL, но его можно поменять через расширения на PL/Python, PL/Java и PL/Perl. И ещё одно преимущество PostgreSQL — в ней нет лимита по размеру баз данных и числу записей в таблицах.
Скачать СУБД можно на официальном сайте.
MySQL
Тип. Реляционная СУБД клиент-серверного вида.
Стоимость. Бесплатно.
Лицензия. GPLv2, проприетарная.
Для кого. Подходит для небольших и средних команд и проектов.
Преимущества. Интерфейс программы позволяет работать с таблицами разных форматов. MySQL работает онлайн и вмещает до 50 млн элементов. Но по функциональности она уступает PostgreSQL. При этом её можно интегрировать с другими СУБД.
MySQL использовали для сайтов и интернет-магазинов такие компании, как Twitter, Alibaba, «Фейсбук»*, Wikipedia.
После того как MySQL купила компания Oracle, пользователи стали немного переживать, что в скором времени база данных может стать платной. Но пока она остаётся бесплатной.
Скачать СУБД можно бесплатно на официальном сайте.
Microsoft SQL Server
Тип. Реляционная СУБД.
Стоимость. Бесплатно.
Лицензия. Проприетарная.
Для кого. Платную версию используют в крупных компаниях, а бесплатную можно без проблем применять в проектах с объёмом данных до 10 ГБ.
Преимущества. Эта СУБД добавляет автоматизацию задач — например, можно задать скрипт, который будет управлять памятью. Ещё Microsoft SQL Server позволяет удобно хранить сложные структуры данных и быстро искать их.
СУБД совместима с другими программами Microsoft — например, Excel и Access. С ними можно сделать интеграцию и выгружать данные оттуда, а также изменять их онлайн.
В качестве языка запросов Microsoft SQL Server использует язык SQL.
Скачать СУБД можно на официальном сайте.
SQLite
Тип. Однофайловая СУБД в виде библиотеки для языков программирования.
Стоимость. Бесплатно.
Лицензия. GPLv2, проприетарная.
Для кого. Подходит для небольших проектов.
Преимущества. SQLite очень компактная СУБД, которая не использует серверы и другие утилиты. Все данные хранятся на одном устройстве.
На SQLite можно написать простой сайт или приложение, у которого будет ограничен трафик и объём хранимых данных. СУБД работает на любых устройствах — смартфонах, компьютерах, телевизорах и других, куда можно загрузить библиотеку. Она не нуждается в администрировании, а её язык запросов — C.
Скачать СУБД можно на официальном сайте.
MongoDB
Тип. Документная СУБД с NoSQL-управлением, в которой данные хранятся в виде JSON-файлов.
Стоимость. Бесплатно.
Лицензия. Server Side Public License.
Для кого. Подходит для тех, кому нужно работать с большими объёмами данных из множества источников.
Преимущества. Главная особенность этой СУБД — данные представлены в виде текстовых документов, которые записаны в формате JSON.
Вместо таблиц здесь данные представлены в виде коллекций — групп документов. СУБД оптимизирована для распределённой работы, но также поддерживает локальное хранение данных.
MongoDB используют такие компании, как «Фейсбук», Google, Twitter, Forbes, IBM, а также многие интернет-магазины.
Скачать СУБД можно на официальном сайте.
Redis
Тип. База данных типа «ключ — значение».
Стоимость. Бесплатно.
Лицензия. BSD, Open Source.
Для кого. Redis используют для сайтов путешествий, форумов и социальных сетей. Также она подойдёт для SaaS-приложений и сервисов электронной коммерции.
Преимущества. Redis можно использовать в облаке — полностью готовую к работе и оптимально настроенную. Она легко масштабируется и управляется.
В Redis можно перенести данные из другой базы данных с помощью автоматизированного сервиса.
Скачать СУБД можно на официальном сайте.
Oracle Database
Тип. Объектно-реляционная база данных.
Стоимость. Бесплатно.
Лицензия. Проприетарная.
Для кого. Для проектов любой сложности.
Преимущества. Oracle DB работает как клиент-сервер. Это значит, что она располагается на сервере вместе с базой данных. Поэтому, чтобы работать с ней, нужен специальный интерфейс приложения-клиента. Пользователь управляет пересылкой и получением данных от сервиса.
Oracle DB обеспечивает высокую безопасность и лёгкий доступ для пользователей. Ещё она позволяет снизить нагрузку на клиентские компьютеры. При этом сервер для СУБД должен быть помощнее.
Скачать СУБД можно на официальном сайте.
* Решением суда запрещена «деятельность компании Meta Platforms Inc. по реализации продуктов — социальных сетей Facebook и Instagram на территории Российской Федерации по основаниям осуществления экстремистской деятельности».
Как выбрать СУБД для решения ваших задач?
Значительная часть программного обеспечения — будь то ПО для банков, страховых организаций, фондов, денежного рынка, платежных сервисов — разрабатывается на основе базы данных.
Но многие разработчики испытывают трудности при выборе подходящей БД: иногда лучший выбор действительно не очевиден. Если реляционные и нереляционные базы данных сразу приходят на ум, то о системах управления базами данных (СУБД) часто забывают или не знают разницу между ними.
Восполним этот пробел и простыми словами расскажем, какие решения существуют на рынке СУБД, из каких продуктов стоит выбирать и как сделать правильный выбор в соответствии с решаемыми задачами.
Вот список наиболее часто используемых СУБД:
- Реляционная СУБД.
- Графовая СУБД.
- Документная СУБД.
- Столбцовая СУБД.
- СУБД типа «Ключ — значение».
- СУБД временных рядов.
- СУПБД (система управления пространственными базами данных).
- Поисковая СУБД.
- Объектно-ориентированная СУБД.
В конце статьи приведена резюмирующая таблица с кратким описанием того, в каких случаях подходит конкретный тип СУБД и какие популярные решения существуют. Так что самые нетерпеливые могут перейти прямо к таблице.
Отметим, что у ряда крупных поставщиков имеется по нескольку типов СУБД — в виде отдельных продуктов или внутренних реализаций.
У Oracle, например, есть все: классическая реляционная БД; отдельный продукт Oracle NoSQL Database (нереляционная БД Oracle), применяющийся в качестве столбцовой, документной и базы данных типа «ключ — значение»; автономная база данных, ориентированная на хранилища данных; сервер для графов Oracle Graph Server и многие другие продукты.
Типы СУБД. Как выбрать правильный?
Реляционная СУБД
Это классическая система, которая чаще используется для создания OLTP-решений (обработка транзакций в реальном времени), когда СУБД работает с большим количеством маленьких транзакций. Системе требуется короткое время отклика и возможность отменять любые изменения, сделанные во время транзакции при определенных условиях.
Реляционная СУБД подойдет для создания системы, предназначенной для хранения значительного числа сущностей — таблиц — с различными типами отношений между ними (один к одному, один ко многим, многие ко многим).
Самые известные реляционные СУБД:
- Oracle;
- Microsoft SQL;
- PostgreSQL;
- MySQL;
- IBM DB2.
Когда следует выбирать реляционную базу данных?
Во-первых (1), при высокой нормализации данных. А во-вторых (2), при обработке большого количества коротких транзакций, среди которых немалый процент транзакций с вставкой.
Когда не следует выбирать реляционную СУБД?
Для хранения 1) неструктурированных данных и 2) очень простых структур «ключ — значение». Для первых лучше подойдет документная СУБД. А для вторых — специализированная СУБД типа «ключ — значение».
А еще 3) при необходимости часто обновлять значения в одних и тех же строках. Это дорого обойдется реляционной СУБД: чтобы сделать все корректно, понадобятся «танцы с бубном». Но при наличии умелого танцора (или когда вы точно знаете, как это делать) используйте реляционную СУБД.
Графовая СУБД
Это особый тип СУБД для работы с графами, их узлами и свойствами, а также произвольными отношениями между узлами.
Простой пример — создание приложений типа соцсетей, где нужно хранить соединения между пользователями (узлами) в соответствии с критериями: общие интересы, коллеги, родственники.
Самые известные графовые СУБД:
- Neo4j;
- Amazon Neptune;
- InfiniteGraph;
- InfoGrid.
Когда следует выбирать графовую базу данных?
1) При создании соцсети или реализации рейтинговой и рекомендательной системы и 2) при глубоком понимании графов и их назначения.
Когда не следует выбирать графовую базу данных?
Почти во всех остальных случаях.
Документная СУБД
Документная или документоориентированная СУБД — это одна из самых популярных разновидностей нереляционных СУБД. В качестве базовой единицы логической модели данных у нее структурированный текст со специфическим синтаксисом (документ).
Считается, что модели данных документных и объектно-ориентированных БД аналогичны. Это так, хотя разница все же есть: документные БД не хранят поведение объектов, а только их состояние. Документные СУБД активно развиваются — некоторые даже поддерживают проверку схемы.
Самые известные документные СУБД:
- CouchDB;
- MongoDB;
- Amazon DocumentDB.
Когда следует выбирать документную БД?
У документной СУБД широкий диапазон применения: от 1) компактной БД для одного микросервиса до 2) крупномасштабных решений в качестве хранилища состояния.
Лучше хранить объекты в одной сущности, но с разными структурами. Кстати, очень полезны они и 3) для хранения структур (включая объекты, списки и словари), особенно в JSON-подобном формате.
Когда не следует выбирать документную СУБД?
Документная система не подходит для реализации модели транзакций и, конечно, это не лучшее решение для формирования отчетов.
Столбцовая СУБД
Столбцовая СУБД очень непохожа на реляционную: хотя так же состоит из сгруппированных в таблицы строк с атрибутами и по логической модели мало чем от нее отличается — на уровне физического хранилища имеет существенные различия.
Реляционная СУБД хранит данные построчно. То есть для считывания значения конкретного столбца приходится считывать почти всю строку — от первого до этого столбца.
Столбцовая СУБД хранит данные по столбцам. То есть столбец предстает в виде отдельной таблицы. А считывание выполняется прямо из конкретного столбца. На самом деле работает очень быстро — протестировано на нескольких реализованных хранилищах данных.
Преимущества столбцовой СУБД:
- эффективно выполняет сложные аналитические запросы для большого объема данных;
- простое и почти мгновенное реструктурирование таблиц с данными;
- существенное сжатие, которое экономит много места.
Самые известные столбцовые СУБД:
- Sybase IQ (SAP IQ);
- Vertica;
- ClickHouse;
- Google BigQuery;
- InfoBright;
- Apache Druid.
Когда следует выбирать столбцовую БД?
1) При создании хранилища данных и осуществлении выборки со сложными аналитическими вычислениями. 2) Когда количество запрашиваемых строк превышает сотни миллионов.
Когда не следует выбирать столбцовую СУБД?
1) Когда количество строк в таблице, из которой делаются запросы, меньше сотен миллионов. Здесь у столбцовой СУБД перед реляционной преимуществ будет немного.
2) Когда запросы достаточно простые и со статичными параметрами. В этом случае — учитывая специфику системы — столбцовая СУБД будет неэффективна.
К тому же у столбцовой СУБД есть и другие ограничения. Например, язык запросов может отличаться от классического SQL или отсутствует поддержка транзакций.
СУБД типа «ключ — значение»
Это одна из простейших СУБД, что-то вроде таблицы с уникальным ключом и связанным значением, в котором может быть что угодно. Такие СУБД чаще всего используются для кеширования, потому что они быстры — ведь есть уникальный ключ и запрос возвращает только одно значение.
Некоторые СУБД типа «ключ — значение» полностью работают в памяти, а другие устанавливают для записи время жизни, по истечении которого запись автоматически удаляется.
Самые известные СУБД типа «ключ — значение»:
- Redis;
- Memcached.
Когда следует выбирать БД типа «ключ — значение»?
Она идеальна, когда 1) необходимо кеширование данных или брокеры сообщений и когда 2) надо хранить довольно простые структуры с быстрым доступом к ним.
Когда не следует выбирать БД типа «ключ — значение»?
Когда 1) в БД хранится много сущностей (таблиц), имеющих сложные структуры с разными типами данных. Когда 2) надо выполнять сложные запросы, возвращающие много строк.
СУБД временных рядов
Эта СУБД оптимизирована для хранения данных с метками времени или данных временных рядов. Данные временных рядов содержат измерения или события, которые отслеживаются, собираются или объединяются за определенный период времени.
Это данные с датчиков отслеживания движения, метрики JVM из приложений на Java, данные о рыночной торговле, сетевые данные, ответы от API, время безотказной работы процесса и т. д.
Данные хранятся с метками времени — это ключевая особенность — и индексируются и записываются так, чтобы данные этого временного ряда запрашивались намного быстрее, чем при использовании в классической реляционной БД.
Самые известные СУБД временных рядов:
Когда следует выбирать СУБД временных рядов?
Основная область применения таких СУБД — мониторинг, обработка телеметрии и финансовые системы.
Когда не следует выбирать СУБД временных рядов?
Воздержитесь от использования такой СУБД в задачах, не связанных с временными рядами и метками времени.
Объектно-ориентированная СУБД
Эта СУБД предназначена для хранения и обработки объектов. Как и в ООП (объектно-ориентированном программировании), у этих объектов в СУБД есть свойства и методы. И они тоже реализуют инкапсуляцию и полиморфизм.
Главная цель применения объектно-ориентированной СУБД — облегчить жизнь разработчикам, использующим модель объектного программирования. Им не придется преобразовывать объекты в таблицы и строки со связями и обратно.
Самые известные объектно-ориентированные СУБД:
Когда следует выбирать объектно-ориентированную СУБД?
Вообще-то не доводилось видеть много успешных реализаций с такими СУБД. Объектно-ориентированные базы данных обычно рекомендуется использовать при 1) высокопроизводительных манипуляциях с объектами, имеющими сложную структуру.
В то же время разработка 2) предполагает применение объектно-ориентированных языков программирования. Объектно-ориентированные БД распространены в системах реального времени, архитектуре и инженерии для 3D-моделирования, телекоммуникациях и научных продуктах, молекулярной науке и астрономии.
Когда не следует выбирать объектно-ориентированную СУБД?
1) При использовании классического языка SQL, 2) когда не применяется ООП или 3) при переходе на другую БД. И 4) при отсутствии глубокого понимания ООП. Тогда стоит выбрать документную СУБД.
Поисковая СУБД
Этот тип СУБД используется для осуществления полнотекстового поиска. А также поиска по различным данным, например из других БД, электронной почты, RSS-канала, текста, JSON, XML, CSV и даже PDF и документам MS Office.
Поисковая СУБД имеет собственные оптимизированные подходы к индексированию данных, в том числе использование так называемых инвертированных и фасетных индексов для поиска почти в реальном времени.
Различные СУБД этого типа применяют разные языки запросов.
Самые известные поисковые СУБД:
Когда следует выбирать поисковую СУБД?
Идеальные примеры — подходящие для быстрого полнотекстового поиска в различных источниках данных системы сбора и поиска по журналам структурированных, полуструктурированных и неструктурированных данных.
Когда не следует выбирать поисковую СУБД?
При поиске по ограниченному числу полей структурированных данных.
СУПБД (система управления пространственными базами данных)
Этот тип СУБД оптимизирован для работы с объектами, определенными в геометрическом пространстве — как простыми (точки, кривые, многоугольники), так и сложными (3D-объекты, топологическое покрытие, линейные сети).
СУПБД имеет набор специальных функций для обработки создания, преобразования, измерения (расстояние, площадь, объем), вычисления (пересечение/контакт) и выбора на основе определенных критериев. И содержит специальные индексы, оптимизирующие обработку объектов, и особый стандартизированный язык SQL/MM.
Самые известные СУПБД:
Когда следует выбирать СУПБД?
При создании ГИС-решений — не только для хранения, но и для работы с геометрическими объектами на уровне СУПБД.
Когда не следует выбирать СУПБД?
Для хранения геометрических объектов в качестве координат.
Заключение
Определиться с выбором СУБД бывает нелегко, ведь их так много! Надеемся, вы немного прояснили для себя этот вопрос и теперь легко выберите подходящую.
Хотите создать сложное решение? Тогда понадобится несколько типов СУБД. И не торопитесь с выбором поставщиков СУБД: обычно это тема второстепенная.
Выбирайте тип СУБД на основе следующих трех факторов:
- тип решаемых задач;
- типы обрабатываемых данных;
- перспективы роста и масштабирование.
Обратите внимание на популярные СУБД — такой выбор гарантирует наличие большого разнообразия инструментов разработки и единомышленников, которые помогут быстро найти решение возникающих вопросов.