Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
GL_7.doc
Скачиваний:
2
Добавлен:
01.05.2025
Размер:
1.03 Mб
Скачать

Разделение таблиц

Разделение означает разбиение таблицы на части в целях ускорения работы системы. Разделение таблиц может быть горизонтальным или вертикальным.

При горизонтальном разделении таблица делится на две или более таблиц с идентичной структурой. Записи исходной таблицы распределяются между новыми таблицами в соответствии с частотой обращения к ним.

Например, при длительной эксплуатации информационной системы Интернет-магазина в таблицах ЗАКАЗ и КОРЗИНА ЗАКАЗА будет накоплено огромное число записей, что значительно ухудшит производительность системы. Конечно, информация обо всех заказах важна с точки зрения анализа работы нашего магазина и ведения денежной и другой документации и должна храниться длительное время. Однако для текущей работы отдела заказов достаточно хранить информацию лишь о невыполненных или недавно выполненных заказах.

В этом случае целесообразно создать новые связанные между собой таблицы АРХИВ ЗАКАЗОВ и АРХИВ КОРЗИН ЗАКАЗОВ, в которые нужно переписать все записи о заказах, произведенных месяц назад или ранее, кроме записей о невыполненных заказах. Основная работа будет вестись с таблицами ЗАКАЗ и КОРЗИНА ЗАКАЗА, содержащими относительно небольшой объем записей. Операцию перезаписи в архивные таблицы надо будет проводить ежемесячно.

При проведении горизонтального разделения таблицы следует изменить запросы, относящиеся ко всем записям. Теперь они должны включать операцию объединения двух таблиц. Например, при установлении количества заказов, доставленных по Москве за последний год, поиск должен проводиться по временно создаваемой таблице, полученной в результате объединения таблиц ЗАКАЗ и АРХИВ ЗАКАЗОВ. Такие запросы будут выполняться значительно медленнее, чем поиск в каждой таблице в отдельности. Разделение таблиц оправдано, если запросы к записям архивных таблиц будут выполняться значительно реже, чем к записям основных таблиц.

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

Например, таблицу, содержащую информацию о сотрудниках:

СОТРУДНИК (Табельный номер, Фамилия, Имя, Отчество, Должность, Отдел, Дата рождения, Дата приема на работу, Образование, Специальность, Семейное положение, Количество детей)

можно разделить на две:

СОТРУДНИК (Табельный номер, Фамилия, Имя, Отчество, Должность, Отдел);

СОТРУДНИК-АНКЕТА (Табельный номер, Дата рождения, Дата приема на работу, Образование, Специальность, Семейное положение, Количество детей).

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

Таблицы при вертикальном разделении связаны связью «один-к-одному» по полю первичного ключа исходной таблицы. При запросе полных сведений происходит объединение таблиц по первичному ключу, что замедляет выборку.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]