Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

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




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

Пример 1. В каждой организации есть руководители и подчиненные. В зависимости от положения сотрудника на иерархической лестнице изменяется и круг его обязанностей.

Пример 2. Рассмотрим генеалогическое древо. Родители могут иметь одного или нескольких детей, либо вовсе их не иметь. Дети в свою очередь в будущем также могут иметь детей. Генеалогическое древо можно рассматривать как иерархическую структуру.

Графическим способом представления иерархической структуры является дерево (от привычного нам дерева оно отличается только тем, что перевернуто, т.е. корень находится наверху, а ветви растут вниз.). Дерево представляет собой иерархию элементов, называемых узлами. Под элементами понимается список (совокупность, набор) атрибутов, описывающих объекты (сущности). При этом каждый узел может иметь только одного предка. Исходный узел, из которого строится дерево, называется корневым узлом или просто корнем, причем одно дерево может иметь только один корень (см. рис. 3), например, руководитель фирмы. Зависимые узлы располагаются на более низких уровнях дерева. Уровень, на котором находится данный узел, определяется расстоянием от корневого узла.

 

Рис.3.

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

Иерархическая модель данных была исторически первой. На ее основе в конце 60-х — начале 70-х го­дов были разработаны первые профессиональные СУБД.

Примеры реализации: ADABAS, АСПИД.

Основное внимание в ограничениях целостности в иерархической модели уделяется целостности ссылок между предками и потомками с учетом основного правила: никакой потомок не может существовать без родителя.

Достоинства

§ Простота понимания и использования

§ Обеспечение определенного уровня независимости данных

§ Высокое быстродействие промышленных реализаций.

Недостатки

§ Связи типа «многие-ко-многим» непосредственно не поддерживаются

§ Сложность в поддержании достоверности и актуальности (трудоемкость)

Сетевая модель данных

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

 

Рис. 4

 

Достоинства

§ эффективность реализации

§ большие возможности образования произвольных связей

Недостатки

§ высокая сложность и жесткость схемы БД

§ сложность ее понимания обычным пользователем

§ ослаблен контроль целостности связей из-за допустимости установления произвольных связей между записями (отсюда – опасность нарушения целостности).

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

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

Примеры реализации: КОДАСИЛ, db VISTA.

Реляционная модель данных

Реляционная модель данных предложена сотрудником фирмы IBM Эдгаром Коддом. В теории множеств таблице соответствует термин «отношение» (relation), который и дал название реляционной модели

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

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

Достоинства

§ Простота

§ Независимость данных,

§ Непроцедурные запросы, т.е. поиск данных не зависит от структуры,

§ Теоретическое обоснование.

§

Недостатки

§ отсутствие стандартных средств идентификации отдельных записей

§ сложность описания иерархических и сетевых связей.

§ Невысокое быстродействие промышленных реализаций.

 

Пример. Разработаем модели данных различных типов для задачи «Преподаватель читает курс».

Множество учебных курсов представим совокупностью Kl, K2, КЗ. Множество преподавателей, соответственно, П1, П2, ПЗ.

Рис. 5. Исходные данные задачи «Преподаватель читает курс».

В иерархической модели связи между данными о преподавателях и читаемых ими курсах могут быть отражены в виде дерева, где возможны только односторонние связи от старших вершин к младшим (рис. 6.). Это облегчает быстрый доступ к необходимой информации, но только если запросы учитывают структуру дерева. Например, оперативно можно определить, какие курсы читает преподаватель П2. Запросы, не учитывающие структуру дерева (например, какие преподаватели читают курс К1), выполняются медленнее.

Рис. 6. Иерархическая модель данных задачи «Преподаватель читает курс».

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

Рис. 7. Сетевая модель данных задачи «Преподаватель читает курс».

Реляционная модель является простейшей и наиболее привычной формой представления данных в виде набора таблиц (рис. 8). Для решения задачи предлагается построить три таблицы, две из которых содержат только уникальные строки (фамилии, имена, отчества преподавателей и названия учебных дисциплин) с кодами (НП и НК), а третья таблица содержит пары кодов, НП и НК, в совокупности которых и содержится решение задачи «Преподаватель читает курс».

ПРЕПОДАВАТЕЛЬ   ЧИТАЕТ     КУРС  
НП ФИО_П   НП НК   НК НАИМ_К
П1 Бек О.И.   П1 К1   К1 АСУ
П2 Ильин С.К.   П1 К2   К2 КСЕ
П3 Сомова Н.Н.   П1 К3   К3 Экология
      П2 К1      
      П2 К3      
      П3 К2      
      П3 К3      

Рис. 8. Реляционная модель данных «Преподаватель читает курс», где НП — номер преподавателя; НК — номер курса

Данный пример наглядно показывает, как таблица ЧИТАЕТ будет расти с ростом таблиц ПРЕПОДАВАТЕЛЬ и КУРС.

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

Доминирование реляционной модели в современных СУБД определяется следующими обстоятельствами:

· наличием развитой теории (реляционной алгебры);

· наличием аппарата сведения других моделей данных к реляционной модели;

· наличием специальных средств ускоренного доступа к информации;

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

 

Задания для самостоятельной работы

1. Расширить задачу «Преподаватель читает курс» данными об аудиториях. Оценить усложнение схемы.

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

 

При создании моделей данных используются такие понятия, как «сущности», «атрибуты» и «связи». Сущность — это отдельный класс объектов предметной области (сотрудники или клиенты, понятия или события), который должен быть представлен в базе данных. Атрибут — это свойство, описывающее определенный аспект объекта, значение которого следует зафиксировать в описании предметной области. Связь является ассоциативным отношением между сущностями, при котором каждый экземпляр одной сущности соединен с некоторым (в том числе нулевым) количеством экземпляров другой сущности.

Объектно-ориентированная модель данных расширяет определение сущности с целью включения в него не только атрибутов, которые описывают состояние объекта, но и действий, которые с ним связаны, т.е. его поведение. В таком случае говорят, что объект инкапсулирует состояние и поведение. Объектно-ориентированная модель баз данных начала разрабатываться в связи с появлением объектно-ориентированных языков программирования в 90-е годы XX века. Такого рода базы хранят методы классов, а иногда и постоянные объекты классов, что позволяет осуществлять беспрепятственную интеграцию между данными и их обработкой в приложениях.

Типы связей в модели

На практике часто используются связи, устанавливающие различные виды соответствия между объектами «связанных» типов, — это один к одному (1:1), один ко многим (1: М), многие ко многим (М:М).

Связь один к одному означает, что каждому экземпляру первого объекта (А) соответствует только один экземпляр второго объекта (В) и, наоборот, каждому экземпляру второго объекта (В) соответствует только один экземпляр первого объекта (А).

Связь один ко многим означает, что каждому экземпляру одного объекта (А) может соответствовать несколько экземпляров другого объекта (В), а каждому экземпляру второго объекта (В) может соответствовать только один экземпляр первого объекта (А).

Связь многие ко многим означает, что каждому экземпляру одного объекта (А) могут соответствовать несколько экземпляров второго объекта (В) и, наоборот, каждому экземпляру второго/

Задания для самостоятельной работы

1. Привести пример связи 1:1 для данных задачи «Преподаватель читает курс».

2. Привести пример связи 1:М для данных задачи «Преподаватель читает курс».

Контрольные вопросы

  1. Почему, по вашему мнению, иерархическая модель данных возникла первой?
  2. Каково основное отличие иерархической и сетевой моделей?
  3. Какие недостатки имеет реляционная модель?
Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...