Студенты ∞-∞ Дисциплины 1-∞ Преподаватели
Чтобы избежать множественных связей, введём вспомогательную таблицу Оценки.
Поля таблицы Оценки: код студента, код дисциплины, оценки.
Таким образом, получается следующая схема данных (рис. 1).
Рис. 1. Схема данных базы данных «Деканат ТФ»
Создание и заполнение таблиц базы данных «Деканат ТФ»
В СУБД Access имеются различные способы создания таблиц базы данных:
· ручные (режим Конструктор);
· автоматизированные (с помощью Мастера);
· автоматические (средства ускоренной разработки простейших объектов).
При выполнении лабораторных работ рекомендуется таблицы и запросы создавать в режиме Конструктор, а формы, отчёты и т.д. – с помощью Мастера.
Задание. В папке с номером группы создать базу данных ДеканатТФ, создать в ней таблицы, перечисленные в Схеме данных со следующими типами данных.
Таблица Студенты
Имя поля | Тип данных | Размер поля |
Код студента | Счётчик | |
Фамилия | Текстовый | |
Имя | Текстовый | |
Отчество | Текстовый | |
Номер группы | Текстовый | |
Дата рождения | Дата/Время | Краткий |
Стипендия | Логический | Да/Нет |
Таблица Дисциплины
Имя поля | Тип данных | Размер поля |
Код дисциплины | Числовой | Целое |
Название дисциплины | Текстовый |
Таблица Преподаватели
Имя поля | Тип данных | Размер поля |
Код преподавателя | Счётчик | |
Фамилия | Текстовый | |
Имя | Текстовый | |
Отчество | Текстовый | |
Код дисциплины | Числовой | Целое |
Дата рождения | Дата/Время | Краткий |
Телефон | Текстовый | |
Заработная плата | Денежный | |
Должность | Текстовый |
Таблица Оценки
Имя поля | Тип данных | Размер поля |
Код студента | Числовой | Длинное целое |
Код дисциплины | Числовой | Целое |
Оценки | Числовой | Байт |
Ключевые поля выделены. В таблице Оценки ключевое поле не создавать.
Для создания базы данных «Деканат ТФ» необходимо запустить СУБД MS Access 2003 любым известным способом (рис. 2) и либо используя командное меню «Файл» либо пиктограмму «Создать» с панели инструментов вызвать диалоговая панель создания новой базы данных (рис. 3). На диалоговой панели указать способ создания базы данных - «Новая база данных», после чего в появившемся диалоговом меню сохранения файла базы данных указать имя файла «База Данных ДЕКАНАТ ТФ» который необходимо сохранить в пользовательском каталоге студентов «Студенты» (рис. 4). Также рекомендуется сохранять файлы в подкаталогах каталога «Студенты» названных именем группы и (или) Ф.И.О. студента.
Рис. 2. Внешний вид СУБД MS Access 2003
Рис. 3. Диалоговая панель создания новой базы данных
Для создания таблицы Диалоговое меню Конструктора Базы Данных (рис. 5) в объекте «Таблицы» нужно дважды щелкнуть по строке «Созданиетаблицыврежимеконструктора». Либо один раз щелкнуть по строке «Созданиетаблицыврежимеконструктора», а затем по кнопке на панели инструментов.
Рис. 4. Диалоговое меню сохранения файла базы данных
Рис. 5. Диалоговое меню Конструктора Базы Данных
В появившемся окне Конструктора Таблиц (рис. 6) нужно задать имя полей таблицы и соответствующий тип данных (рис. 7).
При создании таблицы тип данных для каждого поля выбирается из списка. Размер поля, формат поля и другие дополнительные свойства указывается в нижней части окна на закладке «Общие» (рис. 8-10).
Рис. 6. Внешний вид формы Конструктора Таблиц
Рис. 7. Создание поля «Код студента» и установка его типа «Счетчик»
при помощи Конструктора Таблиц
Рис. 8. Создание поля «Фамилия», установка его типа «Текстовый» и задание
размера поля «15» при помощи Конструктора Таблиц
Рис. 9. Создание поля «Дата рождения», установка его типа «Дата/Время» и задание
формата поля «Краткий формат даты» при помощи Конструктора Таблиц
После добавления всех необходимых полей в создаваемую структуру таблицы нужно закрыть Конструктор Таблиц, при этом, если таблица создается впервые или в ней были проведены существенные изменения, MS Access выведет сообщение с запросом о необходимости сохранения внесенных изменений (рис. 11). Следующим вопросом MS Access, если таблица создается впервые, будет вопрос о задании имени таблицы (рис. 12).
Рис. 10. Создание поля «Стипендия», установка его типа «Логический» и задание
формата поля «Да/Нет» при помощи Конструктора Таблиц
Рис. 11. Сообщение Конструктора Таблиц с запросом о сохранении изменений в таблице
Рис. 12. Сообщение Конструктора Таблиц с запросом о имени новой таблицы
Если при создании таблицы умышленно или по ошибке не было указано ключевое поле – MS Access отметит это соответствующим сообщением (рис. 13).
Рис. 13. Сообщение Конструктора Таблиц о том, что при создании таблицы в режиме конструктора не было задано ключевое поле с запросом о необходимости его создания
Для внесения изменений в созданную таблицу нужно выделить ее одним щелчком левой клавиши мыши и щелкнуть по кнопке на панели инструментов или выбрать соответствующий пункт в контекстно-зависимом меню (рис. 14).
Для создания ключевого поля в таблице щелкнуть по имени поля правой клавишей мыши и в контекстном меню выбрать пункт «Ключевое поле» (рис. 15-16).
Рис. 14. Открытие таблицы для правки в режиме Конструктора Таблиц | Рис. 15. Правка положения ключевого поля в Конструкторе Таблиц |
Рис. 16. Задание ключевого поля в Конструкторе Таблиц при создании таблицы
Для изменения последовательности полей в таблице нужное поле надо выделить. Для выделения поля установить указатель мыши слева от него (указатель превратится в черную стрелку) и щелкнуть левой клавишей. После этого при нажатой левой клавише переместить указатель мыши в нужное место. Для удаления поля после его выделения нажать клавишу Delete. Можно добавить новые поля в таблицу, установив указатель мыши на поле, перед которым необходимо сделать добавление и по щелчку правой кнопки мыши в появившемся контекстно-зависимом меню выбрать «Добавить строки».
В результате создания всех таблиц Конструктор Базы Данных будет иметь следующий вид (рис. 17).
Рис. 17. Внешний вид Конструктора Базы Данных с созданными таблицами «Дисциплины», «Оценки», «Преподаватели» и «Студенты»
Задание. Заполнить созданные таблицы следующими данными.
Таблица Студенты
Код студента | Фамилия | Имя | Отчество | Номер группы | Дата рождения | Стипендия |
Арбузов | Николай | Николаевич | Т-2118 | 27.04.86 | Да | |
Киршин | Петр | Валерьевич | Т-2118 | 12.12.85 | Да | |
Кривинский | Сергей | Николаевич | Т-2118 | 02.05.86 | Нет | |
Крылова | Елена | Петровна | Т-2118 | 11.07.82 | Да | |
Кульчий | Григорий | Викторович | Т-2118 | 03.11.84 | Да | |
Патрикеев | Олег | Борисович | Т-2118 | 15.10.84 | Нет | |
Перлов | Кирилл | Николаевич | Т-2118 | 25.10.86 | Нет | |
Соколова | Наталия | Петровна | Т-2118 | 20.09.86 | Нет | |
Степанская | Ольга | Витальевна | Т-2118 | 30.12.86 | Да | |
Тимофеев | Сергей | Трофимович | Т-2118 | 17.01.86 | Да |
Таблица Дисциплины
Код дисциплины | Название дисциплины |
Специальные главы «Информатика» | |
Философия | |
Математика | |
Физика |
Таблица Преподаватели
Код преподавателя | Фамилия | Имя | Отчество | Код дисциплины | Дата рождения | Телефон | Заработная плата | Должность |
Михалёв | Андрей | Михайлович | 10.10.78 | 23-04-21 | 11200 р. | Доцент | ||
Полякова | Елена | Николаевна | 26.12.72 | 43-20-16 | 11500 р. | Доцент | ||
Хрипунов | Сергей | Владимирович | 01.06.75 | 44-51-60 | 11500 р. | Доцент | ||
Маслов | Денис | Александрович | 12.02.72 | 56-42-56 | 6500 р. | Старший преподаватель | ||
Воронцов | Борис | Сергеевич | 31.08.47 | 52-10-45 | 15500 р. | Профессор | ||
Капустин | Михаил | Владимирович | 21.09.82 | 24-02-10 | 5700 р. | Ассистент | ||
Давыдова | Марина | Вадимовна | 31.07.61 | 39-41-88 | 14200 р. | Доцент |
Таблица Оценки
Код студента | Код дисциплины | Оценки | Код студента | Код дисциплины | Оценки |
Лабораторная работа №2 «Создание связей и запросов в СУБД MS Access 2003»
Тема: Создание межтабличных связей. Создание запроса на выборку, с параметром и итогового запроса.
Открыть созданную в предыдущей лабораторной работе базу данных Деканат ТФ.
Создание межтабличных связей
В окне базы данных выбрать объект Таблицы.Щелкнуть по кнопке «Схемаданных» на панели инструментов или выполнить команду «Сервис» Þ «Схемаданных», используя командное меню. На экране появится окно «Схемаданных» и окно «Добавлениетаблицы» (рис. 18).
Рис. 18. Диалоговое окно «Схема данных» и диалоговое окно «Добавление таблицы»
В окне «Добавлениетаблицы» на закладке «Таблицы» перечислены все таблицы базы данных. Для создания связей между таблицами их нужно переместить из окна «Добавлениетаблицы» в окно «Схемаданных». Для переноса таблицы ее надо выделить щелчком мыши и щелкнуть по кнопке «Добавить». После переноса нужных таблиц закрыть окно «Добавлениетаблицы».
Перенести все таблицы в окно «Схемаданных». Изменить размер окон таблиц, чтобы был виден весь текст (рис. 19).
Чтобы создать связь между таблицами Студенты и Оценки в соответствии со Схемой данных надо подвести курсор мыши к полю Код студента в таблице Студенты и при нажатой клавише мыши перетащить это поле на поле Код студента в таблице Оценки, а затем отпустить кнопку мыши. Откроется окно «Изменениесвязей» (рис. 20).
Установить флажок в свойстве «Обеспечениецелостностиданных», щелкнув по нему. Установить флажки в свойствах «Каскадноеобновлениесвязанныхполей» и «Каскадноеудалениесвязанныхполей». Это позволит редактировать записи только в таблице Студенты, а в таблице Оценки эти действия со связанными записями будут выполняться автоматически.
Для создания связи щелкнуть по кнопке «Создать».
Рис. 19. Внешний вид схемы данных базы данных «Деканат ТФ» до наложения связей
Рис. 20. Диалоговое окно задания параметров связи между полями таблиц
Аналогично в соответствии со Схемой данных создаются связи между остальными таблицами (рис. 21).
Рис. 21. Схема данных базы данных «Деканат ТФ»
При закрытии окна схемы данных ответить Да на вопрос о сохранении макета.
Созданные связи между таблицами базы данных могут быть изменены.
Для изменения связей нужно вызвать окно «Схемаданных». После этого установить курсор мыши на связь, которую нужно изменить и щелкнуть правой клавишей мыши. Появится контекстное меню (рис.22):
Рис. 22. Контекстное меню связи
Если выбрать команду «Удалить», то после подтверждения связь будет удалена. Если нужно изменить связь, выбрать команду «Изменитьсвязь». После этого в появившемся окне «Изменениесвязей» (в его верхней части) выбрать поля в таблицах, которые нужно связать и щелкнуть по кнопке «Создать».
Запросы
Для отбора или поиска данных из одной или нескольких таблиц используются запросы. С помощью запросов можно просматривать, анализировать и изменять данные из нескольких таблиц. Они также используются в качестве источника данных для форм и отчётов. Запросы позволяют вычислять итоговые значения и выводить их в компактном формате, а также выполнять вычисления над группами записей.
Мы будем разрабатывать запросы в режиме Конструктора.
В Access можно создавать следующие типы запросов:
· Запрос на выборку. Является наиболее часто используемым типом запроса. Запросы этого типа возвращают данные из одной или нескольких таблиц и отображают их в виде таблицы. Запросы на выборку можно также использовать для группировки записей и вычисления сумм, средних значений, подсчета записей и нахождения других типов итоговых значений. Для изменения условий отбора надо изменять запрос.
· Запрос с параметрами. Это запрос, при выполнении отображающий в собственном диалоговом окне приглашение ввести данные или значение, которое требуется вставить в поле. Эти данные или значение могут меняться при каждом обращении к запросу.
· Перекрестный запрос. Используется для расчетов и представления данных в структуре, облегчающей их анализ. Перекрестный запрос подсчитывает сумму, среднее, число значений или выполняет другие статистические расчеты, после чего результаты группируются в виде таблицы по двум наборам данных, один из которых определяет заголовки столбцов, а другой заголовки строк.
· Запрос на изменение. Это запрос, который за одну операцию изменяет или перемещает несколько записей. Существует четыре типа запросов на изменение:
1. На удаление записи. Этот запрос удаляет группу записей из одной или нескольких таблиц.
2. На обновление записи. Вносит общие изменения в группу записей одной или нескольких таблиц. Позволяет изменять данные в таблицах.
3. На добавление записей. Добавляет группу записей из одной или нескольких таблиц в конец одной или нескольких таблиц.
4. На создание таблицы. Создает новую таблицу на основе всех или части данных из одной или нескольких таблиц.
· Запросы SQL. Создаются при помощи инструкций языка SQL, используемого в БД.
Создание запроса на выборку
Создадим запрос Зарплата, в котором должны отображаться фамилии преподавателей, их заработная плата, должности и названия преподаваемых ими дисциплин. Эти сведения хранятся в двух таблицах: Преподаватели и Дисциплины.
Для создания запроса в окне базыданных выбрать объект Запросы (рис. 23). Дважды щелкнуть по строке «Созданиезапросаврежимеконструктора». Либо один раз щелкнуть по строке «Созданиезапросаврежимеконструктора», а затем по кнопке «Открыть» на панели инструментов (рис. 23).
Рис. 23. Внешний вид Конструктора Базы Данных с открытым разделом «Запросы»
Открывается бланк запроса на выборку и окно «Добавлениетаблицы» (рис. 24).
Рис. 24. Добавление таблиц в открытый запрос
Выбрать таблицы Преподаватели и Дисциплины, используя кнопку«Добавить».Закрыть окно «Добавлениетаблицы» (рис. 25).
Рис. 25. Форма бланка запроса с добавленными таблицами «Преподаватели» и «Дисциплины»
После этого надо перенести нужные поля в нижнюю часть бланка запроса. Для этого, последовательно устанавливая указатель мыши в нижней части бланка запроса, в окне с названием «Поле» два раза щелкнуть по соответствующим полям в таблицах.
При этом в строке «Поле» появляется название перенесенного поля, а в строке «Имятаблицы» - название таблицы, из которой взято это поле (рис. 26).
В строке «Сортировка» можно задать способ сортировки (по возрастанию или убыванию) или отсутствие сортировки. Добавить в запрос поля «Фамилия», «Заработная плата», «Должность», «Название дисциплины» (рис. 26)
Рис. 26. Сформированный бланк запроса
При закрытии бланка запроса дать ему имя Зарплата (рис. 27).
Рис. 27. Сообщение с запросом о имени нового запроса
Для изменения запроса нужно его выделить и щелкнуть по кнопке «Конструктор» или воспользоваться соответствующим контекстно-зависимым меню (рис. 28) в окне базы данных. Откроется бланк запроса, в который можно внести изменения.
Запускается запрос двойным щелчком по его имени. На экране появляется результат выполнения запроса в виде таблицы (рис. 29).
Записи в этой таблице могут быть отсортированы несколькими способами.
Рис. 28. Вызов режима конструктора запросов при помощи контекстно-зависимого меню
Рис. 29. Результат работы созданного запроса
Способ 1. Надо выделить столбец, по которому будут сортироваться записи. Для выделения столбца установить указатель мыши на заголовок столбца (он превращается в черную стрелку, направленную вниз) и щелкнуть левой клавишей. После этого щелкнуть на панели инструментов по кнопке для сортировки записей по возрастанию или по кнопке для сортировки по убыванию (рис. 30).
Способ 2. Установить курсор мыши в любое место в столбце и проделать ту же операцию.
Способ 3. Щелкнуть правой клавишей мыши по нужному столбцу и в контекстном меню выбрать нужную команду (рис. 31).
С результатом выполнения запроса, кроме его просмотра на экране, можно выполнять следующие действия.
Чтобы его напечатать, нужно щелкнуть по кнопке «Печать» на панели инструментов.
Для обработки полученных результатов (например, нахождение средней зарплаты, суммарной зарплаты и др.) с помощью Excel, надо выполнить команду Þ Þ . Результаты будут представлены в виде таблицы Excel для их дальнейшей обработки (рис. 32).
Рис. 30. Сортировка данных при помощи пиктограмм на панели инструментов
Рис. 31. Сортировка данных при помощи контекстно-зависимого меню
Рис. 32. Передача данных, полученным запросом, для последующего анализа их в Microsoft Excel
Для представления результатов в виде документа Word надо выполнить команду Þ Þ (рис. 33).
Рис. 33. Передача данных, полученным запросом, в Microsoft Word
Для представления результатов в виде диаграммы нужно щелкнуть правой клавишей мыши по заголовку окна результатов и выбрать команду (рис. 34). Появится окно диаграммы и окно со списком полей, соответствующим заголовкам столбцов (рис. 35). Диаграмма формируется путем перетаскивания нужных полей (рис. 36-37). После этого полученная диаграмма может быть напечатана.
Рис. 34. Вызов диалоговых меню для построения «Сводных диаграмм»
Запрос дает возможность получить всю информацию, содержащуюся в базе данных. Если требуется не вся информация, а только та, которая отвечает определенным условиям, при создании запроса нужно указать условия отбора.
Рис. 35. Диалоговое меню построения «Сводных диаграмм»
Рис. 36. Сводная диаграмма «Фамилия» - «Заработная плата»
Рис. 37. Сводная диаграмма «Фамилия» - «Должность»
В строке «Условиеотбора» можно указать критерий, по которому будет идти отбор. Условия отбора содержат знаки =, >, <, >=, <=, <>, либо логические операторы Between, And и Or.
Если интересуют преподаватели, у которых заработная плата выше 10000 рублей, в нижней части бланка запроса в колонке «Заработнаяплата» в строке «Условиеотбора» нужно набрать условие: >10000 (рис. 38).
Рис. 38. Задание условие отбора по полю «Заработная плата» > 10 000
При выполнении этого запроса будут выведены фамилии тех преподавателей, у которых заработная плата больше величины, указанной в условии.
Рис. 39. Результат работы запроса с условием, заданным на рис. 38
Если интересуют преподаватели, заработная плата которых больше 5000 рублей и меньше 10000 рублей, то должно быть задано условие: >5000 and <10000 (рис. 40).
Если интересуют преподаватели, заработная плата которых больше 10000 рублей или меньше 7000 рублей, то должно быть задано условие: >10000 or <7000.
Если интересуют преподаватели, заработная плата которых больше 5000 рублей и меньше 7500 рублей, то должно быть задано условие: between 5000 and 7500.
Если интересуют преподаватели, которые ведут дисциплину Специальные главы «Информатика», то для поля Название дисциплины в строке условия отбора указать: Специальные главы «Информатика» (рис. 41-42).
Рис. 40. Задание условие отбора по полю «Заработная плата» > 5 000 and < 10 000
Рис. 41. Задание условие отбора по полю
«Название дисциплины» = Специальные главы «Информатика»
Рис. 42. Результат работы запроса с условием заданным на рис. 41
Создание запроса с параметром
Чтобы не редактировать запрос при изменении условия отбора (например, интересуют другие пределы по заработной плате или другое название дисциплины), они могут быть заданы в виде параметра, конкретное значение которого задается при выполнении запроса.
Например, если интересуют преподаватели с заработной платой выше некоторой величины, то в условиях отбора для этого поля надо ввести: >[Введите минимальную заработную плату] (рис. 43).
Рис. 43. Задание условие отбора по полю «Заработная плата»
>[Введите минимальную заработную плату](Запроса с параметром)
При выполнении запроса на экране появится окно для ввода условия отбора с текстом, заданным в квадратных скобках (рис. 44).
Рис. 44. Окно для ввода условия отбора | Рис. 45. Условие отбора = 10 000 |
После набора нужного числа щелкнуть по кнопке ОК (рис. 45).
Рис. 46. Результат работы запроса с условием, заданным на рис. 45
При формировании запроса, в котором в качестве параметра выступает название дисциплины, в условиях отбора для поля Название дисциплины надо ввести: [Введите дисциплину] (рис. 47).
Рис. 47. Задание условие отбора по полю «Название дисциплины»
[Введите дисциплину](Запроса с параметром)
Задание
1. Создать запрос Оценка студента, выводящий оценку заданного студента по заданной дисциплине (рис. 48).
2. Создать запрос Список, выводящий список студентов заданной группы (рис. 49).
3. Создать запрос Список успевающих, выводящий список студентов заданной группы, получающих стипендию (условие отбора в поле Стипендия - Да) (рис. 50).
Рис. 48. Создание запроса «Оценка студента»
Рис. 49. Создание запроса «Список»
Рис. 50. Создание запроса «Список успевающих»
Создание итогового запроса
Создадим запрос Средняя зарплата, выводящий среднюю зарплату и число преподавателей каждой преподавательской должности.
Для создания такого запроса нужно в бланк запроса из таблицы Преподаватели перенести поля Должность, Заработная плата и Код преподавателя (рис. 51). Далее включить строкуГрупповые операции (нажать кнопку ∑ на панели инструментов или в меню «Вид» выполнить команду «Групповыеоперации»).
Затем в строке «Групповыеоперации»щелчком мыши следует установить следующие режимы: для поля Должность – Группировка(стоит по умолчанию), для поля Заработная плата выбрать из списка – Avg (эта команда подсчитывает среднее значение), для поля Код преподавателя выбрать из списка – Count(эта команда суммирует число записей) (рис. 52).
Задание. Создать запрос Отличники, выводящий список круглых отличников. Потребуются поля Фамилия, Имя, Отчество из таблицы Студенты и поле Оценки из таблицы Оценки (рис. 53).
Рис. 51. Создание запроса с полями «Должность», «Заработная плата» и «Код преподавателя»
Рис. 52. Создание группового запроса
Рис. 53. Создание запроса «Отличники»
Рис. 54. Задание свойств запроса «Отличники» - способ вывода
данных – выводить «Уникальные записи» (Неповторяющиеся)
Дата добавления: 2015-09-02; просмотров: 7179;