Хотя с точки зрения архитектуры удобно различать подъязык данных и
включающий его базовый язык, на практике они могут быть неразличимы
настолько, насколько это имеет отношение к пользователю. Безусловно, с точки
зрения пользователя предпочтительнее, чтобы они были неразличимы. Если они
неразличимы или трудноразличимы, их называют сильно связанными. Если они
ясно и легко различаются, говорят, что эти языки слабо связаны. В то время как
некоторые коммерческие. системы (особенно объектные системы) поддерживают
сильную связь, большинство систем, в частности системы SQL, обычно
поддерживают лишь слабую связь. Системы с сильной связью могли бы
предоставить пользователю более унифицированный набор возможностей, но,
очевидно, они требуют больше усилий со стороны системных проектировщиков и
разработчиков, которые, вероятно, рассчитывают на сохранение статус-кво.
В принципе, любой подъязык данных является на самом деле комбинацией
по крайней мере двух подчиненных языков — языка определения данных (data
definition language — DDL), который поддерживает определения или объявления
объектов базы данных, и языка обработки данных (data manipulation language —
DML), который поддерживает операции с такими объектами или их обработку.
Например, рассмотрим пользователя языка PL/I (см. рис. 3). Подъязык данных
этого пользователя включает определенные средства языка PL/I, применяемые
для организации взаимодействия с СУБД.
Язык определения данных включает некоторые описательные структуры
языка PL/I, необходимые для объявления объектов базы данных. Это сам
оператор DECLARE (DCL), определенные типы данных языка PL/I, а также
возможные специальные дополнения для языка PL/I, предназначенные для
поддержки новых объектов, которые не поддерживаются существующей
версией языка PL/I.
Язык обработки данных состоит из тех выполняемых операторов языка PL/
I, которые передают информацию в базу данных и из нее; опять же,
возможно, включая новые специальные операторы.
Отдельного пользователя интересует лишь некоторая часть всей базы
данных. Кроме того, представление пользователя об этой части будет, безусловно,
чем-то абстрактным по сравнению с выбранным способом физического хранения
данных. В соответствии с терминологией ANSI/SPARC представление отдельного
пользователя называется внешним представлением. Таким образом, внешнее
представление— это содержимое базы данных, каким его видит определенный
пользователь (т.е. для каждого пользователя знешнее представление и есть та
база данных, с которой он работает). Например, пользователь из отдела кадров
может рассматривать базу данных как набор записей с информацией об отделах
плюс набор записей с информацией о служащих и ничего не знать о записях с
информацией о материалах и их поставщиках, с которыми работают пользователи
в отделе снабжения.
В общем случае внешнее представление состоит из некоторого множества
экземпляров каждого из многих типов внешних записей (которые вовсе не
обязательно должны совпадать с хранимыми записями). Предоставляемый в
распоряжение пользователя подъязык данных всегда определяется в терминах