Лабораторная работа
Создание и использование базы данных «Библиотека»
Цель работы: создать базу данных «Библиотека».
Этапы работы:
1. Проектирование структуры базы данных.
База данных будет состоять из семи таблиц:
1. Авторы,
2. Книги,
3. Разделы,
4. Издательства,
5. АвторКниги.
6. Читатели,
7. Выдача.
Соответствующие поля в таблице Книги должны быть полями подстановок из Разделы и Издательства.
2. Построение пустых таблиц базы данных.
В таблице Разделы только одно поле Раздел. Оно является ключевым.
| Имя поля | Тип данных |
| Раздел | Текстовое |
В таблице Издательства существует два поля Издательство и Город. Поле Издательство является ключевым.
| Имя поля | Тип данных |
| Издательство | Текстовое |
| Город | Текстовое |
Таблицу Книги будем создавать в режиме Конструктор. В ней будет 6 полей (КодКниги, Название, Раздел, Издательство, ГодИздания и МестоХранения). Поле КодКниги ключевое.
| Имя поля | Тип данных | Описание поля |
| КодКниги | Счетчик | |
| Название | Текстовое | |
| Раздел | Текстовое | Внешний ключ |
| Издательство | Текстовое | Внешний ключ |
| ГодИздания | Текстовое | |
| МестоХранения | Текстовое | |
Для полей Раздел, Издательство настроить свойства поля во вкладке Подстановка: выбрать Поле со списком, Источник строк соответственно таблицы Разделы и Издательства.
В таблице Авторы четыре поля (КодАвтора, Фамилия, Имя и Примечание). Поле КодАвтора является ключевым.
| Имя поля | Тип данных |
| КодАвтора | Счетчик |
| Фамилия | Текстовое |
| Имя | Текстовое |
| Примечание | Текстовое |
Таблица АвторКниги создается для многозначной связи таблиц Авторы и Книги. В ней три поля: КодАвтораКниги, КодКниги, и КодАвтора. Поле КодАвтораКниги следует сделать ключевым.
| Имя поля | Тип данных | Описание поля |
| КодАвтораКниги | Счетчик | |
| КодКниги | Числовое | Внешний ключ |
| КодАвтора | Числовое | Внешний ключ |
В таблице Читатели представлена информация о читателях библиотеки. Поле НомерЧитателБилета является ключевым.
| Имя поля | Тип данных | Описание поля |
| НомерЧитБилета | Текстовое | |
| Фамилия | Текстовое | Размер 20 |
| Имя | Текстовое | Размер 20 |
| Отчество | Текстовое | |
| Адрес | Текстовое | |
| Телефон | Текстовое | Размер 11 |
Таблица Выдача содержит 7 полей. Поле НомерВыдачи является первичным ключем, а внешние ключи НомерЧитБилета и КодКниги связывают эту таблицу с таблицами Книги и Читатели.
Поля НомерЧитБилета и КодКниги выполнить в виде поля со списком через Мастера подстановок. Источниками данных будут являться таблицы Читатели и Книги.
| Имя поля | Тип данных | Описание поля |
| НомерВыдачи | Счетчик | |
| ДатаВыдачи | Дата\время | Краткий формат даты |
| ДатаВозврата | Дата\время | Краткий формат даты |
| Сдано | Логическое | Да, нет |
| Срок | числовое | |
| НомерЧитБилета | Текстовое | Внешний ключ |
| КодКниги | Числовое | Внешний ключ |
3. Создание схемы базы данных.

