Косы Основы проектирования Баз данных. Косы Основы проектирования баз данных Входящий контроль
Скачать 5.18 Mb.
|
Установка связи между двумя таблицами Выполните команду Схема данных из меню Работа с базами данных В диалоговом окне добавления таблиц добавьте в схему все три таблицы На поле Код_религии таблицы Религия нажмите левую клавишу мыши и удерживая ее перетащите на поле Религия таблицы Страны Европы В появившемся диалоговом окне необходимо установить нужную связь: флажок напротив опции обеспечение целостности данных означает, что перед тем как занести данные в подчиненную таблицу, программа будет проверять их на соответствие главной. (Таблица Страны Европы является подчиненной для таблиц Религия и Строй). Флажок напротив опции каскадное обновление связанных полей означает, что изменения в главной таблице автоматически будут влиять на подчиненную. Флажок напротив опции каскадное удаление связанных полей означает, что поля удаленные в главной таблице будут удалены и в подчиненной. Установите все эти флажки Аналогичную операцию проделайте с таблицами Страны Европы и Строй (Если связь не устанавливается, еще раз проверьте типы данных связываемых полей) Закройте схему с сохранением Попробуйте в таблице Страны Европы в полях Строй и Религия поменять коды на несуществующие в главных таблицах. Получилось? Почему? Контрольные вопросы Чем поле отличается от записи? Какие структуры ACCESS вы знаете? Для чего служит структура "таблица"? Для чего данным задаются различные типы? Что можно настроить в свойствах поля таблицы? Для чего данные разбивают на несколько таблиц? Какое необходимое условие для создания связи с обеспечением целостности данных? Каким образом при разбиении достигается компактность хранения информации? Практическое занятие №27. Порядок выполнения работы Задание 1. Создание индексов и ключей 1. Создатьбазу данных База №3 используя базу БАЗА_ИСХ База содержит таблицы:
Заполнить таблицы экспериментальным содержимым (5-7 записей) используя мастера подстановки 2. Создать первичные ключи в ранее сконструированных таблицахЛичностии Адреса. 2.1. Открыть таблицу Личности в режиме Конструктора таблиц. Пользуясь контекстным меню поля ЛичнКод отметить его как ключевое поле. 2.1.1. Находясь в окне Личности в режиме конструктора, вызвать меню Индексы”. 2.2. Открыть таблицу Адреса в режиме Конструктора таблиц. Пользуясь окном Индексы, создать первичный ключ для данной таблицы на основе поля ЛичнКод. 3. Создать составные индексы. 3.1. Открыть для таблицы Адреса, находящейся в режиме Конструктора таблиц, окно Индексы и просмотреть его содержимое. 3.2. Создать новый индекс Пол, предназначенный для ускорения процесса поиска и выполнения запросов по данному полю. 3.3. Создать новый составной индекс ГорУлиДом, включив в его состав поля Город, Улица, Дом. 3.4. Находясь в окне Индексы и переходя от строки PrimaryKey к ГорУлиДом, просмотреть расположенные ниже Свойства поля и дать объяснения увиденным свойствам индексов. Окно Индексы для таблицы Адреса будет выглядеть примерно так, как показано на рисунке ниже: 3.4.1. Для получения сведений о свойствах индексов прочитать пояснения, размещенные в области Свойства индекса окна Индексы, а также раздел подсказки (F1), посвященный этому вопросу. 3.5. Создать составной индекс ФамИмяРожд, включающий поля Фамилия, Имя, Рожд. 3.6. Открыть для таблицы Личности, находящейся в режиме Конструктора таблиц, окно Индексы и просмотреть его содержимое. 3.6.1. Добавить в составной индекс ГорУлиДом поле Квартира. 3.6.2. Сделать составной индекс ГорУлиДом уникальным. Данный индекс необходим для обеспечения логической достоверности данных (предполагается, что не может быть двух студентов, проживающих в одной квартире). 3.6.3.Проверить работоспособность созданного индекса, введя два одинаковых адреса. 3.7. В таблице Предметы для последующего создания индексов сделать следующие коррективы: 3.7.1. Ввести новое числовое поле Семестр, имеющее минимальный размер, допускающее ввод только следующих значений [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] и заполнить его данными. 3.7.2. Создать составной индекс КодНаиСем, включающий поля КодПредм, Наименов, Семестр. Заметьте, что КодПредм не будет первичным ключом таблицы, каким, например, в таблицах Личности и Адреса является поле ЛичнКод, так как в нескольких семестрах может читаться один и тот же предмет с одним кодом и разной продолжительностью. 3.7.3. Установить такие свойства индекса КодНаиСем, чтобы этот составной индекс стал ключом таблицы и не допускал повторяющихся значений ключа (комбинаций значений полей, составляющих этот ключ). 3.8. Перейти в режим таблицы и ввести в таблицу Предметы несколько повторяющихся значений, например: П-005 ИНФОРМАТИКА П-005 ИНФОРМАТИКА 3.9. Для таблицы Экзамены создать составной индекс КопКосДат и придать ему свойства ключа таблицы. В его состав должны войти поля КодПредм, КодСтуд, ДатаЭкз. 3.9.1. Для проверки правильности созданного ключа ввести в таблицу Экзамены данные о студенте, дважды сдававшем (пересдававшем) в один день один экзамен и получившем разные оценки. Убедитесь в невозможности ввести две различные по всему множеству полей записи с одинаковыми значениями составных ключей. 3.9.2. Ввести в таблицу Экзамены 5 корректных записей о студентах, упомянутых в таблице Личности. 4. Ввести в каждую из имеющихся таблиц по 5 новых записей с различными (допустимыми - 3 записи и недопустимыми - 2 записи) значениями уникальных составных ключей и убедиться в том, что правильно определенные ключи: не позволяют вводить логически неверные данные (например, о студенте, дважды сдававшем в один день один экзамен, что не допускается правилами сдачи экзаменов); позволяют ввести данные, о двух полных однофамильцах (тезках), родившихся в один день; не позволяет присвоить двум людям (хоть и имеющим одинаковые данные) один личный учетный код. 4.1. Проверить правильность работы всех таблиц базы данных, просмотреть их содержимое и сохранить все таблицы в базе данных База№3. Примечание. Созданные в данной работе индексы, особенно составные, создавались с целью демонстрации возможности использования механизма индексации для обеспечения логической достоверности данных. Основная цель использования индексов состоит в существенном ускорении поиска и выборки данных при использовании индексированных полей в запросах. В данном задании выборка не выполняется, поскольку на базе данных База№3 в силу ее чрезвычайно малого объема невозможно заметить разницу в скорости выполнения выборки с использованием индексов и без их использования. Приведенные варианты индексов служат демонстрационным целям, и в следующих заданиях в структуру ключевых полей и индексов будут внесены существенные изменения, создающие новую систему ключевых полей, предназначенную в первую очередь для организации связей между таблицами с целью их совместного использования. Задание 2. Связывание таблиц 1. Открыть базу данных База№3. 1.1. Проверить наличие и убедиться в сохранности и работоспособности всех созданных ранее таблиц данной базы. 1.2. Удалить все индексы, созданные ранее для всех таблиц базы данных База№3. Отменить все признаки первичных ключей для всех таблиц базы данных. 2. Создать новую систему первичных ключей для таблиц по следующему образцу
2.1. В тех полях таблиц, которые становятся ключевыми, удалить повторяющиеся записи. 2.3. В таблице Экзамены для поля КодЭкзамена, которое будет уникально определять каждую запись таблицы и использоваться как первичный ключ, установить тип поля - Счетчик. 2.4. Открыть окно Схема данных и разместить таблицы так, как показано на рисунке ниже: 3. Установить связи между таблицамиЛичности, Адреса, Предметы, Экзамены. 3.1. Внимательно прочитать все подсказки, комментарии и пояснения, касающиеся связывания таблиц и параметров объединения. 3.2. Выбрав таблицу Экзамены, с помощью мыши “перетащить” поле КодПредмета на поле КодПредмтаблицы Предметы, указав тем самым необходимость установления связи между таблицами по этим полям. 3.3. В открывшемся окне Связи определить тип и параметры связи между таблицами Экзамены и Предметы. 3.3.1. Между полями Предметы.КодПредм и Экзамены.КодПредм должна быть установлена связь типа Один-ко-Многим. 3.3.2. Установить режим Обеспечения целостности данных: Каскадное обновление связанных полей и Каскадное удаление связанных записей. Для установки этих режимов необходимо активизировать соответствующие переключатели в группе Обеспечение целостности окна Связи. 3.3.3. Нажав кнопку Объединение, открыть окно Параметры объединения и выбрать такой режим объединения данных различных таблиц, при котором из связанных таблиц будут выбираться только те записи, для которых совпадают значения полей связи. 3.4. Установить связь между таблицами Личности и Экзамены через поля КодСтудента и ЛичнКод соответственно. Тип отношения между этими таблицами - Один-ко-Многим, где сторонойМного выступает таблица Экзамены. Обеспечить целостность данных при обновлении и удалении записей. Установить объединение таблиц - по первому типу (когда из связанных таблиц выбираются только записи, для которых совпадают значения полей связи). 3.5. Установить связь типа Один-к-Одному между соответствующими полями таблиц Личности и Адреса с обеспечением целостности данных при обновлении и удалении записей. 3.6. Активизировать и просмотреть окно Схема данных. Его внешний вид должен соответствовать образцу, приведенному на рисунке ниже: 4. Используя подтаблицы просмотреть связанные данные для таблицы Личности (значок «+» слева от каждой записи в таблице). 5. Сохранить все таблицы и базу данных База№3. Контрольные вопросы Назначение индексов в базе данных? Как создать составной индекс? Назначение и особенности задания связей между таблицами. Практическое занятие №28. Краткие теоретические сведения: ЧтотакоеVisualBasicforApplications. VisualBasicforApplications представляет собой полуфункциональный язык программирования, являющийся неотъемлемой составной частью Access. Этот язык используется для разработки приложений, предназначенных для манипулирования БД и для настройки пользовательского интерфейса. VBA - это структурированный язык программиррования высокого уровня. В нем, как и в других языках, есть операторы проверки условий, циклического выполнения повторяющихся операций, а также обмена данными с пямятью и дисками. В языке VBA реализованы общие принципы объектно-ориентированного программирования. Это означает, что пользовательская среда, управляемая приложением, не подвергается изменениям путем выполнения последовательности процедур и операторов, но реагирует на события, связанные с различными объектами: полями ввода, кнопками, разделами форм и отчетов. В языке VBA программный код привязан непосредственно к объектам и срабатывает тогда, когда случается определенное событие. Все программирование в Windows основано именно на отклике на то или иное событие в системе. Кроме того для автоматизацирабты с базой данных используется система встроенных макрокоманд. В MICROSOFT ACCESS имеется свыше 40 макрокоманд, которые вы можете включать в макросы. Макрокоманды выполняют такие действия, как открытие таблиц и форм, выполнение запросов, запуск других макросов, выбор опций из меню, изменение размеров открытых окон и т.п. Для выполнения, создания или редактирования макроса щелкните по корешку Макрос, находясь в окне вашей базы данных. В появившемся меню снизу вы увидите список уже созданных макросов, сверху – кнопки: Создать (для создания нового макроса), Выполнить (для выполнения действия в макросе, выбранном в окне базы данных, причем при запуске макроса выполняется его первая макрокоманда), Конструктор (для создания и изменения макросов). Создание простого макроса В столбце Макрокоманда вы можете задать одну из предоставляемых макрокоманд, в столбце Примечание можете писать комментарии. При выборе макрокоманды в правой нижней части экрана появятся аргументы макрокоманды, которые вы можете установить нужным вам образом. Перед запуском макроса его следует сохранить. Для проверки работы макроса рекомендуется выполнить команды макроса в пошаговом режиме, для этого в окне создания или редактирования макроса щелкните по кнопкеПо шагам на панели инструментов, либо выполните команду Макрос>По шагам. Порядок выполнения работы Задание 1. Создание автоформ, автоотчетов, макросов. 1. Создать базу данных База№6, которая содержит следующие таблицы: 1.1. Студенты (поля:КодСтуд, ФамСтуд, ИмяСтуд, ПолСтуд, РождСтуд). 1.2. Родители (поля:КодСтуд, ФамРод, ИмяРод, ОтчРод, ПолРод, ТелРод). 1.3. Оценки (поля:КодСтуд, БаллХим, БаллИнф, БаллМат, Семестр). Заполнить таблицы экспериментальным содержимым (5-7 записей). Создайте для каждой таблицы форму, а для таблиц Студенты и Оценки – отчеты. Выбрать таблицу и выбрать кнопку Форма на вкладке Создание стандартной панели инструментов. Для таблицы будет создана форма по умолчанию. Сохранить созданную форму, выполнив щелчок на кнопке закрытия окна, а затем на запрос о сохранении ответить утвердительно и ввести имя созданной формы или оставить предложенное для сохранения имя формы. Использую команду Отчет во вкладке Создание создать указанные отчеты. Создать в одной из созданных Форм кнопки: Выбрать созданную форму. Перейти в режим конструктора формы. Выполнить щелчок на элементе Кнопка. Выполнить щелчок на свободном месте формы, чтобы вставить в нее кнопку. Откроется диалоговое окно мастера кнопок: В списке Категории выбрать пункт Переходы по записям, а затем в списке Действия -> Найти запись. После щелчка на кнопке Далее в будет предложен выбор – добавления кнопки или текста на форму. Выполнить щелчок на элементе Кнопка. Вставить кнопку на свободном месте формы ниже предыдущей, созданной ранее. Снова откроется окно кнопок. В списке Категории выбрать пункт Работа с формой, а в списке Действия - пункт Закрытие формы. После щелчка по кнопке Готово в форму будет добавлена кнопка, выполняющая закрытие формы. Сохранить форму. После этого можно запустить форму и проверить работу добавленных кнопок. Переключиться в режим Констуктора, выполнив щелчок по кнопке Конструктор. Выбрать команду или выполнить щелчок по кнопке Программа на панели инструментов. Откроется окно редактора VisualBasicforApplications, представленное на рисунке : В этом окне можно видеть три фрагмента программы на языке VBA: раздел объявлений (в верхней части окна), который содержит код, относящийся ко всей форме в целом, а также два раздела кода, привязанных к двум кнопкам. Первый раздел начинается с заголовка процедуры: PrivateSub Кнопка13_Click( ) Заканчивается процедура оператором: EndSub. Операторы, заключенные между ними, выполняются после щелчка по кнопке Найти. Основная часть работы выполняется следующим оператором: DoCmd.DoMenuItemacFormBar, AcEditMenu, 10, AcMenuVer70 Этот оператор выполняет те же действия, что и команда меню Найти, т.е. выводит на экран диалоговое окно Поиск в поле, с помощью которого можно выполнить поиск. Создать три запроса: студенты женского пола; студенты, имеющие 2 по информатике; родители, имеющие двух детей – студентов с помощью кнопки Макрос во вкладке Создание. |