Расщепление таблиц может потребоваться в том случае, если какая-то из таблиц проекта содержит редко используемую группу полей. Например, в запросах используются основные признаки объекта, а более детальная информация бывает востребована редко: в итогах, сводках, и т.д.
Имеет смысл расщепить такую таблицу на две или более частей, связав их по какому-либо признаку объекта. Также повышает производительность системы расщепление таблицы, если к части данных необходимо ограничить доступ пользователей. К конфиденциальным данным можно отнести информацию о адресах заказчиков, зарплате сотрудников, деталях контрактов и т.д. В том случае закрытая информация обосабливается в отдельные таблицы, и доступ к ним пользователей ограничивается.
Можно использовать присоединение данных через сеть, ограничив доступ пользователей к данным средствами сетевой ОС. Рассмотрим расщепление на примере таблицы "Преподаватели". Отделим личную информацию о преподавателях (домашний адрес, домашний телефон, зарплата) от служебной (стаж, должность и т.д.). Создадим копию проекта базы данных, т.к. расщепление таблицы будет нести демонстрационный характер, и в следующих лабораторных работах мы будем пользоваться сохраненным вариантом. Для создания копии базы средствами Windows или Dos скопируем закрытый проект базы данных (файл STUD.mdb) в другой каталог.
Простейший метод расщепления таблицы - создание ее копии, удаление из обеих таблиц лишних полей; настройка связей - и занесение модифицированных таблиц обратно в проект.
Рассмотрим общий алгоритм расщепления таблиц:
1. Создаем 2 копии таблицы. 2. Обеим копиям таблиц даются уникальные имена. 3. Из обеих таблиц удаляются лишние поля. 4.В окне "Свойства таблиц" удаляются все условия на значение, содержащие в себе ссылки на удаленные поля. 5. В окне "Индексы" удаляются все индексы и ключи, построенные на удаленных полях. 6. При необходимости генерируются первичные ключи для созданных таблиц (возможно введение нового поля типа "Счетчик"). 7. В окне "Схема данных" (команда "Схема данных" меню "Сервис"), выбирается режим "Все связи" нажатием соответствующей кнопки на панели инструментов. 8. Удаляются все связи между таблицей - оригиналом и другими таблицами (щелкая по линии связи таблиц для активизации связи и нажимается клавиша "Del" на клавиатуре). 9. В схему данных вводятся таблицы - копии (щелкнув на кнопке "Добавить таблицу" панели инструментов). 10. Устанавливаются связи таблиц - копий с другими таблицами. 11. Возможно, удаляется таблица - оригинал. 12. Сохраняется структура проекта БД.
Применительно к таблице "преподаватели":
- создадим таблицы "Преподаватели_личное" с полями "Зарплата", "Адрес_дом", "Телефон_дом",”Номер_П” ; и "Преподаватели_служебное", со всеми оставшимися полями плюс "Номер_П" для связи; - удаляем индексы на таблице "Преподаватели" и описание первичного ключа по полю "Номер_П"; - В окне схемы данных устанавливаем связи: "Преподаватели_служебное.Номер_П" с "Занятия.Номер_П" типа “один-ко-многим” и "Преподаватели_служебное.Номер_П" с "Преподаватели_личное.Номер_П" типа “один-к-одному”; - удаляем таблицу "Преподаватели"; - сохраняем проект под именем STUD_2.mdb.