Автор работы: Пользователь скрыл имя, 07 Декабря 2013 в 16:39, курс лекций
Работа содержит курс лекций по дисциплине "Клиент- серверные информационные технологии"
Индекс (Index) - свойство поля, позволяющее ускорить поиск данных и сортировку по значению этого поля. Индексация применяется практически во всех СУБД, и от того, как она организована, зависит быстродействие СУБД.
Индексы применяются для ускорения доступа к записям базы данных. Их можно сравнить с предметным указателем книги – упорядоченной последовательностью слов (словосочетаний) с перечнем номеров страниц, на которых встречается это слово (словосочетание).
Индекс базы данных представляет собой структуру, в которой содержатся рассортированные в заданном порядке значения данных в некотором поле и указатели адресов записей (страниц), где находятся эти значения. В отличие от инвертированных списков индексы занимают значительно меньшее место во внешней памяти.
Построение индекса и его обновление выполняется автоматически самой СУБД. Файл базы данных, для которого создан хотя бы один индекс, называется индексированным файлом.
Дополняя табл. 1.0 сведениями о номерах страниц, на которых хранятся записи с данными (для простоты будем полагать, что каждая запись хранится на отдельной странице внешней памяти) (табл. 1.1):
Таблица 1.1
Сведения о поставках товаров в магазин
Номер накладной |
Название товара |
Артикул |
Количество |
Дата поставки |
Номер страницы |
37 |
Костюм |
500 |
50 |
10.12.05 |
1 |
54 |
Сапоги |
200 |
75 |
10.12.05 |
2 |
18 |
Туфли |
100 |
120 |
11.12.05 |
3 |
60 |
Костюм |
500 |
35 |
11.12.05 |
4 |
28 |
Костюм |
300 |
20 |
12.12.05 |
5 |
74 |
Костюм |
400 |
50 |
12.12.05 |
6 |
80 |
Туфли |
100 |
100 |
12.12.05 |
7 |
Индекс, созданный для поля Название товара, обеспечивающий быстрый поиск данных в этом поле, будет иметь вид (табл. 1.2):
Таблица 1.2
Индекс Товар
Название товара |
Номера страниц |
Костюм |
1, 4, 5, 6 |
Сапоги |
2 |
Туфли |
3, 7 |
Поиск и выборка нужных записей в базе данных осуществляются в следующей последовательности:
1. Выбирается индекс, соответствующий условию поиска (например Товар, если в запросе выполняется поиск товара с конкретным названием).
2. В индексе находится строка с заданным условием поиска (например Туфли).
3. Из найденной строки выбираются номера страниц, где хранятся искомые записи.
4. Полученные номера страниц используются для чтения необходимой информации.
Большинство СУБД реализует этот процесс автоматически, без участия пользователя.
Если для таблицы определены несколько индексов по отдельным полям, при поиске записей в данной таблице по условиям поиска, заданным в этих полях, соответствующие индексы используются совместно.
Например, для поля Дата поставки табл. 3.3 создан также индекс Дата (табл. 1.3):
Таблица 1.3
Индекс Дата
Дата поставки |
Номера страниц |
10.12.05 |
1, 2 |
11.12.05 |
3, 4 |
12.12.05 |
5, 6, 7 |
При выполнении запроса «Найти сведения о туфлях, поступивших 11 декабря 2005 г.», номера страниц в индексе Товар для значения данных Туфли будут сравниваться с номерами страниц значения 11.12.05 в индексе Дата. В результате будет выбран номер страницы, встречающийся в обоих индексах, равный 3.
Если поиск достаточно часто производится по одним и тем же полям, желательно создать составной индекс, включающий несколько полей. При использовании составного индекса сокращается время поиска, так как не приходится сравнивать значения данных из нескольких индексов.
Проиллюстрируем процесс создания индексов на примере MS Access.
Если индекс создается по одному полю, необходимо выполнить действия:
1. Открыть таблицу в режиме Конструктора.
2. Активизировать поле, для которого создается индекс.
3. Выбрать свойство поля Индексированное поле.
4. Выбрать для данного свойства одно из значений:
Да (Допускаются совпадения);
Да (Совпадения не допускаются).
Для ключевого поля индекс в MS Access создается автоматически.
Для создания составного индекса следует открыть таблицу в режиме Конструктора, нажать кнопку Индексы на панели инструментов или выполнить действия Вид®Индексы, затем в появившемся диалоговом окне ввести имя индекса и указать имена полей, по которым он создается.
В MS Access имеются следующие ограничения:
· в таблице не может быть более 32 индексов;
· в составном индексе не может быть более 10 полей.
Индексы могут быть плотными, когда в них содержатся указатели на все записи индексированной таблицы, и неплотными – указатели создаются для блоков, включающих наборы записей. Детальная характеристика и примеры указанных понятий приводятся в работах [ 2, 4 ].
Для больших таблиц сами индексы могут занимать несколько страниц во внешней памяти. В таких ситуациях создаются многоуровневые индексы, например, в виде сбалансированных деревьев (B-дерево или Balanced-tree), имеющих иерархическую структуру [ 2, 4 ]. Целью создания B-дерева является ускорение поиска, стремление избежать просмотра всего индекса.
Рассмотрим процесс построения B-дерева на простом примере. Предположим, таблица сведений о поставках товаров в магазин включает 18 записей и индексируется по номерам накладных: 18, 28, 37, 54, 59, 60, 61, 67, 68, 70, 77, 80, 83, 91, 93, 96, 98, 99. На каждой странице в памяти содержатся только два адреса (фактически их может быть больше).
Размещаем на корневой странице дерева значения данных в поле Номер накладной, равные 60 и 82, и три указателя (рис. 5). Данные со значениями в поле Номер накладной, меньшие или равные 60, могут быть найдены с помощью левого указателя; бульшие 60 и меньшие или равные 82 – с помощью среднего указателя; бульшие 82 – с помощью правого указателя (см. рис. 5). Другие страницы индекса интерпретируются аналогичным образом.
На нижнем уровне B-дерева находится множество страниц с указателями на страницы, где хранятся данные (см. рис. 5).
Для нахождения с помощью B-дерева адреса размещения во внешней памяти любой страницы с данными, достаточно последовательно рассмотреть только три страницы индекса (на рис. 5 жирными стрелками указан маршрут поиска страницы с номером накладной 77), что существенно меньше общего количества страниц с данными.
Фильтр (Filter) - способ отбора записей из таблицы или запроса. В Access применяются несколько видов фильтров.
Возможности фильтров шире, чем поиска. Фильтр используется для того, чтобы видеть только значения, соответствующие условиям. Фильтр можно создать в любом режиме работы с таблицей. Существуют следующие типы фильтров:
- фильтр по выделенному;
- фильтр для;
- фильтр по исключенному;
- расширенный фильтр;
- универсальный фильтр.
Любой фильтр можно создать или через команду главного меню Записи/Фильтр, или нажатием соответствующей кнопки панели инструментов, или, находясь в таблице, нажатием правой кнопки мыши. Фильтр можно сохранить. Возможно применение фильтра к фильтру.
Фильтр по выделенному
Простейший фильтр. Выделив нужную информацию в соответствующей записи нужного поля таблицы, надо нажать кнопку (выполнить команду) Применить фильтр. Для возврата в таблицу можно нажать ту же кнопку панели инструментов (теперь она называется Удалить фильтр).
Фильтр для
Аналогичен вышерассмотренному. Однако нет необходимости искать запись в таблице. Достаточно ввести критерий поиска в текстовое поле (рис. 16) и нажать Enterили Применить фильтр.
Фильтр по исключенному
Аналогичен фильтру по выделенному, но исключает выделенную информацию из просмотра.
Универсальный фильтр
Для задания критерия поиска надо выполнить команду Изменить фильтр. Фильтр позволяет использовать выражения и операторы И и ИЛИ. При нажатии кнопки возникает Конструктор фильтра (рис. 1). Для каждого поля таблицы здесь имеется всплывающий список значений, которые можно выбрать. Кроме того, в соответствующей строке можно написать условие поиска с использованием операций >, < и т. п., операций И (обязательное совпадение обоих условий), ИЛИ (выполнение хотя бы одного критерия поиска).
Расширенный фильтр
Этот фильтр позволяет выполнять и сортировку данных. В верхней части окна указана структура таблицы, откуда можно переместить нужное поле в бланк фильтра мышью. Возможности фильтра приближаются к простейшему запросу.
Базой данных является представленная в объективной форме совокупность самостоятельных материалов (статей, расчетов, нормативных актов, судебных решений и иных подобных материалов), систематизированных таким образом, чтобы эти материалы могли быть найдены и обработаны с помощью электронной вычислительной машины (Гражданский кодекс РФ, ст. 1260).
Существует множество других определений понятия «база данных», так или иначе сводящихся к понятию «совокупность хранимых данных». Однако большинство из этих определений не позволяет отличить базу данных от объектов, которые базой данных заведомо не являются, например, от архивов документов, картотек, библиотек и т.п. Таким образом, база данных есть не просто совокупность хранимых данных (записей, документов, фактов и т.п.), но такая совокупность, которая обладает, по меньшей мере, тремя важными свойствами (признаками):
Из трёх перечисленных признаков только первый является строгим, а два других допускают различные трактовки и различные степени оценки. Не существует возможности строго формально определить, является ли некоторая совокупность данных на компьютере базой данных или нет. Можно лишь установить некоторую степень соответствия требованиям к БД.
В такой ситуации не последнюю роль играет общепринятая практика. В соответствии с ней, например, не называют базами данных файловые архивы или электронные таблицы, несмотря на то, что они в некоторой степени обладают признаками БД. Принято считать, что эта степень в большинстве случаев недостаточна (хотя могут быть исключения).
Базой данных часто ошибочно называют систему управления базами данных. Необходимо различать хранимые данные (собственно БД) и программное обеспечение, предназначенное для организации и ведения базы данных (СУБД).
На сегодня нет общепризнанной таксономии сетей. Есть два общепризнанных фактора для их различения: технология передачи и масштаб.
Есть два основных типа технологий передачи, используемые в сетях:
Информация о работе Курс лекций по "Клиент- серверные информационные технологии"