- •2 Модели и типы данных
- •2.1 Иерархическая модель данных
- •2.2. Сетевая модель данных
- •2.3. Реляционная модель данных
- •2.4. Многомерная модель данных
- •2.5. Объектно-ориентированная модель данных
- •2.6. Объектно- реляционная модель данных
- •2.7. Типы данных
- •2.8. Выбор моделей данных
- •2.9. Вопросы реализации баз данных на физическом уровне
- •2.9.1 Методы физического доступа
- •2.9.2 Сравнение методов последовательного и прямого доступа
- •2.9.3Поиск в файлах с помощью хэша
- •2.9.3.1 Сущность метода хэширования
- •2.9.3.2Стратегия разрешения коллизий с областью переполнения
- •2.9.3.3Разрешения коллизий при стратегии свободного замещения
- •2.9.4Поиск с помощью индексных файлов
- •2.9.4.1Типы индексных файлов
- •2.9.4.2 Файлы с плотным индексом или индексно-прямые файлы
- •2.9.4.2 Файлы с неплотным индексом или индексно-последовательные файлы
- •2.9.5 Организация данных на основе использования в-деревьев
- •2.9.5.1 Терминология и разновидности графов типа «дерево»
- •2.9.5.2 Индексирование на основе в-деревьев
- •2.9.5.3 Индексирование и поиск на основе использования двоичных деревьев
- •2.10 Выводы по итогам обзора моделей данных и методов доступа
2.10 Выводы по итогам обзора моделей данных и методов доступа
Подводя некоторые итоги, можно сделать следующие предварительные выводы. Для суперЭВМ чаще всего используется иерархическая модель данных в силу ее высокого быстродействия. Для персональных компьютеров широчайшее распространение получила реляционная модель данных, по которой проведены значительные прикладные и теоретические исследования. В последнее время реляционную модель начинают теснить объектно-ориентированная, объектно-реляционная и многомерная модели данных.
Для любых моделей данных должны применяться рациональные методы их физической реализации на уровне размещения записей и доступа к ним в БД. В частности, для реляционной модели данных рационально использовать индексирование.
Под индексом понимают средство ускорения операции поиска записей в таблице, а следовательно, и других операций, использующих поиск: извлечение, модификация, сортировка и т. д. Таблицу, для которой используется индекс, называют индексированной.
Индекс выполняет роль оглавления таблицы, просмотр которого предшествует обращению к записям таблицы.
Для организации ссылки на запись таблицы могут использоваться три типа адресов: абсолютный (действительный), относительный и символический (идентификатор).
На практике для создания индекса для некоторой таблицы БД пользователь указывает поле (или несколько полей) таблицы, которое требует индексации. Ключевые поля таблицы во многих СУБД, как правило, индексируются автоматически. Индексные файлы, создаваемые по ключевым полям таблицы, часто называются файлами первичных индексов.
Индексы, создаваемые пользователем для неключевых полей, иногда называютвторичными (пользовательскими) индексами. Введение таких индексов не изменяет физического расположения записей таблицы, но влияет на последовательность просмотра записей. Индексные файлы, создаваемые для поддержания вторичных индексов таблицы, обычно называются файлами вторичных индексов.
Связь вторичного индекса с элементами данных базы может быть установлена различными способами. Один из них — использование вторичного индекса как входа для получения первичного ключа, по которому затем с использованием первичного индекса производится поиск необходимых записей.
Некоторыми СУБД, например Access, деление индексов на первичные и вторичные не производится. В этом случае используются автоматически создаваемые индексы и индексы, определяемые пользователем по любому из не ключевых полей.
Главная причина повышения скорости выполнения различных операций в индексированных таблицах состоит в том, что основная часть работы производится с небольшими индексными файлами, а не с самими таблицами. Наибольший эффект повышения производительности работы с индексированными таблицами достигается для значительных по объему таблиц. Индексирование требует небольшого дополнительного места на диске и незначительных затрат процессора на изменение индексов в процессе работы. Индексы в общем случае могут изменяться перед выполнением запросов к БД, после выполнения запросов к БД, по специальным командам пользователя или программным вызовам приложений.