Рис.1. Схема данных БД «Библиотека».
4. Заполните таблицы исходными данными.
Сначала заполняются таблицы Издательства, Разделы, Авторы, Читатели, а затем - таблицы Книги и Выдача.
Заполнять можно в режиме таблицы, а можно создать форму ввода.
-
- Ход работы
Задание 1. Создайте новую базу данных. Создайте структуры таблиц Разделы, Издательства, Авторы, АвторыКниги, Книги, Читатели и Выдача в режиме Конструктор.
Задание 2. Создайте связи в соответствии со схемой данных.
Включите Обеспечение целостности данных при настройке связи.
Задание 3. Заполните вспомогательные таблицы.
• Заполните таблицу Разделы данными: Экономика, Информатика, Психология, Математика, Техника.
• Заполните таблицу Издательства данными: Финансы и Статистика (Москва), Тригон (Санкт-Петербург), Питер (Санкт-Петербург), Наука (Москва), Парадокс (Минск).
Задание 4. Создайте сложную форму с подчинением для таблицы Книги:
• В окне базы данных выберите вкладку Создание.
• В диалоговом окне Другие формы выберите Мастер Форм.
• Щелкните по кнопке ОК.
• Выберите все поля из таблицы Книги, все поля из таблицы Авторы и все поля из таблицы АвторКниги.
Для этого выберите имя таблицы в окне Таблицы/запросы.
Появится список полей в окне Доступные поля.
Кнопка переносить Доступные поля в окно Выбранные поля по одному, а кнопка - все сразу. Выберите все поля.
• Щелкните по кнопке Далее. Оставьте вид формы табличный.
• Вновь щелкните по кнопке Далее. Выберите стиль формы.
• Вновь щелкните по кнопке Далее.
• Задайте имя формы Общая форма. Щелкните по кнопке Готово.
В результате получите форму, в которой можно менять существующие данные и вводить новые значения. При этом записи меняются в основной форме и в подчиненной форме.
Отредактируйте внешний вид формы.
В основной форме введите сведения о книге, а в подчиненной - сведения об авторе (или авторах, если их несколько). Данные брать из таблицы задания №5.
Связанные поля будут заполняться сами(коды книг, авторов).
Задание 5. Введите данные при помощи полученной формы.
Порядок работы:
• Введите название поля и значения данных в соответствии с таблицей.
| КодКниги | 1 |
| Название | Практический курс программирования |
| Раздел | Информатика |
| Издательство | Наука |
| ГодИздания | 1983 |
| МестоХранения | 6-11 |
| КодАвтора | 1 |
| Фамилия | Фролов |
| Имя | Геннадий |
| Примечание | Рекомендована студентам 1 и 2 курса, изучающих программирование |
| КодАвтораКниги | 1 |
| КодКниги | 1 |
| КодАвтора | 1 |
| КодАвтора | 2 |
| КодКниги | 2 |
| Название | Турбо Паскаль для школьников |
| Раздел | Информатика |
| Издательство | Финансы и статистика |
| ГодИздания | 1999 |
| МестоХранения | 6-22 |
| КодАвтора | 3 |
| Фамилия | Попов |
| Имя | Владимир |
| Примечание | Рекомендовано министерством образования |
| КодАвтораКниги | 3 |
| КодКниги | 2 |
| КодАвтора | 3 |
| КодКниги | 3 |
| Название | НТМL в действии |
| Раздел | Информатика |
| Издательство | Питер |
| ГодИздания | 1997 |
| МестоХранения | 5-4 |
| КодАвтора | 4 |
| Фамилия | Морис |
| Имя | Брюс |
| Примечание | Перевод с английского |
| КодАвтораКниги | 4 |
| КодКниги | 3 |
| КодАвтора | 4 |
| КодКниги | 4 |
| Название | Занимательная математика |
| Раздел | Математика |
| Издательство | Тригон |
| ГодИздания | 1998 |
| МестоХранения | 3-14 |
| КодАвтора | 5 |
| Фамилия | Акимова |
| Имя | Светлана |
| Примечание | |
| КодАвтораКниги | 5 |
| КодКниги | 4 |
| КодАвтора | 5 |
| КодКниги | 5 |
| Название | Карьера менеджера |
| Раздел | Экономика |
| Издательство | Парадокс |
| ГодИздания | 1998 |
| МестоХранения | 1-212 |
| КодАвтора | 6 |
| Фамилия | Якокка |
| Имя | Ли |
| Примечание | Перевод с английского |
| КодАвтораКниги | 6 |
| КодКниги | 5 |
| КодАвтора | 6 |
| КодКниги | 6 |
| Название | Национальное счетоводство |
| Раздел | Экономика |
| Издательство | Финансы и Статистика |
| ГодИздания | 1998 |
| МестоХранения | 4-11 |
| КодАвтора | 7 |
| Фамилия | Кулагина |
| Имя | Галина |
| Примечание | |
| КодАвтораКниги | 7 |
| КодКниги | 6 |
| КодАвтора | 7 |
Задание 6. Заполнить таблицу Читатели данными о 10-15 читателей различных групп.
Только после этого можно заполнять таблицу Выдача. Для заполнения таблицы Выдача можно создать вспомогательную форму для ввода данных.
Задание 7. Создание запросов на поиск информации в БД «Библиотека».
Для создания запроса в MS Access 2007 необходимо выбрать вкладку Создание и Конструктор запросов.
Появится окно Запроса 1 (рис. 4-5.) и вкладка Конструктор (рис. 3).
Вкладка Конструктор содержит все виды запросов и режимы работы с запросами.

