Метаданные Домены
Инструкция create domain – создает наследственное определение столбца, она используется как шаблон при определении инструкции create table и table.
Определение домена содержит установки характеристик, которые включают:
1) тип данных
2) значение по умолчанию
3) недопустимое значение null
4) Check ограничения
5) порядок сортировки
Аргумент | Описание |
Домен | Уникальное имя для домена |
<datatype> | Тип данных SQL |
default | Определяет значение по умолчанию, которое вставляется, если другой ввод не сделан 1) Literal – вводится определенная строка, числовое значение или дата 2) NULL –вводится значение null 3) USER – вводится имя текущего пользователя. Столбец должен иметь совместимый символьный тип, чтобы использовать значения по умолчанию |
Not Null | Определяет, что значение, введенные в столбец, не могут быть нулевыми |
Check <dom_search.condition> | Создает одиночные Check ограничения для домена |
Value | Заменитель для имена столбца |
COLLATE collation | Устанавливается способ сортировки домена |
Check ограничения в определении домена устанавливают:
|
|
1) <dom_search.condition>, которые должны быть истины для данных, введенных в столбце, базирующихся на домене. Check ограничения не могут ссылаться на любой домен или столбец.
Синтаксис для создания домена
CREATE DOMAIN [AS] <datatype>
[DEFAULT] {LITERAL| NULL| USER}
[NOT NULL] [CHECK (<dom_search.condition >)]
[COLLATE COLLATION]
Виртуальные таблицы.
Представление – виртуальная или логическая таблица, представляющая собой поименованный запрос, который будет представлен как подзапрос при использовании представления.
В отличие от обычных таблиц реляционной БД, представление не является самостоятельной частью набора данных, хранящегося в базе.
Содержимое представлений динамически вычисляется на основании данных, находящихся в реальных таблицах. Изменение в реальных таблицах БД, немедленно отражается в содержимом всех представлений, построенных на основании этой таблицы.
Представление используется в запросах к БД тем же образом, как и обычные таблицы. В случае SQL СУБД, имя представления может находиться в SQL запросе на месте имени таблицы
Запрос из представления обрабатывается СУБД точно также как запрос, в котором на месте имени находится подзапрос, определяющий этот запрос. При этом СУБД с развитыми возможностями и оптимизацией запросов перед выполнением запроса из представления может, проводит совместную оптимизацию запроса верхнего уровня и запроса, определяющего запрос с целью минимизации затрат на выборку данных.
Использование представлений не дает каких-то совершенно новых возможностей в работе с БД, но дает следующие преимущества:
|
|
1) Представления скрывают от прикладной программы, сложность запросов и саму структуру таблиц БД
2) Использования представлений позволяет отделить прикладную схему данных от схемы хранения.
3) С помощью представления обеспечивается еще один уровень защиты данных.
4) Поскольку SQL-запрос, выбирающий данное представление, зафиксирован на момент создание, СУБД получает возможность применить к этому запросу оптимизацию или предварительную компиляцию, что положительно сказывается на скорость обращения к представлению по сравнению с прямым выполнением того же запроса из прикладной программы.