Создать составные индексы

3.1. Открыть для таблицы Адреса, находящейся в режиме Конструктора таблиц, окно Индексы и просмотреть его содержимое.

3.2. Создать новый индекс Пол, предназначенный для ускорения процесса поиска и выполнения запросов по данному полю.

3.3. Создать новый составной индекс ГорУлиДом, включив в его состав поля Город, Улица, Дом.

3.4. Находясь в окне Индексы и переходя от строки PrimaryKey к
ГорУлиДом, просмотреть расположенные ниже Свойства поля и дать объяснения увиденным свойствам индексов. Окно Индексы для таблицы Адреса будет выглядеть примерно так, как показано на рис.11.1.

3.4.1. Для получения сведений о свойствах индексов прочитать пояснения, размещенные в области Свойства индекса окна Индексы, а также раздел подсказки (F1), посвященный этому вопросу.

3.5. Создать составной индекс ФамИмяРожд, включающий поля
Фамилия, Имя, Рожд.

3.6. Открыть для таблицы Личности, находящейся в режиме Конструктора таблиц, окно Индексы и просмотреть его содержимое.

3.6.1. Добавить в составной индекс ГорУлиДом поле Квартира.

3.6.2. Сделать составной индекс ГорУлиДом уникальным. Данный индекс необходим для обеспечения логической достоверности данных (предполагается, что не может быть двух студентов, проживающих в одной квартире).

3.6.3.Проверить работоспособность созданного индекса, введя два одинаковых адреса.

Рис.11.1

3.7. В таблице Предметы для последующего создания индексов сделать следующие коррективы:

3.7.1. Ввести новое числовое поле Семестр, имеющее минимальный размер, допускающее ввод только следующих значений [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] и заполнить его данными.

3.7.2. Создать составной индекс КодНаиСем, включающий поля
КодПредм, Наименов, Семестр.

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

3.7.3. Установить такие свойства индекса КодНаиСем, чтобы этот составной индекс стал ключом таблицы и не допускал повторяющихся значений ключа (комбинаций значений полей, составляющих этот ключ).

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

П-005 ИНФОРМАТИКА 1
П-005 ИНФОРМАТИКА 1

Проверить как СУБД MS Access реагирует на повторяющиеся значения ключей и попытки оставить пустым любое из полей, составляющих ключ.

3.9. Для таблицы Экзамены создать составной индекс КопКосДат и придать ему свойства ключа таблицы. В его состав должны войти поля КодПредм, КодСтуд, ДатаЭкз.

3.9.1. Для проверки правильности созданного ключа ввести в таблицу Экзамены данные о студенте, дважды сдававшем (пересдававшем) в один день один экзамен и получившем разные оценки. Убедитесь в невозможности ввести две различные по всему множеству полей записи с одинаковыми значениями составных ключей.

3.9.2. Ввести в таблицу Экзамены 5 корректных записей о студентах, упомянутых в таблице Личности.

4. Ввести в каждую из имеющихся таблиц по 5 новых записей с различными (допустимыми - 3 записи и недопустимыми - 2 записи) значениями уникальных составных ключей и убедиться в том, что правильно определенные ключи:

o не позволяют вводить логически неверные данные (например, о студенте, дважды сдававшем в один день один экзамен, что не допускается правилами сдачи экзаменов);

o позволяют ввести данные, о двух полных однофамильцах (тезках), родившихся в один день;

o не позволяет присвоить двум людям (хоть и имеющим одинаковые данные) один личный учетный код.

4.1. Проверить правильность работы всех таблиц базы данных, просмотреть их содержимое и сохранить все таблицы в базе данных База№1.

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

Основная цель использования индексов состоит в существенном ускорении поиска и выборки данных при использовании индексированных полей в запросах. В данном задании выборка не выполняется, поскольку на базе данных База№1 в силу ее чрезвычайно малого объема невозможно заметить разницу в скорости выполнения выборки с использованием индексов и без их использования.

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

Задание 12. Связывание таблиц

Цель: Знакомство с использованием ключевых полей для связывания таблиц. Изучение типов связей.

Для получения положительной оценки оценки необходимо выполнить правильно задание.

Ход работы:

1. Открыть базу данных База№1.

1.1. Проверить наличие и убедиться в сохранности и работоспособности всех созданных ранее таблиц данной базы.

1.2. Удалить все индексы, созданные ранее для всех таблиц базы данных База№1. Отменить все признаки первичных ключей для всех таблиц базы данных.

2. Создать новую систему первичных ключей для таблиц по следующему образцу (табл. 12.1)

Таблица 12.1

Таблица Первичный ключ
Личности ЛичнКод
Адреса ЛичнКод
Предметы КодПредм
Экзамены КодЭкзамена

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

2.2. В ранее созданных полях ЛичнКод и КодПредм для всех таблиц базы данных внимательно проверить совпадение масок, использовавшихся при вводе данных. Так, например, маска вида “>L\-000;0” и маска “>L\-000” сохраняют данные в разных видах - с сохранением в таблице символа “-” и без него, соответственно. Очевидно, что это приведет к несовпадению данных, хранящихся в таблицах, использующих разные маски, и невозможности установить связи между этими таблицами.

2.3. В таблице Экзамены для поля КодЭкзамена, которое будет уникально определять каждую запись таблицы и использоваться как первичный ключ, установить тип поля - Счетчик.

2.4. Открыть окно Схема данных и разместить

таблицы так, как показано на рис.12.1 (сначала без связей).

Рис.12.1

3. Установить связимежду таблицамиЛичности, Адреса, Предметы, Экзамены.

3.1. Внимательно прочитать все подсказки, комментарии и пояснения, касающиеся связывания таблиц и параметров объединения.

3.2. Выбрав таблицу Экзамены, с помощью мыши “перетащить” поле
КодПредмета на поле КодПредм таблицы Предметы, указав тем самым необходимость установления связи между таблицами по этим полям.

3.3. В открывшемся окне Связи определить тип и параметры связи между таблицами Экзамены и Предметы.

3.3.1. Между полями Предметы.КодПредм и Экзамены.КодПредм должна быть установлена связь типа Один-ко-Многим (рис.12.2).

Рис.12.2

3.3.2. Установить режим Обеспечения целостности данных: Каскадное обновление связанных полей и Каскадное удаление связанных записей. Для установки этих режимов необходимо активизировать соответствующие переключатели в группе Обеспечение целостности окна Связи.

3.3.3. Прочитать и законспектировать краткую и полную справку MS Access по режиму Обеспечения целостности данных, а также режимам Каскадное обновление связанных полей и Каскадное удаление связанных записей.

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

3.3.5. Прочитать и законспектировать краткую и полную справку MS Access по каждому из трех возможных значений параметра объединения.

3.4. Установить связь между таблицами Личности и Экзамены через поля КодСтудента и ЛичнКод соответственно. Тип отношения между этими таблицами - Один-ко-Многим, где стороной Много выступает таблица Экзамены. Обеспечить целостность данных при обновлении и удалении записей. Установить объединение таблиц - по первому типу (когда из связанных таблиц выбираются только записи, для которых совпадают значения полей связи).

3.5. Установить связь типа Один-к-Одному между соответствующими полями таблиц Личности и Адреса с обеспечением целостности данных при обновлении и удалении записей.

3.6. Активизировать и просмотреть окно Схема данных. Его внешний вид должен соответствовать образцу, приведенному на рис.12.1.

4. Используя подтаблицыпросмотреть связанные данные для таблицы Личности (меню “Вставка”- “Подтаблица”).

5. Сохранить все таблицыи базу данных База№1.

Задание 13. Создание составных форм, запросов, отчетов

Цель: Изучение способов создания составных форм, запросов и отчетов для связанных таблиц.

Для получения положительной оценки оценки необходимо выполнить правильно задание.

Ход работы:

Создание составных форм

1. Создать базу данных База№13 , которая содержит следующие таблицы:

1.1. Студенты(поля: КодСтуд, ФамСтуд, ИмяСтуд, ПолСтуд, РождСтуд).

1.2. Родители (поля: КодСтуд, ФамРод, ИмяРод, ОтчРод, ПолРод, ТелРод).

1.3. Оценки (поля: КодСтуд, БаллХим, БаллИнф, БаллМат, Семестр).

2. Ввести для каждого студента данные о двух родителях или трех ближайших родственниках.

3. Определить в качестве первичного ключа в таблице Студенты поле КодСтуд.

4. Открыть окно Схема данных и определить связи между созданными таблицами так, как представлено на рис.13.1.

Рис.13.1

5. Сохранить все таблицыи сделать резервную копию базы данных База№13.

6. Создать составную форму(для двух связанных таблиц Студенты и Родители).

6.1. На основе таблицы Родители,пользуясь режимом Автоформа табличная, создать подчиненную форму, содержащую следующие сведения: код студента, фамилии и имена обоих родителей, их пол и номер телефона.

6.2. На основе таблицыСтуденты создать главную форму, содержащую все сведения о студентах.

6.3.Разместить подчиненную форму внутри главной, как показано на рис. 13.2. Для этого использовать режим Конструктора для главной формы и “перетащить” в нее предварительно созданную подчиненную форму из вкладки Формы окна базы данных (также можно использовать элемент управления Подчиненная форма/отчет на панели инструментов Панель Элементов). Для детальной подгонки всех элементов форм воспользоваться услугами Конструктора форм, последовательно улучшая общий вид составной формы.

Рис.13.2

7. Заполнить таблицы СтудентыиРодители правдоподобными данными для пяти студентов, пользуясь созданной формой.

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

9. Создать составную форму(для двух связанных таблиц Студенты и Оценки), используя главную форму Студенты и предварительно созданную подчиненную форму Оценки. Общий вид созданной формы должен соответствовать рис.13.3.

10. Создать две командные кнопкив примечании формы Студенты с надписями Оценки и Родители, нажатие на которые приведет к открытию одноименных форм.

10.1. Активизировать в форме Студенты область примечаний.

10.2. Щелкнуть мышью на элементах управления Мастер и Кнопка и разместить кнопку в примечании формы.

Рис.13.3

10.3. В окне мастера Создание кнопок указать Категорию - Работа с формой и Действия-Открытие формы.

10.4. Выбрать форму, открываемую нажатием кнопки (Оценки илиРодители), указать, что отбор сведений не требуется, разместить на кнопках текст “Оценки” или“Родители”.

10.5. Перейти в режим формы и проверить работоспособность кнопок.

10.6. Для созданной кнопкив контекстном меню выбрать пункт Свойства и вкладку События. В разделе Нажатие кнопки просмотреть назначенную ей процедуру обработки событий (кнопка ).



lude $_SERVER["DOCUMENT_ROOT"]."/cgi-bin/footer.php"; ?>