Функциональные возможности СУБД были сформулированы Э. Коддом в 1982 году в виде восьми основных функций.
1. Хранение, извлечение и обновление данных – это самая фундаментальная функция СУБД.
2. Наличие доступного конечным пользователям каталога, в котором хранится описание элементов данных. Ключевой особенностью идеологии ANSI/SPARC является наличие интегрированного системного каталога с данными о схемах, пользователях, приложениях и т.д. Он называется еще словарем данных и является хранилищем информации, описывающей данные в базе, то есть это данные о данных, или метаданные. Обычно в этом каталоге хранятся такие сведения: имена, типы и размеры элементов данных; имена связей; накладываемые на данные ограничения поддержки целостности; имена санкционированных пользователей; статистические данные и др.
3. Поддержка механизма транзакций. Транзакция представляет собой набор действий, выполняемых отдельным пользователем или прикладной программой для доступа или изменения содержимого базы. Если во время выполнения транзакции произошел сбой, то база данных попадает в противоречивое состояние, так как некоторые изменения будут внесены, а другие – нет. Поэтому все частичные изменения должны быть отменены для возвращения базы в непротиворечивое состояние. Механизм транзакций гарантирует выполнение либо всех операций обновления данной транзакции, либо ни одной из них.
Примерами транзакций может служить добавление в базу данных сведений о новом сотруднике, обновление сведений о зарплате некоторого сотрудника, удаление сведений о сотруднике. Если во время выполнения транзакции произойдет сбой, например из-за выхода из строя компьютера, база данных попадает в противоречивое состояние, поскольку некоторые изменения уже будут внесены, а остальные еще нет. Поэтому все частичные изменения должны быть отменены для возвращения базы данных в прежнее, непротиворечивое состояние. СУБД должна иметь механизм, который гарантирует выполнение либо всех операций обновления данной транзакции, либо ни одной из них.
|
4. Поддержка механизма, гарантирующего корректное обновление данных при параллельном выполнении операций обновления многими пользователями. Параллельный доступ сравнительно просто организовать, если все пользователи выполняют только чтение данных, поскольку в этом случае они не могут помешать друг другу. Однако, когда два или больше пользователей одновременно получают доступ к базе данных на обновление, легко может возникнуть конфликт с нежелательными последствиями.
5. Поддержка средств восстановления базы при ее повреждении или разрушении. Сбой может произойти в результате выхода из строя системы или запоминающего устройства, ошибки аппаратного или программного обеспечения, которые могут привести к останову СУБД. Кроме того, пользователь может обнаружить ошибку во время выполнения транзакции и потребовать ее отмены. Во всех этих случаях СУБД должна иметь механизм восстановления базы данных и возврата ее к непротиворечивому состоянию.
6. Гарантия доступа к базе только санкционированным пользователям. Обеспечение безопасности данных за счет их шифрования, защиты паролем, разграничения уровней доступа.
7. Способность к интеграции с коммуникационным программным обеспечением для осуществления обмена данными с терминалами, за которыми работают пользователи.
|
8. Обеспечение целостности данных, т.е. наличие средств, позволяющих удостовериться, что содержимое базы всегда остается полным и корректным. Целостность базы данных означает, что в базе содержится полная, непротиворечивая и адекватно отражающая предметную область информация: объекты базы данных и их взаимосвязи. Поддержание целостности включает проверку и восстановление в случае обнаружения противоречий в базе данных. Целостное состояние базы описывается с помощью ограничений целостности в виде условий, которым должны удовлетворять хранимые в базе данные, например, диапазон возможных ограничений атрибутов.
Производительностьсовременных СУБД оценивается по следующим параметрам:
- время выполнения запросов;
- скорость поиска информации в неиндексированных полях;
- скорость создания индексов и выполнения таких массовых операций, как обновление, вставка, удаление данных;
- максимальное число параллельных обращений к данным в многопользовательском режиме;
- время генерации отчета;
- время выполнения операций импортирования базы данных из других форматов.
На производительность СУБД оказывают влияние и такие факторы, как:
- СУБД, которые следят за соблюдением целостности данных, несут дополнительную нагрузку, которую не испытывают другие СУБД;
- производительность собственных прикладных программ существенно зависит от правильного проектирования и построения базы данных.
Классификация СУБД.
|
Основой разработки и функционирования любой СУБД является модель данных, в которой находит отражение предметная область. Поэтому основным признаком классификации СУБД является тип поддерживаемой моделиданных. Согласно этому признаку СУБД делят на иерархические, сетевые, реляционные и др.
В 1970г. Э. Кодд опубликовал статью о реляционной модели данных. Определение реляционной СУБД дано в монографии К.Дейта «Руководство по реляционной СУБД DB2». Пер. с англ.-М.:Финансы и статистика, 1988.С-320: «… будем называть систему реляционной, если она поддерживает, по крайней мере, реляционные базы данных, т.е. базы данных, которые могут восприниматься пользователем как таблицы, и только как таблицы; операции селекции, проекции и соединения реляционной алгебры, не требуя при этом, чтобы каким-либо образом были предопределены физические пути доступа для поддержки этих операций». Первые коммерческие реляционные СУБД появились в начале 80-х годов ХХ века. Это были разработки компаний IBM, Oracle Corporation, General Technology Inc. и др.
Реляционные СУБД просты в использовании, повышают производительность программистов при разработке прикладных программ, хорошо приспособлены для работы в архитектуре клиент-сервер, позволяют параллельную обработку базы данных, хорошо приспособлены к графическим пользовательским интерфейсам. Скоростные характеристики этих СУБД поддерживаются специальными средствами ускоренного доступа к информации – индексированием баз данных.
Реляционные СУБД продолжают совершенствоваться, предоставляя пользователю возможность решать все более сложные задачи. Однако реляционные СУБД не являются последним словом в развитии СУБД. Сегодня уже речь идет об объектно-ориентированных, объектно-реляционных, многомерных и других моделях.
По степени универсальности различают два класса СУБД: системы общего назначения и специализированные системы.
- Системы общего назначения – это сложные программные комплексы, предназначенные для выполнения всей совокупности функций, связанных с созданием и эксплуатацией базы данных любой предметной области, т.е. они не ориентированы на конкретную предметную область или на информационные потребности конкретной группы пользователей и имеют мощные средства настройки на различные области.
- Специализированные СУБД создаются в тех случаях, когда СУБД общего назначения не могут эффективно организовать работу с конкретной базой данных или затрачивают на это слишком много времени. Примером специализированной СУБД может быть система IMBASE, используемая для автоматизации проектных и конструкторских разработок.
По режиму работы современные СУБД делят на однопользовательские (настольные) и многопользовательские. Настольные обычно обеспечивают возможность создания персональных баз данных и недорогих приложений, работающих с ними.
Следующим шагом в развитии настольных СУБД было появление их сетевых многопользовательских версий, которые обеспечивали одновременную работу нескольких пользователей с централизованной базой, размещаемой на сервере сети. По каждому запросу пользователя к базе все данные из нее пересылаются на его компьютер. В результате на компьютере пользователя создается локальная копия базы данных. Затем СУБД пользователя выполняет запрос. На сервере может располагаться также и СУБД, которая в этом случае запускается с компьютера пользователя.
Наиболее эффективная работа с централизованной базой данных обеспечивается при архитектуре клиент-сервер. На сервере сети размещается база и устанавливается мощная серверная СУБД – сервер баз данных, представляющий собой программный комплекс, обеспечивающий хранение больших объёмов информации, ее обработку и предоставление пользователям в сетевом режиме.
На компьютере-клиенте приложение формирует запрос к базе. Серверная СУБД обеспечивает интерпретацию запроса, его выполнение, формирование результата запроса и пересылку его по сети на клиентский компьютер, который интерпретирует его необходимым образом и предоставляет пользователю. Клиентское приложение может также посылать запрос на обновление базы – и серверная СУБД вносит необходимые изменения.
В архитектуре клиент-сервер функции клиентского приложения и серверной СУБД разделены. В этом случае уменьшается сетевой трафик, так как через сеть передаются только результаты запросов. Груз файловых операций ложится в основном на сервер, который мощнее клиентов и поэтому способен быстрее обслуживать запросы. Как следствие этого, уменьшается потребность клиентских приложений в оперативной памяти. Поскольку серверы способны хранить большое количество данных, то на компьютерах-клиентах освобождается значительный объём дискового пространства для других приложений. Существенно повышается степень безопасности базы данных, так как правила целостности данных определяются в серверной СУБД и являются едиными для всех приложений, использующих эту базу.
На рынке серверных СУБД лидируют следующие СУБД: Oracle 8, Microsoft SQL Server 2000, Informix, Sybase, DB2.
По способу распределения данных выделяют централизованные и децентрализованные СУБД.
Централизованная СУБД – это такая, когда база данных находится на одном сервере. Децентрализованная – осуществляет работу с базой данных, разбитых на несколько, физически распределенных по сети.
Имеются и другие признаки классификации: