Достоинства и недостатки СУБД
Вы уже знаете, что СУБД является передаточным механизмом между прикладной программой и информационным хранилищем. База данных — это та логическая структура информационного хранилища, которая представляется прикладному программисту, взаимодействующему с данными посредством СУБД. СУБД обеспечивает физическую и логическую независимость прикладной программы от данных. Можно сказать, что необходимость использования СУБД в построении информационной системы практически доказана. Другое дело, используется ли при разработке ИС СУБД независимых разработчиков, или же система управления базами данных разрабатывается в рамках работы над самой информационной системой.
Рассмотрим преимущества и недостатки использования СУБД сторонних разработчиков, т. е. СУБД, предназначенных для широкого использования в структурах информационных систем.
Преимущества СУБД
Поддержка многозадачного и многопользовательского режимов
Абсолютное большинство современных СУБД рассчитано на работу в многозадачном и многопользовательском режиме. Первое означает, что СУБД может запускать одновременно несколько задач (потоков) обработки данных. Например, запускать запросы от пользователя и, одновременно, по расписанию запускать какие-либо задачи управления данными, скажем, резервное копирование, обмен данными с другими СУБД (репликации) и т. п. В многопроцессорных системах современные СУБД могут экономно распределять процессорную нагрузку между всеми выполняющимися потоками (распределять потоки между всеми процессорами).
С другой стороны, современные СУБД позволяют одновременно регистрироваться множеству пользователей. При этом, используя многозадачность, СУБД может одновременно обрабатывать запросы от множества пользователей. Все современные СУБД поддерживают транзакционные механизмы и блокировки для безопасной работы одновременно нескольких пользователей.
Система безопасности
Все СУБД, особенно промышленного типа (серверы баз данных), поддерживают систему ограничения доступа для различных пользователей и групп пользователей. Используя эту возможность, можно построить эффективную систему защиты конфиденциальности данных. При разработке информационной системы на основе СУБД можно просто воспользоваться уже готовой системой безопасности либо усовершенствовать ее, интегрировав систему безопасности ИС в систему безопасности СУБД. СУБД предоставляет разные механизмы ограничения доступа к данным: посредством представлений, хранимых процедур и функций, через непосредственное ограничение доступа к таблицам (ограничение операций, которые может выполнять пользователь в таблице). Кроме этого, СУБД позволяют хранить данные в зашифрованном виде если вдруг вы захотите скачать крокодильчик свомпи на компьютер
Резервное копирование
Резервное копирование — это простой и вместе с тем наиболее эффективный способ зашиты данных от повреждения. Современные СУБД обладают весьма мощной системой резервного копирования. Эта система позволяет производить резервное копирование без участия пользователя по расписанию или наступлению какого-либо события. Кроме этого, современные СУБД позволяют копировать не всю базу данных, а только те изменения, которые были в ней сделаны со времени последнего копирования (дифференциальное копирование). Также СУБД поддерживают и зеркальные базы данных, которые гарантированно содержат копию той или иной базы данных.
Поддержка транзакционных механизмов
Все современные СУБД поддерживают транзакционные механизмы. Эти механизмы являются одним из важных средств защиты данных от сбоев. Транзакции гарантируют, что даже после сбоя данные будут находиться в непротиворечивом состоянии. Использование транзакций в многопользовательской работе приводит к взаимодействию транзакций друг с другом, что может привести к получению неадекватной информации от информационной системы. Для предотвращения такой ситуации в СУБД предусмотрены довольно сложные механизмы блокировок, позволяющие устранить опасное взаимодействие.
Контроль целостности данных
Все СУБД поддерживают в том или ином виде контроль целостности баз данных. Этот контроль позволяет гарантировать уникальность ключей, непротиворечивость данных, хранящихся в столбцах таблиц, соответствие внешних и первичных ключей. Кроме этого, СУБД предоставляют наиболее мощный механизм поддержания корпоративной целостности — триггеры.
Поддержка стандартов
Разные СУБД в той или иной степени поддерживают существующие стандарты, в частности стандарты SQL. Наличие той или иной поддержки стандарта даст определенную гарантию (хотя и не полную) использовать последующие версии данной СУБД или переход на другую СУБД. Кроме этого, следование стандартам позволяет легче интегрировать ИС с другими информационными системами.
Масштабируемость
Разработчики СУБД большое значение придают масштабируемости своего продукта. Это означает, что:
- при улучшении аппаратной части компьютера (увеличения объема оперативной памяти, количества процессоров и т. д.) производительность системы должна увеличиваться;
- увеличение объемов обрабатываемой информации (объем баз данных, количество запросов за определенный промежуток времени) не должно сильно сказываться на производительности системы.
Разработчики СУБД уже многие годы работают над этой проблемой, улучшая масштабируемость своих СУБД от версии к версии. Это очень важное преимущество передынформационными системами, которые разрабатываются без использования СУБД широкого применения.
Показатели производительности
Большое значение придают разработчики СУБД показателям производительности. Это один из самых конкурентных показателей любой СУБД. Прикладной программист может полностью положиться на высокие показатели производительности СУБД и сосредоточиться на других свойствах разрабатываемой системы.
Наличие средств администрирования данных
Важнейшее достоинство использования СУБД общего назначения — это наличие в них всевозможного инструментария по администрированию базы данных. Как правило, СУБД предоставляет программы для визуальной разработки баз данных. Это первостепенное преимущество таких СУБД. Интерактивное взаимодействие с базой данных помимо разрабатываемой программы дает возможность разработчиком оперативно реагировать на меняющуюся ситуацию, появление новых требований, выявление ошибок и т. д. Кроме этого, для наиболее популярных СУБД имеется большое количество программ администрирования, созданных сторонними разработчиками).
Недостатки СУБД
Сложность сопровождения
Некоторые СУБД довольно сложны для администрирования. Для того чтобы использовать функциональность СУБД наиболее полно, требуется, чтобы администратор СУБД, администраторы баз данных, конечные пользователи, разработчики системы обладали определенными знаниями в области баз данных, а также в возможностях конкретной СУБД. Несомненно, обучение персонала или подбор квалифицированных кадров требует определенных материальных затрат, которые увеличиваются с повышением сложности программного продукта.
Размер СУБД
СУБД могут потребовать значительного дискового пространства и других ресурсов. Сами базы данных, в связи со сложной их структурой, также могут потребовать значительного дискового пространства.
Стоимость СУБД
Стоимость современных СУБД может быть очень существенной и достигать огромных сумм (до миллиона долларов). Кроме этого, требуются большие расходы на сопровождение системы. Все это, разумеется, войдет в стоимость разрабатываемой информационной системы и в стоимость ее эксплуатации.