Функции СУБД

СУБД – это сложные программные комплексы, предназначенные для выполнения всей совокупности функций, связанных с созданием и эксплуатацией базы данных.

С точки зрения пользователя СУБД реализует функции хранения, изменения (добавления, обновления и удаления) и обработки информации, а также разработки и получения различных выходных документов.

В более развернутом виде можно сказать, что СУБД выполняют такие функции как управление ресурсами среды хранения, обеспечение логической и физической независимости данных, защита логической и физической целостности базы данных, управление полномочиями пользователей на доступ к базе данных, организация параллельного доступа пользователей к базе данных, настройка на конкретные условия применения, поддержка деятельности системного персонала.

СУБД позволяет различать и поддерживать два независимых взгляда на базу данных – взгляд пользователя, воплощаемый в логическом представлении данных, и взгляд системы – «физическое» представление, характеризующее организацию хранимых данных. Пользователя не интересуют при его работе с базой данных байты и биты, представляющие данные в среде хранения, их размещение в памяти, указатели поддерживающие связи между различными структурными компонентами хранимых данных, выбранные методы доступа. В то же время все эти факторы важны для выполнения функций управления данными самой СУБД.

Обеспечение логической независимости данных – одна из важнейших функций СУБД, предоставляющая определенную степень свободы вариации «логического» представления базы данных без необходимости соответствующей модификации «физического» представления. Отметим, что логическая независимость данных обеспечивается средствами механизмов многоуровневой архитектуры СУБД.

Под физической независимостью данных понимается способность СУБД предоставлять некоторую свободу модификации способов организации баз данных в среде хранения, не вызывая необходимости внесения соответствующих изменений в логическое представление (прикладные программы). Физическая независимость данных реализуется в СУБД за счет тех же самых трансформационных механизмов архитектуры системы, которые обеспечивают логическую независимость данных.

Поддержка логической целостности (непротиворечивости) базы данных осуществляется посредством задания ограничений целостности. Ограничения целостности базы данных объявляются в схеме базы данных, и их проверка осуществляется при каждом обновлении объектов данных или связей между ними. Во многих СУБД ограничения целостности поддерживаются только на стадии ввода данных в базу данных и ассоциируются с используемыми экранными формами ввода.

Нарушения логической целостности базы данных могут быть связаны не только с вводом в нее недостоверных данных. Они могут являться также следствием несвоевременного прерывания выполнения процедур обработки данных. Для исключения таких ситуаций в многопользовательских СУБД предусматривается механизм транзакций.

Проблема обеспечения физической целостности базы данных возникает в связи с возможными ее разрушениями в результате сбоев и отказов оборудования, повреждений носителей данных. Развитые СУБД располагают средствами восстановления разрушенной базы данных, основанные чаще всего на использовании ее контрольных копий и журнализации изменений.

В многопользовательских СУБД предусматриваются механизмы разграничения полномочий доступа (управления доступом) пользователей к базе данных, поскольку в ней могут храниться данные, которые должны быть доступны лишь ограниченному кругу пользователей.

Механизмы управления доступом обычно основываются на принципах паролей, сопоставление так называемых замков управления доступом, ассоциированных с защищенными объектами, и ключей, специфицируемых пользователем, либо на явной спецификации полномочий доступа.

Организация параллельного доступа пользователей к базе данных является довольно сложной задачей. Здесь нужно исключать коллизии, связанные с одновременным обновлением данных разными пользователями, с возможностью чтения одним пользователем объекта базы данных, который успел лишь частично обновить другой показатель. Такие коллизии привели бы к нарушению логической целостности базы данных. Для их предотвращения в СУБД предусматривается техника транзакций и блокирования ресурсов данных. Транзакцией называют последовательность операций пользователя над базой данных, которая сохраняет ее логическую целостность. Если например из базы данных нужно удалить сведения о некотором поставщике в связи с тем, что он прекращает дальнейшие поставки, то вслед за этим необходимо удалить и сведения о запланированных этим поставщиком поставках продукции. Иначе база будет содержать сведения о поставках неизвестного системе поставщика. Ясно, что в мультипользовательской среде такую последовательность операций нельзя прерывать до полного ее завершения для обработки запросов других пользователей системы.

На время исполнения транзакции, модифицирующей некоторые ресурсы данных необходимо блокировать эти ресурсы с тем, чтобы не допустить к ним доступа для других транзакций. В различных СУБД используются различные методы блокирования. В одних системах предусматривается автоматическое блокирование ресурсов на время их обновления, в других оно должно явно запрашиваться в пользовательских транзакциях. Используются и комбинированные стратегии блокирования. Блокирование может предусматривать монопольное использование ресурса данной транзакцией или допускать его совместное использование с другими транзакциями.

Разрешая таким образом проблему параллельного доступа, блокирование ресурсов вместе с тем порождает новую проблему - возможность возникновения тупиковой ситуации, когда группа из двух или более транзакций монопольно захватывает ресурсы таким образом, что каждая из них ожидает освобождения какого-либо ресурса, монопольно захваченного (блокированного) другой транзакцией из этой группы. В некоторых СУБД реализованы специальные автоматические механизмы предотвращения тупиковых ситуаций либо механизмы, обеспечивающие выход из тупиковой ситуации за счет отката образующих ее транзакций.

Настройка СУБД на конкретные условия применения может включать модификацию параметров организации среды хранения данных, выбор новых, более эффективных для данного случая методов доступа из числа предоставляемых системой. Обычно она допускает также изменение структуры хранимых данных или их размещения в среде хранения (реорганизацию базы данных) с целью повышения производительности системы или возвращения освобожденной памяти для повторного использования. Кроме того, предусматривается возможность логической реструктуризации базы данных – модификации концептуальной схемы с последующим приведением базы данных в соответствие с вновь сформированной схемой, а также ряд других функций для поддержки деятельности системного персонала, ответственного за эксплуатацию базы данных. Такой персонал называют администраторами базы данных.

Для управления настройкой системы используются ее языковые средства. Характер и возможности языковых средств СУБД определяются главным образом моделью данных, поддерживаемых этой системой.

 

Перечисленные выше функции СУБД, в свою очередь, используют следующие основные функции более низкого уровня (низкоуровневые функции):

- управление данными во внешней памяти (на дисках);

- управление буферами оперативной памяти;

- управление транзакциями;

- журнализация изменений, резервное копирование и восстановление базы данных;

- поддержка языков БД (ЯОД, ЯМД).