Задание №2 - Кафедра анализа данных и исследования операций

advertisement
Домашнее задание 2.
Срок сдачи – 31 марта ДО лекции, после лекции задания приниматься не будут. Задания могут
сдаваться в лаборантскую кафедры (Айслу) в любой из предыдущих дней.
В задании приведите условия задач и явно укажите все сделанные вами дополнительные
предположения, если таковые у вас имеются. Будьте внимательны, для решения могут
понадобиться не все условия. Если вам кажется, что условий не хватает, проанализируйте
имеющиеся данные, возможно, их будет вполне достаточно для ответа на поставленный вопрос.
Задавайте вопросы на idb-help@ksu.ru
Реляционная база данных содержит 3 таблицы: С (компании), Р(продукты) и М (модели) со
следующими характеристиками.
Таблица С:
 Записи фиксированного формата имеют фиксированную длину – 1200 байт.
 В таблице 10000 кортежей.
 Кортежи содержат ключевой атрибут C.N (номер компании) длиной 20 байт, остальное
занимают другие атрибуты и заголовок записи.
 Имеется индекс, построенный на атрибуте C.N.
Таблица Р:
 Записи фиксированного формата имеют фиксированную длину – 300 байт
 В таблице 30000 кортежей.
 Кортежи содержат ключевой атрибут Р.N (номер компании, производящей продукт)
длиной 20 байт, остальное занимают другие атрибуты и заголовок записи.
 Имеется индекс, построенный на атрибуте Р.N.
 Кортежи содержат также атрибут Р.I (идентификатор продукта) длиной 20 байт.
 Имеется индекс, построенный на атрибуте Р.I.
Таблица М:
 Записи фиксированного формата имеют фиксированную длину – 100 байт
 В таблице 150000 кортежей.
 Кортежи содержат атрибут М.I (идентификатор продукта) длиной 20 байт, остальное
занимают другие атрибуты и заголовок записи.
 Имеется индекс, построенный на атрибуте М.I.
Хотя число продуктов может быть различным для разных компаний, для оценки мы можем
предположить, что каждая компания имеет 3 продукта, каждый продукт имеет 5 моделей (т.е.
каждая компания имеет 15 моделей).
Записи должны быть помещены в файл с блоками размером 4КВ (4096 байт) для хранения
одного или нескольких типов записей типа С,Р или М (записи других типов отсутствуют). В
каждом блоке заголовок занимает 50 байт, записи без продолжения (не могу переходить в
другой блок). Рассматриваются три способа организации:
1. Последовательная.
 Все записи типа С помещаются в отсортированном (по С.N) виде в подмножество
последовательных блоков файла.

Все записи типа Р помещаются в не отсортированном виде в другое
подмножество блоков файла.
 Все записи типа М помещаются в не отсортированном виде в третье
подмножество блоков файла.
2. С кластеризацией.
 Для каждой записи С соответствующие записи Р (C.N = P.N) помещаются в тот же
блок.
 Подобным образом, 15 соответствующих записей М помещаются в тот же самый
блок.
 Записи С в файле не упорядочены.
3. Случайным образом.
 Записи располагаются следующим образом без какой-либо связи между атрибутами C.N,
P.N, P.I, M.I. Каждый блок содержит одну запись С, 3 записи Р и 15 записей М.
Предполагается, что основную массу запросов к базе данных образуют следующие:
1. Поиск. По заданному номеру компании найти ее запись.
2. Отсортированный список. Выдать список записей для всех компаний, отсортированный
по номеру компании.
3. Простая выборка. Выдать список записей компаний в произвольном порядке.
4. Соединение. Для заданного номера компании C.N получить запись компании, за которой
следуют записи всех ее моделей (для всех моделей, для которых M.I = P.I, где продукт Р
такой, что P.N = C.N)
Задача 1 (40 очков)
Для каждого способа организации, вычислите необходимое число блоков для хранения всех
записей С, Р и М. Кратко поясните результат. Результаты поместите в таблицу приведенную
ниже
Задача 2 (60 очков)
Для каждого способа организации и каждого типа запросов вычислите, сколько блоков
необходимо прочитать с диска для выполнения запроса. Кратко поясните результат. Результаты
поместите в таблицу приведенную ниже
Предполагается, что имеется только один буфер в оперативной памяти размером 4КВ,
следовательно, каждый раз, когда вам нужен блок, это считается одной операцией ввода/вывода
(за исключением случая, когда требуемый блок уже находится в буфере). Кроме того, имеется
память для хранения по одному экземпляру каждого типа записи в рабочей области. Например,
для соединения С и Р, можно прочитать первый блок в буфер и скопировать запись С в рабочую
область. Затем в буфер читается блок(и) с записями Р и выполняется соединение двух записей с
равными значениями соответствующих атрибутов.
Все операции с индексами можно игнорировать, предполагая, что все индексы располагаются в
памяти.
Представление результатов в таблице.
В задачах 1 и 2 вам необходимо вычислить 15 значений. Сведите их в следующей таблице:
Требуемая
память (в
блоках)
Операций
ввода/выв.
(блоков)
для запр.1
Операций
Ввода/выв.
(блоков)
для запр. 2
Операций
ввода/выв.
(блоков)
для запр. 3
Операций
ввода/выв.
(блоков)
для запр. 4
Последовательная
С кластеризацией
Случайная
Это только форма ответа, вам необходимо не только привести результаты, но
и пояснить их.
Пожелание: не старайтесь принять во внимание маловероятные события. Например, если вы
хотите получить три записи продуктов для конкретной компании, и эти записи размещены
случайно в большом количестве блоков. Есть очень маленькая вероятность, что эти три записи
окажутся в одном и том же блоке, однако имеет смысл предположить, что для получения этих
трех записей потребуется ровно 3 операции ввода/вывода.
Download