
Кластеризація
Кластеризація використовує принцип близького розміщення в зовнішній пам'яті логічно пов'язаних даних. Цим забезпечуються швидкий пошук і витяг необхідної інформації.
Фізично кластеризація досягається розміщенням логічно пов'язаних записів на одній сторінці (якщо зробити це дозволяють розміри сторінок і записів) або на сторінках, розташованих поруч. Якщо з таблиці Відомості про поставці товарів в магазин часто витягуються відомості для товарів з однаковими назвами, а на кожній сторінці у зовнішній пам'яті розміщуються два записи, структура зберігання може мати вигляд (табл. 3.7):
Таблица 3.7 Сведения о поставках товаров в магазин
Номер накладной |
Название товара |
Артикул |
Количество |
Дата поставки |
Номер страницы |
37 |
Костюм |
500 |
50 |
10.12.05 |
1 |
60 |
Костюм |
500 |
35 |
11.12.05 |
1 |
28 |
Костюм |
300 |
20 |
12.12.05 |
2 |
74 |
Костюм |
400 |
50 |
12.12.05 |
2 |
54 |
Сапоги |
200 |
75 |
10.12.05 |
5 |
18 |
Туфли |
100 |
120 |
11.12.05 |
9 |
80 |
Туфли |
100 |
100 |
12.12.05 |
9 |
В результаті з безлічі сторінок формуються блоки, які називаються кластерами, в кожному з яких зберігаються записи з однаковими назвами товарів.
Новий запис, що вводиться в базу даних, повинен бути розміщений в конкретному кластері. Цей процес може бути виконаний на вже наявній сторінці (у розглянутому прикладі, якщо товар називається Чоботи, на сторінці з номером 5) або за відсутності на ній вільного місця, на сторінці фізично найбільш близькою (товар Костюм - на сторінці з номером 3).
Для кластерізірованих таблиць можна створити нещільні індекси (див. п. 3.4) з покажчиками на перші записи, що входять в кожен кластер (блок).
Розглянутий спосіб кластеризації реалізується для одного логічного об'єкта (файлу) бази даних. Така кластеризація називається внутрішньофайловою [2]. Іноді застосовується міжфайлова кластеризація, коли на одній сторінці у зовнішній пам'яті розміщуються записи з декількох логічних об'єктів (файлів) бази даних [2].
Наприклад, на сторінках, де містяться відомості про поставки товарів в магазин з конкретними назвами і артикулами, може зберігатися інформація про такі характеристики цих товарів, як виробник, постачальник, ціна, колір вироби і т. д. з іншого логічного об'єкта. Такий принцип зберігання даних може істотно прискорити виконання запитів, що включають критерії відбору для характеристик, збережених спільно, але він уповільнює пошук інформації для всіх інших запитів. Тому кластеризація є виправданою, якщо до бази даних найбільш часто виконуються запити одного типу. При цьому слід мати на увазі, що одночасно можна реалізувати тільки один варіант кластеризації бази даних, так як мова йде про фізичну зберіганні інформації.