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

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

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

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

и получить результат, показанный на рис. 5.1,а.

Для получения же некоторых данных о столбцах таблицы Блюда можно дать запрос

и получить результат, показанный на рис. 5.1,б.

Tab_name N_col N_row Tab_owner Comments
.
SYS_TABLES 11 SYSTEM
SYS_COLUMNS 14 SYSTEM
.
Блюда 6 33 KIRILLOW Перечень блюд, известных шеф-повару
Поставки 4 37 GROMOW Данные о поставляемых продуктах
Вид_блюд 2 5 KIRILLOW Перечень видов блюд
Трапезы 2 3 GROMOW Перечень трапез в пансионате
Состав 3 148 KIRILLOW Состав блюд
Продукты 11 17 KIRILLOW Таблица продуктов
.

Рис. 5.1. Результаты запросов по системным таблицам

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

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

Источник

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

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

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

и получить результат, показанный на рис. 5.1,а.

Для получения же некоторых данных о столбцах таблицы Блюда можно дать запрос

и получить результат, показанный на рис. 5.1,б.

Tab_name N_col N_row Tab_owner Comments
.
SYS_TABLES 11 SYSTEM
SYS_COLUMNS 14 SYSTEM
.
Блюда 6 33 KIRILLOW Перечень блюд, известных шеф-повару
Поставки 4 37 GROMOW Данные о поставляемых продуктах
Вид_блюд 2 5 KIRILLOW Перечень видов блюд
Трапезы 2 3 GROMOW Перечень трапез в пансионате
Состав 3 148 KIRILLOW Состав блюд
Продукты 11 17 KIRILLOW Таблица продуктов
.

Рис. 5.1. Результаты запросов по системным таблицам

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

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

Источник

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

состоит из таблиц, описывающих структуру объектов базы данных, таких как базовые таблицы, представления, индексы и собственно базы данных. Эти таблицы называются системными базовыми таблицами. Компонент Database Engine часто обращается к системному каталогу за информацией, необходимой для правильного функционирования системы.

Компонент Database Engine отличает системные базовые таблицы базы данных master от базовых таблиц пользовательских баз данных. Системные таблицы базы данных master принадлежат к системному каталогу, а системные таблицы определенной базы данных составляют каталог этой базы данных. Поэтому системные базовые таблицы присутствуют только в одном экземпляре для всей системы (если они принадлежат исключительно к базе данных master), тогда как другие таблицы присутствуют в одном экземпляре в каждой базе данных, включая базу данных master.

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

Для обращения за информацией к системным базовым таблицам можно использовать несколько разных интерфейсов:

Представления каталогов

Является основным интерфейсом для метаданных, хранящихся в системных базовых таблицах. Метаданные описывают атрибуты объектов в системе баз данных.

DMV и DMF

Динамические административные представления (Dynamic Management Views, DMV) и динамические административные функции (Dynamic Management Functions, DMF) обычно применяются для просмотра активных процессов и содержимого памяти.

Читайте также:  Что такое бимсы на судне

Информационная схема

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

Системные функции и функции свойств

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

Системные хранимые процедуры

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

Упрощенная форма системной информации компонента Database Engine и различные интерфейсы для доступа к ней показаны на рисунке ниже:

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

«Общие» означает, что все реляционные системы баз данных поддерживают такие интерфейсы, но используют другую терминологию. Например, в терминологии Oracle, представления каталога и динамические административные представления называются «представления словаря данных» и «представления V$» соответственно.

Общие интерфейсы

Как уже упоминалось, к общим относятся следующие интерфейсы:

динамические административные представления и динамические административные функции;

Представления каталога

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

Представление каталога sys.objects возвращает строку для каждого объекта, определенного пользователем в схеме пользователя. Существуют два других представления каталога, которые предоставляют доступ к подобной информации: sys.system_objects и sys.all_objects. Представление sys.system_objects возвращает строку для каждого системного объекта, а представление sys.all_objects отображает объединение всех определенных пользователем и системных объектов в области видимости схемы. (Все три представления каталога имеют одинаковую структуру.)

Наиболее важные столбцы представления каталога sys.objects перечислены в таблице ниже:

Наиболее важные столбцы представления каталога sys.objects

