Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
BD / Slides / Russian / Лекция 03R-Иерархическая модель данных.ppt
Скачиваний:
41
Добавлен:
20.02.2016
Размер:
162.3 Кб
Скачать

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

Иерархическая база данных

Иерархическая база данных - это множество иерархических структур данных.

Схемы

 

 

 

 

Экземпляры схем

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ФКН НАУ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

11

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

Операции иерархической структуры

Выборка данных:

GET UNIQUE

GET NEXT

GET NEXT WITHIN PARENT

Манипулирование данными:

INSERT

GET HOLD

REPLACE

DELETE

ФКН НАУ

12

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

Выборка данных (1)

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

Синтаксис:

Пример:

GET UNIQUE <тип-сегмента> [WHERE <условие>];

GET UNIQUE ПРЕПОДАВАТЕЛЬ

WHERE ФАКУЛЬТЕТ.Название = "информатика" AND КАФЕДРА.Название = "ИПЗ" AND ПРЕПОДАВАТЕЛЬ.Должность = "профессор";

13

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

Выборка данных (2)

GET NEXT

Синтаксис:

Пример:

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

GET NEXT <тип-сегмента> [WHERE <условие>];

GET NEXT ПРЕПОДАВАТЕЛЬ

WHERE ФАКУЛЬТЕТ.Название = "информатика" AND КАФЕДРА.Название = "ИПЗ" AND ПРЕПОДАВАТЕЛЬ.Должность ="профессор";

ФКН НАУ

14

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

Выборка данных (3)

Пример. Найти всех профессоров кафедры математики факультета информатики:

GET UNIQUE ПРЕПОДАВАТЕЛЬ

WHERE ФАКУЛЬТЕТ.Название = "информатика" AND КАФЕДРА.Название = «математика" AND ПРЕПОДАВАТЕЛЬ.Должность = "профессор";

...

NT: GET NEXT ПРЕПОДАВАТЕЛЬ

WHERE ФАКУЛЬТЕТ.Название = "информатика" AND КАФЕДРА.Название = «математика" AND ПРЕПОДАВАТЕЛЬ.Должность = "профессор";

...

goto NT

ФКН НАУ

15

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

Выборка данных (4)

GET NEXT WITHIN PARENT

Синтаксис:

Последовательная выборка в пределах текущего родительского сегмента

GET NEXT WITHIN PARENT <тип-сегмента> [WHERE <условие>];

ФКН НАУ

16

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

Манипулирование данными (1)

INSERT - вставка экземпляров сегментов.

Пример. Ввести сегмент о кафедре САПР факультета инфор- матики и о преподавателе Петрове этой кафедры.

 

 

 

 

 

 

КАФЕДРА.Название

= "САПР";

 

 

 

КАФЕДРА.Заведующий = "Иванов";

 

 

 

КАФЕДРА.Корпус

= 3;

 

 

 

INSERT КАФЕДРА

 

 

 

 

WHERE ФАКУЛЬТЕТ.Название = "информатика";

 

 

ПРЕПОДАВАТЕЛЬ.Имя

= "Петров";

 

 

ПРЕПОДАВАТЕЛЬ.Должность = "ассистент"

 

 

ПРЕПОДАВАТЕЛЬ.Адрес

= "Проспект Мира 13/17";

 

 

INSERT ПРЕПОДАВАТЕЛЬ

 

 

 

WHERE ФАКУЛЬТЕТ.Название = "информатика" AND

 

 

КАФЕДРА.Название

= "САПР";

 

ФКН НАУ

17

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

Манипулирование данными (2)

GET HOLD – выбор сегмента для замены REPLACE – замена сегмента.

Пример. Заменить адрес преподавателя Петрова кафедры САПР факультета информатики.

GET HOLD UNIQUE ПРЕПОДАВАТЕЛЬ

WHERE = ФАКУЛЬТЕТ.Название = "информатика" AND

КАФЕДРА.Название = "САПР" AND ПРЕПОДАВАТЕЛЬ.Имя = "Петров";

ПРЕПОДАВАТЕЛЬ.Адрес = "ул. Теремковская 1/19";

REPLACE;

ФКН НАУ

18

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

Манипулирование данными (3)

GET HOLD – выбор сегмента для удаления DELETE – удаление сегмента.

Пример. Удалить сегмент о преподавателе Петрове кафедры САПР факультета информатики.

GET HOLD UNIQUE ПРЕПОДАВАТЕЛЬ

WHERE = ФАКУЛЬТЕТ.Название = "информатика" AND

КАФЕДРА.Название= "САПР" AND ПРЕПОДАВАТЕЛЬ.Имя = "Петров";

DELETE;

ФКН НАУ

19

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

Преимущества иерархической модели

Развитые средства управления данными во внешней памяти

Возможность эффективного использования памяти

Возможность построения “вручную” эффективных прикладных систем

ФКН НАУ

20