Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы к зачету.docx
Скачиваний:
7
Добавлен:
19.09.2019
Размер:
590.16 Кб
Скачать
    1. Решение: индексно-произвольная организация данных

    2. Описание структуры индексов (первичных)

Уровень-N : первичный разреженный индекс

……………

Уровень-II : первичный разреженный индекс

Уровень-I : первичный плотный индекс (инвертированный список)

Уровень-0 : собственно записи

Верхние уровни …

    1. Структуры вторичных индексов (прямые указатели на запись по каждому ключу)

Уровень-N : первичный разреженный индекс

……………

Уровень-II : первичный разреженный индекс

Уровень-I : первичный плотно-разреженный (счетчики) индекс

Уровень-0 : собственно записи

Верхние уровни …

НАДСПИСОК

БЕЛЫЙ 01

01123002

СПИСКИ

01142003

ВИШНЯ 01

00035001

ЗАПИСИ

БЕЖ-2

00125008

БЕЖ

01152005

00125008

БЕЛ-n

БЕЛ

10035001

ЧЕРНЫЙ01

00687002

….

01152005

ЧЧЧЧЧЧЧЧ

02347002

10035001

ЧЧЧЧЧЧЧЧ

ЧЧЧЧЧЧЧЧ

БЕЛЫЙ01

02687002

ЧЧЧЧЧЧЧЧ

ЧЧЧЧЧЧЧЧ

Указатель на NEXT-запись

Уровень-II:

Вторичный ключ – Адрес Списка

(Последовательный доступ)

01445012

ЧЕРНЫЙ-k

01445012

ЧИСТЫЙ

30152010

ЧЕРОКИ

20085002

02545007

ЧЧЧЧЧЧЧЧ

02545007

ЧЧЧЧЧЧЧЧ

ЧЧЧЧЧЧЧЧ

Уровень-0:

Собственно сами Записи

(Произвольный доступ)

Уровень-I:

Вторичный ключ – Адрес Записи

(Последовательно- произвольный доступ)

Примечание:

Индекс строится для каждого индексируемого поля записи, и, поскольку он содержит указатели на адрес размещения записи, обслуживание совокупности индексов при операциях обновления записей представляет самостоятельную ПРОБЛЕМУ !!!

    1. РЕШЕНИЕ:

            1. Структуры вторичных индексов (содержат косвенные указатели - на RID-первичный ключ)

Уровень-N : вторичный индекс

……………

Уровень-II : вторичный индекс

Уровень-I : вторичный индекс

Уровень-N : первичный индекс

……………

Уровень-II : первичный индекс

Уровень-I : первичный индекс

Уровень-0 : собственно записи

НАДСПИСОК

БЕЛЫЙ 01

01123002

01142003

СПИСКИ

ВИШНЯ 01

00035001

БЕЖ

AAAAAA01

НАДСПИСОК

БЕЖ

ЧЕЧ12102

AAAAAA01

01123002

БЕЛ

БЕЛ

ДОКЛАД04

01142003

ЧЕРНЫЙ01

00687002

….

ВАСЯ

__01

00035001

ЧЧЧЧЧЧЧЧ

02347002

ЧЧЧЧЧЧЧЧ

ЧЧЧЧЧЧЧЧ

БЕЛЫЙ01

ФОРМАТ05

ЧЧЧЧЧЧЧЧ

ЧЧЧЧЧЧЧЧ

ЧЕЧ54915

00687002

ЧЧЧЧЧЧЧЧ

02347002

Уровень-II:

Вторичный ключ – Адрес Списка

ЧЧЧЧЧЧЧЧ

ЧЧЧЧЧЧЧЧ

ЧЕРНЫЙ

ПРИВЕТ01

ЧЕРНЫЙ

ФОКУС02

ЧЕРНЫЙ

ПРИВЕТ04

С П И С К И

ЧЧЧЧЧЧ01

КОНЕЦ 99

ЧЧЧЧЧЧЧЧ

