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

1 ... 107 108 109 [ 110 ] 111 112 113 ... 264


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

DECLARE DATABASE DPI

FILENAME SYS$ROOT:[PRODUCTION\]OP

DECLARE DATABASE 0P2

FILENAME SYS$ROOT:[DEVELOPMENT.TEST]OP

Они присваивают двум базам данных псевдонимы 0Р1 и 0Р2, которые используются в последующих инструкциях VAX SQL для указания полного имени таблицы.

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

Структура базы данных и стандарт ANSI/ISO

в стандарте SQL1 две части языка SQL - язык обработки данных (DML) и язык определения данных (DDL) - существенно отличаются одна от другой. Они рассматриваются как два отдельных, относительно независимых языка. Стандарт не требует, чтобы СУБД воспринимала инсфукции DDL в процессе своей работы. Структура базы данных является, фактически, статической конструкцией, подобной той, какая существует в иерархических и сетевых СУБД (рис. 13.12).

Структура базы данных, задаваемая стандартом SQL1, довольно проста. Наборы таблиц определяются в схеме базы данных, связанной с конкретным пользователем. У небольшой базы данных, изображенной на рис. 13.12, имеется две схемы. Одна из них связана с пользователем по имени Джо (по распросфаненной терминологии, она принадлежит Джо), а вторая принадлежит Мэри. Схема Джо содержит две таблицы с именами people и places. Схема Мэри содержит две другие таблицы - things и places. Хотя в базе данных есть две таблицы с именем places, они различимы, поскольку у них разные владельцы.

Стандарт SQL2 значительно расширяет смысл определения базы данных и ее схемы. Как уже упоминалось, SQL2 фебует, чтобы инструкции DDL могли выполняться как в интерактивном режиме, так и из программного SQL. Тогда структуру базы данных можно будет менять и после ее создания. Кроме того, стандарт SQL2 значительно расширил и концепцию пользователей базы данных (в стандарте им назначен термин идентификаторы прав доступа). На рис. 13.13 представлена высокоуровневая сфуктура базы данных согласно стандарту SQL2.



Этап 1 Построение базы данных Схема базы данных

Этап 2 Использование базы данных

Инструкции I DDL

Приложение

Приложение

Приложение


Инструкции DML

Профамма построения базы данных

СУБД

Таблицы Джо Таблицы Мэри ( people ~ ( things ~

places

places

V----------------:

База данных

Таблицы Джо Таблицы Мэри pe~ople ( things

places

places

V--------------\

База данных

Pytc 73 J2 СУБД поддерживающая статический язык определения данных (DDL)

Таблицы

Каталог ЛВС

Схема X

Схема Y

СУБД


Каталог DEF

Схема X

Схема 2

Программные модули

Рис. 13.13. Структура базы данных в SQL2



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

Программное обеспечение СУБД, соответствующее стандарту SQL2

Именованные пользователи (названные в стандарте идентификаторами прав доступа ), имеющие привилегии на выполнение определенных операций над содержимым базы данных

Программные модули, применяемые для доступа к базе данных Стандарт SQL2 описывает выполнение инструкций SQL в терминах модульного языка , который большинством коммерческих СУБД не используется Независимо от того, как реально создаются SQL-профаммы, стандарт SQL2 определяет, что профаммный код для доступа к базе данных входит в состав среды SQL

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

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

Каталоги в SQL2

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

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

В стандарте сказано, что когда пользователь или профамма впервые устанавливает контакт со средой SQL, то один из ее каталогов определяется как используемый данным сеансом по умолчанию, или стандартный каталог (Способ выбора этого Каталога определяется реализацией) В течение сеанса стандартный каталог может быть изменен с помощью инсфукции set catalog.



1 ... 107 108 109 [ 110 ] 111 112 113 ... 264

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