Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект по БД.docx
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
1.22 Mб
Скачать

1.5 Основные функции субд.

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

1.5.1 Управление данными во внешней памяти.

Размер базы данных может достигать очень больших размеров, вплоть до терабайт. И управление хранением таких объемов данных на жестких дисках и других носителях – нетривиальная задача. При этом система хранения может организовываться разнообразно – начиная с единственного файла для настольных СУБД типа Microsoft Access, и заканчивая большими наборами файлов табличных пространств, сегментов отката и так далее в промышленных СУБД, таких как Oracle.

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

Так или иначе, от прикладных программистов уровень работы с файлами обычно скрыт, и учитывать использование тех или иных способов организации данных на носителях не требуется, оно не должно отражаться на схеме базы данных и процедурах для работы с ней.

1.5.2 Управление оперативной памятью.

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

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

1.5.3 Управление транзакциями

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

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