Базы и банки данных. Сборник описаний практических работ
.pdf• в окне «Доступные поля» переведите выделение на параметр
Фамилия;
• щелкните по кнопке >> . Слово Фамилия перейдет в окно «Выбран-
ные поля»;
• аналогично в окне «Выбранные поля» переведите поля «Имя», «От-
чество», «Должность»;
•щелкните по кнопке «Далее»;
•в строке параметра Задайте имя запроса введите новое имя Дол-
ности преподавателей;
• щелкните по кнопке «Готово». На экране появится таблица с ре-
зультатами запроса.
2. Для сохранения запроса:
•щелкните по кнопке ◙ или выполните команду Файл, Сохранить;
•закройте окно запроса. 3.Для создания отчета:
•откройте вкладку Отчеты и щелкните по кнопке «Создать»;
•в открывшемся окне выберите пункт Мастер отчетов;
•щелкните по значку раскрывающегося списка в нижней части окна;
•выберите из появившегося списка таблицу Преподаватели;
•щелкните по кнопке «ОК». В появившемся окне выберите поля, ко-
торые будут присутствовать в форме. В данном примере присутст-
вовать будут все поля из таблицы, поэтому щелкните по кнопке >>;
•щелкните по кнопке «Далее»;
•в появившемся окне присутствует перечень полей. Переведите вы-
деление на поле «Должность»;
• щелкните по кнопке > . Таким образом вы задаете группировку дан-
ных по должности;
•щелкните по кнопке «Далее»;
•параметры появившегося окна оставим без изменений, поэтому щелкните по кнопке «Далее»;
20
•в появившемся, а также в следующем окне («Вид макета для отчета
и«Требуемый стиль») выберите стиль оформления отчета;
•щелкните по кнопке «Далее»;
•в появившемся окне введите название отчета Преподаватели,
•щелкните по кнопке «Готово». На экране появится сформированный отчет;
• просмотрите, а затем закройте отчет.
Контрольные вопросы
1Что такое запросы? Какими возможностями они обладают? 2.Перечислите и охарактеризуйте основные типы запросов,
использующихся в СУБД Access.
3.Что такое отчеты? Какими возможностями они обладают?
4.Кратко охарактеризуйте технологию создания запросов на выборку. 5.Опишите технологию создания отчетов с группировкой данных (на примере создания отчета на основе таблицы Преподаватели с
группированием данных по должностям).
Практическая работа № 3.
21
Разработка информационно-логической модели реляционной базы данных.
Цель работы
Приобретение студентами специальных навыков работы в СУБД
Access. По разработке информационно-логической модели и созданию структуры реляционной базы данных.
Введение
Слово «реляционная» происходит от английского relation –
отношение. Отношение – математическое понятие, но в терминологии моделей данных отношения удобно изображать в виде таблицы. При этом
строки таблицы соответствуют кортежам отношения, а столбцы – атрибутам. Ключом называют любую функцию от атрибутов кортежа,
которая может быть использована для идентификации кортежа. Такая функция может быть значением одного из атрибутов ( простой ключ),
задаваться алгебраическим выражением, включающим значения нескольких атрибутов (составной ключ). В итоге это приводит к тому, что хотя данные в строках каждого из столбцов составного ключа могут и повторяться, однако комбинация данных каждой строки этих столбцов является уникальной. Например, в таблице Студенты есть столбцы
Фамилия и год рождения. В каждом из столбцов есть некоторые повторяющиеся данные, т.е. одинаковые фамилии и одинаковые годы рождения. Но есть студенты, имеющие одинаковые фамилии, имеют разные годы рождения, то эти столбцы можно использовать в качестве составного ключа.
В Access. Можно выделить три типа ключевых полей: простой ключ,
составной ключ и внешний ключ.
Одно из важнейших достоинств реляционных баз данных состоит в том, что можно хранить логически сгруппированные данные в разных
22
таблицах и задавать связи между ними, объединяя их в единую базу. Для задания связи таблицы должны иметь поля с одинаковыми именами или хотя бы с одинаковыми формами данных. Связь между таблицами устанавливает отношения между совпадающими значениями в этих полях.
Такая организация данных позволяет уменьшить избыточность хранимых данных, упрощает их ввод и организацию запросов и отчетов. Поясним это на следующем примере.
В Access можно задать три вида связей между таблицами:
Один ко многим,
Многие ко многим,
Один к одному.
Связь Один ко многим – наиболее часто используемый тип связи между таблицами. В такой связи в каждой записи таблицы А может соответствовать несколько записей в таблице В ( поля с этими записями называют внешними ключами), а запись в таблице В не может иметь более одной соответствующей ей записи в таблице А.
При связи Многие ко многим одной записи в таблице А может соответствовать несколько записей в таблице В, а одной записи в таблице В – несколько записей в таблице А. Такая схема реализуется только с помощью третьей (связующей) таблицы, ключ которой состоит по крайней мере из двух полей, одно из которых является общим с таблицей А, а
другое – общим с таблицей В.
При связи Один к одному запись в таблице А может иметь не более одной связанной записи в таблице В и наоборот. Этот тип связи используют не очень часто, поскольку такие данные могут быть помещены в одну таблицу. Связь с отношением Один к одному применяют для разделения очень широких таблиц, для отделения части таблицыв целях ее защиты, а также для сохранения сведений, относящихся к подмножеству записей в главной таблице.
Тип создаваемой связи зависит от полей, для которых определяется связь:
23
•связь Один ко многим создается в том случае, когда только одно из полей является ключевым или имеет уникальный индекс, т.е. значения в нем не повторяются;
•связь Один к одному создается в том случае, когда оба связываемых поля являются ключевыми или имеют уникальные индексы;
•связь Многие ко многим фактически представляет две связи типа
один ко многим через третью таблицу, ключ которой состоит по крайней мере из двух полей, общих для двух других таблиц.
Целостность данных означает систему правил, используемых в СУБД Access для поддержания связей между записями в связанных таблицах (таблиц, объединенных с помощью связи), а также обеспечивает защиту от случайного удаления или изменения связанных данных.
Контролировать целостность данных можно, если выполнены следующие условия:
• связанное поле (поле, посредством которого осуществляется связь)
одной таблицы является ключевым полем или имеет уникальный индекс;
• связанные поля имеют один тип данных. Здесь существует исключе ние. Поле счетчика может быть связано с числовым полем, если оно имеет тип Длинное целое;
• обе таблицы принадлежат одной базе данных Access. Если таблицы являются связанными, то они должны быть таблицами Access. Для установки целостности данных база данных, в которой находятся таблицы, должна быть открыта. Для связанных таблиц из баз данных других форматов установить целостность данных невозможно.
Задание на практическую работу
1.Создать базу данных Деканат в соответствии с логической схемой рис.1. 2.Создать структуру таблицы Студенты.
24
3.Создать структуру таблицы Дисциплины.
4.Изменить структуру таблицы Преподаватели.
|
Код |
|
|
|
|
|
|
|
|
|
Код |
|
Код |
|
Код |
|
|
|
студента |
|
|
|
|
|||
|
|
студента |
|
дисциплины |
|
дисциплины |
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
Фамилия |
|
|
|
|
|
|
|
|
|
Код |
|
Название |
|
Код |
|
|
|
|
|
|
|
|
|||
|
|
|
дисциплины |
|
дисциплины |
|
преподавателя |
|
|
|
|
|
|
|
|
|
|
|
Имя |
|
Оценки |
|
|
|
Фамилия |
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Отчество |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Имя |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Номер |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Отчество |
|
|
|
группы |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Дата |
|
|
|
|
|
Дата |
|
|
рождения |
|
|
|
|
|
рождения |
|
|
|
|
|
|
|
|
|
|
|
Стипендия |
|
|
|
|
|
Предполагаемая |
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
дисциплина |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Телефон |
|
|
|
|
|
|
|
|
|
|
Рис.1 Логическая модель базы данных
5.Создать структуру таблицы Оценки.
6.Разработать схему данных, т.е. создать связи между таблицами. 8.Заполнить данными таблицу Студенты посредством формы Студенты.
9.Создать форму Дисциплины.
10.Заполнить данными таблицу Дисциплины посредством формы
Дисциплины.
11.Создать форму Оценки.
12. Заполнить данными таблицу Оценки посредством формы Оценки.
Контрольные вопросы.
1.Что такое реляционная БД?
25
2.Охарактеризуйте, чему соответствуют в таблице строки, столбцы? 3.Что такое ключ?
4.Охарактеризуйте виды связей между таблицами.
5.Охарактеризуйте понятие «целостность данных».
6.Расскажите о построении информационно-логической модели БД на примере БД «Деканат».
Практическая работа № 4.
26
Использование языка VBA при работе с основными объектами базы
данных.
Целью практической работы является ознакомление студентов с возможностями языка Visual Basic for Applications (VBA) при создании и работе с базами данных и основными объектами базы данных – таблицами,
полями, формами.
Введение
VBA является полнофункциональным объектно-ориентированным языком программирования, позволяющим создавать приложения пользователя в среде СУБД Access. VBA – это общее средство программирования для всего семейства Microsoft Office, включая
Word, Excel, Access, Outlook, Project.
VBA целесообразно использовать для:
•создания нестандартных процедур обработки событий;
•создания функций, выполняющих сложные вычисления, которые невозможно записать в виде выражений.
Основой программ на VBA являются процедуры, состоящие из инструкций, выполняющих необходимые операции и вычисления.
Процедуры хранятся в модулях, откуда они запрашиваются на выполнение. Собственно модуль не исполняется и служит для объединения процедур по их функциональному назначению или привязке к форме или отчету.
Процедуры разделяются на процедуры – подпрограммы и процедуры
– функции.
Процедуры-подпрограммы (Sub) не возвращают значения вызывающей процедуре. Процедура-подпрограмма может выполнять любые действия, например, откорректировать данные базы, выполнить вычисления в полях, открыть форму, напечатать отчет.
27
Формат процедуры-подпрограммы имеет вид:
[Private! Public] [Static] Sub < Имя процедуры >[ < список аргументов>}]
[< описание переменных>] [< инструкции>]
[ Exit Sub]
[< инструкции >]
End Sub
Sub, End отмечают начало и конец тела процедуры,
Public – указывает, что процедура Sub является общей, т.е. доступной для всех других процедур во всех модулях.
Private – указывает, что процедура Sub доступна только для процедур того модуля, в котором она описана.
Static – указывает, что значения локальных переменных процедуры сохраняются между вызовами этой процедуры.
Exit Sub – приводит к немедленному завершению процедуры Sub.
Процедура-функция (Function) возвращает значение, которое присваивается ее имени внутри процедуры.
Формат процедуры-функции:
[Private! Public] [Static] Function<Имя процедуры>[ <список аргументов>}]
[< описание переменных >] [< инструкции >]
[< имя процедуры > = < выражение >]
[ Exit Function ]
[< инструкции>] [< имя процедуры > = < выражение >]
End Function.
В теле процедуры-функции, в отличие от процедуры-подпрограммы,
присутствует инструкция присваивания имени процедуры значения,
28
вычисляемого выражением. Эта инструкция позволяет возвратить значение из процедуры-функции в место ее вызова.
При описании переменных обычно используется инструкция Dim.
Инструкции присвоения присваивают выражение переменной или константе. Инструкции присвоения всегда включают знак равенства (=).
Для присвоения значения переменной, описанной как объект, применяется инструкция Set.
Задание на практическую работу
1.Создать процедуру VBA, создающую новую базу данных.
2.Написать процедуру, создающую в текущей базе данных таблицу Студенты с полями Номер студента, Фамилия И.О., Предмет 1, Предмет 2,
Предмет 3, Предмет 4, Средний балл.
3.Внести в созданную таблицу пять записей во все поля, кроме поля Средний балл.
4.Создать процедуру, подсчитывающую средний балл всех студентов и заносящую рассчитанные значения в поле Средний балл.
5.Создать форму, отображающую данные таблицы Студенты и содержащую кнопку, запускающую процедуру расчета среднего балла.
Технология выполнения работы
1.Откройте новую базу данных, откройте вкладку Модули и создайте процедуру, создающую новую базу данных в соответствие с приведенным примером.
• Создание новой базы данных
Sub CreateDatabase X ()
•Описание переменных
Dim my Ws As Workspace
29
