Что такое findslide.org?

FindSlide.org - это сайт презентаций, докладов, шаблонов в формате PowerPoint.


Для правообладателей

Обратная связь

Email: Нажмите что бы посмотреть 

Яндекс.Метрика

Презентация на тему Индексы в СУБД

Содержание

Виды индексов:B-деревьяИнвертированный индексHash-индексыИндексы на основе битовых картПространственные индексы
Индексы в СУБД Виды индексов:B-деревьяИнвертированный индексHash-индексыИндексы на основе битовых картПространственные индексы Поиск документов по содержащимся в них словамWHERE Field1 like ‘%алгоритм%’Полное сканирование таблицы Инвертированные индексыДокумент (текстовое поле) – это последовательность словD1: w1 w2 w3 w1 Поиск документов по содержащимся в них словамЗадача:W1: d1 d2 d3W2: d1 d3W3: d1W5: d2 Полнотекстовый индекс FULLTEXTВ полнотекстовый индекс включается один или несколько символьных столбцов в Процесс полнотекстового индексированияФильтрацию, разбиение по словам, Удаление стоп-слов и нормализация токеновПреобразует конвертированные Обработка полнотекстовых запросовразбиение по словам расширение тезаурусаморфологический поискобработка стоп-словпоиск в индексеранжирование В полнотекстовых запросах не учитывается регистр букв. Все полнотекстовые запросы используют предикаты CONTAINSПредикат, используемый в предложении WHERE для и проверки точного или нечеткого совпадения FREETEXTЭтот предикат используется в предложении WHERE для поиска значений, которые соответствуют условию Виды запросовПростое выражение.Префиксные выражения.Производное выражение.Выражения с учетом расположения.Синонимы.Взвешенное выражение. Простое выражениеОдно или несколько конкретных слов или фраз.{ AND | & } Префиксные выраженияСлова, начинающиеся заданным текстом, или фразы с такими словами.… CONTAINS(Comments, ' Производное выражениеСловоформы конкретного слова.Синонимические формы конкретного слова.SELECT * FROM t3 WHERE freetext(s,'рама') Выражения с учетом расположенияСлова или фразы, находящиеся рядом с другими словами или фразами. CONTAINS(*,'мама ~ мыла') Взвешенное выражениеСлова или фразы со взвешенными значениями ()SELECT * from CONTAINSTABLE ( Для FULL TEXT индексаВыбрать столбцы таблицы или индексированного представленияПостроить для таблицы индекс Создание каталогаCREATE FULLTEXT CATALOG catalog_nameПолнотекстовый каталог — это логическое понятие, обозначающее группу полнотекстовых индексов. Создание FULL TEXT индексаCREATE FULLTEXT INDEX ON table_name  [ ( { Полнотекстовый индекс FULLTEXT Загрузка данных в таблицу, уже имеющую индекс FULLTEXT, будет более медленной. Индексы на основе битовых картcreate bitmap index ind_4 on table_1(field1)Нужны тогда, когда Индексы на основе битовых карт create bitmap index ind_4 on table_1(рост):Высокий		0010001000Средний		1101110100Ниже среднего	0000000011 create bitmap index ind_4 on table_1(рост):Блондинка		1100010000Шатенка		0010000100Брюнетка		0000101001Рыжая			0001000010 Блондинка среднего роста:Блондинка			1100010000Средний			1101110100Побитовое умножение	1100010000 Появилась девушка с голубыми волосами:Блондинка		1100010000Шатенка		0010000100Брюнетка		0000101001Рыжая			0001000010Мальвина		00000000001 Индексы на основе битовых картИндексы на основе битовых карт обычно создаются быстрее Hash-индексВыбираем количество участков, в которых будем размещать записи.Подбираем функцию перемешивания, которая от Создание hash-индексаCREATE INDEX имя_индекса   USING HASH  ON имя_таблицы (имя_столбца) Hash-индексДля размещения таблицы отводится заданное количество участков Есть функция hash(key)=n, где n Недостатки hash-индексовТаблица адресов участков может быть слишком великаЕсли в один участок попало Коллизии Функции HashДелениеМультипликативный метод Функции Hash делениеРазмер таблицы hashTableSize - простое число. Хеширующее значение hashValue, изменяющееся Функции Hash мультипликативный метод Размер таблицы hashTableSize есть степень 2n. Значение key Функции Hash  для строк переменной длиныАддитивный метод – преобразовываем слова в Пространственные типы данных geometry используется для планарных или евклидовых данных geography, который используется для Пространственные типы данных geometry используется для планарных или евклидовых данных geography, который используется для Пространственные типы данныхPointMultiPointLineStringMultiLineStringPolygon R-деревоИзбавляемся от формы – окружаем фигуру min ограничивающим прямоугольником (oid, Rectangle), oid – ссылка на запись Иерархия R-дереваОкружаем фигуры ограничивающими прямоугольниками(cp, Rectangle)При переполнении делим пополам Критерии разделения узлаМинимальная площадьМинимальное перекрытиеМинимальные границы R-дерево R-дерево - недостаткиНе удается избежать перекрытий – необходим просмотр нескольких веток Spatial grid Spatial gridCREATE SPATIAL INDEX4 уровня вложенности Spatial gridДекомпозиция индексированного пространства в cеточную иерархию Считывает данные из пространственного столбца Правила тесселяцииПравило покрытияПравило ячеек на объектПравило самой глубокой ячейки
Слайды презентации

Слайд 2 Виды индексов:
B-деревья
Инвертированный индекс
Hash-индексы
Индексы на основе битовых карт
Пространственные индексы

Виды индексов:B-деревьяИнвертированный индексHash-индексыИндексы на основе битовых картПространственные индексы

Слайд 3 Поиск документов по содержащимся в них словам
WHERE Field1

Поиск документов по содержащимся в них словамWHERE Field1 like ‘%алгоритм%’Полное сканирование таблицы

like ‘%алгоритм%’
Полное сканирование таблицы


Слайд 4 Инвертированные индексы
Документ (текстовое поле) – это последовательность слов

D1:

Инвертированные индексыДокумент (текстовое поле) – это последовательность словD1: w1 w2 w3

w1 w2 w3 w1 w4 w2
D2: w1 w7 w8

w9 w5
D3: w1 w7 w3 w2 w8


Слайд 5 Поиск документов по содержащимся в них словам
Задача:
W1: d1

Поиск документов по содержащимся в них словамЗадача:W1: d1 d2 d3W2: d1 d3W3: d1W5: d2

d2 d3
W2: d1 d3
W3: d1
W5: d2


Слайд 6 Полнотекстовый индекс FULLTEXT
В полнотекстовый индекс включается один или

Полнотекстовый индекс FULLTEXTВ полнотекстовый индекс включается один или несколько символьных столбцов

несколько символьных столбцов в таблице.
Эти столбцы могут иметь

тип данных:
char, varchar, nchar, nvarchar, text, ntext, image, xml и varbinary(max).
Каждому столбцу может соответствовать определенный язык (из 50-ти возможных).
Английский 1033,
Русский 1049.

Слайд 7 Процесс полнотекстового индексирования
Фильтрацию, разбиение по словам,
Удаление стоп-слов

Процесс полнотекстового индексированияФильтрацию, разбиение по словам, Удаление стоп-слов и нормализация токеновПреобразует

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


Создание полнотекстового индекса.

Слайд 8 Обработка полнотекстовых запросов
разбиение по словам
расширение тезауруса
морфологический поиск
обработка

Обработка полнотекстовых запросовразбиение по словам расширение тезаурусаморфологический поискобработка стоп-словпоиск в индексеранжирование

стоп-слов
поиск в индексе
ранжирование


Слайд 9 В полнотекстовых запросах не учитывается регистр букв.
Все

В полнотекстовых запросах не учитывается регистр букв. Все полнотекстовые запросы используют

полнотекстовые запросы используют предикаты (CONTAINS и FREETEXT) и функции

(CONTAINSTABLE и FREETEXTTABLE)

Слайд 10 CONTAINS
Предикат, используемый в предложении WHERE для и проверки

CONTAINSПредикат, используемый в предложении WHERE для и проверки точного или нечеткого

точного или нечеткого совпадения с отдельными словами, расстояния между

словами или взвешенных совпадений.
CONTAINS ( { column_name | * } , 'condition')
слова или фразы;
префикса слова или фразы;
слова около другого слова;


Слайд 11 FREETEXT
Этот предикат используется в предложении WHERE для поиска

FREETEXTЭтот предикат используется в предложении WHERE для поиска значений, которые соответствуют

значений, которые соответствуют условию поиска по смыслу, а не

написанию.
FREETEXT ( { column_name | * } , 'string' )
Разбивает строку на отдельные слова
Формирует словоформы.
Определяет список расширений или замен на основании совпадений в тезаурусе.


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

Виды запросовПростое выражение.Префиксные выражения.Производное выражение.Выражения с учетом расположения.Синонимы.Взвешенное выражение.

выражение.


Слайд 13 Простое выражение
Одно или несколько конкретных слов или фраз.
{

Простое выражениеОдно или несколько конкретных слов или фраз.{ AND | &

AND | & } | { AND NOT |

&! } | { OR | | }

SELECT Comments
FROM ProductReview
WHERE CONTAINS(Comments, 'ужасно');
… CONTAINS(Comments, 'ужасно OR плохо');




Слайд 14 Префиксные выражения
Слова, начинающиеся заданным текстом, или фразы с

Префиксные выраженияСлова, начинающиеся заданным текстом, или фразы с такими словами.… CONTAINS(Comments, '

такими словами.
… CONTAINS(Comments, ' "ужасн*" ');



Слайд 15 Производное выражение
Словоформы конкретного слова.
Синонимические формы конкретного слова.

SELECT *

Производное выражениеСловоформы конкретного слова.Синонимические формы конкретного слова.SELECT * FROM t3 WHERE freetext(s,'рама')

FROM t3 WHERE freetext(s,'рама')


Слайд 16 Выражения с учетом расположения
Слова или фразы, находящиеся рядом

Выражения с учетом расположенияСлова или фразы, находящиеся рядом с другими словами или фразами. CONTAINS(*,'мама ~ мыла')

с другими словами или фразами.

CONTAINS(*,'мама ~ мыла')


Слайд 17 Взвешенное выражение
Слова или фразы со взвешенными значениями ()
SELECT

Взвешенное выражениеСлова или фразы со взвешенными значениями ()SELECT * from CONTAINSTABLE

* from CONTAINSTABLE ( t3 , * , 'ISABOUT (мама WEIGHT(0.9) , auto

WEIGHT(0.1)) ' ) ORDER BY RANK;

Результат: ранжированная таблица (ключ, ранг)


Слайд 18 Для FULL TEXT индекса
Выбрать столбцы таблицы или индексированного

Для FULL TEXT индексаВыбрать столбцы таблицы или индексированного представленияПостроить для таблицы

представления
Построить для таблицы индекс по одному полю, которое не

позволяет дубликатов и нулевых значений
Построить каталог
А потом уже строить индекс…

Слайд 19 Создание каталога
CREATE FULLTEXT CATALOG catalog_name

Полнотекстовый каталог — это

Создание каталогаCREATE FULLTEXT CATALOG catalog_nameПолнотекстовый каталог — это логическое понятие, обозначающее группу полнотекстовых индексов.

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


Слайд 20 Создание FULL TEXT индекса
CREATE FULLTEXT INDEX ON table_name

Создание FULL TEXT индексаCREATE FULLTEXT INDEX ON table_name [ ( {

[ ( { column_name

[ TYPE COLUMN type_column_name ]
[ LANGUAGE language_term ]
[ STATISTICAL_SEMANTICS ]
} [ ,...n]
) ]
KEY INDEX index_name

Слайд 21 Полнотекстовый индекс FULLTEXT
Загрузка данных в таблицу, уже

Полнотекстовый индекс FULLTEXT Загрузка данных в таблицу, уже имеющую индекс FULLTEXT, будет более медленной.

имеющую индекс FULLTEXT, будет более медленной.


Слайд 22 Индексы на основе битовых карт
create bitmap index ind_4

Индексы на основе битовых картcreate bitmap index ind_4 on table_1(field1)Нужны тогда,

on table_1(field1)
Нужны тогда, когда у столбца может быть ограниченное

число значений.
В индекс входят:
значение столбца
битовая последовательность по количеству строк таблицы, в кот. 1 означает, что в данной строке атрибут принимает заданное значение


Слайд 23 Индексы на основе битовых карт

Индексы на основе битовых карт

Слайд 24 create bitmap index ind_4 on table_1(рост):
Высокий 0010001000
Средний 1101110100
Ниже среднего 0000000011

create bitmap index ind_4 on table_1(рост):Высокий		0010001000Средний		1101110100Ниже среднего	0000000011

Слайд 25 create bitmap index ind_4 on table_1(рост):
Блондинка 1100010000
Шатенка 0010000100
Брюнетка 0000101001
Рыжая 0001000010

create bitmap index ind_4 on table_1(рост):Блондинка		1100010000Шатенка		0010000100Брюнетка		0000101001Рыжая			0001000010

Слайд 26 Блондинка среднего роста:
Блондинка 1100010000
Средний 1101110100
Побитовое умножение 1100010000


Блондинка среднего роста:Блондинка			1100010000Средний			1101110100Побитовое умножение	1100010000

Слайд 27 Появилась девушка с голубыми волосами:
Блондинка 1100010000
Шатенка 0010000100
Брюнетка 0000101001
Рыжая 0001000010
Мальвина 00000000001

Появилась девушка с голубыми волосами:Блондинка		1100010000Шатенка		0010000100Брюнетка		0000101001Рыжая			0001000010Мальвина		00000000001

Слайд 28 Индексы на основе битовых карт
Индексы на основе битовых

Индексы на основе битовых картИндексы на основе битовых карт обычно создаются

карт обычно создаются быстрее и могут занимать удивительно мало

места.
Размер индекса на основе битовых карт существенно зависит от распределения данных.
Индексы на основе битовых карт обычно выбираются стоимостным оптимизатором, если для выполнения запроса можно использовать несколько таких индексов.
Изменения столбцов, входящих в индексы на основе битовых карт, а также вставки и удаления данных могут вызывать существенные конфликты блокировок.
Изменения столбцов, входящих в индексы на основе битовых карт, а также вставки и удаления данных могут весьма существенно "ухудшать" индексы.

Слайд 29 Hash-индекс
Выбираем количество участков, в которых будем размещать записи.
Подбираем

Hash-индексВыбираем количество участков, в которых будем размещать записи.Подбираем функцию перемешивания, которая

функцию перемешивания, которая от ключевого столбца будет выдавать номер

участка.
В памяти храним таблицу адресов участков

Слайд 30 Создание hash-индекса
CREATE INDEX имя_индекса USING HASH ON

Создание hash-индексаCREATE INDEX имя_индекса  USING HASH ON имя_таблицы (имя_столбца)

имя_таблицы (имя_столбца)


Слайд 32 Hash-индекс
Для размещения таблицы отводится заданное количество участков
Есть

Hash-индексДля размещения таблицы отводится заданное количество участков Есть функция hash(key)=n, где

функция hash(key)=n, где n – номер участка
В памяти хранится

таблица адресов участков
Доступ к данным за одно обращение к диску

Слайд 33 Недостатки hash-индексов
Таблица адресов участков может быть слишком велика
Если

Недостатки hash-индексовТаблица адресов участков может быть слишком великаЕсли в один участок

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

дополнительный блок.
Проблема – неравномерность размещения записей, возникновение коллизий

Слайд 34 Коллизии

Коллизии

Слайд 35 Функции Hash
Деление
Мультипликативный метод

Функции HashДелениеМультипликативный метод

Слайд 36 Функции Hash деление
Размер таблицы hashTableSize - простое число.

Функции Hash делениеРазмер таблицы hashTableSize - простое число. Хеширующее значение hashValue,


Хеширующее значение hashValue, изменяющееся от 0 до (hashTableSize -

1), равно остатку от деления ключа на размер хеш-таблицы.
Увеличиваем число участков в два раза

Слайд 37 Функции Hash мультипликативный метод
Размер таблицы hashTableSize есть

Функции Hash мультипликативный метод Размер таблицы hashTableSize есть степень 2n. Значение

степень 2n.
Значение key умножается на константу, затем от

результата берется n бит.
В качестве такой константы Кнут рекомендует золотое сечение (sqrt(5) - 1)/2 = 0.6180339887499.

Слайд 38 Функции Hash для строк переменной длины
Аддитивный метод –

Функции Hash для строк переменной длиныАддитивный метод – преобразовываем слова в

преобразовываем слова в числа, складываем и берем остаток деления

по модулю 256.
Метод ИЛИ

Слайд 41 Пространственные типы данных
 geometry используется для планарных или евклидовых данных

Пространственные типы данных geometry используется для планарных или евклидовых данных geography, который используется


geography, который используется для хранения эллиптических данных, таких как

координаты GPS широты и долготы


Слайд 42 Пространственные типы данных
 geometry используется для планарных или евклидовых данных

Пространственные типы данных geometry используется для планарных или евклидовых данных geography, который используется


geography, который используется для хранения эллиптических данных, таких как

координаты GPS широты и долготы
объекты geography должны помещаться в одном полушарии, расстояние обычно вычисляется в метрах



Слайд 43 Пространственные типы данных
Point
MultiPoint
LineString
MultiLineString
Polygon

Пространственные типы данныхPointMultiPointLineStringMultiLineStringPolygon

Слайд 44 R-дерево
Избавляемся от формы – окружаем фигуру min ограничивающим

R-деревоИзбавляемся от формы – окружаем фигуру min ограничивающим прямоугольником (oid, Rectangle), oid – ссылка на запись

прямоугольником (oid, Rectangle), oid – ссылка на запись


Слайд 45 Иерархия R-дерева
Окружаем фигуры ограничивающими прямоугольниками
(cp, Rectangle)
При переполнении делим пополам

Иерархия R-дереваОкружаем фигуры ограничивающими прямоугольниками(cp, Rectangle)При переполнении делим пополам

Слайд 46 Критерии разделения узла
Минимальная площадь
Минимальное перекрытие
Минимальные границы

Критерии разделения узлаМинимальная площадьМинимальное перекрытиеМинимальные границы

Слайд 47 R-дерево

R-дерево

Слайд 48 R-дерево - недостатки
Не удается избежать перекрытий – необходим

R-дерево - недостаткиНе удается избежать перекрытий – необходим просмотр нескольких веток

просмотр нескольких веток


Слайд 49 Spatial grid

Spatial grid

Слайд 50 Spatial grid
CREATE SPATIAL INDEX
4 уровня вложенности

Spatial gridCREATE SPATIAL INDEX4 уровня вложенности

Слайд 51 Spatial grid
Декомпозиция индексированного пространства в cеточную иерархию
Считывает

Spatial gridДекомпозиция индексированного пространства в cеточную иерархию Считывает данные из пространственного

данные из пространственного столбца по строкам.
Тесселяция -  помещаем

объект в cеточную иерархию, устанавливая связь между объектом и набором сеточных ячеек, с которыми он соприкасается.


Слайд 52 Правила тесселяции
Правило покрытия
Правило ячеек на объект
Правило самой глубокой

Правила тесселяцииПравило покрытияПравило ячеек на объектПравило самой глубокой ячейки

ячейки


  • Имя файла: indeksy-v-subd.pptx
  • Количество просмотров: 143
  • Количество скачиваний: 0