Пример объектно-ориентированной БД

Содержание

Слайд 2

5.5. Пример объектно-ориентированной БД (XMLDB). СУБД ИНЕС (для ЕС ЭВМ), НИКА

5.5. Пример объектно-ориентированной БД (XMLDB). СУБД ИНЕС (для ЕС ЭВМ), НИКА

(для РС)

Цели разработки:
- Объектное проектирование
- Снятие ограничений на размеры
- БД – произвольный граф
-  Единый индекс
- Возможность менять схему БД без перезагрузки базы
- Эффективность хранения и доступа

Слайд 3

5.5.1. База данных – совокупность двух файлов. ИмяБД.dod (схема БД) ИмяБД.tree

5.5.1. База данных – совокупность двух файлов.

ИмяБД.dod (схема БД)
ИмяБД.tree (данные)


Например. avto.dod и avto.tree
dod – дерево описания данных (ДОД)
tree – дерево данных (ДД)
Слайд 4

Назначение схемы БД: Шифровка имен. Вместо имен вершин (до 256 символов),

Назначение схемы БД:

Шифровка имен.
Вместо имен вершин (до 256 символов),

в дереве данных хранятся шифры (1-2 байта).
Обеспечение целостности БД.
Вводить данные в БД можно будет только в соответствие со схемой (структурой объектов и подобъектов и типами терминальных данных).
Слайд 5

5.5.2. Метод записи деревьев в памяти В С D E F

5.5.2. Метод записи деревьев в памяти

В

С

D

E

F

G

H

I

J

Рассмотрим следующую структуру

K

А

N-арное дерево

Слайд 6

В С D E F G H I J Преобразование N-арной

В

С

D

E

F

G

H

I

J

Преобразование N-арной структуры в

K

А

В

С

D

E

F

G

H

I

J

K

А

Бинарное дерево

Слайд 7

Разбивка на страницы БД разбита на страницы. На каждой странице хранится

Разбивка на страницы

БД разбита на страницы. На каждой странице хранится связный

фрагмент дерева. Этот фрагмент превращается из N-арного в бинарный. В каждой вершине хранятся не более двух ссылок: на первую из подчиненных вершин и на следующую из соподчиненных вершин.
Бинарное дерево записывается в память подряд
(в порядке левого обхода):
 A B C D E F G H I J K
Слайд 8

Длина данного - ссылка на следующую вершину дерева в смысле левого

Длина данного - ссылка на следующую вершину дерева в смысле

левого обхода.
В каждой не терминальной вершине, вместо данного, хранится длина подчиненного поддерева.

В

С

D

E

F

G

H

I

J

K

А

Информация, записанная в каждой вершине

Идентификатор данного (шифр)
Значение данного, если вершина терминальная
Длина данного для терминальных вершин
Длина подчиненного поддерева для нетерминальных вершин

Слайд 9

Если на странице внешней памяти есть сводное место >= ΔМ, то

Если на странице внешней памяти есть сводное место >= ΔМ,

то сдвигаются данные J и K на ΔМ.
В освободившееся место помещается данное М.
Длины поддеревьев А и G увеличиваются на ΔМ.
Если на странице свободное место <= ΔМ, то включается алгоритм деления страницы.

В

С

D

E

F

G

H

I

J

K

А

Ввод новых данных

Например, вершины М между I и J (ΔМ - длина М).

М

Слайд 10

5.5.3. Метод деления страниц. При вводе данных в пустую БД открывается

5.5.3. Метод деления страниц.

При вводе данных в пустую БД открывается

1-я страница, в которую данные записываются в лексикографическом порядке.
Когда емкость 1-й страницы исчерпана, на диске открывается 2-я, и данные распределяются примерно поровну.
Старшие данные остаются на 1-й, младшие - на 2-й.
На 1-й странице организуется справочная, куда выносятся номера страниц и идентификаторы первых данных.
Слайд 11

5.5.3. Метод деления страниц (продолжение 1) Идентификатор следующего вводимого данного сравнивается

5.5.3. Метод деления страниц (продолжение 1)

Идентификатор следующего вводимого данного сравнивается

с идентификаторами справочной.
Вызывается соответствующая страница и новое данное записывается в нее.
.
Слайд 12

5.5.3. Метод деления страниц (продолжение 2) Такая организация памяти позволяет в

5.5.3. Метод деления страниц (продолжение 2)

Такая организация памяти позволяет в

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

5.5.3. Метод деления страниц (продолжение 3) На страницах справочных помещается в

5.5.3. Метод деления страниц (продолжение 3)

На страницах справочных помещается в

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

Описатель блока Данные Свободная память

Описатель блока

Данные

Свободная память

Слайд 15

Описатель блока Данные Свободная память Описатель блока Данные Свободная память Справочная 1-го уровня

Описатель блока


Данные

Свободная память

Описатель блока

Данные

Свободная память

Справочная

1-го уровня
Слайд 16

Описатель блока Данные Свободная память Описатель блока Данные Свободная память Описатель

Описатель блока


Данные

Свободная память

Описатель блока

Данные

Свободная память

Описатель блока

Данные

Свободная

память

Описатель блока

Данные

Свободная память

Справочная
1-го уровня

Слайд 17

Описатель блока Справочная 1-го уровня Свободная память Описатель блока Данные Свободная

Описатель блока


Справочная
1-го уровня
Свободная память

Описатель блока

Данные

