
- •Базы данных, знаний и экспертные системы
- •1.1 Достоинства централизованного управления.
- •1.2 Цели использования БД
- •1.3 Многоуровневая структура БД.
- •1.3.1 Обобщенный алгоритм работы СУБД
- •2 Физический уровень. Требования. Размещение. Сжатие
- •2.1 Введение
- •2.2 Возможные представления данных
- •2.3 Интерфейс физических записей: методы индексирования
- •2.4 Общие методы индексирования
- •3 ИНДЕКСНО-ПОСЛЕДОВАТЕЛЬНАЯ ОРГАНИЗАЦИЯ
- •3.1.1 ПОСЛЕДОВАТЕЛЬНАЯ ИЛИ ПРОИЗВОЛЬНАЯ ОБРАБОТКА?
- •3.1.2 ВЕДЕНИЕ ФАЙЛА
- •3.1.3 СВЯЗЬ С ТЕХНИЧЕСКИМ ОБЕСПЕЧЕНИЕМ
- •3.1.5 МНОГОУРОВНЕВОЕ ИНДЕКСИРОВАНИЕ
- •3.1.6 ВИРТУАЛЬНЫЙ МЕТОД ДОСТУПА (VSAM)
- •3.1.7 ВКЛЮЧЕНИЕ И УДАЛЕНИЕ ЗАПИСЕЙ
- •4 ОРГАНИЗАЦИЯ ОБЛАСТИ ПЕРЕПОЛНЕНИЯ
- •4.1 РАСПРЕДЕЛЕННАЯ СВОБОДНАЯ ПАМЯТЬ
- •4.2 РАСЩЕПЛЕНИЕ ПАМЯТИ
- •4.2.1 РАЗМЕЩЕНИЕ ИНДЕКСОВ
- •5 Алгоритмы перемешивания
- •5.1 ФАКТОРЫ, ВЛИЯЮЩИЕ НА ЭФФЕКТИВНОСТЬ ПЕРЕМЕШИВАНИЯ
- •5.1.1 РАЗМЕР УЧАСТКА ЗАПИСЕЙ
- •5.1.2 ПЛОТНОСТЬ ЗАПОЛНЕНИЯ
- •5.2 АЛГОРИТМЫ ПЕРЕМЕШИВАНИЯ
- •5.2.1 Метод квадратов
- •5.2.2 Деление
- •5.2.3 .Сдвиг разрядов
- •5.2.4 Складывание
- •5.2.5 . Анализ отдельных разрядов ключа
- •5.2.6 . Преобразование основания системы счисления
- •5.2.7 . Метод Лина
- •5.2.8 . Деление полиномов
- •5.3 ВЫБОР АЛГОРИТМА ПЕРЕМЕШИВАНИЯ
- •5.4 ЗАМЕЧАНИЯ ПО РЕАЛИЗАЦИИ АЛГОРИТМОВ ПЕРЕМЕШИВАНИЯ
- •5.4.1 РАЗМЕЩЕНИЕ ЗАПИСЕЙ В ОБЛАСТИ ПЕРЕПОЛНЕНИЯ
- •5.4.2 ОПТИМИЗАЦИЯ
- •6.1 Физическое представление древовидных структур
- •6.1.1 Усложненный двумерный файл
- •6.1.2 ГЛАВНЫЙ И ДЕТАЛЬНЫЙ ФАЙЛЫ
- •6.1.3 МНОГОУРОВНЕВЫЕ ДЕРЕВЬЯ
- •6.1.4 Метод 1. Физически последовательное размещение
- •6.1.5 Метод 2. Левосписковые структуры с переполнениями
- •6.1.6 Метод 3. Левосписковые структуры с распределенной свободной памятью
- •6.1.7 ПОСЛЕДОВАТЕЛЬНЫЕ ФАЙЛЫ
- •6.1.8 Метод 4. Множественные указатели на порожденные записи
- •6.1.9 Метод 5. Указатели на подобные и порожденные записи
- •6.1.10 УКАЗАТЕЛИ НА ИСХОДНЫЕ ЗАПИСИ
- •6.1.11 Метод 6. Кольцевые структуры
- •6.1.12 ВКЛЮЧЕНИЕ И УДАЛЕНИЕ ЗАПИСЕЙ
- •6.1.13 Метод 7. Справочники деревьев
- •6.1.14 Метод 8. Битовые отображения
- •6.1.15 СМЕШАННЫЕ МЕТОДЫ
- •6.2 Физическое представление сетевых структур
- •6.2.1 ФИЗИЧЕСКИ ПОСЛЕДОВАТЕЛЬНОЕ РАЗМЕЩЕНИЕ
- •6.2.2 ВСТРОЕННЫЕ УКАЗАТЕЛИ
- •6.2.3 СЛОЖНЫЕ СЕТЕВЫЕ СТРУКТУРЫ
- •6.2.4 МНОГОУРОВНЕВЫЕ СЕТЕВЫЕ СТРУКТУРЫ
- •6.2.5 СПРАВОЧНИКИ
- •6.2.6 БИТОВЫЕ ОТОБРАЖЕНИЯ
- •7 . Построение индекса
- •7.1 ОПЕРАЦИИ ПОИСКА
- •7.2 ФОРМЫ ПРЕДСТАВЛЕНИЯ ФУНКЦИИ
- •7.2.1 Адрес записи
- •7.2.2 Относительный адрес записи
- •7.2.3 Символический адрес записи
- •7.2.4 Адрес размещения участка записей
- •7.2.5 Адрес цепи
- •7.2.6 Значения атрибута
- •7.2.7 Несколько выходов
- •7.3 ФУНКЦИИ С КОНЕЧНЫМ ЧИСЛОМ ЗНАЧЕНИЙ
- •7.4 ИНДЕКС С НЕСКОЛЬКИМИ ФУНКЦИЯМИ
- •7.4.1 АРГУМЕНТ
- •7.5 КАКИЕ АТРИБУТЫ СЛЕДУЕТ ИНДЕКСИРОВАТЬ?
- •7.6 СЖАТИЕ КЛЮЧА
- •8 Поиск по нескольким ключам
- •8.1 Первичный и вторичный ключ
- •8.2 Пример БД с несколькими ключами
- •8.3 РАЗМЕЩЕНИЕ ЗАПИСЕЙ НА ФИЗИЧЕСКИХ НОСИТЕЛЯХ ДАННЫХ
- •8.3.1 ЗАПИСИ, СВЯЗАННЫЕ В ЦЕПЬ
- •8.3.2 ФАЙЛ С НЕСКОЛЬКИМИ ВТОРИЧНЫМИ КЛЮЧАМИ
- •8.3.3 СЧЕТЧИК ДЛИНЫ ЦЕПИ
- •8.3.4 МУЛЬТИСПИСКОВАЯ ОРГАНИЗАЦИЯ
- •8.3.5 ОРГАНИЗАЦИЯ ФАЙЛА И АППАРАТНОЕ ОБЕСПЕЧЕНИЕ
- •8.3.6 СЕКЦИОННЫЕ ЦЕПИ
- •8.3.7 ПАРАЛЛЕЛЬНЫЕ СЕКЦИОННЫЕ ЦЕПИ
- •8.3.8 ИНВЕРТИРОВАННЫЕ СПИСКИ
- •8.3.9 КОСВЕННЫЙ ИНДЕКС
- •8.3.10 СЕКЦИОННЫЕ ИНВЕРТИРОВАННЫЕ СПИСКИ
- •8.3.11 ПАРАЛЛЕЛЬНЫЕ СЕКЦИОННЫЕ ИНВЕРТИРОВАННЫЕ СПИСКИ
- •8.3.12 ПАРАЛЛЕЛЬНЫЕ ОПЕРАЦИИ ПОИСКА
- •8.3.13 ЦЕПИ В ИНДЕКСЕ
- •9 . Датологический уровень. Сетевая модель
- •9.1 ПРОСТЫЕ И СЛОЖНЫЕ СЕТЕВЫЕ СТРУКТУРЫ
- •9.2 ДАННЫЕ ПЕРЕСЕЧЕНИЯ
- •9.2.2 ЦИКЛЫ
- •9.2.3 ПЕТЛИ
- •9.2.4 ПРИВЕДЕНИЕ СЕТЕВЫХ СТРУКТУР К БОЛЕЕ ПРОСТОМУ ВИДУ
- •9.2.5 Категории схем
- •10 . Иерархическая модель данных
- •10.1 . ДЕРЕВЬЯ
- •10.1.1 СБАЛАНСИРОВАННЫЕ И ДВОИЧНЫЕ ДЕРЕВЬЯ
- •10.1.2 ПРОСТОЕ И СЛОЖНОЕ ОТОБРАЖЕНИЕ
- •10.1.3 ИЕРАРХИЧЕСКИЕ ФАЙЛЫ
- •10.1.4 НАБОРЫ CODASYL
- •10.1.5 ОДНОРОДНЫЕ СТРУКТУРЫ
- •10.1.6 ЗАВИСИМОСТЬ ОТ ПУТИ
- •11 .Реляционная модель данных.
- •11.1 . Элементы теории множеств
- •11.1.1 Множества
- •11.2 . Операции над множествами
- •11.2.1 Декартово произведение множеств
- •11.3 . Отношение
- •11.4 . Примеры отношений
- •11.4.1 Бинарные отношения (отношения степени 2)
- •11.4.2 Отношение эквивалентности
- •11.4.3 Отношения порядка
- •11.4.4 Функциональное отношение
- •11.4.5 Еще пример бинарного отношения
- •11.4.7 Транзитивное замыкание отношений
- •11.5 . Выводы
- •12 . Базовые понятия реляционной модели данных
- •12.1 . Общая характеристика реляционной модели данных
- •12.2 . Типы данных
- •12.2.1 Простые типы данных
- •12.2.2 Структурированные типы данных
- •12.2.3 Ссылочные типы данных
- •12.3 . Типы данных, используемые в реляционной модели
- •12.3.1 Домены
- •12.4 . Отношения, атрибуты, кортежи отношения
- •12.4.1 Определения и примеры
- •12.4.2 Свойства отношений
- •12.5 . Первая нормальная форма
- •12.6 . Выводы
- •13 . Элементы модели "сущность-связь"
- •13.4 . Выводы
86
7.4.1 АРГУМЕНТ
Аргумент первичного индекса или справочника связей обычно является первичным ключом записи. Аргумент вторичного индекса, как правило, является вторичным ключом.
Аргументом может быть комбинация значений атрибутов. Например, однозначным идентификатором записи можно выбрать такую комбинацию: ИМЯ-ПАССАЖИРА+НОМЕР-РЕЙСА+ДАТА: Входом могут быть иерархически связанные поля: НОМЕР-ОТДЕЛА и ИМЯ-СЛУЖАЩЕГО. Вход вторичного индекса тоже может быть комбинацией значений некоторых атрибутов, например ТИП-ИЗДЕЛИЯ и РАЗМЕР. Индекс, аргументом которого является комбинация значений атрибутов, иногда называют составным индексом.
Если аргументом индекса являются все возможные значения данного ключа, то такой индекс называется плотным индексом. Вторичный индекс часто оказывается плотным, т. е. содержит все возможные значения вторичного ключа. Первичный индекс не обязательно должен быть плотным, если записи упорядочены по значению первичного ключа; в этом случае индекс может определять лишь дорожку диска или другую область внешнего запоминающего устройства, просмотром которой можно найти нужную запись. Такой индекс называется разреженным; он позволяет найти любую запись с любым значением атрибута, но не все эти значения физически присутствуют в индексе.
Некоторые вторичные индексы содержат не все значения индексируемого атрибута. С помощью индекса в этом случае могут быть найдены лишь отдельные специфические значения атрибута. Такой индекс называется помеченным.
Многие индексируемые атрибуты имеют дискретные значения, хотя встречаются атрибуты и с непрерывной областью значений. В последнем случае область значений для целей индексирования разбивается на конечное число интервалов. Эта процедура называется квантованием; она сокращает число требуемых элементов индекса.
Аргумент индекса может определяться специфическими значения. ми отдельных величин; аргумент = х и аргумент != х; аргумент может относиться к некоторой области значений, например аргумент < х, аргумент <= х, аргумент > х или аргумент > x1 и (одновременно) аргумент < x2. Индекс такого вида называется интервальным индексом.
7.5 КАКИЕ АТРИБУТЫ СЛЕДУЕТ ИНДЕКСИРОВАТЬ?
Создавая файл с несколькими ключами для обслуживания широкого класса произвольно поступающих запросов к данным, разработчик должен понять, для каких именно атрибутов объектов следует вводить индексирование. Желательно, конечно, избегать слишком больших индексов. Разработчик может предпочесть индексировать атрибуты с небольшим набором значений, чтобы соответствующие им инвертированные списки были невелики. К сожалению, атрибуты с небольшим числом значений на практике

87
мало избирательны. Например, в библиотечной системе значение атрибута беллетристика соответствует половине стоящих на полке книг, так что индекс с одним этим значением оказывает очень слабую помощь. Наоборот, атрибуты, обеспечивающие выдачу небольшого числа элементов на запрос, требуют большого числа индексируемых значений.
Выходом из этого положения может быть комбинирование атрибутов в том виде, в котором они реально встречаются в поисковых критериях. Иногда индекс основывается на двух и более значениях атрибутов.
Несколько примеров индексов приведено на рис. 7.1.
7.6СЖАТИЕ КЛЮЧА
Из-за больших размеров индексов, особенно вторичных, сжатие их элементов становится важным моментом организации файлов. Ряд индексов сжимается двоичным кодированием, некоторые—устранением несущественных частей ключа.
Рис.7.1