Россия, г. Санкт-Петербург |
Информационное обеспечение САПР (окончание)
11.2. Сетевые модели баз данных
Как было сказано выше, сетевая модель данных реализует связи типа "многие ко многим". Сетевые базы данных разрабатывались Ассоциацией по языкам систем обработки данных КОДАСИЛ1От англ. "The Conference on Data System Languages" — CODASYL; рабочая группа DATA Base Task Group — DBTG. и ее рабочей группой DBTG. Первые исследования этой группы были направлены на создание языков программирования задач обработки данных, в частности, языка КОБОЛ. В дальнейшем были разработаны специальные предложения DBTG для систем управления сетевыми базами данных.
Наибольшее развитие получили две группы языков: языки описания данных (ЯОД КОДАСИЛ) и языки манипулирования данными (ЯМД КОДАСИЛ). Первые служат для описания сетевой базы данных, предназначенной для коллективного использования программами, написанными на различных языках. Вторые — для включения, удаления и модификации данных в сетевой БД.
Сформулируем основные определения ЯОД КОДАСИЛ и укажем на соответствие определений в сетевых и реляционных БД. Пример структуры сетевой базы данных приведен на рис. 11.1. Там же условно показаны основные термины сетевой БД.
Элемент данных — наименьшая единица поименованных данных, представляемых в БД значением, — соответствует значению атрибута в реляционной БД (РБД).
Агрегат данных — совокупность элементов данных внутри одной записи — соответствует домену в РБД.
Запись — совокупность элементов данных, состоящая из элементов или агрегатов данных — соответствует кортежу в РБД. Она характеризуется типом записи, которому соответствует произвольное число ее экземпляров.
Набор — совокупность записей — соответствует отношению в РБД; характеризуется типом набора (имя отношения в РБД). Каждый экземпляр набора должен содержать один экземпляр объявленного для него типа записи — владельца — и один или несколько типов записей — членов набора. Например, если тип набора ТРАНЗИСТОРЫ СВЧ, то тип записи для владельца набора — ТРАНЗИСТОРЫ; тип записей членов набора — марки транзисторов СВЧ ( рис. 11.1).
Область — совокупность записей, не сохраняющая соответствия "владелец — член набора ". Область может содержать экземпляры одного (или более) типа записей, а экземпляры одного типа записи могут находиться в нескольких областях ( рис. 11.1); конкретный же экземпляр записи может приписываться только одной области.
Схема БД — глобальное описание сетевой БД в приведенных терминах с точки зрения администратора базы данных.
Подсхема БД — часть схемы БД с точки зрения прикладного программиста, ограничивающая сферу действия последнего. Это предохраняет от случайных изменений в тех частях БД, к которым он не должен обращаться.
База данных представляет собой совокупность всех записей, наборов и областей, управляемых некоторой схемой.
Возможны различные частные структуры сетевых баз данных, соответствующих различным схемам. Это последовательные структуры, деревья, циклы и сети.
Последовательные структуры данных являются простейшими из них и представлены в БД одним набором, члены которого упорядочены определенным образом. В древовидных структурах — иерархических — каждая запись (кроме одной, называемой корневой ) связана с нулем или несколькими различными записями, расположенными ниже ее по иерархии, и с одной записью, расположенной выше. Корнем дерева служит запись наивысшего уровня, например, ТРАНЗИСТОРЫ на рис. 11.1. Так как каждый набор может иметь произвольное число записей (членов этого набора ) и допускается произвольное число типов наборов, дерево может быть любой ширины и глубины.
Циклы — замкнутые структуры в БД. Различают однотипные и многотипные циклы. В однотипных циклах один и тот же тип записи объявляется и владельцем, и членом одного и того же типа набора. Например, тип набора СОСТОИТ ИЗ ( рис. 11.1), означает, что каждый прибор может, в свою очередь, состоять из других приборов. В многотипных циклах владелец одного типа набора является членом предыдущего.
Сети — наиболее общая структура данных по сравнению с деревьями и циклами, в которой каждый тип записи может быть членом более чем одного типа набора ( рис. 11.1).
Разработан синтаксис ЯОД КОДАСИЛ, включающий в себя различные типы сетей описания данных, схемы, области, записи и набора.
11.3. Иерархическая модель базы данных
Иерархические модели баз данных исторически возникли одними из первых. В качестве примера рассмотрим иерархическую БД — Information Management Systems (IMS), разработанную в 1967 году. Существуют соответствия терминов, описывающих сетевые модели БД КОДАСИЛ и иерархическую IMS, в частности: тип набора — связь; тип записи — тип сегмента; запись — владелец набора — исходный сегмент; запись — член набора — порожденный сегмент и т. д. ( рис. 11.2).
На вершине иерархической структуры только один тип сегмента — тип корневого сегмента. Связь между типами сегментов указывают стрелкой. Запись IMS (или запись иерархической базы данных) означает, что экземпляр корневого сегмента связан со всеми экземплярами записей нижнего уровня.
В иерархической структуре любой тип записи не может иметь более одного владельца (порожденный сегмент). Поэтому и не нужно вводить понятие "тип набора ".
Была рассмотрена физическая база данных. Однако существуют еще и логические отношения, связывающие две (или более) физические БД дерева ( рис. 11.2). С введением этого понятия могут быть связаны два исходных сегмента: один из них, находящийся в той же базе данных, что и рассматриваемый сегмент, называют физически исходным сегментом, другой — логически исходным сегментом. Логические связи на рис. 11.2 показаны пунктирными линиями. С помощью иерархических структур и логических отношений можно представить и некоторые сетевые структуры. Существуют некоторые ограничения на взаимное расположение физически и логически исходных и порожденных сегментов.
В памяти ЭВМ файлы иерархической базы данных IMS могут быть представлены четырьмя способами: HSAM — последовательный метод доступа, HISAM — индексно-последовательный, HDAM — прямой, HI DAM — индексно-прямой2От обозначений: AM (Access Method) — метод доступа, Н (Hierarhical) — иерархический, I (Indexed) — индексный, S (Sequental) — последовательный, D (Direct) — прямой..
При последовательном методе доступа дерево БД просматривается сверху вниз и слева направо. Для поиска нужной записи необходимо просматривать все дерево. Команды включения, удаления и замены сегментов ( записей ) не допускаются.
При индексно-последовательном способе записи БД хранятся в цепочке блоков памяти, в качестве ключей используются элементы корневого сегмента. Каждая запись расположена в одном блоке первичной области и при необходимости переходит в специальную область переполнения.
В случае прямого метода доступа загрузка сегментов в базу данных осуществляется в произвольном порядке и обращение к ним не последовательное, как в предыдущем способе, а прямое — по значению ключа. При удалении некоторых сегментов пространство памяти может быть использовано повторно.
В индексно-прямом методе доступа используются корневые сегменты, расположенные по возрастанию ключа в так называемой начальной базе данных и указывающие на те или иные рабочие сегменты базы данных.
Контрольные вопросы и упражнения
- Каково назначение и состав ИО САПР?
- Что входит в банк данных?
- Для чего предназначены СУБД?
- Перечислите требования, предъявляемые к базе данных.
- Приведите примеры информационного согласования программ при построении баз данных.
- Какие базы данных называют сетевыми?
- Какие базы данных называют реляционными?
- Приведите основные операции реляционной алгебры.
- Перечислите основные понятия для различных уровней представления данных.
- Укажите основные особенности и характеристики трех моделей представления данных.
- Докажите необходимость оптимизации запросов к базам данных.
- Приведите основные характеристики и параметры сетевых СУБД.
- Приведите основные характеристики и параметры иерархических СУБД.
- Что составляет кортеж отношения?
- Что означает "арность кортежа"?
- Что называют доменом?