Иерархические модели данных

Автор: Ольга Благовестова, 22 Сентября 2010 в 00:01, курсовая работа

Описание работы

Термин «модель данных» был введен американским математиком Коддом в 1970 г. при обосновании реляционной модели данных. Это понятие соответствует такому смысловому аспекту термина «модель», который понимается как средство, инструмент для моделирования.
В этом широком смысле любая система машинных команд, любой язык программирования, любая СУБД как инструмент для моделирования информации о предметной области, является моделью данных, так как предоставляет свои средства для описания, организации данных и их обработки.
В ГОСТе понятие модели данных для СУБД определяется как «совокупность правил порождения структур данных в базах данных, операций над ними, а также ограничений целостности, определяющих допустимые связи и значения данных, последовательности их изменения».
Таким образом, в понятие «модель данных» входят три составляющие:
средства для организации данных;
операции для обработки, манипулирования данными;
ограничения, обеспечивающие целостность данных.

Содержание

Введение 3
Базы и модели данных
1.1. Данные и компьютер 5
1.2. Базы данных 7
1.3. Объекты базы данных 9
1.4. Концепция баз данных 11
2. Иерархическая модель данных
2.1. Иерархическая модель данных 14
2.2. Сегмент иерархической модели данных 16
2.3. Сравнение сетевой и иерархической модели данных 20
2.4. Язык описания данных иерархической модели 22
2.5. Пример иерархической БД 24
Заключение 29
Список сокращений 31
Глоссарий 32
Список использованных источников 35
Приложение 1 Список основных команд операций 37
Приложение 2 Уровни моделей данных 38

Работа содержит 1 файл

Иерархические модели данных.doc

— 574.50 Кб (Скачать)

     Экземпляры-потомки  одного типа, связанные с одним  Экземпляром сегмента-предка, называют «близнецами». Так, для нашего примера экземпляры Б1, Б2 и БЗ являются «близнецами», но экземпляр Б4 подчинен другому экземпляру родительского сегмента, и он не является «близнецом» по отношению к экземплярам Б1, Б2 и БЗ. Набор всех экземпляров сегментов, подчиненных одному экземпляру корневого сегмента, называется физической записью. Количество экземпляров-потомков может быть разным для разных экземпляров родительских сегментов, поэтому в общем случае физические записи имеют разную длину. Так, используя принцип линейной записи иерархических графов, можно представив в виде двух записей:

     Таблица 1

     Принцип линейной записи иерархических графов

 

     Как видно из примера, физические записи в иерархической модели различаются  по длине и структуре.

     2.3 Сравнение иерархической  и сетевой модели  данных

     Стандарт  сетевой модели впервые был определен в 1975 году организацией CODASYL (Conference of Data System Languages), которая определила базовые понятия модели и формальный язык описания. Сетевая модель описывает элементарные данные и отношения между ними  в виде ориентированной сети. Это такие отношения между объектами, когда каждый порожденный элемент имеет более одного исходного и может быть связан с любым другим элементом структуры.

     Сетевая модель  данных (далее СМД) замышлялась  как инструмент для пользователей  баз данных - программистов. В связи с этим в СМД больше внимания уделяется  структуризации  данных, чем развитию ее операционных возможностей. [6]

     Для сетевых моделей стоит выделить следующие проблемы:

   1. Сетевые модели не имеют общей  теории.

   2. Много эвристики.

   3. Проблема эффективности процедур работы с сетями.

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

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

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

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

     Отличительные особенности иерархической и  сетевой моделей: основной единицей обработки в них является запись; в иерархической модели данные организованы в иерархические структуры и  обработка начинается только с корневой записи, а доступ к некорневым обеспечивается только по иерархическому пути; в сетевой модели данных обработка может быть начата с записи любого типа независимо от её расположения в БД, и от извлеченной записи возможны переходы, как к её подчиненным записям, так и к тем, которым она подчинена; при отображении сетевых структур предметной области в иерархической БД необходимо дублирование данных, при этом семантическая целостность автоматически не поддерживается.

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

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

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

     Способ  доступа определяет способ организации взаимосвязи физических записей.

     Определено 5 способов доступа:

  • HSAM - hierarchical sequential access method (иерархически последовательный метод),
  • HISАМ - hierarchical index sequential access method (иерархически индексно-последовательный метод),
  • HDAM - hierarchical direct access method (иерархически прямой метод),
  • HIDAM - hierarchical index direct access method (иерархически индексно-прямой метод),
  • INDEX - индексный метод.

     Далее идет описание наборов данных, предназначенных для хранения БД: DATA SET DD1  < имя оператора, определяющего хранимый набор данных, DEVICE =< устройство хранения БД>. OVERLOW = < имя области переполнения>. [7]

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

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

     SEGM NAMЕ = < имя сегмента> BYTES =< размер в байтах>, FREQ - <средняя частота реализаций сегмента под одним исходным> PARENT = <имя родительского сегмента>.

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

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

     FIELD NAME = {(<имя поля> [. SEQ].{U | M}) | <имя поля> }. START = < номер байта, с которого начинается значения поля >, BYTES = <размер поля в байтах>, TYPE = {X | Р | С}.

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

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

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

  1. DBDGEN — указывает на конец последовательности управляющих операторов описания БД;
  2. FINISH — устанавливает ненулевой код завершения при обнаружении ошибки; Q END — конец.

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

     2.5 Пример иерархической  БД

     Организация занимается производством и продажей компьютеров, в рамках производства, организация комплектует компьютеры из готовых деталей по индивидуальным заказам. У организации существует несколько базовых моделей, которые продаются без предварительных заказов по наличию на складе. В организации существуют несколько филиалов (рис. 2.5) и несколько складов, на которых хранятся комплектующие. Задание: необходимо вести учет продаваемой продукции. [8]

Рисунок. 2.5 Физическая БД «Филиалы»

     Примерные задачи, которые надо решить в ходе разработки приложения.

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

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

Рисунок 2.6 Физическая модель «Склады» 

Перечень  операторов поиска данных:

Синтаксис:

     GET UNIQUE <имя сегмента> WHERE <список поиска>

     Список  поиска состоит из последовательности условий вида <имя сегмента>.<имя поля>ОС <constant или имя другого поля данного сегмента или имя переменной>; ОС — операция сравнения; условия могут быть соединены логическими операциями И и ИЛИ {& , V}.

Назначение:

     Получить  единственное значение.

Пример:

     Найти типовую модель стоимостью не более $600, которая существует не менее  чем л 10 экземплярах.

     GET UNIQUE ТИПОВЫЕ МОДЕЛИ WHERE Типовые модели.Стоимость <= $600 AND Типовые модели.Количество на складе >= 10

     Данная  команда всегда ищет с начала БД и останавливается, найдя первый экземпляр сегмента, удовлетворяющий условиям поиска.

Синтаксис:

     GET NEXT <имя сегмента> WHERE «список аргументов поиска>

Назначение:

     Получить  следующий экземпляр сегмента для тех же условий.

Пример:

     Напечатать  полный список заказов стоимостью не менее $500.

GET UNIQUE ИНДИВИДУАЛЬНЫЕ МОДЕЛИ WHERE Индивидуальные модели.Стоимость >= $500 WHILE NOT FAIL (пока не конец поиска) DO

     PRINT N заказа, Стоимость, Количество

     GET NEXT ИНДИВИДУАЛЬНЫЕ МОДЕЛИ

END 
 

Синтаксис:

     GET NEXT <имя сегмента> WITHIN PARENT [ where <дополнительные.условия>]

Назначение:

     Получить  следующее для того же исходного.

Пример:

     Получить  перечень винчестеров, имеющихся на складе номер 1, в количестве не менее 10 с объемом 10 Гбайт.

GET UNIQUE СКЛАД WHERE Склад.Номер = 1

GET NEXT ИЗДЕЛИЕ WITHIN PARENT WHCRE Изделие’.Наименование * “Винчестер”

GET NEXT ХАРАКТЕРИСТИКИ WITHIN’PARENT

WHERE ХАРАКТЕРИСТИКИ.Параметр = 10 AND

ХАРАКТЕРИСТИКИ.Единицы  Измерения = ГБ AND

ХАРАКТЕРИСТИКИ.Величина > 10

While Not Fall (пока поиск не завершен) DO

Get Next Wuh-in Parent

End.

     Перечень  операторов поиска данных с возможностью модификации:

1. Найти и удержать единственный экземпляр сегмента. Эта операция подобна пepвой операции поиска GET UNIQUE, единственным отличием этой операции является то, что после выполнения этой операции над найденным экземпляром сегмента допустимы операции модификации (изменения) данных.

Информация о работе Иерархические модели данных