Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Базы Данных Теор. Экзамен.doc
Скачиваний:
73
Добавлен:
20.05.2015
Размер:
1.93 Mб
Скачать

Алгоритм нахождения нужных записей подчиненного файла

  • Шаг 1. Ищем запись в основном файле в соответствии с его организацией (с помощью функции хэширования, или с использованием индексов, или другим образом). Если требуемая запись найдена, то переходим к шагу 2, в противном случае выводим сообщение об отсутствии записи основного файла.

  • Шаг 2. Анализируем указатель в основном файле. Если он пустой, т. е. стоит прочерк, значит, для этой записи нет ни одной связанной с ней записи в подчиненном файле. Выводим соответствующее сообщение, в противном случае переходим к шагу 3.

  • Шаг 3. По ссылке-указателю в найденной записи основного файла переходим прямым методом доступа по номеру записи на первую запись в цепочке подчиненного файла. Переходим к шагу 4.

  • Шаг 4. Анализируем текущую запись на содержание если это искомая запись, то сохраняем содержимое записи в некотором промежуточном буфере и переходим к шагу 5. Если же текущая запись не является искомой, то ничего не записываем в промежуточный буфер и также переходим к шагу 5.

  • Шаг 5. Анализируем указатель на следующую запись в цепочке. Если он пуст, то анализируем буфер; если буфер пуст, то выводим сообщение, что искомая запись отсутствует, и прекращаем поиск. В противном случае по ссылке-указателю переходим на следующую запись в подчиненном файле и снова переходим к шагу 4

131. Как строятся взаимосвязанные файлы с двунаправленными цепочками? Разработать алгоритмы удаления записей и добавления записей в данные файлы. Использование цепочек записей позволяет эффективно организовывать модификацию взаимосвязанных файлов. Для того чтобы эффективно использовать дисковое пространство при включении новой записи в подчиненный файл, ищем первое свободное место, т. е. запись, помеченную символом «*», и на ее место заносим новую запись, после этого производим модификацию соответствующих указателей. Необходимо различать 3 случая:

1) Добавление записи на первое место в цепочке;

2) Добавление записи в конец цепочки;

3) Добавление записи на заданное место в цепочке.

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

Для нашего примера это выглядит следующим образом:

F1

Номер записи

Ключ и остальная запись

Указатель на первую запись

Указатель на последнюю запись

1

Иванов И. Н. ….

1

5

2

Петров А. А.

3

6

3

Сидоров П. А.

2

2

4

Яковлев В. В.

 

 

F2

Номер записи

Указатель на предыдущую запись в цепочке

Указатель на следующую запись в цепочке

Содержимое записи

1

4

4306 Вычислительные сети

2

4307 Контроль и диагностика

3

6

4308 Вычислительные сети

4

1

5

84305 Моделирование

5

4

4309 Вычислительные сети

6

3

84405 Техническая диагностика

7

 

 

Один файл (подчиненный или основной) может быть связан с несколькими другими файлами, при этом для каждой связи моделируются свои указатели. Связь двух основных файлов F1 и F2 с одним связующим файлом F3 моделируется как показано на рис. 11.5.

Рис. 11.5. Взаимосвязь двух основных и одного связующего файлов

  1. Какие типы страниц используются в MSSQLServer? Как организованы страницы данных в MS SQL Server?

В SQL 2000 существуют 6 основных типов страниц:

  • страница данных (Data page). В станицах этого типа хранятся структурированные данные, т. е. все типы данных, исключая тип text, ntext, image;

  • индексные страницы (Index page). В страницах этого типа хранятся индексы;

  • текстовые страницы (Text/image page). В страницах данного типа хранятся как раз слабоструктурированные данные типа text, ntext, image;

  • карты распределения блоков (Global allocation map page), часто именуемые GAM. Этот тип страниц хранит информацию об использовании экстентов (блоков);

  • карты свободного пространства (Page free space page). В страницах этого типа хранится информация о свободном пространстве на страницах;

  • индексные карты размещения (Index Allocation Map page), называемые IAM. Страницы этого типа хранят информацию об экстентах, которые используются конкретными таблицами или индексами.

Организация страницы данных(параметры):

  • номер страницы в формате <номер файла, номер страницы>;

  • идентификатор объекта, которому принадлежит страница;

  • номер индекса, которому принадлежит страница;

  • уровень внутри индексного дерева, которому принадлежит страница;

  • количество отведенных строк на странице, количество заполненных слотов;

  • общий объем свободного пространства на странице;

  • указатель на расположение свободного пространства после последней строки на странице;

  • минимальная длина строки на странице;

  • объем зарезервированного пространства.