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

Базы данных

0


Подпишитесь на бесплатную рассылку видео-курсов:

Ответ студента Владимир из группы Эб-45-12

Последовательное размещение физических записей: В этой структуре хранения записи в памяти размещаются последовательно друг за другом. Как уже отмечалось, считаем, что все записи имеют равную длину. Физический адрес записи может быть легко вычислен по номеру записи (для вычисления необходимо знать формат соответствующей физической записи). Физическая запись с номером I содержит логические записи с номерами (I – 1) k+1 (I – 1) k+2 … (I – 1) k+k I = 1, 2, …, ?N k? ; знаком ?N k? обозначим ближайшее целое, большее или равное N/k, –целое сверху. Рассмотрим, как реализуются основные элементарные операции модели данных в этой структуре хранения, и оценим число этих операций. Напомним, что с точки зрения пользователя в табличной моде- ли данных эти операции является операциями над строками (столбцами) таблицы. Поиск записи с заданным значением ключа При последовательной структуре хранения поиск может осуществляться только перебором. Читается первая физическая запись, в ОП она разбивается на k логических записей (разблокируется), заданное значение ключа сравнивается со значением ключа каждой логической записи. При несовпадении читается следующая физическая запись и процесс повторяется. В лучшем случае нужная запись будет найдена за одно обращение, в худшем – необходимо считать все физические записи. Среднее число обращений к внешней памяти для поиска нужной записи ТР определяется следующей формулой ТР = (1+ ?N k ?)/2 , где N – число логических записей, k – коэффициент блокировки, ?N k? – число физических записей. Чтение записи с заданным значением ключа Сначала необходимо найти нужную запись (смотри операцию «поиск»). После окончания операции «поиск» нужная запись уже считана в ОП. Число обращений к ВП равно ТР. Корректировка записи Сначала необходимо найти нужную запись (смотри операцию «поиск»). После окончания операции «поиск» в ОП найденная логическая запись корректируется, формируется физическая запись (блокировка) и заносится во внешнюю память по тому адресу, откуда она была считана. Число обращений к ВП равно ТР+1. Удаление записи Аналогична операции корректировки. Служебное поле соответствующей логической записи помечается как «удаленная запись». Число обращений к ВП равно ТР+1. Добавление записи Рассмотрим два случая. В первом случае пользователь вводит новую логическую запись в конец таблицы. Тогда вводимая логическая запись добавляется в конец файла. Она заносится либо в последнюю физическую запись (если в ней меньше k логических записей – блок неполон), для чего эта запись должна быть считана в ОП, или формируется новая физическая запись, которая заносится в конец файла. Число обращений к ВП равно соответственно либо 2, либо 1. Во втором случае пользователь вводит новую логическую запись в указываемую им i-ю строку таблицы (i=1, 2, …, n). В этом случае читается физическая запись с номером ?(i ?1) k? , содержащая i-ю логическую запись. Если соответствующая физическая запись содержит пустые логические записи, то добавляемая запись вставляется в этот блок, блок записывается на свое место в ВП. Число обращений к ВП равно 2. Если указанная физическая запись содержит k экземпляров логических записей исходной таблицы, читается физическая запись с номером i k . Если эта физическая запись содержит пустые логические записи, добавляемая запись вставляется в этот блок, блок записывается на свое место в ВП. Суммарное число обращений в этом случае будет на единицу больше и равно 3. Если физические записи с номерами (i ?1) k и i k содержат по k экземпляров исходных логических записей, необходимо формировать дополнительную физическую запись. Соответствующий блок будет содержать добавляемую логическую запись и k-1 пустых логических записей. Блоки с номерами i k , (i +1) k , … N k переписываются на одну позицию ниже (сдвигаются). Сформированная физическая запись заносится на освободившееся место (место записи с номером i k ). В лучшем случае (i = N) ни один блок не сдвигается. В худшем случае (i = 1) сдвигаются все блоки. Среднее число обращений к ВП для перезаписи блоков (чтение + запись) составит 2 N k /2. Тогда суммарное число обращений к ВП при добавлении записи в этом случае будет равно 3+ N k . Последовательное размещение физических записей с упорядочением по ключу: В этом случае исходные логические записи упорядочиваются по ключу, затем объединяются в физические записи. Значением ключа физической записи является максимальное значение ключей логических записей соответствующего блока. Таким образом, физические записи становятся также упорядочены. Этот порядок определяет последовательность размещения записей в ВП. Заметим, что как и в предыдущем случае, можно вычислить физический адрес записи по номеру и непосредственно обратиться к записи по этому адресу. Рассмотрим, как реализуются основные элементарные операции. Поиск записи с заданным значением ключа Поиск осуществляется дихотомическим методом. Номер физической записи, соответствующей середине файла, определяется ближайшим целым числом к числу N k /2. По этому номеру определяется номер физической записи, и запись считывается в ОП. Проверяется, лежит ли запись с заданным значением ключа выше или ниже указанной записи. Соответствующая половина файла делится пополам, процесс повторяется до тех пор, пока не будет найдена искомая физическая запись. Число обращений к памяти ТР = С log2 N k , где С – некоторая константа. После этого в ОП найденная запись разблокируется, в ней ищется нужная логическая запись. Чтение записи Аналогично операции поиска. Число обращений к ВП равно ТР. Корректировка и удаление записи По аналогии с соответствующим описанием в п. 5.4.1. Число обращений к ВП равно ТР+1. Добавление записи Необходимость сохранения упорядочения по ключу обусловливает повышенную трудоемкость соответствующей операции. Прежде всего находится физическая запись, после которой должна быть размещена добавляемая запись. Читается следующая физическая запись, и проверяется полнота соответствующего блока. Если блок не полный, логическая запись вставляется в этот блок, блок записывается на свое место в ВП. Если блок полон, то формируется новая физическая запись, которая будет состоять из одной добавляемой логической записи. Число обращений к ВП при этом равно ТР+2. Для высвобождения места этой физической записи все последующие блоки переписываются на одну позицию ниже (сдвигаются). Сформированная физическая запись записывается на освободившееся место. Среднее число обращений к ВП для перезаписи блоков (чтение+запись) оценивается так же, как в п. 5.4.1. и составляет N k . Тогда суммарное число обращений к ВП при добавлении записи равно ТР+2+ N k . Заметим, что при таком способе организации структуры хранения время поиска, чтения, корректировки, удаления будет существенно меньше, чем в предыдущем случае: С log2 N k<< (1+ N k )/2. Время добавления записей будет существенно больше. Кроме того, необходимо заметить, что, как правило, вышеуказанные операции производятся с записями, задаваемыми значениями ряда вторичных ключей, и упорядочение по первичному ключу не сокращает времени соответствующих операций. В связи с этим вышеуказанный способ организации структуры хранения в современных СУБД практически не используется.


Нужно высшее
образование?

Учись дистанционно!

Попробуй бесплатно уже сейчас!

Просто заполни форму и получи доступ к нашей платформе:




Получить доступ бесплатно

Ваши данные под надежной защитой и не передаются 3-м лицам


Другие ответы по предмету

Фундаментальные свойства отношений.
Фундаментальные свойства отношений.
Представления о данных в базах данных.
Представления о данных в базах данных.
Информация и данные.
Информация и данные.
Состав и основные функции системы управления база...
Состав и основные функции системы управления база...
Свойства и характеристики реляционной модели данн...
Свойства и характеристики реляционной модели данн...