Учебно-справочное пособие по СУБД Informix


1. Операторы Описания Данных. - часть 2


View - "псевдо" таблица, базируется на существующих таблицах. CREATE VIEW poor AS SELECT tabnom, fio, datarovd FROM kadry WHERE zarplata < 120 # создано view - "псевдотаблица" из трех столбцов содержащая # строки из таблицы kadry, в которых zarplata меньше 120 рублей.
Ведет себя точно так же, как настоящая таблица, только место на диске под нее не отводятся, поскольку данные, лежащие в ней на самом деле хранятся в таблице, на которой это view базируется.
Индекс - дополнительная структура к столбцам таблицы, нужен для ускорения поиска значений в столбце. CREATE UNIQUE INDEX indkdtb ON kadry (tabnom) # создан индекс для столбца tabnom из таблицы kadry. Индекс # уникальный, значит в столбце не могут появиться одинаковые # значения.
Мы можем физически упорядочить таблицу в соответствии с индексом. В кластеризованной таблице SELECT работает быстрее. ALTER INDEX indkdtb TO CLUSTER
Имена столбцов в разных таблицах могут совпадать. Если в каком либо операторе SQL упоминаются два столбца с одинаковыми названиями, то их нужно уточнять именами таблиц, их содержащих. Перед именем любого объекта можно (а иногда и необходимо) указать имя его владельца (owner-name) - входное имя пользователя, который создал (CREATE) этот объект. kadry.nomerceh # столбец nomerceh из таблицы kadry ceh.nomerceh # столбец nomerceh из таблицы ceh iwanow.table1.c1 # столбец c1 из таблицы table1, владельцем которой является iwanow moshkow.table1.c1 # столбец c1 из другой (!) таблицы table1, владельцем которой является moshkow
Синоним для имени таблицы используется для сокращения записи. CREATE SYNONYM t1 FOR petrow.sostoqnie_postow
Теперь повсюду можно (хотя и не обязательно) вместо имени petrow.sostoqnie_postow использовать имя t1.
База данных может иметь системный журнал транзакций (logfile). START DATABASE zawod WITH LOG IN "/udd/moshkow/logfile/zawod"
Если нет журнала транзакций для всей базы данных, то для отдельных таблиц в базе с той же целью можно создать audit trail.CREATE AUDIT FOR kadry IN "/udd/moshkow/kadry.audit"
Естественно, что любой созданный в базе данных объект можно уничтожить. Надо только помнить, что операторы описания данных не откатываются назад, а потому если вы уничтожили таблицу, или базу данных то знайте, что это навсегда. DROP VIEW poor # Уничтожается только view. С данными в таблицах, на которых оно базировалось ничего не происходит. DROP TABLE kadry # уничтожает таблицу вместе с данными. DROP INDEX indkdtb DROP SYNONYM t1 DROP DATABASE zawod # уничтожает базу вместе со всеми данными и системным журналом




Начало  Назад  Вперед