Изменяемый массив можно использовать в качестве типа для столбца базы данных. В этом случае весь массив хранится в одной строке базы среди других столбцов. В разных строках содержатся разные изменяемые массивы. Рассмотрим следующие объявления:
Внимание
[ Данные изменяемого массива, которые занимают больше 4 Кбайт, в действительности хранятся отдельно от остальных столбцов таблицы в LOB. Можно определить параметры хранения LOB отдельно в операторе CREATE TABLE. Дополнительная информация о LOB приводится в главе 12, а об операторе CREATE TABLE- в "SQL Reference Guide".
В таблице содержатся номера книг, обязательных для чтения в данной группе. Этот список хранится как столбец типа изменяемого массива. Тип любого столбца-изменяемого массива должен быть известен в базе данных и должен храниться в словаре данных, поэтому требуется оператор CREATE TYPE. Область хранения classjnaterial (с некоторыми данными) представлена на рис. 8.1. Отметим, что весь изменяемый массив (который может содержать до десяти элементов) хранится в одном столбце базы данных required_reading.
Структура хранимых вложенных таблиц
Как и изменяемые массивы, вложенные таблицы могут храниться в виде
столбцов базы данных. В каждой строке таблицы базы данных может содержаться отдельная вложенная таблица. В качестве примера смоделируем каталог библиотеки. Сделаем это с помощью следующих определений:
В таблице library_catalog четыре столбца, в том числе столбец номеров книг, являющийся сборной конструкцией, и вложенная таблица с
идентификаторами студентов, получивших экземпляры книг. По поводу хранения вложенных таблиц следует сказать несколько слов:
• Табличный тип используется в определении таблицы точно так же, как и объектный или встроенный тип столбца. Это должен быть тип уровня схемы, создаваемый оператором CREATE TYPE.
Для каждой вложенной таблицы в конкретной таблице базы данных необходимо использовать предложение NESTED TABLE, которое определяет имя таблицы хранения.
Таблица хранения (store table) — это таблица, которая создается системой и используется для хранения фактических данных вложенной таблицы. В отличие от изменяемых массивов данные вложенной таблицы хранятся отдельно, а не среди остальных столбцов таблицы. Реально в столбце checked_out будет содержаться ссылка (REF) на таблицу co_tab, в которой и находится список идентификаторов студентов. Область хранения таблицы library_catalog представлена на рис. 8.2. Для каждой строки таблицы library_catalog в столбце checked_out содержится ссылка (REF) на соответствующие строки таблицы co tab.
< Предыдущая | Следующая > |
---|