

Министерство цифрового развития, Связи и Массовых Коммуникаций Российской Федерации Ордена Трудового Красного Знамени федеральное государственное бюджетное образовательное
учреждение высшего образования «Московский Технический Университет Связи и Информатики» (МТУСИ)
Кафедра «Сетевые информационные технологии и сервисы»
Контрольная работа
по дисциплине:
Принципы построения систем управления базами данных и знаний
Выполнил: студент группы БСТ2154 Архангельский Максим Вячеславович Студенческий билет № ЗБСТ21001 Вариант №2 Проверил:
доцент, к.т.н., Гадасин Д.В.
Москва 2024
|
Оглавление |
Задание 1.................................................................................................................. |
3 |
Задание 2.................................................................................................................. |
4 |
Задание 3.................................................................................................................. |
5 |
Задание 4.................................................................................................................. |
6 |
Задание 5.................................................................................................................. |
7 |
Задание 6.................................................................................................................. |
7 |
Задание 7................................................................................................................ |
10 |
Задание 8................................................................................................................ |
11 |
Задание 9................................................................................................................ |
12 |
Задание 10.............................................................................................................. |
12 |
Задание 11.............................................................................................................. |
13 |
Задание 12.............................................................................................................. |
13 |
2

Задание 1
Задача к решению 1.1
Для указанных ниже полей произвести конструирование записей постоянной длины. Запись представить в виде графика, на котором должны быть отображены имена полей, номера байт, с которых начинаются поля. Определить общую длину записи. Запись: отношение Работник включает в себя четыре поля
Исходные данные для задачи:
2.Адрес – символьная строка типа VARCHAR(255), представляемая массивом из 256 байтов в соответствии с одной из схем.
3.Пол – единственный байт, содержащий код одного из двух допустимых символов – «М» или «Ж»
4.Дата_рождения – величина типа DATE (3-байтовое представление значений дат SQL)
6. Время и дата трудоустройства - величина типа DATETIME (8-байтовое представление значений дат SQL)
Таким образом общая длина записи отношения Работник составляет 256 + 1 + 3 + 8 = 268
байт.
Схематически запись выглядит следующим образом
Рис.1 Схематическая запись кортежа
Задача к решению 1.2.
Для указанных полей произвести конструирование записей постоянной длины. При решении задачи принять во внимание что каждая запись смещена на ту же величину что и поля в этой записи. Величина смещения равна n. Запись представить в виде графика, на котором должны быть отображены имена полей, номера байт, с которых начинаются поля. Определить общую длину записи.
включает в себя четыре поля Исходные данные для задачи:
N = 4
2.Адрес – символьная строка типа VARCHAR(255), представляемая массивом из 256 байтов в соответствии с одной из схем.
3.Пол – единственный байт, содержащий код одного из двух допустимых символов – «М» или «Ж»
4.Дата_рождения – величина типа DATE (3-байтовое представление значений дат SQL)
3

6. Время и дата трудоустройства - величина типа DATETIME (8-байтовое представление значений дат SQL)
n = 4. начинаем с первого поля, смотрим на количество байт, если число кратно 4, не прибавляя переходим к следующему полю,
если число не кратно, то находим ближайшее число кратное 4 и добавляем необходимое количество байт.
Переходим к следующему полю и проверяем на соответствие двум условиям, отмечаем на графике, аналогично поступаем с остальными полями.
256 + 4 + 4 + 8 = 272
Рис.2 Формат записи кортежа
Задание 2
Задача к решению 2.
При проектировании структур записей нередко в самой записи необходимо хранить порции дополнительной информации, не относящиеся ни к одному из полей, например:
1.Данные о схеме записи, либо указатель на то место, где СУБД сохраняет схему записи данного типа.
2.Сведения об общей длине записи.
3.Данные о моменте последнего обращения к записи с целью ее считывания или модификации.
Поэтому во многих случаях в структуру записи включается заголовок, состоящий, как правило, из небольшого количества байтов с дополнительными данным того или иного вида. СУБД, сохраняет и поддерживает в актуальном состоянии информацию схемы отношения, которая, по существу, отображает содержимое соответствующей команды CREATE TABLE:
1.Перечень названий атрибутов.
2.Список типов атрибутов
3.Порядок следования компонентов атрибутов в кортеже.
4.Ограничения, касающиеся отдельных атрибутов и/или отношения в целом (сведения о первичном ключе, ограничения принадлежности значений некоторому допустимому диапазону или множеству).
Составить запись с заголовком и представить ее в графическом виде. Исходные данные: Заголовок – 24
4

