Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Глава19.docx
Скачиваний:
3
Добавлен:
25.08.2019
Размер:
2.42 Mб
Скачать

19.3. Реляционные языки манипулирования данными

727

Выделяют следующие разновидности языков реляционной алгебры: dBASe-подобные языки приближены к языкам структурного программирования, обеспечивают создание интерфейса пользователя и типовые операции обработки; графические реляционные языки, которые ориентированы на конечных пользова­телей;

SQL-подобные языки запросов, реализованные в большинстве многопользователь­ских и распределенных систем управления базами данных.

dBASe-подобные реляционные языки

СУБД реляционного типа, такие, как dBASe, Paradox, FoxPro, Clipper, Rbase и др., исполь­зуют языки манипулирования данными, обеспечивающие основные операции обработки реляционных баз данных, образующих класс dBASE-подобных (X-Base).

Рассмотрим данный класс языков на примере СУБД класса dBASe.

С помощью полноэкранных команд, вызываемых через главное меню (Управляющий центр, режим Assist и т.п.), осуществляются создание и редактирование схемы реляцион­ной таблицы (файла), ввод и редактирование данных. Для реализации тех же действий на программном уровне имеются соответствующие команды языка (CREATE, MODIFY, UPDATE, DELETE и др.).

Работа с реляционной таблицей (файлом базы данных) организуется в отдельной ра­бочей области, которой присваивается имя (алиасное имя или номер). После активизации файла к нему можно перейти, указав номер рабочей области. СУБД запоминает указатель на последней обрабатываемой записи (при первоначальном открытии файла текущий номер записи — 1). Позиционирование в файле на запись выполняется:

непосредственно, указанием номера записи (начало или конец файла, определенный

номер записи);

при поиске записи по заданному логическому условию.

Язык обеспечивает выполнение всех рассмотренных типовых операций над отдель­ным файлом, а именно:

APPEND BLANK, BROWSE, CHANGE, EDIT, INSERT — добавление, редакти­рование записей (в режиме полноэкранного ввода);

DELETE — удаление записей (в программном режиме);

SEEK, FIND, LOCATE — поиск записи по условию;

COPY — копирование всех или части записей активного файла в новый файл;

CONTINUE — продолжение поиска записи по ранее сформулированному условию и т.п.

Границы области действия команды принимают значения:

RECORD n — определенная запись с номером п;

ALL — все записи файла;

NEXT n — следующие п записей, начиная с текущей;

REST — все записи, начиная с текущей и до конца файла.

Условия выполнения команд задаются с помощью формата ключевых слов FOR и WHILE.

Условие1 действует в качестве фильтра (ВЫБОРКА) записей исходного файла: если записи соответствуют условию, они участвуют в операции. Условие формулируется применительно к полям записи, например:

FOR [ № зач.книжки\>=\ШШ AND [№ зач.книжки] < 2000000

728 Глава 19. Инструментальные средства пользователя в среде microsoft office

Условие2 позволяет прекратить операцию в случае его нарушения, например: WHILE [Цата рождения] < 1.1.80

Многие команды включают список полей, указываемых за ключевым словом FIELDS, на которые распространяется действие операции.

Пример 19.52.

DELETE границы FOR условие 1 WHILE условие2

Операция логического удаления (пометки) записей активного файла, если они отвечают требованию условия!. Операция выполняется до тех пор, пока истинно условие2.

COPY TO нов_файл границы FIELDS список_ полей FOR условие 1 WHILE условие2

Записи активного файла, удовлетворяющие условию!, если истинно условие2, исполь­зуются для формирования нового файла, схема которого задается как список_полей.

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

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

Пример 19.53.

JOIN WITH псевдоним FOR условие FIELDS список_полей

Запись исходного файла объединяется с записью файла, открытого под именем псев­доним, если выполняется условие. Формируется новый файл, схема которого задается списком полей.

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

Кроме того, данный класс реляционных языков реализует типовые конструкции язы­ков структурного программирования:

циклы (DO WHILE .... END DO);

условные операторы (IF ... ELSE ... ENDIF);

альтернативные операторы (DO CASE ... OTHERWISE ...ENDCASE) и др.

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

Графические (схематичные) реляционные языки

Типичным представителем является язык QBE (Query By Example), реализованный в среде электронных таблиц, в ряде СУБД, в пакете Microsoft Query.

Данный язык относится к языкам манипулирования данными. Работа выполняется со схемой реляционной таблицы с использованием простейших синтаксических конструкций.

Для вертикальной выборки (проекции) записей реляционной таблицы осуществляется пометка отбираемых полей с помощью символа V (помеченное поле выводится в выход­ную структуру новой реляционной таблицы).