Идентификационный номер объекта, однозначный в пределах базы данных

Идентификатор схемы, содержащей объект

Представление каталога sys.columns возвращает строку для каждого столбца объектов со столбцами, таких как таблицы и представления. Наиболее важные столбцы представления каталога sys.columns перечислены в таблице ниже:

Имя столбца Описание
name
Наиболее важные столбцы представления каталога sys.columns

Идентификатор объекта, которому принадлежит данный столбец

Идентификатор столбца (однозначный в пределах объекта)

Представление каталога sys.database_principals возвращает строку для каждого принципала системы безопасности (т.е. пользователя, группы или роли в базе данных).

В SQL Server 2012 продолжают поддерживаться так называемые представления совместимости с целью обеспечения обратной совместимости. Каждое представление совместимости имеет такое же имя и такую же структуру, как и соответствующая системная базовая таблица системы SQL Server 2000. Представления совместимости не предоставляют доступ к метаданным, связанным с возможностями, введенными, начиная с версии SQL Server 2005. Эти представления являются устаревшей возможностью и будут изъяты из будущих версий SQL Server.

Запросы к представлениям каталога

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

В этом примере происходит выборка идентификатора таблицы, идентификатора пользователя и типа таблицы для таблицы Employee. Результат исполнения этого запроса:

В этом примере происходит выборка имен всех таблиц базы данных SampleDb, которые содержат столбец Number.

В этом примере мы определяем схему, которой принадлежит таблица Employee.

Динамические административные представления и функции

Динамические административные представления (Dynamic Management Views, DMV) и динамические административные функции (Dynamic Management Functions, DMF) возвращают информацию о состоянии сервера, которую можно применить для наблюдения над активными процессами и, следственно, для настройки производительности системы или для отслеживания действительного состояния системы. В отличие от представлений каталога, DMV и DMF основаны на внутренних структурах системы.

Основное различие между представлениями каталога и DMV состоит в их применении: представления каталога предоставляют информацию о метаданных, тогда как DMV и DMF применяются для доступа к динамическим свойствам системы. Иными словами, DMV применяются для получения информации о базе данных, об отдельных запросах или отдельных пользователях.

DMV и DMF принадлежат к схеме sys, а их имена состоят из префикса dm_ и текстовой строки, указывающей категорию, к которой принадлежит DMV или DMF.

В следующем списке перечислены некоторые из этих категорий и даны их краткие описания:

В каждой новой версии SQL Server корпорация Microsoft непрерывно увеличивает количество поддерживаемых DMV. Так SQL Server 2012 содержит 20 новых DMV, а их общее число равно 155.

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

Результат выполнения этого запроса:

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

Представление sys.dm_db_uncontained_entities отображает все неограниченные объекты, используемые в базе данных. Неограниченными объектами (uncontained objects) называются объекты, которые пересекают границы приложения в автономной базе данных.

Информационная схема

состоит из представлений, доступных только для чтения, которые предоставляют информацию обо всех таблицах, представлениях и столбцах компонента Database Engine, к которым имеется доступ. В отличие от системного каталога, который управляет метаданными применительно к системе, как к единому целому, информационная схема в основном управляет средой базы данных.

В следующих разделах описываются наиболее важные представления информационной схемы.

Представление information_schema.tables

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

Имя столбца Описание
object_id
Представление information_schema.tables

Имя каталога (базы данных), к которому принадлежит представление

Имя схемы, к которой принадлежит представление

Тип таблицы (может быть base table или view)

Представление information_schema.columns

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

Столбец Описание
TABLE_CATALOG
Представление information_schema.columns

Имя каталога (базы данных), к которому принадлежит столбец

Имя схемы, к которой принадлежит столбец

Имя таблицы, к которой принадлежит столбец

Номер по порядку столбца

Тип данных столбца

Специализированные интерфейсы

В предшествующем разделе мы рассмотрели получение доступа к системным базовым таблицам, используя общие интерфейсы. Но системную информацию можно также получить, используя один из следующих специализированных механизмов компонента Database Engine:

системные хранимые процедуры;

Эти интерфейсы рассматриваются в последующих подразделах.

Системные хранимые процедуры

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

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

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

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