Структура записи выглядит следующим образом
Рис.3 Структура записи с 296 байтами Теперь длина записи составляет: 296
Задание 3
Группирование записей постоянной длины в блоках
Записи, представляющие кортежи отношения, хранятся в дисковых блоках и перемещаются в оперативную память при необходимости их считывания или обновления. Структура блока, содержащего записи отношения.
Рис4. Структура типичного блока записей.
Блок может быть снабжен необязательным заголовком, способным содержать следующую информацию:
-ссылки на один или несколько других блоков, являющихся частью сети блоков, которая используется для создания структур индексов;
-сведения о функции, выполняемой блоком в составе подобной сети блоков;
-данные о том, кортежи какого отношения представляются записями текущего блока;
-таблицу со значениями смещения каждой записи от начала блока;
-идентификатора блока;
-значения моментов времени последнего обращения к блоку и/или его модификации.
В простейшем случае блок содержит записи, отвечающие кортежам одного отношения и формат этих записей фиксирован. Поэтому вслед за заголовком в блоке располагается такое количество записей, которое удается уместить; оставшееся пространство блока не используется.
5
Задача к решению 3.
Необходимо упаковать в блоки размером A байт содержимое отношения типа Работник; каждый кортеж отношения представляется записью, структура которого должна соответствовать рис.1. Значение длины записи необходимо взять из решения задания 1.2 своего варианта. Под заголовок блока отводится число, соответствующее длине заголовка из задания 2 своего варианта. Необходимо найти количество записей и количество оставшихся байт.
Исходные данные для задачи: Заголовок 24 и Блок 2048
Для того, чтобы рассчитать количество записей необходимо от размера общего блока отнять размер заголовка блока, который равен размеру заголовку записи 2048 - 24 = 2024
После того как мы получили фактический размер блока, в котором мы можем размещать записи мы можем посмотреть сколько записей у нас влезает в этот объем: 2024/272 = 7
Осталось посчитать остаток, так как числа получись не целыми. 2024 - 272 * 7 = 120
Для размещения записей возможно использовать 2024 байта, в которых поместятся 7 записей, 120 байт остаются свободными.
Задание 4
Задача к решению 4.
Пусть дано отношение, содержащее A кортежей, причем для хранения 10 используется блок B байт. Длина ключевого поля равна С, Указатель D, Заголовок блока E. Необходимо найти:
1.количество пар «ключ-указатель»
2.количество блоков для построения плотного индекса
3.по алгоритму бинарного поиска определить количество операций, которое потребуется совершить, чтобы достать запись.
Исходные данные: Вариант 2
Для начала нам необходимо найти количество пар «ключ-указатель». Так как длина ключевого поля равна 96 байтам, а размер указателя - 2 байтам, с учетом расходов на заголовок блока в 88 байт и размером блока 2048-байтовый заголовок тогда поместить 20 пар «ключ-указатель».
(2048 - 88)/(96+2) = 20
Теперь перейдем к количеству блоков, которое понадобится для построения плотного индекса, для этого изначальное количество кортежей необходимо разделить на количество пар «ключ-указатель»:
1000000 / 20 = 50000
Теперь перейдем к количеству операций, которое понадобится для нахождения ключа. log2(50000) ≈ 15.61 = 16 (Прошу отметить, что в последующих решениях все числа будут
округляться в большую сторону, если в десятичном разряде после запятой будет больше или равно 5)
Для отыскания нужного ключа придется выполнить 16 обращений к блокам индекса.
6