ЧЧЧЧЧЧЧЧ

Уровень-II:

Первичный ключ – Адрес Списка

(см п.1.1 …………..)

Уровень-I:

Вторичный ключ – Первичный ключ Записи

В-деревья и хэш-таблицы.

Структура В-дерева

- Корневая вершина, Промежуточные вершины, Указатели

- Произвольное количество уровней

- Блоки данных (ограниченное количество записей в блоке)

- Баланс уровней дерева

Направление продвижения по дереву

1

< = 20

……

< = 40

< = 40

< = 10

< = 15

< = 20

5

10

< = 100

< = 60

< = 100

..

> 2000

< = 30

< = 40

Табл-3

11

12

2007

15

Хэш-таблицы (Hash Tables)

A

0-Блок

2-Блок

Указатель на

Блок переполнения

h ( A ) = 2

C

0-Блок

D

E

h ( C ) = h ( D ) = h ( E ) = 0

1-Блок

F

H

h ( F ) = h ( H ) = 1

………………………………………

  1. Многомерные индексы. K/D-деревья. Точечные индексы (bitmap index). Реализация поиска по многомерным индексам.

Многомерное индексирование – средство оптимизации процессов аналитической обработки «больших» БД (OLAP):

  • «независимость» времени обработки запросов об объема БД (MOLAP)

  • «независимость» времени выполнения от сложности запроса(OLTP)

  • MDDB-реализации

Общие сведения о многомерной модели представления данных

Основные понятия (первичныме элементы - строки (кортежи) исходной «плоской» таблицы).

Измерение (Dimension) - это именованный атрибут (поле) первичных элементов данных, образующий одну из граней гиперкуба. В многомерной модели измерения играют роль координат-индексов, служащих для идентификации конкретных значений атрибутов первичных элементов в ячейках гиперкуба.

 Ячейка (Cell) или подпространство - это контейнер для хранения кортежей (строк) таблицы, границы которого однозначно определяются фиксированным набором измерений.

Срез (Slice) представляет собой подмножество ячеек гиперкуба, полученное в результате фиксации одного или нескольких измерений. Формирование "срезов" выполняется ядром СУБД в процессе реализации многокритериальных запросов к данным.

Исходная таблица (3 атрибута - колонки)

X111

X112

X113

null

X222

X223


Внутреннее представление куба данных (3 атрибута - измерения)

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

Примечание-2:

Многомерное хранилище данных, реализуемое средствами СУБДмт ПРОМЕТЕЙ©, выполнено по поликубической схеме и, при этом, обладает рядом преимуществ по сравнению с традиционными реляционными системами хранения. К ним, в частности, относятся:

  • объекты (экземпляры сущностей) в многомерной БД можно хранить целиком - со всеми атрибутами, не раскладывая их по отдельным таблицам посредством применения процедур нормализации;

  • оперативность обработки запросов в многомерной БД практически не зависит ни от объемов хранимых данных, ни от количества заданных в запросе параметров (критериев отбора по различным измерениям);

  • компактность хранения индексов в БД, что обеспечивает удельную составляющую индексной части не более 3-5 % от общего объема данных.

Пример:

Базовая таблица – «ДОХОДЫ» 3-хмерное представление (X,Y,Z)

(Д) (В) (П)

Доход

Возраст

Пол

.

.

.

Многомерные индексы. K/D-деревья.

Хэш-структуры для организации многомерного хранения данных.

- Представление множества физических блоков хранилища данных в виде N-мерного массива

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

<

0-Блок

Блок

( Xi,Yi, Zi )

Д, B, П >

Указатель на

Блок переполнения

h1 ( Д ) = Xi h2 ( В ) = Yi h3 ( П ) = Zi

1.2. Multiple-Key indexes. K-Dimension Trees

- Корень дерева может начинаться с любого измерения

- Проекция по любому измерению представляет собой B-дерево

!!!! Пример индексирования базовой таблицы «Доходы» !!!!