Основы проектирования реляционных баз данных

         

Создание табличных пространств


Проектировщик базы данных работает с логическими объектами - табличными пространствами, таблицами, представлениями, индексами и т.д., так называемыми логическими файлами СУБД Oracle. Информация о содержимом логических файлов хранится в словаре данных.

Одним из самых трудных для понимания и объяснения объектов реляционной базы данных Oracle является табличное пространство (tablespace). Табличным пространством в Oracle называется логическая область хранения данных, размер которой ограничен размером используемого жесткого диска. Физические файлы создаются на уровне табличного пространства.

Выделением места для табличных пространств и способом их совместного использования управляют администраторы базы данных. Поэтому проектировщики базы данных должны при использовании табличных пространств работать в тесном сотрудничестве с ними.

Табличные пространства можно создавать, менять и удалять. Для создания табличных пространств в СУБД Oracle предусмотрена команда SQL CREATE TABLESPACE, параметры которой приведены в таблице 13.8.

Таблица 13.8. Параметры команды create tablespace

ПараметрОписаниеЗамечание по умолчанию
Имя_табличного_пространстваИмя, присваемое табличному пространству. Оно должно отражать назначение этого табличного пространства
Спецификация файла данных
Местонахождение файлаПолный путь к каталогу и имя файла
sizeПолный начальный размер файла данных, в соответствии с которым выделяется дисковое пространство
reuseЕсли файл данных существует, его нужно использовать повторно, указав этот параметр, в противном случае возникнет ошибка. Размер файла должен совпадать с указанным в параметре size
autoextendРазрешает или запрещает автоматическое увеличение размера файла данных.Может принимать значения on и off. Для on существуют дополнительные параметры: next: величина приращения файла (в байтах). maxsize: наибольший допустимый размер файла данных. Может быть неограниченным (unlimited)ON
minimum extendПредназначен для управления фрагментацией - определяет минимальный размер экстента
default предложение храненияобъем пространства, выделяемого объекту при отсутствии явно указанной конструкции хранения
initialОбъем пространства, выделяемого для первого экстента страниц5
nextОбъем для пространства, выделяемого для второго и последующих экстентов5 физических страниц
minextensМинимальное количество выделяемых экстентов1
maxextentsМаксимальное количество выделяемых экстентов - может быть неограниченным (intimated)121
petincreaseКоэффициент приращения размера (в %) для каждого следующегоэкстента после next50
freelist groopsИспользуется в режиме параллельного сервера и указывает количество списков свободных блоков для объектов, созданных в данном табличном пространстве без использования конструкций хранения
freelistУказывает количество списков свободных блоков, созданных в данном табличном пространстве без использования конструкций хранения
optimalПрименяется только к сегментам отката и определяет минимальный объем пространства, до которого сокращается сегмент отката после расширения за пределы оптимального значения
online/offlineУказывает, режим (оперативный/автономный, в котором изначально должно находиться табличное пространствоonline
permanent/temporaryУказывает, будет ли табличное пространство содержать объекты или только временные сегментыpermanent
Предложение управления экстентами
dictionaryУказывает, что управление экстентами осуществляется только через словарь данныхdictionary
localУказывает, что некоторая часть табличного пространства зарезервирована для битовых картuser
plugged_inИспользуется с переносимыми табличными пространствами и указывает, что табличное пространство может быть "подключено" к базе данныхNO


В качестве примера создадим табличное пространство, не используя никаких параметров, как показано ниже.

CREATE TABLESPACE my_ts DATAFILE 'c:\ora9i\oradata\orcr\myfile01.dbf' SIZE 2M;

Ключевое слово TABLESPACE задает имя табличной области (my_ts), ключевое слово DATAFILE задает спецификацию файла операционной системы ('c:\ora9i\oradata\orcr\myfile01.dbf'), в котором будут размещаться данные создаваемой табличной области, ключевое слово SIZE задает размер табличного пространства в мегабайтах. Остальные значения параметров принимаются по умолчанию. В частности, поскольку значение по умолчанию для параметра AUTOEXTEND есть ON (см. таблицу 13.8), то разрешено автоматическое расширение пространства, выделенного для данного табличного пространства. По умолчанию созданное табличное пространство переходит в оперативный режим (ONLINE) и является постоянным табличным пространством (PERMANENT).

Для изменения параметров табличного пространства используется команда ALTER TABLESPACE, а для удаления - команда DROP.

Чтобы разместить объект базы данных в определенном табличном пространстве, необходимо явно указать это табличное пространство в командах SQL. Например, команда

CREATE TABLE CUSTOMER (CUSTOMER_ID CHAR(5) NOT NULL, CUSTOMER_NAME VARCHAR(25), CUSTOMER_ADDR VARCHAR(50), CUSTOMER_RATING CHAR(10)) TABLESPASE my_st, PCTFREE 15;

размещает таблицу CUSTOMER и табличном пространстве my_st.


Содержание раздела