Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Вся теория для экзамена.docx
Скачиваний:
1
Добавлен:
20.04.2019
Размер:
164.6 Кб
Скачать

Способы представления собственно информации файла

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

Инвертированное представление «идет» не от объекта, а от значения данных. Запись при таком представлении: составляют список идентификаторов (ключей) объектов, которые обладают одним и тем же значением данного.

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

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

Инвертированный список в общем случае — это двухуровневая индексная структура. Здесь на первом уровне находится файл или часть файла, в которой упорядоченно расположены значения вторичных ключей. Каждая запись с вторичным ключом имеет ссылку на номер первого блока в цепочке блоков, содержащих номера записей с данным значением вторичного ключа. На втором уровне находится цепочка блоков, содержащих номера записей, содержащих одно и то же значение вторичного ключа. При этом блоки второго уровня упорядочены по значениям вторичного ключа.

И наконец, на третьем уровне находится собственно основной файл.

ПРЯМОЕ

Физич.

адрес

Номер физич.записи

Ф.И.О.

Пол

Национальность

1

25

Иванов И.И.

М

русский

41

96

Климук Н.И.

Ж

украинка

81

33

Ковалев В.А.

М

белорус

121

330

Козлов Н.А.

М

русский

161

111

Кузнецова Н.В.

Ж

азербайджанка

201

110

Петренко И.П.

Ж

украинка

241

100

Петров П.И.

М

русский

281

112

Рабинович И.Н.

Ж

еврейка

321

35

Сидоров В.В.

М

русский

ИНВЕРТИРОВАННОЕ

Значение атрибута

Номер физич.записи

М

25,33,330,100,35

Ж

96,111,110,112

азербайджанка

111

белорус

33

еврейка

112

русский

25,330,100,35

украинка

96,110

Иванов И.И.

25

Ковалев В.А.

33

Козлов Н.А.

330

Климук Н.И.

96

Кузнецова Н.В.

111

Петренко И.П.

110

Петров П.И.

100

Рабинович И.Н.

112

Сидоров В.В.

35



Инвертированное представление является необычным (неестественным) как для конечных пользователей, так и для прикладных программистов, требует значительных затрат на создание и обновление.

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

Эффективно может быть реализована связь между различными файлами, но это уже структура уровня БД.

В практике СУБД инвертированное представление используется лишь как дополнительное к прямому представлению, реализуемое для данных, значения которых часто используются при поиске и связывании объектов, например, в системах ADABAS (ассоциатор - для поиска и связи) и FoxPro (связь типа One-to- many).

Инвертированное представление - это тот же индексный файл, но в специальной форме.

  1. Индексно-последовательная организация файла

1. Физически файл размещается в множестве физических блоков (страниц). Чаще всего это дорожки диска. В общем – адресуемые физические непрерывные участки внешней памяти

2. Файл упорядочивается по значению некоторого атрибута (группы атрибутов) – ключ упорядочения.

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

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

Если индексный файл тоже велик, то может создаваться индекс второго порядка (над первичным индексом)

Файлы с переменной длиной записи всегда являются файлами последовательного доступа. Они могут быть организованы двумя способами:

1. Конец записи отличается специальным маркером.

2. В начале каждой записи записывается ее длина.

Если значения ключей разбросаны по нескольким диапазонам, то построить взаимнооднозначную функцию не удается. В этом случае не удается построить взаимнооднозначную функцию, либо эта функция будет иметь множество незадействованных значений, которые соответствуют недопустимым значениям ключа. В подобных случаях применяют различные методы хэширования (рандомизации) и создают специальные хэш- функции.

Суть методов хэширования состоит в том, что мы берем значения ключа (или некоторые его характеристики) и используем его для начала поиска, то есть мы вычисляем некоторую хэш-функцию h(k) и полученное значение берем в качестве адреса начала поиска. То есть мы не требуем полного взаимно-однозначного соответствия, но, с другой стороны, для повышения скорости мы ограничиваем время этого поиска (количество дополнительных шагов) для окончательного получения адреса. Таким образом, мы допускаем, что нескольким разным ключам может соответствовать одно значение хэш-функции (то есть один адрес). Подобные ситуации называются коллизиями. Значения ключей, которые имеют одно и то же значение хэш-функции, называются синонимами.

Поэтому при использовании хэширования как метода доступа необходимо принять два независимых решения:

" выбрать хэш-функцию;

" выбрать метод разрешения коллизий

  1. Организация данных файла с прямым доступом

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

Файлы с постоянной длиной записи, расположенные на устройствах прямого доступа (УПД), являются файлами прямого доступа.

В этих файлах физический адрес расположения нужной записи может быть вычислен по номеру записи (NZ).

Каждая файловая система СУФ - система управления файлами поддерживает некоторую иерархическую файловую структуру, включающую чаще всего неограниченное количество уровней иерархии в представлении внешней памяти.

Для каждого файла в системе хранится следующая информация:

" имя файла;

" тип файла (например, расширение или другие характеристики);

" размер записи;

" количество занятых физических блоков;

" базовый начальный адрес;

" ссылка на сегмент расширения;

" способ доступа (код защиты).

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

На устройствах последовательного доступа могут быть организованы файлы только последовательного доступа.

По значению ключа вычисляется:

- точно адрес любой записи.

- адрес физического блока, где располагается запись (метод хеширования).

+ очень быстрый доступ по ключу

- трудно подобрать алгоритм, позволяющий избежать

пустот в памяти;

должен быть цифровой ключ.

  1. Технологии файл-сервер и клиент-сервер

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]