Лекция № 1
Тема: «Обзор систем управления базами данных (СУБД)»
План
1. Значение терминов БД и СУБД
2. Требования к СУБД
3. Виды СУБД
4. Критерии выбора СУБД
1. Значение терминов БД и СУБД
Любая современная информационная система нуждается в базе данных, так как является по своей сути информационной системой, предназначенной для хранения, обработки и анализа информации о происходящих на защищаемом объекте событиях. Также в системе могут храниться настройки оборудования, личные данные пользователей, уровни доступа и другая нужная информация.
Частая ошибка многих специалистов по безопасности – некорректное использование термина «база данных» (БД) вместо термина «система управления базами данных» (СУБД). Давайте разберёмся, что к чему.
База данных – представленная в объективной форме совокупность самостоятельных материалов, систематизированных таким образом, чтобы эти материалы могли быть найдены и обработаны с помощью электронной вычислительной машины.
Система управления базами данных (СУБД) – совокупность программных и лингвистических средств общего или специального назначения, обеспечивающих управление созданием и использованием баз данных.
То есть, упрощённо, «база данных» – это сами данные, представленные в виде совокупности файлов на дисках, с которыми как раз работает «система управления базами данных» (СУБД) – программный продукт, имеющий средства для создания, наполнения, модификации и поиска по базам данных.
Разработчики различных приложений работают именно с СУБД и выбирают СУБД под свои нужды.
2. Требования к СУБД
Какие же особенные требования следует предъявить к СУБД с точки зрения пользователя? К ним относятся:
– надёжность: никакие данные не должны пропасть! Сбои должны быть минимизированы и не должны приводить к потерям данных, базы должны быть надёжно защищены от несанкционированного доступа, на режимных объектах могут потребоваться функции шифрования данных, необходимо также обеспечивать регулярное резервное копирование баз данных и возможность восстановления из архива при необходимости.
– производительность: СУБД должна обеспечивать приемлемый уровень производительности для решения возложенных на неё задач.
– уверенность в том, что СУБД будет поддерживаться производителем, и вы не останетесь один на один с проблемой в случае какого-то серьёзного сбоя или сложной ситуации.
3. Виды СУБД
СУБД на данный момент существует великое множество и классифицируются они по разным признакам. Стандартом де-факто в современных информационных системах являются реляционные СУБД, в которых данные хранятся в табличном виде. Перечислим ключевые параметры классификации как для разработчиков, так и для пользователей системы.
По способу доступа к БД
Клиент-серверные СУБД.
В клиент-серверных СУБД (Microsoft SQL Server, Oracle, Firebird, PostgreSQL, InterBase, MySQL и др.)
Вся обработка данных ведётся в одном месте, на сервере, в том же месте, где хранятся (обычно) данные.
К файлам данных имеет доступ только один сервер, одна система – это сама СУБД.
Приложения-клиенты посылают запросы на обработку и получение данных из СУБД и получают ответы.
Приложения-клиенты не имеют непосредственного доступа к файлам данных.
Все промышленные СУБД на данный момент являются именно клиент-серверными.
Файл-серверные СУБД.
В файл-серверных СУБД (Paradox, Microsoft Access, FoxPro, dBase и др.), наоборот,
Приложения имеют общий доступ ко всем файлам базы данных (хранящимся обычно в каком-то разделяемом файловом хранилище) и совместно обрабатывают эти данные.
Каждое приложение самостоятельно обрабатывает данные.
На данный момент файл-серверная технология считается устаревшей, а её использование в крупных информационных системах – недостатком. Проблема в том, что файл-серверные СУБД не имеют многих преимуществ клиент-серверных, таких как кэширование данных, параллелизм запросов, высокая производительность и обладают рядом недостатков (сложности с поддержанием целостности базы, восстановлением, блокировками и т.д.), что приводит в свою очередь к пониженной надёжности и производительности. Состояние базы в файловых СУБД необходимо постоянно отслеживать и проводить операции по её «лечению» с помощью встроенных или сторонних утилит.
Встраиваемые СУБД.
Встраиваемые СУБД (SQLite, Firebird Embedded, Microsoft SQL Server Compact и др.)
Поставляются в составе готового программного продукта, не требуя процедуры самостоятельной установки.
Предназначены для локального хранения данных приложения и не рассчитаны на коллективное использование в сети.
Встраиваемая бесплатная СУБД SQLite широко используется в известной мобильной ОС Android, разработанной в компании Google, и во многих мобильных приложениях.
По схеме лицензирования
Бесплатные СУБД.
Коммерческие промышленные СУБД (большинство производителей предлагают также бесплатную ограниченную версию).
Файл-серверные и встраиваемые СУБД практически все являются бесплатными, из бесплатных клиент-серверных СУБД наиболее известные: Firebird, PostgreSQL и MySQL.
Чисто коммерческий продукт, разработанный компанией Borland: СУБД InterBase. Ранее у этой СУБД была бесплатная версия с открытым исходным кодом: InterBase 6.0, но проект InterBase 6.0 Open Source Edition перестал поддерживаться компанией Borland. В 2001 году группа энтузиастов создала отдельный Open source проект СУБД Firebird, упомянутой выше, который получил широкую известность и множество поклонников среди разработчиков.
Большинство производителей промышленных СУБД дают возможность пользоваться бесплатными редакциями своих продуктов, которые являются урезанными по функционалу и по производительности вариантами полнофункциональной версии СУБД.
Сравнение свободных и коммерческих СУБД
|
Свободные СУБД |
Коммерческие СУБД | ||
|
+ |
− |
+ |
− |
|
Бесплатно. Менее требовательны к железу. Богатый функционал. Хорошая производительность. Надежность. |
Проект в любой момент может закрыться, т.к. поддерживается энтузиастами. Сложнее найти грамотного специалиста для обслуживания. |
Высокая производительность. Масштабируемость. Надёжность. Поддерживаемость. Задокументированность. Встроенные инструменты для разработки и администрирования. |
Требовательность к ресурсам. Высокая цена.
|
В приведённой ниже таблице приведены ограничения наиболее часто используемых бесплатных редакций промышленных СУБД.
|
Компания-производитель |
Бесплатные версии |
Ограничения |
|
Microsoft |
SQL Server 2005/2008 Express Edition |
Размер базы данных – до 4 Гб, количество баз не ограничено, использует не более 1 Гб оперативной памяти и только 1 процессор (ядро) на многопроцессорных и многоядерных машинах. Поддерживаемые платформы: только Windows (2005 – только x86, 2008 – x86 и x64). |
|
SQL Server 2008 R2/ 2012/2014/2016/2017/2019 Express Edition |
Размер базы данных – до 10 Гб, количество баз не ограничено, использует не более 1 Гб оперативной памяти и только 1 процессор (ядро) на многопроцессорных и многоядерных машинах. Поддерживаемые платформы: только Windows x86 и x64. | |
|
Oracle |
Oracle Database 11g Express Edition, (Oracle Database XE) |
Суммарно до 11 Гб пользовательских данных, использует не более 1Гб оперативной памяти и только 1 процессор (ядро) на многопроцессорных и многоядерных машинах. Поддерживаемые платформы: Windows x86, Linux x64. |
|
IBM |
IBM DB2 Express-C |
Размер базы не ограничен, используется до 4Гб оперативной памяти и до 2-х процессоров. Поддерживаемые платформы: Windows x86 и x64, Linux x86 и x64, Unix x86 и x64, Solaris x86 и x64, Mac OS X |
При превышении максимального размера базы запись в БД прекратится, но эту проблему легко предотвратить. Необходимо настроить средствами вашей СУБД процедуру периодического удаления старых данных из БД. Во многих информационных системах эти процедуры предусмотрены разработчиками и их надо просто настроить.
Что касается ограничений по производительности: если система небольшая, не подразумевает больших нагрузок на СУБД, спокойно можно ограничиться бесплатной редакцией, её будет более чем достаточно. Если же задача накладывает повышенные требования на подсистему СУБД: большое количество пользователей в системе, большой трафик событий и поток обновлений данных в системе (объекты с большим количеством временных посетителей) и высокие требования к глубине архива событий, то всегда можно перейти с бесплатной редакции на коммерческий вариант, оплатив необходимую лицензию.
4. Критерии выбора СУБД
Конкретный выбор той или иной СУБД – дело вкуса и предпочтений каждого производителя, благо – выбор есть. При выборе разработчики учитывают также вопросы удобства и простоты администрирования, наличие встроенных бесплатных инструментов для администрирования и разработки.
СУБД помимо высокой надёжности и производительности должна быть удобной и недорогой в поддержке. Разработчики прекрасно понимают, что даже на крупных объектах зачастую нет выделенных специалистов, обладающих навыками администрирования СУБД, поэтому стараются включать в свои продукты функции, облегчающие и автоматизирующие процессы обслуживания базы данных.
Прежде всего – резервное копирование БД, основа основ, которая позволяет администратору системы спокойно спать. Все СУБД имеют собственные средства для создания резервных копий, но хорошим тоном считается, когда функция резервного копирования интегрирована в продукт и администратору необходимо лишь включить/настроить её и периодически проверять функционирование.
Вторая частая проблема – восстановление данных после сбоя. Здесь опять же на выручку приходит свежая резервная копия, но если её нет, или критично восстановление всех возможных данных, то потребуются дополнительные усилия. К счастью, в промышленных СУБД (чего не скажешь о старых файловых СУБД типа Paradox) такие явления происходят нечасто, их может вызвать разве что «умирающий» жёсткий диск или сбой электропитания. В этом случае потребуются услуги специалиста-администратора СУБД, который сможет с помощью встроенных в любую серьёзную СУБД инструментов восстановить максимум из возможного.
Вопросы для самопроверки
1. Дайте определение БД и СУБД.
2. Каким требованиям должны соответствовать СУБД?
3. Какие СУБД по способу доступа Вы знаете?
4. Какие СУБД по схеме лицензирования Вы знаете? В чем преимущества и недостатки бесплатных и коммерческих СУБД?
5. Каким критериями нужно руководствоваться при выборе СУБД?