Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Индекс. Синтаксис создания индекса




Индексы создаются командой SQL CREATE INDEX. Синтаксис команды:

CREATE [ UNIQUE ] INDEX индекс ON таблица

[ USING тип ] (поле [ класс ] [....])

Индекс-отдельно доп. контролируемый объект => объектно-ориент. СУБД

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

Возможные типы:

  1. BTree (бинарное дерево) – хорошо рабоатет для скалярных числовых значений.
  2. RTree – хорошо работает для индексирования векторных значений.
  3. Hash

 

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

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

Реализация хэша основана на алгоритмах линейного хэширования Литвина (Litwin), которые традиционно используются для индексов с частой проверкой равенства (то есть ориентированы на оператор =).

<поле> - указывается одно или несколько полей, по которым строится индекс.

Создание индекса с ключевым словом UNIQUE говорит о том, что индекс является уникальным, то есть индексируемое поле (или поля) не может содержать повторяющихся значений, за исключением значения NULL.

Замечание: обычный уникальный индекс отличается от первичного ключа лишь отсутствием запрета на NOT NULL

PRIMARY KEY = {UNIQUE + NOT NULL}

 

Современные СУБД позволяют индексировать данные не по значениям поля, а по некоторой функции от значения поля. Такая форма индекса называется функциональной.

 

Команда создания функционального индекса имеет следующий синтаксис:

 

CREATE [ UNIQUE ] INDEX индекс ON таблица

 

[ USING тип ] (функция (поле [....])[ класс ])

 

Индекс строится по результатам применения функции к каждому значению поля. Остальные элементы те же.

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

Пример. БД физ. лиц – вкладчиков Сбербанка РФ содержит > 200 млн. записей. При этом ФИЛ набраны либо в верхнем регистре, либо в нижнем, либо в общепринятом способе. При поиске по базе часто выполняются запросы, имеющие в секции WHERE выражение:

 

WHERE ФАМИЛИЯ = “$f” AND

ИМЯ = “$n” AND

ОТЧЕСТВО = “$0” AND паспорт = “$p”

 

В силу ненормированности регистра этот запрос необходимо выполнить в виде:

 

UPPERCASE (<поле>) = UPPERCASE (<значение>)

 

Для оптимизации выполнения таких запросов следует индексировать не скаляры ФИО, а функционалы

UPCASE (Фам), UPCASE(Имя), UPCASE(Отч)

 

Ограничение в таблицах.

 

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

Ограничения задаются в секции CONSTRAINT при создании таблицы командой CREATE TABLE.




Поделиться с друзьями:


Дата добавления: 2015-06-27; Просмотров: 742; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.011 сек.