- •Ю. В. Любицкий
- •Базы данных
- •Содержание
- •Предисловие
- •Введение
- •1. Основные понятия баз данных
- •1.1. Банк данных и его компоненты
- •1.2. Модели данных
- •Пользователи
- •Прикладные
- •СУБД
- •Филиал
- •Магазин
- •Склад
- •Товар
- •Дирекция
- •Подразделение
- •Сотрудники
- •Филиал
- •Дирекция
- •Подразделение
- •Магазин
- •Сотрудники
- •Склад
- •Товар
- •2. Целостность баз данных
- •3. Внутренняя организация СУБД
- •3.1. Общие положения
- •3.2. Линейный список
- •3.3. Инвертированный список
- •3.4. Индексы
- •3.5. Хеширование
- •Область переполнения
- •3.6. Кластеризация
- •4. Распределенная обработка данных
- •4.1. Режимы работы с базой данных
- •4.2. Архитектура «клиент-сервер»
- •4.3. Модели «клиент-сервер»
- •4.4. Управление распределенными данными
- •Параллельный
- •СУБД
- •Приложения
- •СУБД
- •СУБД
- •СУБД
- •5. Восстановление баз данных
- •5.1. Транзакции
- •5.2. Журнал транзакций
- •5.3. Выполнение транзакций в многопользовательских системах
- •6. Защита баз данных
- •7. Основы проектирования реляционных баз данных
- •7.1. Этапы проектирования
- •7.2. Построение концептуальной модели предметной области
- •7.3. Логическое проектирование базы данных
- •7.4. Нормализация отношений
- •7.5. Автоматизированные технологии проектирования баз данных
- •Директор
- •Магазин
- •Название
- •Адрес
- •Работник
- •Продавец
- •Адрес
- •Руководит
- •Товар
- •Артикул
- •Название
- •Цена
- •Фасует
- •Магазин
- •Продавец
- •Товар
- •Заключение
- •Библиографический список
37
3.6. Кластеризация
Кластеризация использует принцип близкого размещения во внешней памяти логически связанных данных. Этим обеспечиваются быстрый поиск и извлечение необходимой информации.
Физически кластеризация достигается размещением логически связанных записей на одной странице (если сделать это позволяют размеры страниц и записей) или на страницах, расположенных рядом. Если из таблицы Сведения о поставках товаров в магазин часто извлекаются сведения для товаров с одинаковыми названиями, а на каждой странице во внешней памяти размещаются две записи, структура хранения может иметь вид (табл. 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) с указателями на первые записи, входящие в каждый кластер (блок).
Рассмотренный способ кластеризации реализуется для одного логического объекта (файла) базы данных. Такая кластеризация называется внутрифайловой