27_SH43-0144-00 (1038594), страница 30
Текст из файла (страница 30)
128v “Определение реляционных ограничений” на стр. 129v “Определение проверочных ограничений таблицы” на стр. 132v “Создание типизированной таблицы” на стр. 136v “Заполнение типизированной таблицы” на стр. 137v “Создание таблицы в нескольких табличных пространствах” на стр. 137v “Создание таблицы в многораздельной базе данных” на стр. 138v “Создание пользовательского структурированного типа” на стр. 147Можно также создать таблицу, определенную на основе результата запроса.Такая таблица называется таблицей сводки.
Дополнительную информациюсмотрите в разделе “Создание сводной таблицы” на стр. 151.Особенности столбцов больших объектов (LOB)Перед созданием таблицы, содержащей столбцы больших объектов, нужнорешить:1. Хотите ли вы, чтобы в журнал записывалась информация об изменениях длястолбцов больших объектов?Если не нужно записывать в журнал эту информацию об изменениях,необходимо отключить запись в журнал, задав при создании таблицыусловие NOT LOGGED:||||||||||||CREATE TABLE(EMPNOFIRSTNMEMIDINITLASTNAMEWORKDEPTPHONENOPHOTOIN RESOURCEEMPLOYEECHAR(6)VARCHAR(12)CHAR(1)VARCHAR(15)CHAR(3),CHAR(4),BLOB(10M)NOTNOTNOTNOTNULL PRIMARY KEY,NULL,NULL WITH DEFAULT,NULL,NOT NULLNOT LOGGED)Если размер столбца больших объектов больше 1 Гбайта, запись в журналдолжна быть отключена. (Рекомендуется не записывать в журналинформацию об изменениях для столбцов больших объектов, больших 10Мбайт.) Как и для других опций, заданных в определении таблицы, изменитьзначение опции записи в журнал можно, только заново создав эту таблицу.|126Руководство администратора: РеализацияДаже если не задана запись в журнал информации об изменениях, длястолбцов больших объектов будут сохраняться теневые копии, позволяющиевыполнить откат изменений (откат может быть вызван системной ошибкойили требованием прикладной программы).
Сохранение теневых копий - этотехника восстановления, при которой содержимое текущих страниц храненияникогда не перезаписывается, то есть старые, неизмененные страницысохраняются как “теневые” копии. Эти копии отбрасываются, когда ониболее не нужны для поддержки отката транзакции.Примечание: При восстановлении базы данных с помощью командRESTORE и ROLLFORWARD данные больших объектов,информация об изменениях которых не была записана вжурнал (столбцы которых определены как “NOT LOGGED”) икоторые были записаны после последнего резервногокопирования, будут замещены двоичными нулями.2. Хотите ли вы минимизировать объем, необходимый для столбца большихобъектов?Можно уменьшить, насколько это возможно, занимаемое столбцом большихобъектов пространство, используя условие COMPACT оператора CREATETABLE.
Например:CREATE TABLE(EMPNOFIRSTNMEMIDINITLASTNAMEWORKDEPTPHONENOPHOTOIN RESOURCEEMPLOYEECHAR(6)VARCHAR(12)CHAR(1)VARCHAR(15)CHAR(3),CHAR(4),BLOB(10M)NOTNOTNOTNOTNULL PRIMARY KEY,NULL,NULL WITH DEFAULT,NULL,NOT NULLNOT LOGGEDCOMPACT)При этом возможны некоторые потери производительности при добавленииданных в таблицу с компактными столбцами больших объектов, особенноесли увеличивается размер значений больших объектов (поскольку придетсяизменять их хранение).На таких платформах, как OS/2, где не поддерживается фрагментарноевыделение файлов и большие объекты размещаются в табличныхпространствах SMS, возможно, следует использовать условие COMPACT.Фрагментарное выделение файлов определяет тип использованияоперационной системой физического дискового пространства.
Воперационных системах, поддерживающих фрагментарное выделениефайлов, для хранения больших объектов используется меньший объемфизического дискового пространства, чем в операционных системах, неподдерживающих фрагментарное выделение файлов. Даже при поддержкефрагментарного выделения файлов опция COMPACT позволяет увеличить“экономию” физического дискового пространства. Поскольку опцияCOMPACT может дать некоторую экономию физического дисковогоГлава 3. Создание базы данных127пространства, использование этой опции может быть выгодно, еслиоперационная система не поддерживает фрагментарное выделение файлов.Примечание: Системные каталоги DB2 используют столбцы большихобъектов и могут занимать больший объем пространства, чемв предыдущих версиях.3. Хотите ли вы улучшить производительность работы со столбцами большихобъектов, включив их в системные каталоги DB2?В таблицах каталога есть столбцы больших объектов (LOB).
Данныебольших объектов не хранятся в пуле буферов вместе с другими данными,при каждом обращении к таким данным они считываются с диска. Операциичтения с диска ухудшают производительность DB2 при работе со столбцамибольших объектов каталогов. Поскольку файловая система обычно имеетсобственное место временного хранения (кэширования) данных, прииспользовании табличного пространства SMS или табличного пространстваDMS, созданного на основе контейнеров файлов, можно избежать повторныхопераций чтения, если большой объект уже был ранее прочитан.Определение ограниченийВ этом разделе описывается, как определить ограничения:v “Определение ограничений уникальности”v “Определение реляционных ограничений” на стр.
129v “Определение проверочных ограничений таблицы” на стр. 132.Дополнительную информацию об ограничениях смотрите в разделе,посвященном планированию ограничений, в руководстве Руководствоадминистратора: Планирование, а также в руководстве SQL Reference.Определение ограничений уникальностиОграничение уникальности обеспечивает уникальность значений указанногоключа. Таблица может содержать любое число ограничений уникальности, но небольше одного ограничения уникальности, определенного в качестве первичногоключа.Для определения ограничения уникальности используется условие UNIQUEоператоров CREATE TABLE или ALTER TABLE.
Уникальный ключ можетсостоять из нескольких столбцов. Для таблицы можно определить несколькоограничений уникальности. Однако нельзя определить ограничениеуникальности для подтаблицы.После того, как ограничение уникальности задано, оно автоматическиприменяется менеджером баз данных, когда операторы INSERT или UPDATEизменяют данные в этой таблице. Ограничение уникальности обеспечиваетсяпри помощи индекса уникальности.128Руководство администратора: РеализацияЕсли ограничение уникальности определено в операторе ALTER TABLE исуществует индекс на том же наборе столбцов, что и ключ уникальности, этотиндекс становится индексом уникальности и используется этим ограничением.Одно из ограничений уникальности можно использовать в качестве первичногоключа.
Первичный ключ может использоваться в качестве родительского ключав реляционном ограничении (вместе с другими ограничениями уникальности). Утаблицы может быть только один первичный ключ. Первичный ключопределяется условием PRIMARY KEY оператора CREATE TABLE или ALTERTABLE.
Первичный ключ может состоять из нескольких столбцов.Первичный индекс требует уникальности значений первичного ключа. Еслитаблица создается с первичным ключом, менеджер баз данных создает для этогоключа первичный индекс.|||||||||||||||||Некоторые советы по улучшению производительности для индексов,использующихся в качестве ограничений уникальности:v При выполнении исходной загрузки данных в пустую таблицу с индексамикоманда LOAD дает лучшую производительность, чем IMPORT. При этомневажно, какой из режимов команды LOAD вы используете - INSERT илиREPLACE.v При добавлении значительного объема данных в существующую таблицу синдексами (с помощью IMPORT INSERT или LOAD INSERT), команда LOADдает немного лучшую производительность, чем IMPORT.v Если для исходной загрузки большого объема данных используется командаIMPORT, создайте ключ уникальности после импорта или загрузки данных.Это позволит избежать дополнительных затрат на поддержку индекса вовремя загрузки таблицы.
Это также уменьшит используемый индексом объемхранения.v Если используется утилита LOAD в режиме REPLACE, создайте ключуникальности до загрузки данных. В этом случае создание индекса во времязагрузки более эффективно, чем использование оператора CREATE INDEXпосле загрузки.||||||Определение реляционных ограниченийДля обеспечения реляционной целостности в определения таблицы и столбцовдобавляются реляционные ограничения. Для задания реляционных ограниченийиспользуются условия FOREIGN KEY и REFERENCES операторов CREATETABLE или ALTER TABLE.
Дополнительную информацию о влиянииреляционных ограничений на типизированные таблицы или на родительскиетаблицы, являющиеся типизированными, смотрите в руководстве SQL Reference.Когда заданы внешние ключи, накладываются ограничения на значения встроках таблицы или двух таблиц. Менеджер баз данных проверяетограничения, заданные в определении таблицы, и в соответствии с нимиГлава 3. Создание базы данных129поддерживает отношения между значениями.