3. Какое выражение используется для упорядочения данных при создании представления?
4. Какая опция может быть использована для создания представления из другого представления, если необходимо гарантировать целостность данных?
5. При попытке удаления представления было получено сообщение об ошибке ввиду того, что имелись зависимые представления. Что нужно сделать, чтобы все-таки удалить представление?
1. Запишите оператор, создающий представление на основе всех данных таблицы EMPLOYEEJTBL.
2. Запишите оператор, создающий представление, возвращающее среднюю почасовую оплату и среднюю зарплату по каждому из городов для таблицы
EMPLOYEEJTBL.
3. Запишите операторы, удаляющие представления, созданные в результате выполнения пп. 1 и 2.
21-й час Работа с системным каталогом
В ходе этого урока мы с вами поговорим о системном каталоге, в некоторых реализациях реляционных баз данных называемом также словарем данных (data dictionary). К концу урока вам станет ясно назначение и содержимое системного каталога и вы сможете извлекать из него необходимую информацию о базе данных с помощью команд, изученных в ходе предыдущих уроков. Системный каталог с информацией о самой базе данных в той или иной форме присутствует во всех главных реализациях реляционных баз данных. В ходе этого урока мы приводим списки наиболее важных элементов системных каталогов основных производителей реляционных баз данных.
Основными на этом уроке будут следующие темы.
• Что такое системный каталог?
• Как создается системный каталог?
• Содержимое системного каталога
• Таблицы системного каталога
• Доступ к данным системного каталога
• Обновление системного каталога
Системный каталог - это набор таблиц и представлений, содержащих важную информацию о базе данных. Системный каталог имеется в любой базе данных. Информация в системном каталоге определяет структуру всей базы данных. Например, в системном каталоге хранятся операторы DDL (Data Definition Language - Язык определения данных) для всех таблиц базы данных. Схематически место системного каталога в базе данных показано на рис. 21.1.
Как видно из рис. 21.1, системный каталог фактически является частью базы данных. В базе данных имеются различные объекты, в частности, таблицы, индексы и представления. Системный каталог представляет собой группу объектов, содержащих определения других объектов базы данных и структуры самой базы данных, а также другую не менее важную информацию.
Системный каталог в зависимости от реализации может Делиться на логичные группы, чтобы обеспечить доступ к соответствующей информации не только администратору базы данных, но и другим заинтересованным пользователям. Например, пользователю может понадобиться информация о предоставленных ему привилегиях, но совсем не обязательно знать о внутренней структуре или внутренних процессах базы данных. Пользователь, как правило, обращается к системному каталогу за информацией о своих собственных объектах и привилегиях, а администратору базы данных может потребоваться информация о структуре любого объекта и информация о любом событии в базе данных. В некоторых реализациях в системном каталоге имеются такие объекты, которые оказываются доступными только для администратора базы данных.
Рис. 21.1. Системный каталог
Системный каталог является главным источником информации о структуре и природе базы данных. Системный каталог помогает содержать базу данных в порядке не только администратору базы данных и ее пользователям, но и серверу базы данных.
В каждой реализации приняты свои соглашения по назначению имен таблицам и представлениям системного каталога. Но имена не так важны по сравнению с пониманием того, какие объекты этими именами представлены, какую информацию эти объекты содержат и как эту информацию можно извлечь
Системный каталог создается либо автоматически при создании базы данных, либо администратором базы данных сразу же после ее создания. Например, в Oracle выполняется набор поставляемых производителем макросов SQL, которые атоматически создают доступные пользователям таблицы и представления системного каталога. Таблицы и представления системного каталога принадлежат системе, а не какой-нибудь отдельной схеме. Например, в Oracle владельцем системного каталога яшшется пользователь с именем SYS, имеющий права неограниченного доступа к базе данных. В Sybase системный каталог для сервера SQL размещается в базе данных MASTER.
Системный каталог содержит массу информации, доступной многим пользователям и иногда используемой этими пользователями для своих собственных нужд. Системный каталог содержит информацию по следующим разделам.
• Учетные записи пользователей и установки по умолчанию.
• Привилегии и другая связанная с безопасностью информация.
• Статистика, характеризующая производительность системы.
• Размеры объектов.
• Динамика роста объектов.
• Структура таблиц и параметры их хранения.
• Структура индексов и параметры их хранения.
• Информация о других объектах базы данных, в частности, представлениях, синонимах, триггерах, сохраненных процедурах.
• Ограничения для таблиц и информация о ссылочной целостности данных.
• Пользовательские сеансы доступа.
• Информация об аудитах.
• Внутренние параметры базы данных.
• Размещение файлов базы данных.
Системный каталог управляется сервером базы данных. Например, при создании таблицы сервер базы данных вставляет данные об этом в соответствующую таблицу или представление каталога. При изменении пользователем структуры своей таблицы соответствующие объекты словаря данных тоже обновляются. В следующих разделах систематично описываются типы данных, которые отслеживаются в системном каталоге.
В системном каталоге хранится информация обо всех пользователях базы данных: их привилегиях доступа к системе и объектам, информация о принадлежащих им объектах, а также информация о не принадлежащих им объектах, к которым эти пользователи имеют доступ. Пользовательские таблицы и представления оказываются доступными для извлечения этой информации. По поводу имеющихся в системном каталоге объектов обратитесь к документации, предлагаемой вашей реализацией базы данных.
Системный каталог содержит также информацию о безопасности, в частности, учетные записи пользователей, закодированные пароли, пользовательские привилегии и группы привилегий доступа к данным. В некоторых реализациях предусмотрены таблицы аудита с данными обо всех действиях, предпринятых пользователями в отношении базы данных с указанием времени и инициатора этих действий и другой соответствующей информации. Могут подробно отслеживаться также и пользовательские сеансы доступа к базе данных.
Системный каталог содержит также информацию о структуре самой базы данных. Эта информация может включать дату создания базы данных, имена и размеры ее объектов, размеры и адреса размещения файлов, информацию о ссылочной целостности данных, об имеющихся индексах, столбцах таблиц и их атрибутах.
В системном каталоге обычно представлена и статистика, характеризующая производительность системы. Такая статистика обычно включает информацию о скорости выполнения операторов SQL и том методе, который был выбран оптимизатором для их выполнения. Другая информация о производительности может содержать параметры использования памяти, доступного базе данных свободного пространства, фрагментации таблиц и индексов. Эта информация может быть использована для оптимизации структуры и работы базы данных, оптимизации операторов SQL и выбора оптимальных способов доступа к данным с целью уменьшения времени, необходимого для выполнения запросов.