Рис.3. Вкладка Конструктор запросов.
Рис 4. Окно конструктора запросов.

Рис. 5. Окно добавления таблицы ля выборки данных.
Виды запросов: на выборку, создание таблицы новой, добавление, обновление и удаление записей.

Рис. 6. Режимы работы с запросом.
Создать запрос для поиска читателей с заданной фамилией.
-
В окне добавления таблицы выбрать таблицу Читатель. Закрыть окно Добавление таблицы. В таблице конструктора запросов выбрать Поля для вывода на экран: НомерЧитБилета, Фамилия, Имя, Отчество.
- В Условии отбора под полем Фамилия ввести фамилию одного из читателей (например, Иванов).
- Сохранить запрос под именем Поиск_по_фамилии.
- Запустить на выполнение запрос. Проверить результат выполнения запроса.
Создать запрос для подсчета, через сколько дней читатель сдал книгу.
Создать новый запрос, добавить таблицы Читатель, Выдача, Книги.
Вывести поля как указано на рис.7. Поле для расчета создать в конце таблицы. Ввести с клавиатуры следующее выражение Количество дней: [ДатаВозврата]-[ДатаВыдачи].

Рис. 7. Окно конструктора запроса задания 8.
Сохранить запрос с именем «Количество_дней».
Создание запрос на нахождение читателей, сдавших книгу не в срок.
Открыть ранее созданный запрос Количество_дней и добавить в бланк запроса поле Срок из таблицы Выдача и под вычисляемым полем Количество дней в строке Условие отбора ввести следующее выражение [Срок].Сохранить запрос как Сдали_не_в_срок.
Создать запрос на подсчет книг по каждому разделу.
- Создать запрос на основе таблицы Книги с двумя полями – КодКниги и Раздел.
- Установить Групповые операции под полем КодКниги функцию Count.
- сохранить запрос с именем Сортировка по тематике.
Задание 8. Составить 3 отчета по выполненным запросам.
Задание 10. Макросы в БД
Макрос — это объект, предназначенный для автоматизации работы пользователя. Макрос включает в себя одну или несколько макрокоманд.
Макрокоманда — это инструкция, ориентированная на выполнение определенного действия над объектами Access и их элементами.
Создание макроса начинается с выбора вкладки Создание, пункт Макрос (рис.)
Откроется окно Макрос1.

Верхняя часть окна должна содержать следующие поля: Имя макроса, Макрокоманда, Условие, Аргументы, Примечание для формирования макрокоманды. Если не все поля отображаются на экране необходимо их добавить выбрав на вкладке Конструктор Имена макросов, Условия, Аргументы.
В поле Макрокоманда из раскрывающегося списка выбирается макрокоманда, в нижней части окна можно описать свойства аргументов макрокоманды.
Просмотреть список макрокоманд.
Создать макрос для открывания таблицы Авторы.
Для этого выберите макрокоманду ОткрытьТаблицу, в аргументах макрокоманды в строке Имя таблицы выберите таблицу Авторы. Сохраните макрос с именем Авторы.
Открыть форму Общая (для таблицы Книги). Создать кнопку в области примечания формы при выключенном Мастере (на панели инструментов должна быть неактивна кнопка Использовать мастера).
Откройте окно свойств кнопки и на вкладке События на событие Нажатие кнопки выберите из списка макрос Авторы.
Создайте на кнопке надпись — Все авторы библиотеки.
Создание макроса на добавление новых книг в таблицу Книги.
Создать форму для ввода новых книг для таблицы книги (настроив свойства формы: только для ввода данных).
Создать макрокоманду, открывающую данную форму для ввода новых книг. Сохранить под именем Добавление новых книг.
Задание 11. Создание приложения пользователя.
создать интерфейс БД «Библиотека» на основе кнопочной формы. Примерная ее структура.

