Еще один тип памяти в составе БД - временные таблицы. Создание таких таблиц может понадобиться при выполнении операций 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-оператор в приложении выполняется как отдельная транзакция, даже если в приложении имеются операторы явного управления транзакциями. Оператор является минимальной единицей транзакции: некоторые операторы могут включать в себя сложные действия над множеством строк, но все эти операции СУБД выполняет как одну транзакцию.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.