Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

Подписываем
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Предоплата всего
Подписываем
Пусть задан документ «Экзаменационная ведомость» следующего вида:
dd ______
cf ___________ __________ ________ ____________
c4 ______ _____________
d4... |
b9 |
ce |
c2:
ce_________
d5__________
d3.______
cd___________
cd ___
Требуется построить БД для экзаменационных ведомостей.
Занятие 1. Создание таблиц
1.Создание БД
Для работы с БД ее необходимо создать. Для этого:
Появилось окно базы данных. Теперь можно создавать таблицы БД. Реализуем это на примере справочных таблиц, входящих в нашу БД. Предполагаем, что БД нормализована (как осуществляется процесс нормализации, будет рассмотрено далее). Пусть необходимо создать справочную таблицу «Предметы», содержащую перечень предметов, для которых проводится экзамен и имеющую вид:
CodPredm |
Predm |
Пусть эта таблица в нашей базе данных будет называться «Predmet». Будем создавать таблицу в режиме конструктора. Для этого выполним следующие действия:
Остальные свойства поля зависят от типа данных поля и являются необязательными. Необязательные поля расположены в нижней части окна конструктора таблиц. Здесь упомянем только свойство Подпись, которое указывает текст, выводящийся в подписях, сопровождающих это поле.
Аналогичным образом создайте другие справочные таблицы, структура которых приведена ниже.
Таблица Prep (Справочник преподавателей)
Имя поля |
Тип поля |
Описание |
Ключевое |
CodPrep |
Счетчик |
Код преподавателя |
Да |
FIOP |
Текстовое |
Фамилия преподавателя |
Нет |
Таблица Facultet (Справочник факультетов)
Имя поля
Тип поля |
Описание |
Ключевое |
|
SFacult |
Текстовое |
Шифр факультета |
Да |
NameF |
Текстовое |
Наименование факультета |
Нет |
Таблица Ball (Справочник оценок)
Имя поля
Тип поля |
Описание |
Ключевое |
|
CodOcen |
Числовое |
Код оценок (отл , хор , уд , неуд , неат ) |
Да |
Ocen |
Текстовое |
Оценка (отл, хор, уд, неуд, неат) |
Нет |
Остальные таблицы будут в той или иной мере использовать данные из справочных таблиц. Рассмотрим, например, таблицу Group, которая должна содержать информацию об учебных группах. Пусть она имеет следующий вид:
Таблица Group (Список групп)
Имя поля
Тип поля |
Описание |
Ключевое |
|
SGroup |
Текстовое |
Шифр группы |
Да |
QStud |
Числовое |
Количество студентов |
Нет |
SFacult |
Мастер подстановок |
Шифр факультета, на котором находится группа |
Нет |
Curs |
Числовое |
Курс |
Нет |
Группа должна находится на одном из факультетов, определенных в таблице Facultet. Поэтому значение третьего поля необходимо выбрать из списка значений, заданных в этой таблице. Для того чтобы сделать это укажем в типе поля «Мастер подстановок». Появится первое диалоговое окно «Мастера подстановок». Выполним следующие действия:
Пусть в базу данных, помимо перечисленных выше таблиц, входят следующие таблицы:
Таблица Student (Список студентов)
Имя поля
Тип поля |
Описание |
Ключевое |
|
SGroup |
Мастер подстановок |
Шифр группы, в которой учится студент |
Нет |
NZach |
Текстовое |
Номер зачетки |
Да |
FIOS |
Текстовое |
Фамилия студента |
Нет |
YearEnter |
Числовое |
Год поступления |
Нет |
Таблица Vedom (Список ведомостей)
Имя поля
Тип поля |
Описание |
Ключевое |
|
SGroup |
Мастер подстановок |
Шифр группы |
Нет |
NVed |
Счетчик |
Номер ведомости |
Да |
CodPredm |
Мастер подстановок |
Предмет, по которому проводится экзамен |
Нет |
DataEkz |
Дата/Время |
Дата экзамена |
Нет |
CodPrep |
Мастер подстановок |
Преподаватель, проводящий экзамен |
Нет |
Таблица Ekzamen (Результаты экзаменов)
Имя поля
Тип поля |
Описание |
Ключевое |
|
NZach |
Мастер подстановок |
Номер зачетки |
Да |
NVed |
Мастер подстановок |
Номер ведомости |
Да |
CodOcen |
Мастер подстановок |
Оценка |
Нет |
Требуется построить указанные таблицы.
Занятие 2. Работа с таблицами. Создание простых форм
Простейший способ работы с таблицами заключается в следующем: таблицу необходимо открыть в режиме таблицы, выбрав пункт меню «Открыть» либо соответствующую кнопку на панели инструментов.
Другой подход, который позволяет обрабатывать таблицы, заключается в использовании форм, задающих пользовательский интерфейс. Простейший путь создания формы заключается в использовании «Мастера форм». Для примера рассмотрим, как создать форму для ввода данных о группах и студентах в этих группах. Для этого будет необходимо выполнить следующие действия:
Для создания и редактирования внешнего вида форм можно использовать конструктор форм. Для изменения внешнего вида только что созданной формы нажмите кнопку «Конструктор форм» на панели инструментов. Теперь можно поэкспериментировать с различными методами изменения внешнего вида форм и его содержимого. Работа в конструкторе аналогична работе по созданию и редактированию форм в Visual Basic. Однако, есть ряд различий, связанных с тем, что макет формы представляется в виде трех разделов:
Задание. Создайте формы для ввода данных во все таблицы БД Vedom.
Занятие 3. Создание простых отчетов
Конечным продуктом приложений баз данных является отчет. Наиболее простым способом создания отчета является использование «Мастера отчетов». Процесс создания отчета с его помощью похож на процесс создания формы с помощью «Мастера форм». Создадим отчет «Список студентов по группам». Для этого выполните следующие действия:
Отредактируйте макет созданного отчета с помощью «Конструктора отчетов». Это делается фактически также как и для форм.
Задание. Создайте отчеты на основе имеющихся таблиц в соответствии с заданием преподавателя. Исследуйте различные возможности (группирование, сортировка, подведение итогов, стили), предоставляемые «Мастером отчетов».
Запрос по образцу (Query by Example, QBE) предназначается для пользователей приложений БД, чтобы они могли осуществить поиск данных без знания языков программирования.
Чтобы создать простой запрос, формирующий список студентов, содержащихся в базе, необходимо выполнить следующие действия:
По умолчанию создается запрос на выборку, который возвращает данные, выбранные из таблицы. Новому запросу по умолчанию присваивается имя «Запрос 1», до тех пор пока ему не присвоено нужное имя. Запустите полученный запрос на выполнение, используя соответствующую кнопку на панели инструментов.
Окно конструктора запросов имеет следующий вид:
В дальнейшем будем изображать только бланк запроса.
Добавление полей в запрос:
Немного преобразуем предыдущий запрос. Пусть требуется создать список фамилий студентов и группы, в которых они учатся. Для этого:
Поле: |
SGroup |
FIOS |
|
Имя таблицы: |
Student |
Student |
|
Сортировка: |
|||
Вывод на экран: |
|||
Условие отбора: |
|||
или: |
. Выполните запрос.
Задание условий выбора и порядка результатов сортировки:
Пусть нужно создать список студентов, обучающихся в одной из групп, причем фамилии студентов должны быть упорядочены по алфавиту. Для этого:
Поле: |
SGroup |
FIOS |
|
Имя таблицы: |
Student |
Student |
|
Сортировка: |
По возрастанию |
||
Вывод на экран: |
|||
Условие отбора: |
“АП51” |
||
или: |
Вызов запросов из формы:
Пусть необходимо создать запрос, осуществляющий вывод списка студентов из группы, определяемой пользователем. Для этого выполните следующие действия:
Поле: |
SGroup |
FIOS |
|
Имя таблицы: |
Student |
Student |
|
Сортировка: |
По возрастан |
||
Вывод на экран: |
|||
Условие отбора: |
Forms![Список студентов в группе]![Шифр группы] |
||
или: |
Использование более сложных условий.
Пусть требуется построить следующий запрос: «Построить список студентов заданной группы, поступивших в институт либо после 2002 года, либо до 1999». Условие, по которому будут выбираться данные в запросе, можно записать следующим образом:
Forms![Список студентов в группе]![Шифр группы] ((YearEnter => 2002) (YearEnter <= 1999)).
Для того чтобы построить данный запрос выполните следующие действия:
Вычисления в запросах.
В запросах можно использовать выражения в условиях и для создания вычисляемых полей. Пусть необходимо создать запрос: «Вывести список студентов, обучающихся в заданной группе, и срок их обучения». Для этого необходимо выполнить следующие действия:
Year(Date()) [YearEnter]
Если не ввести имя поля и двоеточие, то вычисляемому полю будет присвоено имя «Выражение1». Бланк запроса примет вид:
Поле: |
SGroup |
FIOS |
Срок обучения: Year(Date())-[YearEnter] |
Имя таблицы: |
Student |
Student |
|
Сортировка: |
По возрастан |
||
Вывод на экран: |
|||
Условие отбора: |
Forms![Спи |
||
или: |
4. Вызовите форму на выполнение.
Создайте следующие запросы и формы для их вызова (возможно размещение нескольких запросов на одной форме):
Занятие 6. Построение многотабличных запросов
QBE позволяет осуществлять запросы, использующие информацию из нескольких связанных между собой таблиц. Перед созданием такого запроса необходимо четко представлять, какие поля связаны общими значениями. В режиме запроса по образцу выводятся четыре типа соединений:
Построим запрос: «На каких курсах и в каких группах преподается дисциплина Базы данных». Для этого выполним следующие действия:
Использование в запросах условий Like, In, Between.
Like определяет шаблон, которому должно соответствовать искомое строковое выражение. Наиболее часто используются символы шаблона *, замещающий любое число знаков, и ? - замещающий один символ.
In определяет, является ли строковое выражение элементом списка значений.
Between определяет, находится ли значение поля в определенном диапазоне.
Реализуем запрос «Выдать список студентов, либо не аттестованных, либо получивших неудовлетворительную оценку по математическим дисциплинам, поступившим в институт в период с 1999 по 2001 год». Будем предполагать, что название математических дисциплин содержит в той или иной форме производные от слова «математика». Для построения данного запроса в конструкторе необходимо добавить таблицы Ball, Student, Predmet, Ekzamen и Vedom. Бланк запроса должен иметь следующий вид:
Поле: |
Ocen |
FIOS |
Predm |
YearEnter |
Имя таблицы: |
Ball |
Student |
Predmet |
Student |
Сортировка: |
||||
Вывод на экран: |
||||
Условие отбора: |
In (“неуд”, “неат”) |
Like “Математ*” |
Between 1999 And 2001 |
|
или: |
Like “*математ*” |
Построить следующие запросы:
Задание 7.
Создание запросов с использованием статистических функций
В качестве статистических функций используются следующие функции:
Реализуем запрос: «Определить количество студентов, поступивших в институт в разные годы». Для создания этого запроса выполните следующие действия:
Задание: Создайте следующие запросы:
Использование запросов на изменение
Запросы на изменение позволяют создавать новые таблицы и обновлять данные в уже имеющихся. Будем рассматривать четыре типа запросов на изменение:
Создание новой таблицы при помощи запроса. Пусть требуется построить таблицу, в которой содержится перечень предметов и преподавателей, преподающих эти предметы, на различных факультетах с указанием полугодия, когда принимается экзамен. Реализовать этот запрос можно в два этапа. На первом этапе осуществляется разработка запроса на выборку данных, как это было показано выше. Бланк запроса должен иметь вид:
Поле: |
FIOP |
Predm |
Семестр: Iif(Month([Vedom]![DataEkz])>8, ”Осень”, “Весна” |
Имя таблицы: |
Prep |
Predmet |
|
Сортировка: |
|||
Вывод на экран: |
|||
Условие отбора: |
|||
или: |
Убедитесь в правильности выполнения запроса. Создайте на его основе таблицу. Для этого выберите команду «Запрос. Создание таблицы». Введите Ведение предметов в поле «Имя таблицы». Нажмите на панели инструментов кнопку «Запуск». Выводится приглашение подтвердить добавление указанного числа записей. Нажмите кнопку «Да». Убедитесь, что таблица создана.
Создание запросов на добавление данных. Запрос на добавление данных создает структуру новой таблицы на основе записей запроса. Запрос на добавление включает новые данные в уже существующую таблицу. Для построение запроса на добавление выбирается команда «Запрос. Добавление».
Здесь следует учитывать, что в бланке запроса появиться новая строка Добавление. В этой строке указываются поля таблицы, в которую происходит добавление данных, а в строках Поле и Имя таблицы откуда происходит добавление.
Запросы на удаление записей. Создайте запрос на выборку и включите в него все поля (перетащите элемент списка полей *), а затем добавьте поля, определяющие критерий отбора уничтожаемых данных. Если не задать условие, то, преобразовав запрос на выборку в запрос на удаление и выполнив его, можно удалить все записи используемой таблицы.
Для преобразования запроса на выборку в запрос на удаление выберите команду «Запрос. Удаление». Строки «Сортировка» и «Вывод на экран» исчезают, появляется строка «Удаление». Значение «Из» в первой ячейке строки «Удаление» вместе с выражением, заданным в ячейке «Поле», указывают откуда произойдет удаление. Столбцы со значением «Условие» в строке «Удаление» определяют критерий отбора записей для удаления.
Запросы для обновления записей. Запросы на обновление позволяют изменять данные в таблице. Они используются для обновления значений полей с помощью одного общего выражения. Для создания запроса на обновление требуется выполнить следующие действия:
Откройте «Конструктор запросов». С помощью «Запрос. Обновление» установите режим обновления. В бланке запроса появиться новая строка Обновление, в которой указывается значение, на которое будет меняться значение поля в данном столбце. Условие определяет критерий отбора записей для обновления.
Задание. Создать следующие запросы: