Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
BD_KL_2010_14.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
28.97 Mб
Скачать

2.5.5.Информация о представлениях

Определения представлений, созданных в базе данных, также хранятся в системном каталоге. В системном каталоге СУБД DB2 содержится две системные таблицы, в которых содержатся сведения о представлениях:

  • таблица SYSCAT.VIEWS содержит SQL-определения всех представлений в текстовом виде. Если длина определения превышает 3600 символов, то оно хранится в нескольких строках с последовательными номерами;

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

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

2.5.6.Информация об отношениях между таблицами

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

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

Приведем пример такого запроса, для вывода списка всех отношений предок-потомок между таблицами ‘USER’, включая имя отношения, имя таблицы-предка, имя таблицы-потомка и правило удаления для каждого отношения.

SELECT CONSTNAME, REFTABNAME, TABNAME, DELETERULE

FROM SYSCAT.REFERENCES

WHERE DEFINER = ‘USER’

Имена столбцов вторичных ключей и соответствующих им столбцов первичных ключей перечислены в текстовом виде в столбцах FK_COLUMNES и PK_COLUMNES таблицы SYSCAT.REFERENCES.

Информация о первичных ключах и отношениях предок-потомок, в которых они участвуют, содержится также в системных таблицах SYSCAT.TABLES и SYSCAT.COLUMNS описанных выше.

2.5.7.Информация о пользователях

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

2.5.8.Информация о привилегиях

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

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

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

Язык SQL − это язык нечисловой обработки данных, предназначен для работы с содержанием данных. Например, если на алгоритмическом языке для обращения к массивам A и B нужно определить адрес массива и воспользоваться значением индекса I для выбора конкретного элемента. Аналогично для выборки из памяти из памяти значения переменной X достаточно знать ее имя, которое указывает на ее местоположение в памяти (см. Пример 1).

Пример 1 .

for (i = 1; i <= 10; i++)

{ A(I) = A(I) + XB(I); }

В другом примере (см. Пример 2), написанном на языке SQL, имена служащих выбираются из файла не по адресу, а по содержимому полей AGE и QUOTA.

Пример 2 .

SELECT FAMILY

FROM SLUZHASCHIE

WHERE AGE < 35 AND QUOTA = 4000

Этот способ адресации отличается от способа обращения к элементам массивов A и B. Способ адресации, используемый в языке SQL, называется ассоциативным обращением или ассоциативной адресацией.

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

Говоря о языке SQL, нужно помнить о его главном назначении:

  • во-первых, это средства описания хранимых данных, их структуры, правил доступа к ним. Эту часть будем называть языком определения данных (Data Definition Language – DDL);

  • во-вторых, это описание запросов на поиск и изменение данных в существующей базе. Эту часть будем называть языком манипулирования данными (Data Manipulation Lang­uage – DML);

  • в-третьих, это средства управления доступа к данным. Эти средства образует группа операторов управления ограничения доступа к данным. Часто их относят к языку определения данных.

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

Каждая инструкция начинается с команды, т. е. с ключевого слова, описывающего действие, выполняемое инструкцией. Командами, например, являются CREATE, INSERT, SELECT и т. д.

После команды идет одно или несколько предложений, описывающих данные с которыми работает инструкция, либо содержится уточняющая информация о действии, выполняемой инструкцией. Каждое предложение также начинается с ключевого слова (например, WHERE, FROM, INTO и т. д.).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]