Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МІСТ Іспит 1 семестр.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
504.83 Кб
Скачать
  1. Структура зберігання даних у зовнішній пам’яті комп’ютера. Розміщення фізичних записів у вигляді спискової структури

Основна проблема у використанні викладеного в п. 9.4.1 способу організації записів полягає у відображенні додавання логічного запису в довільне місце таблиці. При цьому доводиться переписувати в пам'яті (зсувати на одну позицію) фізичні записи, відповідні логічним записам таблиці, розташованим нижче місця вставки рядка, що додається. Відповідну проблему можна усунути, використовуючи для представлення фізичних записів зв'язний список.

Окрім цього списку у ВП формується список вільних елементів ("порожніх" фізичних записів), елементи якого використовуються при введенні нового запису з даними (мал. 9.5).

Нагадаємо, що кожен фізичний запис складається, як і раніше, із k логічних записів.

Розглянемо, як реалізуються основні елементарні операції моделі даних у цій структурі зберігання.

Пошук запису із заданим значенням ключа

Відмітимо, що впорядкування записів за значеннями ключа не дає тут прискорення процедури пошуку. Це пов'язано з тим, що після ряду додавань нових записів і видалення якихось існуючих записів фізична і логічна послідовність записів у списку істотно відрізнятиметься. При цьому буде неможливо за номером запису визначити його адресу і звертатися до запису, відповідної середини таблиці, для реалізації дихотомічного методу пошуку. Тому пошук можна вести лише за допомогою перебору. В ОП зчитується перший запис списку, розблоковується, значення ключових полів логічних записів цього фізичного запису порівнюються із заданим значенням. Якщо значення співпали, потрібний запис знайдений, якщо не збіглися, із записів вибирається адреса наступного запису списку, читається цей запис. Далі процедура повторюється. Середня кількість звернень до ВП буде рівною, як і в 9.4.1, (1+[N/k]) /2.

Читання запису

Після завершення попередньої операції запис зчитується в ОП. Оцінка кількості звернень до ВП таж.

Коректування запису

Зчитаний запис коректується і заноситься у ВП на своє місце (за своєю адресою). Кількість звернень до ВП на одиницю є більшою, ніж при читанні.

Видалення запису

Відмітимо, що ми говоримо про операції над логічними записами. Операція видалення логічного запису аналогічна операції коректування. Службове поле відповідного логічного запису позначається як "видалений запис". Сформований фізичний запис заноситься у ВП. Кількість звернень до ВП рівна ТР+1.

Додавання запису

Для визначеності вважатимемо, що заданий ключ логічного запису, після якого має бути доданий новий запис. Здійснюється операція пошуку і читання фізичного запису, в якому розташований запис з ключем РК. Якщо в цьому блоці є логічний запис, помічений як видалений запис, що додається, заноситься на його місце. Блок записується у ВП. Кількість звернень до ВП рівна ТР+1. Якщо у цьому блоці немає логічних записів, помічених як видалені, необхідно додавати новий фізичний запис, що вибраний із списку вільних елементів. З цією метою адреса зв'язку знайденого раніше фізичного запису замінюється на адресу початку списку вільних елементів.

Читається перший фізичний запис списку вільних елементів. Адреса зв'язку цього запису замінює адресу початку порожнього списку. В ОП формується новий фізичний запис, який буде доданий, що містить логічний запис. В ролі адреси зв'язку заноситься адреса зв'язку з фізичного запису, що передує тому запису який додається. Кожен з цих записів заноситься у ВП. Кількість звернень до ВП при додаванні запису буде приблизно рівною ТР+3.

Розглянутий метод організації структури зберігання досить ефективно вирішує проблеми додавання і видалення записів, але не уникає перебору при пошуку потрібного запису.