Язык описания данных иерархической модели



В рамках иерархической модели выделяют языковые средства описания данных (DDL) и средства манипулирования данными (DML).

Каждая физическая база описывается набором операторов, определяющих как ее логическую структуру, так и структуру хранения БД. Описание начинается с оператора DBD (Data Base Definition):

DBD Name = < имя БД>, ACCESS = < способ доступа>

Способ доступа определяет способ организации взаимосвязи физических записей. Определено 5 способов доступа: HSAM hierarchical sequential access method (иерархически последовательный метод), HIS AM — hierarchical index sequential access method (иерархически индексно-последовательный метод), HDAM — hierarchical direct access method (иерархически прямой метод), HIDAM — hierarchical index direct access method (иерархически индексно-прямой метод), INDEX — индексный метод.

Далее идет описание наборов данных, предназначенных для хранения БД:

DATA SET DD1 = < имя оператора, определяющего хранимый набор данных>.

DEVICE =< устройство хранения БД>.

[OVFLW = < имя области переполнения>]

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

После описания всей физической БД идет описание типов сегментов, ее составляющих, в соответствии с иерархией. Описание сегментов всегда начинается с описания корневого сегмента. Общая схема описания типа сегмента такова:

SEGM NAME = < имя сегмента>. BYTES =< размер в байтах>.

FREQ = <средняя частота реализаций сегмента под одним исходным>

PARENT = <имя родительского сегмента>

Параметр FREQ определяет среднее количество экземпляров данного сегмента, связанных с одним экземпляром родительского сегмента. Для корневого сегмента это число возможных экземпляров корневого сегмента.

Для корневого сегмента параметр PARENT равен 0 (нулю). Далее для каждого сегмента дается описание полей:

FIELD NAME = {(<имя поля> [. SEQ].{U | М}) | <имя поля> },

START = < номер байта,       с которого начинается значения поля >,

BYTES = <размер поля в      байтах>,

TYPE = {X | Р | С}

Признак SEQ — задается для ключевого поля, если экземпляры данного сегмента физически упорядочены в соответствии со значениями данного поля.

Параметр U задается, если значения ключевого ноля уникальны для всех экземпляров данного сегмента, М — в противном случае. Если поле является ключевым, то его описание задается в круглых скобках, в противном случае имя поля задается без скобок. Параметр TYPE определяет тип данных. Для ранних иерархических моделей были определены только три типа данных: X — шестнадцатеричный, Р —упакованный десятичный, С — символьный.

Заканчивается описание схемы вызовом процедуры генерации:

□ DBDGEN — указывает на конец последовательности управляющих операторов описания БД;

□ FINISH — устанавливает ненулевой код завершения при обнаружении ошибки;

□   END - конец.

В системе может быть несколько физических БД (ФБД), но каждая из них описывается отдельно своим DBD и ей присваивается уникальное имя. Каждая ФБД содержит только один корневой сегмент. Совокупность ФБД образует концептуальную модель данных.

Внешние модели

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

Представление внешней модели называется логической базой данных и определяется совокупностью блоков связи данного приложения с физическими БД, входящими в концептуальнуюсхему БД. Блок связи — РСВ, program communication bloc — описывает связь с одной физической БД по следующим правилам:

DBD NAME - < имя логической БД (подсхемы)> . ACCESS = LOGICAL

DATA SET = LOGICAL.

SEGM NAME = <имя сегмента в подсхеме>, PARENT =<имя родительского сегмента в подсхеме>. SOURSE =(Имя соответствующего сегмента ФБД, имя ФБД)

…….

DBDGEN

FINISH

END

Совокупность блоков РСВ образует полное внешнее представление данного приложения, называемое «блоком спецификации программ» (PSB, program specification block).

Рассмотрим пример иерархической БД.

Организация занимается производством и продажей компьютеров, в рамках производства комплектуют компьютеры из готовых деталей по индивидуальным заказам. Существует несколько базовых моделей, которые продают без предварительных заказов по наличию на складе. В организации существуют несколько филиалов (рис. 3.4) и несколько складов, на которых хранятся комплектующие. Необходимо вести учет продаваемой продукции.

Рис.3.4. Физическая БД «Филиалы»

Какие задачи нам надо решать в ходе разработки приложения?

□ При приеме заказа мы должны выяснить, какую модель заказывает заказчик: типичную или индивидуальнуюкомплектацию.

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

□ Если заказывается индивидуальная модель, то требуется описать весь состав новой модели.

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

Рис.3.5. Физическая модель «Склады»


Дата добавления: 2018-04-15; просмотров: 324; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!