Главная

Популярная публикация

Научная публикация

Случайная публикация

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

ТОР 5 статей:

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

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

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Свойства таблиц реляционной базы данных




Так как таблицы в реляционной СУБД являются отношениями реляционной мо­дели данных, то и свойства этих таблиц являются свойствами отношений, кото­рые мы уже рассмотрели выше. Кратко сформулируем эти свойства еще раз:

- каждая таблица состоит из однотипных строк и имеет уникальное имя;

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

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

- столбцам таблицы присваиваются уникальные имена, и в каждом из них разме­щаются однородные значения данных (даты, фамилии, целые числа или денеж­ные суммы);

- полное информационное содержание базы данных представляется в виде яв­ных значений данных, и такой метод представления является единственным. В частности, не существует каких-либо специальных «связей» или указателей, соединяющих одну таблицу с другой;

- при выполнении операций с таблицей ее строки и столбцы можно обрабаты­вать в любом порядке безотносительно к их информационному содержанию. Этому способствует наличие имен таблиц и их столбцов, а также возможность выделения любой строки или любого набора строк с указанными признаками.

Индексы

Выше мы рассмотрели понятие ключей таблиц базы данных. В большинстве ре­ляционных СУБД ключи реализуются с помощью объектов, называемых индек­сами. Индекс представляет собой указатель на данные, размещенные в реляционной таб­лице. Можно провести аналогию индекса таблицы базы данных с указателем, обыч­но помещаемым в конце книги. Чтобы найти в книге страницы, относящиеся к некоторой теме, проще всего обратиться к указателю, в котором устанавливается соответствие между перечисленными в алфавитном порядке темами и номерами страниц, и сразу определить страницы, которые следует просмотреть. Чтобы без указателя найти все страницы, относящиеся к нужной теме, пришлось бы просмат­ривать всю книгу. Индекс базы данных предназначен для аналогичных целей – чтобы ускорить поиск информации в таблице базы данных. Индекс предоставляет информацию о точном физическом расположении данных в таблице.

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

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

При выполнении запроса к базе данных, в условие поиска которого входит индек­сированный столбец, поиск значений производится в первую очередь в индексе. Если этот поиск оказывается успешным, то в индексе устанавливается точное ме­стоположение искомых данных в таблице базы данных.

Рассмотрим пример индекса. На рис. 4.1 показан фрагмент таблицы СТУДЕНТЫ и индекса, построенного по полю «Имя» данной таблицы. При выполнении поиска по имени студента, просматривая индекс, можно сразу определить порядковый Номер записи, содержащей необходимую информацию, и затем быстро найти в таблице сами данные. Если бы у таблицы отсутствовал индекс по полю «Имя», то выполнение поиска по имени студента потребовало бы просмотра всей таблицы.

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

 

 

Рисунок 4.1 – Поиск информации в таблице с помощью индекса

 

Различают несколько типов индексов. Наиболее часто выделяют три типа:

- простые;

- составные;

- уникальные.

Ускорение поиска информации при использовании индекса может показаться неоче­видным – ведь количество записей в индексе совпадает с количеством записей в таблице. Однако следует учитывать два обстоятельства:

- обращение к индексу выполняется быстрее, чем к таблице;

- в индексе записи хранятся в упорядоченном виде (в рассматриваемом примере – в алфавитном порядке) и поэтому при поиске информации в индексе нет необхо­димости просматривать все данные до конца индекса.

Простые индексы представляют собой простейший и вместе с тем наиболее рас­пространенный тип индекса. Простой индекс строится на основе только одного столбца реляционной таблицы (индекс, приведенный на рис. 4.1, является про­стым).

Составные индексы строятся по двум и более столбцам реляционной таблицы. При создании составного индекса необходимо принимать во внимание, что последователь­ность столбцов, по которым создается индекс, влияет на скорость поиска данных.

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

Можно назвать два условия оптимальности следования столбцов в составном ин­дексе:

– первым следует помещать столбец, содержащий наиболее ограни­чивающее значение (то есть, содержащий меньшее количество повторов);

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

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

Следует серьезно относиться к планированию индексов. Неправильное применение индексов может привести к снижению производительности системы. Мы уже говори­ли о том, что физическое местоположение записей может изменяться в процессе редактирования данных пользователями, а также в результате манипуляций с фай­лами базы данных, проводимых самой СУБД (таких как сжатие данных, сборка «му­сора» и др.). Обычно при этом происходят соответствующие изменения и в индексе, а это увеличивает время, требующееся СУБД для проведения таких операций. Поэто­му обычно не следует индексировать:

– столбцы, данные в которых подвержены частому изменению;

– столбцы, содержащие большое количество пустых значений;

– столбцы, содержащие небольшое количество уникальных значений;

– небольшие таблицы;

– поля большого размера.

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






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных