Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лаборатор access.doc
Скачиваний:
41
Добавлен:
02.02.2015
Размер:
33 Мб
Скачать
☆

2.2. Модификация структуры базы данных.

Модификация самой структуры БД включает в себя возможности расщепления, объединения таблиц; изменения первичных ключей и структуры связей между таблицами.

2.2.1. Изменение первичных ключей базы данных.

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

Выходом из этой ситуации является или выбор "более уникального" поля, или же вводится поле типа "Счетчик", значение которого никогда не повторяется. В нашей таблице таким полем является "Номер_П", поскольку у каждого преподавателя свой уникальный номер.

Переопределение первичного ключа производится или сбросом определения ключа в описании индексов (команда "Индекс" меню "Вид" выводит список индексов БД, в ней активизируем строку "Первичный ключ" для поля, являющегося первичным ключом, и нажимаем кнопку "Del" клавиатуры); а затем установив новый первичный ключ (командой "определить ключ" меню "Правка"). Либо же активизацией поля будущего первичного ключа, и щелчком на кнопке "Первичный ключ" панели инструментов.

Для определения ключа можно выделить несколько полей одновременно. Для этого удерживаем нажатой клавишу "Ctrl" клавиатуры и щелкаем по области маркировки требуемых строк. При невозможности переопределения выводится информационное окно Access.

2.2.2. Модификация структуры связей базы данных.

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

Сложная структура связей базы, особенно с множественными связями, при установленных требованиях каскадного обновления и удаления, связанных полей, приводит к замедлению работы Access. Поэтому после создания базы и какого-то периода ее эксплуатации рекомендуется пересмотреть структуру таблиц и их связей в целях оптимизации.

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

2.2.3. Расщепление таблиц.

Расщепление таблиц может потребоваться в том случае, если какая-то из таблиц проекта содержит редко используемую группу полей. Например, в

запросах используются основные признаки объекта, а более детальная информация бывает востребована редко: в итогах, сводках, и т.д.

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

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

Можно использовать присоединение данных через сеть, ограничив доступ пользователей к данным средствами сетевой ОС.

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

Создадим копию проекта базы данных, т.к. расщепление таблицы будет нести демонстрационный характер, и в следующих лабораторных работах мы будем пользоваться сохраненным вариантом. Для создания копии базы средствами Windows или Dos скопируем закрытый проект базы данных (файл STUD.mdb) в другой каталог.

Простейший метод расщепления таблицы - создание ее копии, удаление из обеих таблиц лишних полей; настройка связей − и занесение модифицированных таблиц обратно в проект.

Рассмотрим общий алгоритм расщепления таблиц:

1. Создаем 2 копии таблицы.

2. Обеим копиям таблиц даются уникальные имена.

3. Из обеих таблиц удаляются лишние поля.

4.В окне "Свойства таблиц" удаляются все условия на значение, содержащие в себе ссылки на удаленные поля.

5. В окне "Индексы" удаляются все индексы и ключи, построенные на удаленных полях.

6. При необходимости генерируются первичные ключи для созданных таблиц (возможно введение нового поля типа "Счетчик").

7. В окне "Схема данных" (команда "Схема данных" меню "Сервис"), выбирается режим "Все связи" нажатием соответствующей кнопки на панели инструментов.

8. Удаляются все связи между таблицей − оригиналом и другими таблицами (щелкая по линии связи таблиц для активизации связи и нажимается клавиша "Del" на клавиатуре).

9. В схему данных вводятся таблицы − копии (щелкнув на кнопке "Добавить таблицу" панели инструментов).

10. Устанавливаются связи таблиц − копий с другими таблицами.

11. Возможно, удаляется таблица − оригинал.

12. Сохраняется структура проекта БД.

Применительно к таблице "Преподаватели":

−создадим таблицы "Преподаватели_личное" с полями "Зарплата", "Адрес_дом", "Телефон_дом",”Номер_П”; и "Преподаватели_служебное", со всеми оставшимися полями плюс "Номер_П" для связи;

−удаляем индексы на таблице "Преподаватели" и описание первичного ключа по полю "Номер_П";

−В окне схемы данных устанавливаем связи: "Преподаватели_служ- ебное.Номер_П" с "Занятия.Номер_П" типа “один-ко-многим” и "Преподаватели_служебное.Номер_П" с "Преподаватели_личное.Номер_П" типа “один-к-одному”;

−удаляем таблицу "Преподаватели";

−сохраняем проект под именем STUD_2.mdb.