Функции администратора. Управление памятью. Управление многопользовательским доступом. Экспорт и импорт данных, страница 3

Еще один тип памяти в составе БД - временные таблицы. Создание таких таблиц может понадобиться при выполнении операций CREATE INDEX, GROUP BY, ORDER BY и других. Некоторые СУБД используют эту память также при выполнении операций экспорта и импорта. При создании базы данных может быть задано описание пространства, выделяемого для временных таблиц, в частности, для них может быть выделено отдельное логическое и системное пространство.

2.3. Задачи управления памятью

Немалое количество случаев применения СУБД сводится к простейшим, в которых применение средств управления памятью может и не потребоваться. Создание любой БД (CREATE DATABASE) и таблицы (CREATE TABLE) по умолчанию предполагает выделение минимального числа логических и системных единиц с установленными по умолчанию размерами и параметрами использования. Так, Oracle по умолчанию выделяет для каждой новой БД единственный раздел, в котором размещаются все объекты БД, а DB2 - три табличных пространства: для системных, пользовательских и временных таблиц. Проблемы с памятью могут возникнуть прежде всего при нехватке выделенного при создании БД пространства - в этом случае становится необходимым добавление новых системных единиц к уже имеющимся логическим единицам и/или создание новых логических единиц со своими системными единицами. Для этих целей имеются различные варианты операций ALTER и CREATE, и DROP - для освобождения памяти. Как правило, однако, добавление памяти к уже существующей БД приводит к снижению эффективности доступа к ней, да и не всегда бывает возможным. Поэтому желательно еще до создания БД производить предварительный расчет ее потребностей в памяти и задавать конкретные параметры при ее создании. При невозможности или неэффективности добавления проблема может быть решена экспортом всего содержимого БД, созданием новой БД с оптимальными параметрами памяти и импортом данных в новую БД).

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

3. Управление многопользовательским доступом

3.1. Транзакции и их оформление

Транзакцией называется единица работы, то есть такая последовательность операторов SQL, которая обрабатывается СУБД как единое целое. Транзакции имеют 4 основных свойства:

·  атомарность - транзакция выполняется полностью или не выполняется вообще; если транзакция прерывается на середине, то БД должна остаться в том состоянии, которое она имела до начала транзакции;

·  целостность – транзакция переводит БД из одного непротиворечивого (целостного) состояния в другое;

·  параллельность или сериализуемость –эффект от параллельного выполнения нескольких транзакций должен быть таким же, как от их последовательного выполнения;

·  постоянство - после того, как транзакция зафиксирована, результат ее выполнения должен сохраняться в БД.

Здесь мы сосредоточимся на третьем свойстве транзакции.

Объем транзакции может варьироваться от одного SQL-оператора до всех действий с БД, выполняемых приложением. В случае, если в приложении транзакции не определены явным образом, транзакционность приложения определяется состоянием режима AUTOCOMMIT. Когда этот режим выключен, все приложение составляет одну транзакцию, которая завершается с завершением приложения. Когда же этот режим выключен, каждый SQL-оператор в приложении выполняется как отдельная транзакция, даже если в приложении имеются операторы явного управления транзакциями. Оператор является минимальной единицей транзакции: некоторые операторы могут включать в себя сложные действия над множеством строк, но все эти операции СУБД выполняет как одну транзакцию.