Иерархическая модель базы данных
Иерархическая модель базы данных — это модель данных , в которой данные организованы в древовидную структуру. Данные хранятся в виде записей , которые связаны друг с другом посредством ссылок . Запись представляет собой набор полей, каждое из которых содержит только одно значение. Тип записи определяет , какие поля она содержит.
Иерархическая модель базы данных требует, чтобы каждая дочерняя запись имела только одну родительскую запись, тогда как каждая родительская запись может иметь одну или несколько дочерних записей. Чтобы получить данные из иерархической базы данных, необходимо пройти все дерево, начиная с корневого узла. Эта модель признана первой моделью базы данных, созданной IBM в 1960-х годах. [ нужна ссылка ]
История
[ редактировать ]Иерархическая структура была разработана IBM в 1960-х годах и использовалась в ранних СУБД для мэйнфреймов . Отношения записей образуют древовидную модель. Эта структура проста, но негибкая, поскольку связь ограничивается связью «один ко многим». IBM Information Management System (IMS) и RDM Mobile являются примерами иерархической системы баз данных с несколькими иерархиями одних и тех же данных.
Иерархическая модель данных потеряла популярность, поскольку стала Кодда реляционная модель фактическим стандартом, используемым практически во всех основных системах управления базами данных. Реализация иерархической модели в реляционной базе данных впервые обсуждалась в опубликованной форме в 1992 году. [1] (см. также модель вложенного набора ). Схемы иерархической организации данных вновь появились с появлением XML в конце 1990-х годов. [2] (см. также базу данных XML ). Иерархическая структура сегодня используется в основном для хранения географической информации и файловых систем. [ нужна ссылка ]
В настоящее время иерархические базы данных по-прежнему широко используются, особенно в приложениях, требующих очень высокой производительности и доступности, таких как банковское дело, здравоохранение и телекоммуникации. Одной из наиболее широко используемых коммерческих иерархических баз данных является IMS. [3] Другим примером использования иерархических баз данных является реестр Windows в операционных системах Microsoft Windows . [4]
Примеры иерархических данных, представленных в виде реляционных таблиц
[ редактировать ]Организация может хранить информацию о сотрудниках в таблице , содержащей атрибуты/столбцы, такие как номер сотрудника, имя, фамилия и номер отдела. Организация обеспечивает каждого работника компьютерным оборудованием по мере необходимости, однако использовать компьютерное оборудование может только тот работник, за которым оно закреплено. Организация могла бы хранить информацию об аппаратном обеспечении компьютера в отдельной таблице, включающей серийный номер, тип и сотрудника, который ее использует. Таблицы могут выглядеть так:
|
|
В этой модели employee
таблица данных представляет собой «родительскую» часть иерархии, а computer
table представляет «дочернюю» часть иерархии.В отличие от древовидных структур, обычно встречающихся в алгоритмах компьютерного программного обеспечения, в этой модели дети указывают на родителей.Как показано, у каждого сотрудника может быть несколько единиц компьютерного оборудования, но у каждой отдельной части компьютерного оборудования может быть только один владелец.
Рассмотрим следующую структуру:
EmpNo | Обозначение | ОтчетыКому |
---|---|---|
10 | Директор | |
20 | Старший менеджер | 10 |
30 | машинистка | 20 |
40 | Программист | 20 |
В этом «ребенок» того же типа, что и «родитель». Иерархия, указывающая, что EmpNo 10 является начальником 20, а 30 и 40, каждый из которых подчиняется 20, представлена столбцом «ReportsTo». В терминах реляционной базы данных столбец ReportsTo представляет собой внешний ключ, ссылающийся на столбец EmpNo. Если бы тип данных «дочерний» был другим, он находился бы в другой таблице, но все равно существовал бы внешний ключ, ссылающийся на столбец EmpNo таблицы сотрудников.
Эта простая модель широко известна как модель списка смежности и была представлена доктором Эдгаром Ф. Коддом после того, как появилась первоначальная критика о том, что реляционная модель не может моделировать иерархические данные. [ нужна ссылка ] Однако модель является лишь частным случаем общего списка смежности графа.
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Майкл Дж. Камфонас/Рекурсивные иерархии: реляционное табу! Архивировано 8 ноября 2008 г. в Wayback Machine — The Relation Journal, октябрь/ноябрь 1992 г.
- ^ «Разработка веб-приложений» . ИБМ .
- ^ Система управления информацией IBM
- ^ «Структура реестра — приложения Win32» .
Внешние ссылки
[ редактировать ]- Ссылки Троэльса на иерархические данные в СУБД
- Управление иерархическими данными в MySQL (эта страница взята с сайта archive.org, поскольку страница была удалена с MySQL.com)
- Иерархические данные в MySQL: родители и дети в одном запросе
- Создать иерархическую диаграмму из иерархической базы данных