- •Министерство образования и науки рф
- •1. Аналитическая часть
- •1.1. Анализ предметной области
- •1.2. Разработка контекстной диаграммы
- •1.3. Диаграммы декомпозиций
- •1.4. Ведение каталога
- •1.5. Ведение каталога книг
- •1.6. Ведение каталога читателей
- •1.7.Поисковая система
- •1.8. Система формирования заказов
- •1.9.Диаграммы дерева узлов
- •Модель базы данных
- •2. Основная часть
- •2.1.Технология проектирования баз данных
- •2.2.Определение сущностей
- •2.3. Определение взаимосвязей между сущностями и создание модели данных
- •2.4.Задание первичных и альтернативных ключей, определение атрибутов сущностей
- •2.5. Приведение модели к требуемому уровню нормальной формы
- •2.6. Описание физической модели
- •2.7. Разработка меню, форм, инструментальных панелей и др.
- •Заключение
- •Список используемой литературы
2.7. Разработка меню, форм, инструментальных панелей и др.
Разработаем формы для каждой из таблиц и занесем в них данные.
Рисунок 28 – Форма "Авторы"
Рисунок 29 – Форма "Города"
Рисунок 30 – Форма "Издательства"
Рисунок 31– Форма "Информация о книге"
Форма "Информация о книге" имеет подчиненную форму "Авторы книг", через которую можно назначить несколько авторов одной книге.
Рисунок 32 – Форма "Авторы"
Рисунок 33 – Форма "Информация о читателе"
Рисунок 34– Форма "Бронирование книг"
В данной форме требуется ввести либо "Шифр книги" либо выбрать «Код читательского билета». Второе поле база данных установит самостоятельно.
Рисунок 35– Форма "Выдача книг"
Создадим главную кнопочную форму.
Рисунок 36 – Форма "Главная кнопочная форма"
Разработка запросов
Разработаем запросы.
1) Вывод сведений о книгах, взятых определенным читателем
Рисунок 37 – Запрос "Вывод сведений о книгах, взятых определенным читателем"
Данный запрос, описанный в SQL:
SELECT [Выдача книг].[Код читательского билета], [Выдача книг].[Шифр книги], [Информация о книге].Название, Издательства.Наименование, [Выдача книг].[Дата выдачи книги], [Выдача книг].[Дата возврата книги]
FROM ([Информация о читателе] INNER JOIN ((Издательства INNER JOIN [Информация о книге] ON Издательства.[Код издательства] = [Информация о книге].[Код издательства]) INNER JOIN [Бронирование книг] ON [Информация о книге].[Шифр книги] = [Бронирование книг].[Шифр книги]) ON [Информация о читателе].[Номер билета] = [Бронирование книг].[Код читательского билета]) INNER JOIN [Выдача книг] ON [Информация о читателе].[Номер билета] = [Выдача книг].[Код читательского билета];
2) Запрос о читателях, у которых находится определенная книга.
При построении данного запроса исключаются книги, которые были возвращены читателями, т.е. присутствует дата возврата.
Рисунок 38 – Запрос "Сведения о читателях, у которых находится определенная книга"
Данный запрос, описанный в SQL:
SELECT [Информация о книге].[Шифр книги], [Информация о книге].Название, [Выдача книг].[Дата выдачи книги], [Выдача книг].[Дата выдачи книги], [Информация о читателе].Фамилия, [Информация о читателе].Имя, [Информация о читателе].Отчество
FROM [Информация о читателе] INNER JOIN ([Информация о книге] INNER JOIN [Выдача книг] ON [Информация о книге].[Шифр книги] = [Выдача книг].[Шифр книги]) ON [Информация о читателе].[Номер билета] = [Выдача книг].[Код читательского билета];
3) Запрос о домашнем адресе и телефоне определенного читателя.
Рисунок 39 – Запрос о домашнем адресе и телефоне определенного читателя
Данный запрос, описанный в SQL:
SELECT [Информация о читателе].[Номер билета], [Информация о читателе].[Фамилия], [Информация о читателе].[Имя], [Информация о читателе].[Отчество], [Информация о читателе].[Телефон], [Информация о читателе].[Адрес]
FROM [Информация о читателе];
4)Запрос найти автора на букву «А»
Рисунок 40– Запрос найти автора на букву «А»
Данный запрос, описанный в SQL:
SELECT Авторы.Фамилия
FROM Авторы
WHERE (((Авторы.Фамилия)="А"));
5) Запрос по разделу
Рисунок 41 – Запрос по разделу
Данный запрос, описанный в SQL:
SELECT [Информация о книге].[Код раздела]
FROM [Информация о книге]
WHERE ((([Информация о книге].[Код раздела])=1)) OR ((([Информация о книге].[Код раздела])=3));
6)Запрос о рейтинге книги с группировкой
Рисунок 42 – Запрос о рейтинге книги с группировкой
Данный запрос, описанный в SQL:
SELECT [Информация о читателе].[Номер билета], [Выдача книг].[Дата возврата книги]
FROM [Информация о читателе] INNER JOIN [Выдача книг] ON [Информация о читателе].[Номер билета] = [Выдача книг].[Код читательского билета]
GROUP BY [Информация о читателе].[Номер билета], [Выдача книг].[Дата возврата книги];
7)Запрос на литературу выпущенную не ранее 2000 года
Рисунок 43 – Запрос на литературу выпущенную не ранее 2000 года
Данный запрос, описанный в SQL:
SELECT [Информация о книге].[Шифр книги], [Информация о книге].[Год издания]
FROM [Информация о книге]
WHERE ((([Информация о книге].[Год издания])>"#2000#"));
8)Запрос на выдачу не более 5 книг и сданную литературу до 01.01.2014 г.
Рисунок 44 – Запрос на выдачу не более 5 книг и сданную литературу до 01.01.2014 г.
Данный запрос, описанный в SQL:
SELECT [Информация о книге].Количество, [Информация о читателе].Фамилия, [Выдача книг].[Дата возврата книги]
FROM [Информация о книге] INNER JOIN ([Информация о читателе] INNER JOIN [Выдача книг] ON [Информация о читателе].[Номер билета] = [Выдача книг].[Код читательского билета]) ON [Информация о книге].[Шифр книги] = [Выдача книг].[Шифр книги]
WHERE ((([Информация о книге].Количество)>"5") AND (([Выдача книг].[Дата возврата книги])>#1/1/2014#));
9)Запрос по задолжникам
Рисунок 45 – Запрос по задолжникам
Данный запрос, описанный в SQL:
SELECT Задолжники.Фамилия, Задолжники.Имя, Задолжники.Отчество, Задолжники.[Дата выдачи книги]
FROM Задолжники
WHERE (((Задолжники.[Дата выдачи книги])<#1/1/2013#));