Свободная память

Описатель

блока

Данные

Свободная память

Описатель блока

Справочная
1-го уровня

Свободная память

Справочная
2-го уровня

Описатель блока

Данные

Свободная память

Описатель блока

Данные

Свободная память

Слайд 18

5.5.4. Доступ к данным Т.1. Если известен составной (конкатенированный) ключ, то

5.5.4. Доступ к данным

Т.1. Если известен составной (конкатенированный) ключ, то время

доступа минимально.
Док. Доступ проходит за минимальное число обменов, так как идет по многоуровневой логарифмической справочной.
Слайд 19

Т.2. Если необходим перебор по всей БД или любому поддереву, время

Т.2. Если необходим перебор по всей БД или любому поддереву, время

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

5.5.4. Доступ к данным

Слайд 20

5.5.4. Доступ к данным (объем БД) Т.3. Объем минимален у слабо

5.5.4. Доступ к данным (объем БД)

Т.3. Объем минимален у слабо заполненных БД

и БД со значениями реквизитов разной длины.
Док. Не отводится место под несуществующие реквизиты, реквизит всегда занимает минимальное место +2 байта (шифр и длина). Эффект может достигать нескольких порядков.
Задание. Привести пример, когда объем реляционной БД меньше?
Слайд 21

№ посл. вершины Типы верш. Имя вершины Шифр вершины Дескриптор Имя

№ посл.
вершины

Типы
верш.

Имя
вершины

Шифр
вершины

Дескриптор

Имя

Словарь

Шифры

Шифр вершины

Шифр
отца

1

2

3

5.5.5. Структура описания данных

Слайд 22

Автомобили Гос. номер Марка Цвет 5.5.6. Пример БД 1). Схема БД Автомобиль

Автомобили

Гос.
номер

Марка

Цвет

5.5.6. Пример БД

1). Схема БД

Автомобиль

Слайд 23

Автомобили : массив Гос. номер : текст (ключ) Марка : текст

Автомобили : массив

Гос. номер : текст (ключ)

Марка : текст

Цвет :

текст

2). Показ Схемы БД на дисплее

Автомобиль : структура

Слайд 24

Автомобили Марка : ВАЗ 2109 Цвет : синий 2). Показ самой

Автомобили

Марка : ВАЗ 2109

Цвет : синий

2). Показ самой БД


МНЭ 50 - 25

Марка : ВАЗ 2104

Цвет : белый

МНЭ 60 - 13

. . . . . . .

Слайд 25

Авто 137 (послед. занятый №) Автомобили 3). Описание данных ( Авто.dod)

Авто

137 (послед. занятый №)

Автомобили

3). Описание данных ( Авто.dod)

1

2

30

Дескриптор (30,

массив)

Автомобиль

31

Дескриптор (31, структура)

Гос. номер

37

Дескриптор (37, текст, ключ)

Марка

39

Дескриптор (39, текст)

Цвет

Дескриптор (42, текст)

42

Слайд 26

Автомобили 3 Root 30 Автомобиль 30 31 Гос. номер 31 37

Автомобили

3

Root

30

Автомобиль

30

31

Гос. номер

31

37

Марка

31

39

Цвет

31

42

137

140

(определение шифра по имени)

(среди соподчиненных
нет одноименных)

……..

Слайд 27

30 39 : ВАЗ 2109 42 : синий 4). Сами данные

30

39 : ВАЗ 2109

42 : синий

4). Сами данные (

Авто.dod)

31 : МНЭ 50 - 25

39 : ВАЗ 2104

42 : белый

31 : МНЭ 60 - 13

. . . . . . .

Слайд 28

5.5.7. Оптимизация времени доступа Три подхода к реализации доступа: Интерпретация (dBASE)

5.5.7. Оптимизация времени доступа

Три подхода к реализации доступа:
Интерпретация (dBASE)
Трансляция

(Clipper)
Трансляция при первом обращении (НИКА)

(см. пред. слайд)

Слайд 29

5.5.8. Индексация в ООБД и XML DB Люди ФИО Адрес ФИО

5.5.8. Индексация в ООБД и XML DB

Люди

ФИО

Адрес

ФИО

Люди

R

№ пасп

ФИО

№ пасп

Обычный инверсный вход

Слайд 30

Люди ФИО Адрес Инверсный вход в ООБД № пасп Образов Работы

Люди

ФИО

Адрес

Инверсный вход в ООБД

№ пасп

Образов

Работы

Адрес

Адрес

ФИО

А

ФИО

Адр

А

Адр

Индекс

Слайд 31

Индекс в СУБД НИКА

Индекс в СУБД НИКА

Слайд 32

Индекс в СУБД НИКА

Индекс в СУБД НИКА

Слайд 33

INDEX A . . . ai . . . a1 .

INDEX

A . . .

ai . . .

a1 . . . .

aN

B

. . .

A=ai

A=ai

A=ai

A=ai

B=bk

B=bk

B=bk

bk

Пример двух веток индекса:
A = ai
B = bk

Индекс в СУБД НИКА

Слайд 34

INDEX A . . . ai . . . a1 .

INDEX

A . . .

ai . . .

a1 . . . .

aN

B

. . .

A=ai

A=ai

A=ai

A=ai

B=bk

B=bk

B=bk

bk

Пример выполнения логических операций:
«И» - объекты ,
«ИЛИ» - и объекты.

Индекс в СУБД НИКА