- Сетевая модель данных
- Вопрос13! Сетевая модель данных. Одна из первых сетевых моделей данных, разработанная группой codasyl (Conference of Data System Languages), была предложена в 1969 г. И развивалась до 80-х годов.
- Сетевые и иерархические модели данных
- Структуры данных сетевых и иерархических моделей
- Связи объектов в сетевых и иерархических моделях данных
- Лекция 8 Типы моделей данных
- Иерархическая модель данных
- Сетевая модель данных
Сетевая модель данных
Вопрос13! Сетевая модель данных. Одна из первых сетевых моделей данных, разработанная группой codasyl (Conference of Data System Languages), была предложена в 1969 г. И развивалась до 80-х годов.
(Оригинал смотри здесь http://coronet.iicm.tugraz.at/wbtmaster/allcoursescontent/netlib/library.htm)
Первоначально сетевая модель замышлялась как инструмент для программистов. В качестве базового языка программирования был выбран Cobol.
К известным сетевым системам управления базами данных относятся: DBMS, IDMS, TOTAL, VISTA, СЕТЬ, СЕТОР, КОМПАС и др.
Основное достоинство сетевой модели – это высокая эффективность затрат памяти и оперативность.
Недостаток – сложность и жесткость схемы базы, а также сложность понимания. Кроме того, в этой модели ослаблен контроль целостности, так как в ней допускается устанавливать произвольные связи между записями.
Сравнивая иерархические и сетевые базы данных, можно сказать следующее. В целом иерархические и сетевые модели обеспечивают достаточно быстрый доступ к данным. Но поскольку в сетевых базах основная структура представления информации имеет форму сети, в которой каждая вершина (узел) может иметь связь с любой другой, то данные в сетевой базе более равноправны, чем в иерархической, так как доступ к информации может быть осуществлен, начиная с любого узла.
Однако следует отметить жесткость организации данных в иерархических и сетевых моделях. Доступ к информации осуществляется только в соответствии со связями, определенными при проектировании структуры конкретной базы данных. Базы данных с такими моделями сложно реорганизовывать.
Недостатком этих моделей является и сложность механизма доступа к данным, а также необходимость на физическом уровне четко определять связи данных. А поскольку каждый элемент данных должен содержать ссылки на некоторые другие элементы, то для этого требуются значительные ресурсы памяти ЭВМ. Кроме того, для таких моделей характерна сложность реализации систем управления базами данных.
Сетевая модель – это структура, у которой любой элемент может быть связан с любым другим элементом (рис. 18). Реальный пример иерархической модели представлен на рис. 19.
Рис. 18. Представление связей в сетевой модели данных
Рис. 19. Пример сетевой модели данных
Сетевая база данных состоит из наборов записей, которые связаны между собой так, что записи могут содержать явные ссылки на другие наборы записей. Тем самым наборы записей образуют сеть. Связи между записями могут быть произвольными, и эти связи явно присутствуют и хранятся в базе данных.
Над данными в сетевой базе могут выполняться следующие операции:
- Добавить – внести запись в базу данных.
- Извлечь – извлечь запись из базы данных.
- Обновить – изменить значение элементов предварительно извлеченной записи.
- Удалить – убрать запись из базы данных.
- Включить в групповое отношение – связать существующую подчиненную запись с записью-владельцем.
- Исключить из группового отношения – разорвать связь между записью-владельцем и записью-членом.
- Переключить – связать существующую подчиненную запись с другой записью-владельцем в том же групповом отношении.
________________________________________________________________________________ Базовыми объектами сетевой модели являются:
- элемент данных;
- агрегат данных;
- запись;
- набор данных.
Элемент данных — то же, что и в иерархической модели, то есть минимальная информационная единица, доступная пользователю с использованием СУБД. Агрегат данных соответствует следующему уровню обобщения в модели. В модели определены агрегаты двух типов:
- агрегат типа вектор и
- агрегат типа повторяющаяся группа.
Агрегат данных имеет имя, и в системе допустимо обращение к агрегату по имени. Агрегат типавектор соответствует линейному набору элементов данных. Например, агрегат Адрес может быть представлен следующим образом:
Адрес | |||
Город | Улица | дом | квартира |
Агрегат типа повторяющаясягруппа соответствует совокупности векторов данных. Например, агрегат Зарплата соответствует типу повторяющаяся группа с числом повторений 12.
Зарплата | |
Месяц | Сумма |
. | . |
Записью называется совокупность агрегатов или элементов данных, моделирующая некоторый класс объектов реального мира. Понятие записи соответствует понятию «сегмент» в иерархической модели. Для записи, так же как и для сегмента, вводятся понятия типа записи и экземпляра записи. Следующим базовым понятием в сетевой модели является понятие «Набор». Набором называется двухуровневый граф, связывающий отношением «один-ко-многим» два типа записи. Набор фактически отражает иерархическую связь между двумя типами записей. Родительский тип записи в данном наборе называется владельцем набора, а дочерний тип записи — членом того же набора. Для любых двух типов записей может быть задано любое количество наборов, которые их связывают. Фактически наличие подобных возможностей позволяет промоделировать отношение «многие-ко-многим» между двумя объектами реального мира, что выгодно отличает сетевую модель от иерархической. В рамках набора возможен последовательный просмотр экземпляров членов набора, связанных с одним экземпляром владельца набора. Между двумя типами записей может быть определено любое количество наборов: например, можно построить два взаимосвязанных набора. Существенным ограничением набора является то, что один и тот же тип записи не может быть одновременно владельцем и членом набора. В качестве примера рассмотрим таблицу, на основе которой организуем два набора и определим связь между ними:
Преподаватель | Группа | День недели | № пары | Аудитория | Дисциплина |
Иванов | 4306 | Понедельник | 1 | 22-13 | КИД |
Иванов | 4307 | Понедельник | 2 | 22-13 | КИД |
Карпова | 4307 | Вторник | 2 | 22-14 | БЗ и ЭС |
Карпова | 4309 | Вторник | 4 | 22-14 | БЗ и ЭС |
Карпова | 4305 | Вторник | 1 | 22-14 | БД |
Смирнов | 4306 | Вторник | 3 | 23-07 | ГВП |
Смирнов | 4309 | Вторник | 4 | 23-07 | ГВП |
Экземпляров набора Ведет занятия будет 3 (по числу преподавателей), экземпляров набора Занимается у будет 4 (по числу групп). На рис.20представлены взаимосвязи экземпляров данных наборов. Рис. 20. Пример взаимосвязи экземпляров двух наборов Среди всех наборов выделяют специальный тип набора, называемый «Сингулярным набором», владельцем которого формально определена вся система. Сингулярный набор изображается в виде входящей стрелки, которая имеет собственно имя набора и имя члена набора, но у которой не определен тип записи «Владелец набора». Например, сингулярный набор М. Сингулярные наборы позволяют обеспечить доступ к экземплярам отдельных типов данных, поэтому если в задаче алгоритм обработки информации предполагает обеспечение произвольного доступа к некоторому типу записи, то для поддержки этой возможности необходимо ввести соответствующий сингулярный набор. В общем случае сетевая база данных представляет совокупность взаимосвязанных наборов, которые образуют на концептуальном уровне некоторый граф.
Сетевые и иерархические модели данных
Сетевая или иерархическая модели данных реализуют соответствующий метод логической организации базы данных в СУБД, поддерживающей модель, и операции по обработке данных. До массового внедрения ПК СУБД, поддерживающие сетевую модель данных, были наиболее распространенными.
В СУБД, поддерживающих иерархические и сетевые модели данных, как правило, требуется производить настройку на конкретную БД. При этом надо делать описание структуры базы данных – схемы данных – средствами языка описания данных (ЯОД). Полученное описание подлежит генерации для формирования специального программного модуля, который используется при всех обращениях к базе данных. Изменения в структуре БД требуют корректировки описания модели и повторной генерации программного модуля.
Операции обработки данных сетевых и иерархических моделей осуществляются средствами языка манипулирования данными. Язык манипулирования данными, который реализует типовые процедуры доступа к данным, специфичен для каждой сетевой или иерархической СУБД.
Структуры данных сетевых и иерархических моделей
К типовым структурам данных относятся: элемент данных, агрегат данных, запись, база данных.
Элемент данных (атрибут) – это наименьшая поименованная структурная единица данных (аналог поля в файловых системах).
Агрегат данных – поименованное подмножество элементов данных или других агрегатов внутри записи. В агрегатах допускается множественный элемент, который содержит несколько значений элемента в одном экземпляре агрегата.
Запись в сетевой или иерархической модели в общем случае является составным агрегатом, который не входит в состав других агрегатов. Она характеризуется структурой взаимосвязей ее элементов и агрегатов. Структура записи может иметь иерархический характер. Все множество экземпляров записи одинаковой структуры образует тип записи. Запись конкретного типа в иерархической модели является объектом модели данных.
На рис.10.1 приведен пример иерархической записи, в которой имеются названные выше типы структур данных. Тип записи назван “Договор”, так как в записи представлена вся структура информации о договорах с заказчиками на поставку изделий.
Следует отметить, что собственно данные (элементарные данные, имеющие значение) представлены лишь в конечных (терминальных) вершинах записи. Остальные типы структур данных, в том числе агрегаты, являются лишь поименованной совокупностью данных (групповыми данными).
Связи объектов в сетевых и иерархических моделях данных
Модель данных, как правило, включает несколько разных объектов. Между объектами модели данных устанавливаются связи. Совокупность взаимосвязанных конкретных объектов модели для некоторой предметной области образует базу данных.
Связи между любыми двумя объектами модели определяются групповыми отношениями между их экземплярами.
Рис.10.1. Пример иерархической записи “Договор”.
Групповое отношение (набор) – это строго иерархическое отношение между записями двух типов: главной записью набора и подчиненными записи набора.
Способы организации групповых отношений. Отличия в разных СУБД может иметь и организация связей (групповых отношений) объектов сетевой модели – цепи, логические связи (аналоги набора). При этом могут отличаться и способы реализации групповых отношений, например, с помощью адресных указателей или по ключу связи (атрибуту связи) – одинаковому в связанных объектах (записях, файлах) модели.
Связи в иерархических и сетевых моделях часто реализуются физически и при большом числе объектов преимущества организации базы данных могут резко снижаться из-за трудностей поддержания связей, которые становятся громоздкими.
Лекция 8 Типы моделей данных
Ядром любой базы данных является модель данных. Модель данных- совокупность структур данных и операций их обработки.
По способу установления связей между данными различают иерархическую, сетевую и реляционную модель.
Иерархическая модель данных
Иерархическая структура представляет совокупность элементов, связанных между собой по определенным правилам. Объекты, связанные иерархическими отношениями, образуют ориентированный граф (перевернутое дерево), вид которого представлен на рисунке. 21.
К основным понятиям иерархической структуры относятся: уровень, элемент (узел), связь. Узел — это совокупность атрибутов данных, описывающих некоторый объект. На схеме иерархического дерева узлы представляются вершинами графа. Каждый узел на более низком уровне связан только с одним узлом, находящимся на более высоком уровне. Иерархическое дерево имеет только одну вершину (корень дерева), не подчиненную никакой другой вершине и находящуюся на самом верхнем (первом) уровне. Зависимые (подчиненные) узлы находятся на втором, третьем и т.д. уровнях. Количество деревьев в базе данных определяется числом корневых записей.
К каждой записи базы данных существует только один (иерархический) путь от корневой записи. Например, как видно из рис. 21 для записи С4 путь проходит через записи А и ВЗ.
Рис.21 Графическое изображение иерархической структуры БД
Пример. Пример, представленный на рис. 15.9, иллюстрирует использование иерархической модели базы данных.Для рассматриваемого примера иерархическая структура правомерна, так как каждый студент учится в определенной (только одной) группе, которая относится к определенному (только одному) институту
Рис. 22. Пример иерархической структуры БД
Сетевая модель данных
В сетевой структуре при тех же основных понятиях (уровень, узел, связь) каждый элемент может быть связан с любым другим элементом. На рис. 23 изображена сетевая структура базы данных в виде графа.
Пример. Примером сложной сетевой структуры может служить структура базы данных, содержащей сведения о студентах, участвующих в научно-исследовательских работах (НИРС). Возможно участие одного студента в нескольких НИРС, а также участие нескольких студентов в разработке одной НИРС. Графическое изображение описанной в примере сетевой структуры, состоящей только из двух типов записей, показано на рис. 24. Единственное отношение представляет собой сложную связь между записями в обоих направлениях.
Рис. 23. Графическое изображение сетевой структуры
Студент (номер зачетной книжки, фамилия, группа)