Внутренняя модель данных

Содержание

Слайд 2

Хранение базы данных

Логическая структура данных:
Таблица (двумерный или многомерный массив данных)
Древовидные иерархические структуры
Сетевые

Хранение базы данных Логическая структура данных: Таблица (двумерный или многомерный массив данных)
структуры

Структура в оперативной памяти:
Адресация по месту (логический или физический указатель)
Адресация по содержимому (по ключу)

Адресная функция:
- отображает логическую структуру данных на физическую структуру хранения

Слайд 3

Таблица как список записей

Списковая структура:
X = ( X[1], X[2], X[3], … ,

Таблица как список записей Списковая структура: X = ( X[1], X[2], X[3],
X[n] )
X [ i ] – i-ый элемент линейного списка (запись/кортеж таблицы)
Типы записей:
Фиксированной длины
Переменной длины
Неопределенной длины

Слайд 4

Записи фиксированной длины

S (структура) записи = const
M (размер) записи = const
Mi поля

Записи фиксированной длины S (структура) записи = const M (размер) записи =
= const
(+) хорошая скорость обработки
(-) большой расход памяти

a1 | a2 | ...... | an | b1 | ...... | bn | ......

Запись 1

Запись 2

Слайд 5

Записи переменной длины

S (структура) записи = const
M (размер) записи = var
Mi поля

Записи переменной длины S (структура) записи = const M (размер) записи =
= var
Разделитель полей (рп)
Разделитель записей (рз)

a1 | рп | a2 | рп | ...... | an | рп | рз | ........

Запись 1

Запись 2

Слайд 6

Записи неопределенной длины

S (структура) записи = var
M (размер) записи = var
Mi поля

Записи неопределенной длины S (структура) записи = var M (размер) записи =
= var
Разделитель полей (рп)
Разделитель записей (рз)

A7 | рп | a7 | рп | А4 | рп | a4 | рп | рз | ……

Запись 1

Запись 2

Ai (имя) | ai (значение)

NULL | NULL | NULL | a4 | NULL | NULL | a7

A1 A2 A3 A4 A5 A6 A7

Слайд 7

Хранение списковых структур в оперативной памяти

Реализация адресной функции:
Последовательное распределение памяти
Связанное распределение памяти

a

Хранение списковых структур в оперативной памяти Реализация адресной функции: Последовательное распределение памяти
| v | f | g | k | l | h | k | c | d | h | m | r | s | ………..

Оперативная память как последовательность байт:

Слайд 8

Последовательное распределение памяти

Последовательный список:
Уi – элемент списка
N – количество элементов массива
m –

Последовательное распределение памяти Последовательный список: Уi – элемент списка N – количество
размер элемента списка
B – адрес начала списка (база)
Адресная функция:
a(i) = B + (i-1)*m
Позволяет хранить древовидные структуры

Слайд 9

Последовательный список для регулярного двоичного дерева

Адресная функция
a(k) = B+(k-1)*m

Последовательный список для регулярного двоичного дерева Адресная функция a(k) = B+(k-1)*m

Слайд 10

Связанное распределение памяти

Связанный список
Цепная структура/Цепь
Особенности:
Элементы хранят в любом месте ОП
Последовательность элементов задают

Связанное распределение памяти Связанный список Цепная структура/Цепь Особенности: Элементы хранят в любом
указатели
В инвентарных таблицах БД хранят указатель на начало списка (голову)
Л – конец списка (спец. символ)

X [3] | *

X [5] | л

X [2] | *

X [1] | *

X [4] | *

Вход

Слайд 11

Использование связаных списков

(+) гибкость, изменение структуры без переноса данных
(-) больший объем хранения

X

Использование связаных списков (+) гибкость, изменение структуры без переноса данных (-) больший
[3] | *

X [5] | л

X [2] | *

X [1] | *

X [4] | *

Вход

X [3] | *

X [5] | л

X [1] | *

X [4] | *

Вход

Слайд 12

Виды списков

Список (цепь/цепная структура) с одним указателем

Цепь с двумя указателями (Список с

Виды списков Список (цепь/цепная структура) с одним указателем Цепь с двумя указателями
обратным проходом)
Хранят указатель на голову и на хвост
Обход в прямом направлении и обход в обратном направлении

x1 | *

Вход

x5 | л

x4 | *

x3 | *

x2 | *

Вход

x1 |л|*

Вход

x5 |*|л

x4 |*|*

x3 |*|*

x2 |*|*

Слайд 13

Список с пропусками

Цепь с пропусками (Мультицепь)
Указатель на группу в прямом или обратном

Список с пропусками Цепь с пропусками (Мультицепь) Указатель на группу в прямом
направлении
Оптимальный размер группы r(n) при количестве элементов n

a1 |*|*

Вход

b3 |*|-

b2 |*|-

b1 |*|*

a2 |*|-

c1 |л|л

Слайд 14

Кольцевые списки (кольца)

Однонаправленный циклический список
(+) Каждый элемент достижим из каждого

Кольцевые списки (кольца) Однонаправленный циклический список (+) Каждый элемент достижим из каждого

Слайд 15

Двунаправленный циклический список

Двунаправленный циклический список

Слайд 16

Коралловое кольцо

Каждый элемент имеет указатель на голову списка

Коралловое кольцо Каждый элемент имеет указатель на голову списка

Слайд 17

Кольца с пропусками

a1 |*|*

Вход

b3 |*|-

b2 |*|-

b1 |*|*

a2 |*|-

c1 |*|*

Кольца с пропусками a1 |*|* Вход b3 |*|- b2 |*|- b1 |*|* a2 |*|- c1 |*|*

Слайд 18

Многосвязанные списки

Виды линейных списков
Однонаправленные
Двунаправленные
циклические

Используются для организации древовидных и сетевых структур

Многосвязанные списки Виды линейных списков Однонаправленные Двунаправленные циклические Используются для организации древовидных и сетевых структур

Слайд 19

Типы указателей

Абсолютный
физический адрес памяти
(+) скорость
(-) жесткая привязка
Относительный
базовый адрес
расстояние между элементами списка
Символический
адрес вычисляется

Типы указателей Абсолютный физический адрес памяти (+) скорость (-) жесткая привязка Относительный
по значению ключа
если совпадает, то цепочка
(+) независимость изменения элемента
(-) низкая скорость

Слайд 20

Виды указателей

По организации структуры данных:
Встроенные (часть записи)
Справочник (хранятся отдельно)
Назначение:
Направление доступа
Цепочки связных данных
Семантические

Виды указателей По организации структуры данных: Встроенные (часть записи) Справочник (хранятся отдельно)
связи данных

Слайд 21

Методы представления древовидных структур

Допустим, что данные узла – это записи фиксированной длины

1-й

Методы представления древовидных структур Допустим, что данные узла – это записи фиксированной
уровень
2-й уровень
3-й уровень
4-й уровень

Слайд 22

Метод указателей на порожденные записи

(+) обход БД в прямом направлении
(-) Переменное количество

Метод указателей на порожденные записи (+) обход БД в прямом направлении (-) Переменное количество указателей
указателей

Слайд 23

Метод указателей на исходные записи

(+) минимум указателей
(-) много точек входа

Метод указателей на исходные записи (+) минимум указателей (-) много точек входа

Слайд 24

Метод указателей на порожденные и исходные записи

Сочетает указатели на исходные и указатели

Метод указателей на порожденные и исходные записи Сочетает указатели на исходные и
на порожденные
На первом месте ставят указатель на исходную запись
Храниться только указатель на корень дерева
(+) большая надежность
(+) прямой и обратный обход

Xi | * | * | * | *

Указатели на порожденные записи

Указатель на исходную запись

Слайд 25

Метод указателей на порожденные и подобные записи

с кольцевыми структурами
(+) В прямом и

Метод указателей на порожденные и подобные записи с кольцевыми структурами (+) В
обратном направлении
(+) Постоянное количество указателей (2)

Слайд 26

Метод справочника

Файл данных (записей)
Файл справочника
Файл индекса

Метод справочника Файл данных (записей) Файл справочника Файл индекса

Слайд 27

Методы организации сетевых структур

Метод указателей на порожденные и исходные записи
используют разделитель между

Методы организации сетевых структур Метод указателей на порожденные и исходные записи используют
указателями на порожденные и исходные записи или счетчик
Метод типа справочник

Слайд 28

Пример сетевой структуры

Пример сетевой структуры
Имя файла: Внутренняя-модель-данных.pptx
Количество просмотров: 25
Количество скачиваний: 0