Скачиваний:
180
Добавлен:
02.05.2014
Размер:
2.66 Mб
Скачать

2.3. Внешний уровень

Внешний уровень — это индивидуальный уровень пользователя. Как было сказано в главе 1, пользователь может быть прикладным программистом или конечным пользова- телем с любым уровнем профессиональной подготовки. (Особое место среди пользова- телей занимает администратор базы данных (АБД). В отличие от остальных пользовате- лей, АБД интересует также концептуальный и внутренний уровни. Об этом еще будет говориться в следующих двух разделах.)

У каждого пользователя есть свой язык общения.

■ Для прикладного программиста это либо один из распространенных языков про- граммирования (например, PL/I, С++ или Java), либо специальный язык рассмат- риваемой системы. Такие оригинальные языки называют языками четвертого по- коления на том (не вполне определенном!) основании, что машинный код, язык ассемблера и такие языки, как PL/I, можно считать языками трех первых "поколений", а оригинальные языки модернизированы по сравнению с языками третьего поколения так же, как языки третьего поколения улучшены по сравнению с языком ассемблера.

■ Для конечного пользователя это или специальный язык запросов, или язык специального назначения, который может быть основан на использовании форм и меню, разработан специально с учетом требований пользователя и ин- терактивно поддерживаться некоторым оперативным приложением (как ука- зывалось в главе 1).

Для нашего обсуждения важно, что все эти языки включают подъязык данных, т.е. подмножество операторов всего языка, связанное только с объектами баз дан- ных и операциями с ними. Иначе говоря, подъязык данных встроен в базовый язык, который дополнительно обеспечивает различные не связанные с базами дан- ных возможности (такие, как локальные (временные) переменные, вычислительные операции, логические операции и т.д.). Система может поддерживать любое количе- ство базовых языков и любое количество подъязыков данных. Однако существует один язык, который поддерживается практически всеми сегодняшними системами. Это язык SQL, который кратко был представлен в главе 1. Большинство систем по- зволяет использовать язык SQL и интерактивно, как самостоятельный язык запро- сов, и посредством внедрения его операторов в другие языки программирования, та- кие как PL/I и Java. (Подробности приводятся в главе 4.)

Хотя с точки зрения архитектуры удобно различать подъязык данных и включаю- щий его базовый язык, на практике они могут быть неразличимы настолько, насколько это имеет отношение к пользователю. Безусловно, с точки зрения пользователя пред- почтительнее, чтобы они были неразличимы. Если они неразличимы или трудноразли- чимы, их называют сильно связанными. Если они ясно и легко различаются, говорят, что эти языки слабо связаны. В то время как некоторые коммерческие системы (особенно объектные системы; см. главу 24) поддерживают сильную связь, большин- ство систем, в частности системы SQL, обычно поддерживают лишь слабую связь. Системы с сильной связью могли бы предоставить пользователю более унифициро- ванный набор возможностей, но, очевидно, они требуют больше усилий со стороны системных проектировщиков и разработчиков, которые, вероятно, рассчитывают на сохранение статус-кво.

В принципе, любой подъязык данных является на самом деле комбинацией по крайней мере двух подчиненных языков — языка определения данных (data definition language — DDL), который поддерживает определения или объявления объектов базы данных, и языка обработки данных (data manipulation language — DML), который поддерживает операции с такими объектами или их обработку. На- пример, рассмотрим пользователя языка PL/I (см. рис. 2.2). Подъязык данных этого пользователя включает определенные средства языка PL/I, применяемые для орга- низации взаимодействия с СУБД.

  • Язык определения данных включает некоторые описательные структуры языка PL/I, необходимые для объявления объектов базы данных. Это сам оператор DECLARE (DCL), определенные типы данных языка PL/I, а также возможные специ- альные дополнения для языка PL/I, предназначенные для поддержки новых объек- тов, которые не поддерживаются существующей версией языка PL/I.

  • Язык обработки данных состоит из тех выполняемых операторов языка PL/I, ко- торые передают информацию в базу данных и из нее; опять же, возможно, вклю- чая новые специальные операторы.

Пользователь А1 Пользователь А2 Пользователь Б1 Пользователь Б2 Пользователь БЗ

Соседние файлы в папке Дейт К. Дж. Введение в системы баз данных [7 издание]