- •Санкт-Петербургский государственный университет
- •План лекции
- •1. Способы адресации данных
- •Способы адресации данных
- •Способы адресации данных
- •Способы адресации данных
- •Способы адресации данных
- •Способы адресации данных
- •Способы адресации данных
- •Способы адресации данных
- •Способы адресации данных
- •Способы адресации данных
- •Способы адресации данных
- •2.Организация индексов
- •2.Организация индексов
- •2.Организация индексов
- •2.Организация индексов данных
- •2.Организация индексов
- •данных
- •2. Организация индексов
- •2.Организация индексов
- •2.Организация индексов данных.
- •2.Организация индексов данных.
- •2.Организация индексов данных.
- •2.Организация индексов данных.
- •3. Алгоритмы
- •3. Алгоритмы
- •3. Алгоритмы
- •хэширования
- •3. Алгоритмы
- •3. Алгоритмы
- •3. Алгоритмы
- •хэширования
- •хэширования
- •Выводы
- •БЛАГОДАРЮ ЗА ВНИМАНИЕ !
Способы адресации данных
Методы решения задачи поиска нужной
записи по ключу
5. Хэширование
Вданном методе поиска физический адрес определяется с точностью до блока.
Вчастном случае размер блока может быть равен размеру одной записи. Хэширование – от английского слова «hashing» (перемешивание, рандомизация).
При использовании хэширования ключ i-й записи Kлi с помощью хэш-
функции f преобразуется в
псевдослучайное число Aблi,
являющееся физическим адресом блока, содержащего запись с
ключом Kлi 11
Способы адресации данных
Методы решения задачи поиска нужной
записи по ключу Хэширование
При хэшировании выполняются следующие шаги:
1. ключ новой записи Kлi
преобразуется в числовой вид ni;
2. на основании значения ni при
помощи хэш-функции f
вычисляется адрес блока Aблi, в
который следует внести новую запись;
3. если в этом блоке имеется свободное место, то запись заносится в блок;
4. при отсутствии свободного места запись помещается в область
переполнения. |
12 |
|
Способы адресации данных
Методы решения задачи поиска нужной записи по ключу
Хэширование
Чтение данных при использовании хэширования производится примерно в том же порядке:
1.ключ искомой записи Kлi преобразуется в числовой вид ni;
2.на основании значения ni при помощи хэш-функции f вычисляется адрес блока Aблi, из которого следует считать требуемую запись;
3.если эта запись находится в блоке, то производится ее считывание;
4.если искомой записи в блоке не оказалось, то ее поиск осуществляется в области переполнения.
(При поступлении новой книги по математике библиотекарь |
|
пытается поставить ее на полку, отведенную под раздел |
|
«Математика». Если полка занята, книга размещается на резервной |
|
полке.) |
13 |
2.Организация индексов
данных
Одним из эффективных способов ускорения поиска информации в БД является применение индексов. Индекс –
это специальная (как правило,
древовидная) структура данных, позволяющая в значительной степени сократить время поиска.
Типичный пример индекса – многоуровневые рубрикаторы в различных справочниках или библиотеках. 14
2.Организация индексов
данных
Пример. Допустим, у читателя возникла потребность в книге по интегральному исчислению. Для её отыскания в библиотечном фонде необходимо найти:
oраздел по естественным наукам (соответствующий библиотечный шкаф);
oподраздел по высшей математике (один из ящиков шкафа);
oрубрику «Интегральное исчисление» названного подраздела, под которой помещена искомая карточка;
oтребуемую книгу на полке, шифр местоположения которой указан в карточке.
(высокая сложность - минимальное время)
15
2.Организация индексов
данных
Электронный вариант каталога –
БД с индексно-последовательной
организацией данных: записи упорядочены
по значению первичного ключа и объединены в блоки. Индекс позволяет определять адрес искомой записи с точностью до блока.
Любой элемент индекса состоит из двух частей, каждая из которых содержит:
фрагмент ключа записи;
ссылку на элемент индекса следующего уровня. В индексе самого нижнего уровня каждый его элемент ссылается на блок записей.
16
2.Организация индексов данных
Недостаток. При исчерпании памяти в блоках для устранения ее нехватки используется область переполнения.
В том случае, если данные часто изменяются (удаление и добавление записей), при такой организации данных в одних блоках появляются участки неиспользуемой памяти, а из других часто происходит обращение к области переполнения.
Таким образом, в условиях интенсивной динамики изменения данных применение индексно-последовательной организации неэффективно.
18
2.Организация индексов
данных
Другим вариантом с использованием индекса является индексно-прямая
организация.
Предположим, что в библиотеке для каждой книги отводится отдельная ячейка и каждая новая книга помещается в первую свободную ячейку.
После этих допущений электронный вариант |
|
каталога может быть представлен в виде БД с |
|
индексно-прямой организацией данных |
19 |
|