- •Примерный перечень вопросов и типовых заданий для промежуточного контроля по учебной дисциплине «Базы данных»
- •Тема 1. Введение, основные понятия определения. Этапы развития баз данных. Принципы организации современных бд и субд
- •Тема 2. Реляционная модель данных, реляционная алгебра
- •Тема 3.Язык sql. Формирование запросов к базе данных
- •Тема 4. Операторы манипулирования данными языке sql
- •Тема 5. Проектирование баз данных
- •Тема 6. Многопользовательский режим работы с бд. Модели «клиент-сервер» в системах баз данных. Архитектура серверов баз данных
- •Тема 7. Транзакции, оперативная обработка транзакций (oltp)
- •Тема 8. Встроенный sql. Понятие курсора
- •Тема 9. Хранимые процедуры как базовый компонент серверной части информационных систем
- •Тема10. Триггеры как механизм поддержки семантической целостности в бд
- •Тема 11. Физические модели баз данных
- •11.2.1. Стратегия разрешения коллизий с областью переполнения
- •11.2.2. Организация стратегии свободного замещения
- •Полученное b-дерево может быть представлено так, как изображено на рис. 11.5
- •Моделирование отношения 1:м с использованием однонаправленных указателей
- •Основной файл f1
- •Структура подчиненного файла:
- •Алгоритм нахождения нужных записей подчиненного файла
- •1) Добавление записи на первое место в цепочке;
- •2) Добавление записи в конец цепочки;
- •3) Добавление записи на заданное место в цепочке.
- •Типовые задания
Алгоритм нахождения нужных записей подчиненного файла
Шаг 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. Взаимосвязь двух основных и одного связующего файлов
Какие типы страниц используются в 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. Страницы этого типа хранят информацию об экстентах, которые используются конкретными таблицами или индексами.
Организация страницы данных(параметры):
номер страницы в формате <номер файла, номер страницы>;
идентификатор объекта, которому принадлежит страница;
номер индекса, которому принадлежит страница;
уровень внутри индексного дерева, которому принадлежит страница;
количество отведенных строк на странице, количество заполненных слотов;
общий объем свободного пространства на странице;
указатель на расположение свободного пространства после последней строки на странице;
минимальная длина строки на странице;
объем зарезервированного пространства.