Программирование >>  Sql: полное руководство 

1 ... 123 124 125 [ 126 ] 127 128 129 ... 264


Чтобы осуществлять управление данными, СУБД должна отслеживать большое количество информации, определяющей структуру базы данных. В реляционной базе данных эта информация обычно хранится в системном каталоге - совокупности системных таблиц, используемых СУБД для внутренних целей В файлах, хранящихся в системном каталоге, содержатся описания таблиц, представлений, столбцов, привилегий и других структурных элементов базы данных.

Хотя системный кататог предназначен главньп( образом для внутреннего применения, пользователи базы данных могут получить доступ к системным таблицам с помощью стандартных запросов SQL. Таким образом, реляционная база данных содержит описание своей структуры; вы можете получить его, выполняя запросы к системным таблицам. Это используется в таких клиентских приложениях общего назначения, как модули формирования запросов и программы генерации отчетов, где для упрощения доступа к базе данных пользователям предоставляется на выбор список таблиц и столбцов

В настоящей главе описываются системные каталога нескольких популярных реляционных СУБД и содержащаяся в этих каталогах информация Рассматривается также структура системного каталога в стандарте SQL2.

Что такое системный каталог

Систе.мны.м каталогом называется совокупность специальных таблиц базы данных. Их создает, сопровождает и владеет ими сама СУБД. Эти системные таблицы содержат информацию, которая описывает структуру базы данных. Таблицы системного каталога создаются автоматически при создании базы данных. Обычно они объединяются под специальным системным идентификатором пользователя с таким именем, как SYSTEM, SYS1BM, MASTER или DBA.

При обработке тструкпт SQL СУБД постоянно обращается к данным системного каталога. Например, чтобы обработать двухтабличную инструкцию SELECT, СУБД должна;

проверить, существуют ли две указанные таблицы;

убедиться, что пользователь имеет разрешение на доступ к ним;

проверить, существуют ли столбцы, на которые имеются ссылки в данном запросе;

установить, к каким таблицам относятся неполные имена столбцов;

определить тип данных каждого столбца.

Так как информация о структуре базы данных хранится в системных таблицах, СУБД может использовать свои собственные методы и алгоритмы, чтобы быстро и эффективно извлекать информацию, необходимую для выполнения этих задач.

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

Пользователи могут только извлекать информацию из системного каталога СУБД запрещает пользователям модифицировать системные таблицы непосредственно, так как



это может нарушить целостность базы данных. СУБД сама вставляет, удаляет и обновляет строки системных таблиц во время модификации структуры базы данных. Изменения в системных таблицах происходят также качестве побочного результата выполнения таких инструкций ddl, как create, alter, drop, grant и revoke, в некоторых СУБД даже инструкции dml, например insert и delete, могут модифицировать содержимое системных таблиц, отслеживаюших количество записей в таблицах.

Системный каталог и средства формирования запросов

Одним из наиболее важных достоинств системного каталога является то, что он позволяет создавать дружественные для пользователя программы формирования запросов (рис. 16.1). Цель такой программы заключается в том, чтобы обеспечить простой и понятный способ доступа к базе данных пользователю, не знающему языка sql. Обычно эта профамма проводит пользователя через следующую последовательность действий:

1 Пользователь вводит свое имя и пароль, чтобы получить доступ к базе данных.

2 Программа формирования запросов отображает на экране список доступных таблиц.

3. Пользователь выбирает таблицу, после чего профамма отображает на экране список столбцов данной таблицы.

4. Пользователь выбирает интересующие его столбцы; он может делать это, щелкая мышью на именах столбцов, когда они появляются на экране.

5 Пользователь выбирает столбцы из других таблиц или офаничивает объем извлекаемых данных с помощью условия отбора.

6 Профамма извлекает запрашиваемые данные и отображает их на экране. Профамма формирования запросов общего назначения, подобная той, что представлена на рис. 16.1, будет применяться многими пользователями для доступа к самым различным базам данных. Ей неизвестна заранее сфуктура базы данных в каждом конкретном случае, поэтому необходимо иметь возможность динамически получать информацию о таблицах и столбцах базы данных. Для достижения этой цели такая профамма использует системный каталог.




Системный каталог и стандарт ANSI/ISO

в стандарте SQL1 ничего не говорится о структуре и содержании системного каталога. Стандарт не требует даже наличия самого системного каталога. Однако во всех основных реляционных СУБД в той или иной форме он создается. Структура каталога и содержащиеся в нем таблицы значительно отличаются друг от друга в разных СУБД

В связи с растущим значением инструментальных профамм общего назначения, предназначенных для работы с базами данных и требующих доступа к системному каталогу, в стандарт SQL2 включена спецификация набора представлений, обеспечивающая стандартизированный доступ к информации, которая обычно содержится в системном каталоге. СУБД, соответствующая стандарту SQL2, должна поддерживать эти представления, обозначаемые все вместе как информационная схема. Так как эта схема сложнее, чем реальные системные каталоги, применяемые в коммерческих СУБД, и пока еще не пользуется широкой поддержкой, она рассмафивается в отдельном парафафе в конце настоящей главы.

Содержимое системного каталога

Каждая таблица системного каталога содержит информацию об отдельном структурном элементе базы данных В состав почти всех коммерческих реляционных СУБД входят, с небольшими различиями, системные таблицы, каждая из которых описывает один из следующих пяти элементов:

Таблицы В каталоге описывается каждая таблица базы данных: указывается ее имя, владелец, число содержащихся в ней столбцов, их размер и т.д.

Столбцы. В каталоге описывается каждый столбец базы данных, приводится имя столбца, имя таблицы, которой он принадлежит, тип данных столбца, его размер, разрешены ли значения null и т.д.

Пользователи. В каталоге описывается каждый зарегисфированный пользователь базы данных: указываются имя пользователя, его пароль в зашифрованном виде и другие данные.

Представления. В каталоге описывается каждое представление, имеющееся в базе данных: указываются его имя, имя владельца, запрос, являющийся определением представления, и т.д.

Привилегии. В каталоге описывается каждый набор привилегий, предоставленных в базе данных: приводятся имена тех, кто предоставил привилегии, и тех, кому они предоставлены, указываются сами привилегии, объект, на которые они распросфаняются, и т.д.

В табл. 16.1 для основных реляционных СУБД даны имена системных таблиц, содержащих эту информацию В оставшейся части главы некоторые типичные системные таблицы описываются более подробно; приводятся также примеры запросов к системному каталогу

Таблица 16.1. Некоторые

системные таблицы популярных реляционных СУБД

СУБД Таблицы

Столбцы Пользователи Представления Привилегии

DB2* SCHEMATA

COLUMNS DBAUTH VIEWS SCHEMAAUTH

TABLES

VIEWDEP TABAUTH

REFERENCES

COLAUTH

KEYCOLUSE



1 ... 123 124 125 [ 126 ] 127 128 129 ... 264

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика