Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Чичкань.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
2.15 Mб
Скачать
      1. 9.2. Представлення екземпляра логічного запису

Логічний запис представляється в оперативній пам'яті таким чином:

Логічний запис

Послідовність байтів ОП

Поле 1

Поле 2

...

Поле N

B1

B2

...

BN

Тип поля

Bi – послідовність байтів ОП, використовувана для зберігання поля i

Характеристика поля

Довжина

Пряма адресація байтів дозволяє процесору вибирати для обробки потрібне поле.

Відмітимо, що вказане представлення не відрізняється для записів у мережевій, ієрархічній і реляційних моделях. У випадку мережевої та ієрархічної моделей деякі поля можуть бути покажчиками, тоді послідовність байтів, використовувана для зберігання цих полів, містить адресу початку послідовності байтів, відповідному запису – члену відношення.

У більшості сучасних СУБД використовується формат записів фіксованої довжини. У цьому випадку всі записи мають однакову довжину, яка визначається сумарною довжиною полів, що складають запис. У СУБД інші формати записів (змінної довжини, невизначеної довжини) зустрічаються набагато рідше, тому в наших лекціях ці формати не будемо розглядати. Відмітимо, що поля запису, що набувають значень істотно різної довжини в різних екземплярах записів, у предметній області зустрічаються досить часто. Прикладом може служити поле резюме в запису СПІВРОБІТНИК. Резюме може складати пів сторінки тексту, сторінку і т. д. Виникає проблема – як цю інформацію змінної довжини представити в запису фіксованої довжини. Можливим варіантом є встановлення розміру відповідного поля за максимальним значенням. У цьому випадку в багатьох екземплярах запису вказане поле буде заповнено не повністю і, таким чином, пам'ять ЕОМ використовуватиметься неефективно. Ефективніший і часто використовуваний в СУБД прийом організації таких записів полягає в наступному. Замість поля (полів), що набуває значення істотно різної довжини, в запис включається поле-покажчик на область пам'яті, де розміщуватиметься значення вихідного поля. Як правило, ця область є областю зовнішньої пам'яті прямого доступу. В процесі введення відповідного значення у виділеній області займається стільки пам'яті, яка довжина цього значення.

На мал. 9.2 представлений приклад вищезгаданого представлення екземплярів записів з N полів, причому поле N набуває (приймає) значень відповідно різної довжини в різних екземплярах записів.

Мал. 9.2.  Представлення полів змінної довжини

Конкретною реалізацією такої схеми є поле типа МЕМО в СУБД (dBase III+, FoxPro, Access і т.д.).

      1. 9.3. Організація обміну між оперативною і зовнішньою пам'яттю

Одиницею обміну даними між оперативною і зовнішньою пам'яттю є фізичний запис. Фізичний запис читається (записується) за одне звернення до зовнішньої пам'яті. Зокрема, фізичний запис може відповідати одному екземпляру логічного запису. Кількість звернень до зовнішньої пам'яті при роботі з базою даних суттєво впливає на час відгуку системи. У зв'язку з цим для зменшення кількості звернень до БД при роботі з нею збільшують довжину фізичного запису (об'єднують в один фізичний запис декілька екземплярів логічних записів). У цьому випадку фізичний запис називають також блоком,

Кількість k екземплярів логічних записів, що складають фізичний запис, називають коефіцієнтом блокування.

Введення вихідних даних у БД здійснюється таким чином:

  • в ОП послідовно вводяться k екземплярів логічних записів (кортежів);

  • введені k екземпляри об'єднуються у фізичний запис (блок);

  • фізичний запис заноситься в зовнішню пам'ять.

Введення k екземплярів записів вихідної таблиці, що складають i‑ий фізичний запис, зображене на мал. 9.3.

Мал. 9.3.  Схема занесення записів у зовнішню пам'ять

Обробка даних, що зберігаються в зовнішній пам'яті, здійснюється таким чином:

  • фізичний запис (блок) прочитується в оперативну пам'ять;

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

У деяких СУБД (наприклад, MS SQL Server) одиницею обміну між оперативною і зовнішньою пам'яттю є сторінка (вид фізичного запису, розмір якого фіксований і не залежить від довжини логічного запису). Організація обміну між оперативною і зовнішньою пам'яттю у цьому випадку аналогічна вищеописаній. Відмінність тут полягатиме в тому, що екземпляри логічних записів формуються в буфері, розміром у сторінку, якщо розмір сторінки не кратний довжині логічного запису, сторінка може бути заповнена неповністю, фізичний запис на зовнішньому носієві, відповідно, буде заповнений не повністю.