- •Иерархия элементов реляционной модели и способов их представления на уровне хранения
- •Предложение select
- •Предложения модификации Предложение delete имеет формат
- •Into {базовая таблица | представление} [(столбец [,столбец] ...)]
- •Values ({константа | переменная} [,{константа | переменная}] ...);
- •Into {базовая таблица | представление} [(столбец [,столбец] ...)]
- •Системный каталог
- •Управление доступом (предложения grant / revoke )
- •Модификация структуры таблицы (атрибутов):
- •Предложения модификации данных средствами sql Предложение delete имеет формат
- •Into {базовая таблица | представление} [(столбец [,столбец] ...)]
- •Values ({константа | переменная} [,{константа | переменная}] ...);
- •Into {базовая таблица | представление} [(столбец [,столбец] ...)]
- •Ddl: Операторы создания/удаления индексов.
- •Особенности обновления представлений
- •Ограничения (constraints) логической целостности
- •Целостность сущностей.
- •Объявление первичного ключа :
- •Целостность ссылок
- •Объявление внешнего ключа:
- •Триггеры.
- •Любое клиентское приложение может быть подключено к бд одним из двух способов:
- •С использованием специализированной библиотеки доступа (db-dll);
- •С использованием odbc-драйвера (см. Далее).
- •Into переменная [[indicator] индикаторная_переменная]
- •Into переменная [[indicator] индикаторная_переменная]
- •1. «Тупой» : объявление курсора в режиме «только чтение»
- •2. «Продвинутый» : объявление «нечувствительного» курсора (для нашей таблицы s ):
- •Безопасность и управление доступом средствами sql.
- •Понятие транзакций. Уровни изоляции. Проблема отката (rollback) результатов выполнения транзакций.
- •If (обнаружена_ошибка) rollback;
- •If (обнаружена_ошибка) rollback;
- •Структура защищенного хранилища документов «dokyment» Физическая организация нулевого служебного трека нд типа dokyment
- •Физическая организация рабочего трека нд типа dokyment
- •Физическая организация первого трека фд dokyment
- •Физическая организация файлов данных многосуточных архивов arxiv
- •Метод многоуровневого динамического хранения данных .
- •Иерархия объектов системы хранения
- •Приемы сегментирования записей переменной длины Пример физической организации блока, содержащего несегментированные записи на дорожке (треке) бд
- •Пример физической организации блока, содержащего сегментированные записи на дорожке (треке) бд
- •Описание структуры индексов (первичных)
- •Структуры вторичных индексов (прямые указатели на запись по каждому ключу)
- •(Последовательный доступ)
- •(Произвольный доступ)
- •(Последовательно- произвольный доступ)
- •1.3. Операции поиска / вставки / удаления записей в блоках k-d-дерева
- •Клиентская библиотека (sql-интерфейс к odbc-источнику данных)
- •I. Организация сеанса
- •II. Прием и компиляция запроса:
- •Агент_субд (локальный процесс – мультиплексирование обслуживания локальных запросов к удаленному sql-источнику данных)
- •Клиент_субд (локальный процесс – мультиплексирование приема и организации выполнения запросов к локальному sql-источнику данных)
- •Сервер_субд (операции с локальными бд)
- •2.1 Без оптимизации 2.2 Оптимизация плана
- •Индексирование элементов данных. Проблема выбора индексов.
- •1.1. Особенности логической организации (временнОй модели данных)
- •Темпоральные свойства данных, учитываемые при организации хранения
- •1.2. Особенности физической организации
- •1.3. Особенности выполнения запросов с использованием атрибута-времени
- •1.3.1. Выборка данных
- •1.3.2. Модификации данных
- •2.1. Первичные и вторичные индексы в темпоральных бд
- •2.2. Моделирование и анализ данных. Парадоксы времени.
- •Распределение бд в пространственно-временном континууме.
- •1. Использование Proxy-шлюза
- •2. Использование Proxy-шлюзования и мсэ
Решение: индексно-произвольная организация данных
Описание структуры индексов (первичных)
Уровень-N : первичный разреженный индекс
……………
Уровень-II : первичный разреженный индекс
Уровень-I : первичный плотный индекс (инвертированный список)
Уровень-0 : собственно записи
… Верхние уровни …
Структуры вторичных индексов (прямые указатели на запись по каждому ключу)
Уровень-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:
Вторичный ключ – Адрес Записи
(Последовательно- произвольный доступ)
Примечание:
Индекс строится для каждого индексируемого поля записи, и, поскольку он содержит указатели на адрес размещения записи, обслуживание совокупности индексов при операциях обновления записей представляет самостоятельную ПРОБЛЕМУ !!!
РЕШЕНИЕ:
-
Структуры вторичных индексов (содержат косвенные указатели - на 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
………………………………………
Многомерные индексы. 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-дерево
!!!! Пример индексирования базовой таблицы «Доходы» !!!!