Глава 24. Как поддерживается порядок в базе данных SQL
Из этой главы вы узнаете, как типичная SQL-бaзa данных поддерживает собст
венную организацию. Поддержка осуществляется программой, которая создает базу данных и управляет ею. Можно осуществлять доступ к этим таблицам для получения информации о привилегиях, таблицах, индексах и т.д. В этой главе мы рассмотрим типичное содержимое подобной базы данных.
Системный катш~ог
Для работы с базой данных SQL компьютерная система должна использовать мно жество объектов: таблицы, представления, индексы, синонимы, привилегии, пользова телей и т.д. Существует множество способов их употребления, но наиболее эффективным, логичным, последовательным и разумным из них является реляцион ный подход к представлению информации в таблицах. Он позволяет компьютеру орга низовывать необходимую информацию и манипулировать ею, используя те же самые
процедуры, что и процедуры для организации и манипулирования самими данными.
Все это относится к уровню реализации программной системы и не является ча
стью стандарта ANSI, но в большинстве систем управления базами данных использу ется множество SQL-таблиц для представления внутренней информации. Это множество таблиц называется по-разному: системный каталог (systeт catalog), сло варь данных (data dictionary) или просто системные таблицы (systeт taЫes). (Термин словарь данных относится к более широкому понятию, включающему информацию о физических параметрах базы данных, но эти вопросы выходят за рамки рассмотрения SQL. Следовательно, имеется ряд систем управления базами данных, имеющих сис
темный каталог и словарь данных.)
Таблицы системного каталога сходны с другими таблицами SQL: содержат Строки и
столбцы данных. Например, одна таблица каталога обычно содержит информацию о таб лицах в базе данных, причем каждой таблице базы данных соответствует одна строка этой таблицы; другая таблица содержит информацию о столбцах таблиц, причем один столбец таблиц базы данных описывается одной строкой этой таблицы. Таблицы каталога создаются и принадлежат самой базе данных, которая имеет специальное имя SYSTEM. Система управления базами данных создает эти таблицы и обновляет их автоматически по мере использования; таблицы каталога нельзя применять непосредственно в командах обновления. Если отказаться от этого ограничения, то действия системы могут привести к непредсказуемым результатам и к получению совершенно неуправляемой базы данных.
Во многих системах пользователи могут обращаться к каталогу с запросами. Это позволяет выявить специфику конкретной используемой базы данных. Вся информа ция вообще недоступна для любого пользователя. Доступ к каталогу открыт только для пользователей с соответствующими привилегиями.
Поскольку владельцем каталога является сама система, не существует неоднознач
ного решения, кто имеет и кто может получить привилегии на работу с каталогом. Обычно такие привилегии передаются суперпользователю, например, системному ад-