Главная » SQL, Базы данных » КАТАЛОГ SQL

0

Стандарт SQL включает спецификации стандартного каталога, именуемого в нем информационной схемой. Знакомые нам термины каталог и схема действительно используются в языке SQL, но с особым смыслом, характерным только для языка SQL. Вообще говоря, каталог в языке SQL состоит из дескрипторов (метаданных) для отдельной базы данных3, а схема состоит из дескрипторов той части базы данных, которая принадлежит отдельному пользователю. Другими словами, в системе может быть любое число каталогов (по одному для каждой базы данных), каждый из которых делится на произвольное число схем. Однако каждый каталог должен содержать одну и только одну  схему  с именем INFORMATION_SCHEMA (информационная схема), которая с точки зрения пользователя и

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

Таким образом, информационная схема состоит из набора таблиц SQL, содержимое которых фактически отражает (точно заданным способом) все  определения из всех остальных  схем рассматриваемого  каталога. Точнее  говоря, информационная схема по умолчанию содержит набор представлений  гипотетической "схемы: определения". Для поддержки схемы определения реализация не требуется, но она требуется, во-первых, для поддержки некоторого вида "схемы определения", и, во-вторых,

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

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

2.  На самом деле, речь может идти только об "одной из информационных схем", а не просто об "информационной схеме", поскольку, как мы убедились, такая схема имеется в каждом каталоге. Поэтому в общем случае все данные, которые доступны некоторому пользователю, не будут описаны с помощью единственной информа ционной схемы. Однако, чтобы упростить изложение материала, мы будем про должать считать, что в действительности существует только одна оема.

3  Чтобы быть более точным, необходимо отметить, что в стандарте языка SQL такое  понятие, как "база данных", в действительности просто отсутствует! По определению каталогом описывается то, что называется набором данных и зависит от реализации. Однако нет никаких разумных аргументов, запрещающих подразумевать под этим понятием базу данных.

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

■     ASSERTIONS. Утверждения.

■     CHECK_CONSTRAINTS. Проверочные ограничения.

■     COLUMN_PRIVILEGES. Привилегии ДЛЯ столбцов.

■     COLUMN    UDT_USAGE. Применение определяемого пользователем типа данных столбца.

■     COLUMNS. Столбцы.

■     CONSTRAINT_COLUMN_USAGE. Использование столбца ограничения.

■     CONSTRAINT_TABLE_USAGE. Использование таблицы ограничений.

■     KEY_COLUMN_USAGE. Использование столбца ключа.

■     REFERENTIAL_CONSTRAINTS. Ссылочные Ограничения.

■     SCHEMATA. Схемы.

■     TABLE_CONSTRAINTS. Ограничения для таблицы.

■     TABLE_PRIVILEGES. Привилегии для таблиц.

■     TABLES. Таблицы.

■     UDT_PRIVILEGES. Привилегии на применение типов данных, определяемых поль зователем.

■     USAGE_PRIVILEGES. Привилегии на использование.

■   USER_DEFINED_TYPES. Типы данных, определяемых пользователем.

■     VIEW_COLUMN_USAGE. Использование столбца представления.

■     VIEW_TABLE_USAGE. Использование таблицы представления.

■     VIEWS. Представления.

В [4.20] этот вопрос рассмотрен более подробно, в частности в этой работе описано, как формулировать запросы для получения данных из информационной схемы (а это не так просто, как можно было бы ожидать).

Источник: Дейт К. Дж., Введение в системы баз данных, 8-е издание.: Пер. с англ. — М.: Издательский дом «Вильямс», 2005. — 1328 с.: ил. — Парал. тит. англ.

По теме:

  • Комментарии