Обычно, доступ к дополнительным конфигурационным опциям SQL Server не разрешен. Поэтому первая инструкция EXECUTE в примере дает указание системе разрешить изменения дополнительных параметров. Следующая инструкция, RECONFIGURE WITH OVERRIDE, устанавливает это разрешение. Теперь можно изменять значения дополнительных параметров. В примере параметру fill factor присваивается значение 100 (инструкция EXEC), после чего выполняется установка этого изменения (инструкция RECONFIGURE). (Параметр fill factor указывает объем хранилища в процентах для страниц индексов.)

Системные функции

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

В этом примере вторая инструкция SELECT возвращает идентификатор таблицы Employee, используя системную функцию object_id. (Полученную информацию можно сохранить в переменной и применить в качестве параметра при вызове команды или системной хранимой процедуры.)

Далее приводится список некоторых системных функций для доступа к системным базовым таблицам. Назначение этих функций должно быть понятно с их названий:

Функции свойств

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

Почти все функции свойств возвращают одно из следующих значений: 0, 1 или NULL. Возвращение функцией свойств значения 0 означает, что объект не обладает данным свойством. Возвращение функцией свойств значения 1 означает, что объект обладает данным свойством. А возвращение значения NULL означает, что системе неизвестно, обладает ли данный объект указанным свойством.

Компонент Database Engine поддерживает, среди прочих, следующие функции свойств:

OBJECTPROPERTY (id, property)

COLUMNPROPERTY (id, column, property)

FILEPROPERTY (filename, property)

TYPEPROPERTY (type, property)

Функция objectProperty возвращает информацию об объектах текущей базы данных. Функция columnProperty возвращает информацию о столбце или о параметре процедуры. Функция fileProperty возвращает значение указанного свойства для заданного имени файла. Функция typeProperty возвращает информацию о типе данных. (Описание поддерживаемых свойств для всех функций свойств смотрите в электронной документации.)

Источник

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

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

Назначение системного каталога

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

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

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

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

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

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

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

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

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

Изменения в системных таблицах происходят в качестве побочного результата выполнения таких инструкций как CREATE, ALTER, DROP, GRANT и REVOKE.

Источник

Мир цифровой информации

С появлением операционной системы Microsoft Windows контейнеры файловой системы ранее называемые каталогами стали называть папками. Это не просто переименование термина. В отличии от обычного каталога, который хранится на диске в файловой системе и может содержать подкаталоги и файлы, сама папка является абстрактным объектом, которого может и не существовать на диске. Например, рассмотрим папки Мой компьютер, Панель управления и Корзина. Получить путь к этим папкам на диске нельзя, так как каждая из них является лишь отображением группы объектов для удобства восприятия.

У разных папок в Windows могут быть совершенно разные свойства. Среди содержимого папок тоже могут быть абстрактные объекты, которые не являются файлами на диске. Например, в папке Мой компьютер хранятся ссылки на логические диски компьютера, а в папке Сетевое окружение ссылки на компьютеры. Среди содержимого папок могут присутствовать физические файлы, находящиеся в разных местах на диске или даже на разных дисках, например папка Корзина отображает информацию об удаленных файлах со всех логических дисков.

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

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

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

К системным папкам относится и папка Рабочий стол, которая отображается как корневая в дереве Проводника. Эта папка содержит смесь различных объектов. В ней могут присутствовать как виртуальные объекты, так и обычные файлы и папки. Если на компьютере у каждого пользователя в Windows имеется своя учетная запись, то файлы, которые он помещает на рабочий стол видны лишь внутри этой учетной записи. Они хранятся на жестком внутри папки профиля в папке содержания рабочего стола. Однако, помимо личного рабочего стола пользователя, существует общий рабочий стол, объекты которого отображаются во всех учетных записях. Например, при установке программ, ярлыки на рабочем столе появляются в каждой учетной записи. Они тоже хранятся на диске, но размещены в так называемом общем профиле. Таким образом, системная папка Рабочий стол отображает не виртуальные объекты, такие как Корзина, Мой компьютер, но и содержание сразу двух обычных папок, которые расположены по разным путям на диске.

Источник

Читайте также:  Что такое октет в ip адресе
Информационный сайт
Столбец Описание
TABLE_CATALOG