Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Вопросы-ответы (БД экзамен).docx
Скачиваний:
297
Добавлен:
25.05.2018
Размер:
2.35 Mб
Скачать

28. Субд Oracle. Табличные пространства. Сегменты, экстенты и блоки данных.

Табличные пространства — это логические сущности, и каждая из прикладных таблиц и индексов хранятся в сегменте, в то время как сегменты хранятся в файлах данных, являющихся частью табличного пространства. Таким образом, табличное пространство – это логически веденное пространство для размещения объектов схемы Oracle. Однако не существует отношения “один к одному” между объектами схемы вроде таблицы или индекса и табличным пространством.

Когда вы используете словосочетание табличное пространство, то на самом деле имеете в виду непрерывное табличное пространство – место, где хранятся объекты вашей схемы. Все постоянные табличные пространства создаются с использованием файлов данных Oracle. В дополнение к постоянным табличным пространствам существуют следующие важные типы табличных пространств Oracle.

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

  • Табличные пространства отмены (undo) — разновидность постоянных табличных пространств, служащих для хранения данных отмены, которые используются для возврата измененных данных в исходное состояние.

Каждое табличное пространство Oracle должно иметь обязательные табличные пространства System и Sysaux. Табличное пространство System является постоянным и содержит важнейшую информацию словаря, которая помогает работе базы данных. Табличное пространство System – это первое табличное пространство, которое вы создаете при создании новой базы данных. Табличное пространство Sysaux дополняет табличное пространство System, храня метаданные для различных приложений Oracle,а также оперативные данные для внутренних инструментов управления производительностью вроде Automatic Workload Repository. Табличные пространства System и Sysaux трактуется иначе, чем другие табличные пространства. Ни одно из них нельзя переименовывать либо удалять.

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

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

На заметку! Табличные пространства не уникальны для Oracle. СУБД DB2 также имеет табличные пространства, а вот базы данных Microsoft SQL Server их не используют. База данных tempdb в СУБД SQL Server соответствует временному табличному пространству в Oracle.

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

Пример создания пространства:

CREATE USER MILLER IDENTIFIED BY KOLOBOK DEFAULT TABLESPACE USERS, где USERS – имя пространства, MILLER – имя пользователя, KOLOBOK – пароль пользователя.

Помимо USER есть ещё TEMP и SYSTEM.

Сегменты > Экстенты > Блоки

Блоки данных (Data Block) – мельчайший строительный блок базы данных Oracle, состоящий из определенного количества байт на диске. Блок данных Oracle - логический компонент базы данных.

Экстенты (extent) – это два или более последовательных блоков данных Oracle, представляющий собой единицу выделения места на диске. Когда комбинируется несколько непрерывных блоков данных, они называются экстентом.

Сегменты (segments) – набор экстентов, которые вы выделяете логической структуре, такой как таблица или индекс (или некоторый другой объект). Набор экстентов формирует следующую более крупную единицу хранения, именуемую сегментом. Oracle называет сегментом все пространство, выделенное любому конкретному объекту базы данных.