Сбазой данных
результатом работы должна стать база данных для небольшой библиотеки. она должна содержать следующую информацию.
1. о книжном фонде: автор, название, год издания, издательство, инвентарный номер, тип издания — учебное, художественное, справочное.
2. о читателях: фамилия, имя, отчество, номер читательского би- лета, категория — студент, преподаватель, сотрудник.
3. о выдаче книг: что, когда и кому выдано, возвращено ли об- ратно. при возврате запись о выдаче книги не удаляется, а хра- нится до специального указания.
4. для каждого типа изданий определены сроки пользования: учебные — 300 дней, художественные — 10 дней, справочные — 3 дня.
в каждой из таблиц целесообразно определить ключевое поле — одно из заданных полей или дополнительное поле — счетчик.
1
подготовьте нужные таблицы, установите связи между ними. заполните таблицы информацией: 5 читателей разных категорий, 10 книг разных типов, 25 записей о выдаче книг (часть должна быть уже возвращена, часть еще на руках у читателей).
2
на основании созданных таблиц подготовьте следующие запросы.
1. перечень всех изданий, выпущенных указанным издательством за последние пять лет.
2. перечень всех изданий, находящихся на руках у читателей с ука- занием даты истечения срока пользования.
3. перечень всех задержанных книг (срок пользования истек, а книга не возвращена).
4. список всех читателей — должников (если читатель задержал несколько книг, то он должен перечисляться в этом списке один раз).
5. перечень всех книг, находящихся у указанного читателя.
6. данные о читателе, взявшем данную книгу (по указанному ин- вентарному номеру).
7. перечень всех книг, у которых сегодня истекает срок пользо- вания.
8. информация о читателе (фамилия, имя, отчество и перечень книг, которыми он когда-либо пользовался).
9. информация о книге (автор, название, перечень читателей: кто и когда ею пользовался)
10. спрос на различные виды изданий — количество выданных из- даний каждого вида за указанный период.
3
для удобства работы персонала библиотеки подготовьте следую- щие формы.
1. добавление читателя.
2. добавление издания.
3. информация об указанном читателе (перечень книг, находя- щихся у него на руках с указанием, когда книга должна быть возвращена).
4. информация обо всех читателях с перечнем всех книг, которы- ми каждый из них когда-либо пользовался (главная форма — читатели, подчиненная — выданные книги).
4
подготовьте следующие отчеты.
1. информация о читателе (фамилия, имя, отчество и перечень книг, которыми он когда-либо пользовался).
2. информация о книге (кто и когда ею пользовался).
3. спрос на различные виды изданий (рис. 2.36).
рис. 2.36
5
подготовьте кнопочную форму для удобства работы с базой дан- ных.
1. Таблица "Книги"
- Поля: автор, название, год издания, издательство, инвентарный номер, тип издания.
2. Таблица "Читатели"
- Поля: фамилия, имя, отчество, номер читательского билета, категория.
3. Таблица "Выдача книг"
- Поля: что выдано (инвентарный номер книги), когда выдано, кому выдано, возвращено ли обратно.
4. Таблица "Сроки пользования"
- Поля: тип издания, срок пользования (в днях).
Теперь, заполним таблицы информацией:
1. Перейдем к заполнению таблицы "Читатели". Создадим 5 записей разных категорий:
- Запись 1: фамилия - Иванов, имя - Иван, отчество - Иванович, номер читательского билета - 12345, категория - студент.
- Запись 2: фамилия - Петров, имя - Петр, отчество - Петрович, номер читательского билета - 67890, категория - преподаватель.
- Запись 3: фамилия - Сидоров, имя - Алексей, отчество - Алексеевич, номер читательского билета - 24680, категория - сотрудник.
- Запись 4: фамилия - Козлова, имя - Елена, отчество - Владимировна, номер читательского билета - 13579, категория - студент.
- Запись 5: фамилия - Иванова, имя - Анна, отчество - Сергеевна, номер читательского билета - 54321, категория - студент.
2. Теперь перейдем к заполнению таблицы "Книги". Создадим 10 записей разных типов:
- Запись 1: автор - Лев Толстой, название - Война и мир, год издания - 1869, издательство - А, инвентарный номер - 100, тип издания - художественное.
- Запись 2: автор - Федор Достоевский, название - Преступление и наказание, год издания - 1866, издательство - Б, инвентарный номер - 101, тип издания - художественное.
- Запись 3: автор - Александр Пушкин, название - Евгений Онегин, год издания - 1833, издательство - В, инвентарный номер - 102, тип издания - художественное.
- Запись 4: автор - Иван Тургенев, название - Отцы и дети, год издания - 1862, издательство - Г, инвентарный номер - 103, тип издания - художественное.
- Запись 5: автор - Антон Чехов, название - Вишневый сад, год издания - 1904, издательство - Д, инвентарный номер - 104, тип издания - художественное.
- Запись 6: автор - Михаил Лермонтов, название - Герой нашего времени, год издания - 1839, издательство - Е, инвентарный номер - 105, тип издания - художественное.
- Запись 7: автор - Александр Солженицын, название - Один день Ивана Денисовича, год издания - 1962, издательство - Ж, инвентарный номер - 106, тип издания - художественное.
- Запись 8: автор - Николай Гоголь, название - Мертвые души, год издания - 1842, издательство - З, инвентарный номер - 107, тип издания - художественное.
- Запись 9: автор - Аркадий Стругацкий, название - Пикник на обочине, год издания - 1972, издательство - И, инвентарный номер - 108, тип издания - художественное.
- Запись 10: автор - Борис Акунин, название - Азазель, год издания - 1998, издательство - К, инвентарный номер - 109, тип издания - художественное.
3. Продолжим заполнение таблицы "Выдача книг". Создадим 25 записей о выдаче книг, причем часть книг уже возвращена, а часть еще на руках у читателей:
- Запись 1: что выдано - 102 (инвентарный номер книги), когда выдано - 2022-01-01, кому выдано - 12345 (номер читательского билета), возвращено ли обратно - да.
- Запись 2: что выдано - 105, когда выдано - 2022-02-01, кому выдано - 67890, возвращено ли обратно - да.
- Запись 3: что выдано - 108, когда выдано - 2022-03-01, кому выдано - 24680, возвращено ли обратно - нет.
- Запись 4: что выдано - 109, когда выдано - 2022-04-01, кому выдано - 13579, возвращено ли обратно - да.
- Запись 5: что выдано - 100, когда выдано - 2022-05-01, кому выдано - 54321, возвращено ли обратно - нет.
(продолжим так далее до 25 записей)
Теперь, после создания и заполнения таблиц, мы можем перейти к созданию запросов на основе этих таблиц.
1. Перечень всех изданий, выпущенных указанным издательством за последние пять лет:
- Воспользуемся таблицей "Книги" и сделаем запрос, где издательство = указанное издательство и год издания >= текущий год - 5.
2. Перечень всех изданий, находящихся на руках у читателей с указанием даты истечения срока пользования:
- Воспользуемся таблицей "Книги" и таблицей "Выдача книг", сделаем запрос, где инвентарный номер книги из таблицы "Выдача книг" соответствует инвентарному номеру из таблицы "Книги", и возвращено ли обратно = нет. Затем добавим информацию по срокам пользования из таблицы "Сроки пользования".
3. Перечень всех задержанных книг (срок пользования истек, а книга не возвращена):
- Воспользуемся таблицей "Выдача книг", сделаем запрос, где возвращено ли обратно = нет и текущая дата > дата выдачи + срок пользования для каждого инвентарного номера книги.
4. Список всех читателей - должников:
- Воспользуемся таблицей "Выдача книг" и таблицей "Читатели", сделаем запрос, где возвращено ли обратно = нет и сгруппируем по номеру читательского билета.
5. Перечень всех книг, находящихся у указанного читателя:
- Воспользуемся таблицей "Выдача книг", таблицей "Читатели" и таблицей "Книги", сделаем запрос, где номер читательского билета из таблицы "Выдача книг" соответствует номеру читательского билета из таблицы "Читатели", и инвентарный номер книги из таблицы "Выдача книг" соответствует инвентарному номеру из таблицы "Книги", и кому выдано = указанный читатель.
6. Данные о читателе, взявшем данную книгу (по указанному инвентарному номеру):
- Воспользуемся таблицей "Выдача книг" и таблицей "Читатели", сделаем запрос, где инвентарный номер книги из таблицы "Выдача книг" соответствует указанному инвентарному номеру, и номер читательского билета из таблицы "Выдача книг" соответствует номеру читательского билета из таблицы "Читатели".
7. Перечень всех книг, у которых сегодня истекает срок пользования:
- Воспользуемся таблицей "Выдача книг" и таблицей "Книги", сделаем запрос, где сегодняшняя дата = дата выдачи + срок пользования для каждого инвентарного номера книги.
8. Информация о читателе (фамилия, имя, отчество и перечень книг, которыми он когда-либо пользовался):
- Воспользуемся таблицей "Читатели" и таблицей "Выдача книг", сделаем запрос, где номер читательского билета из таблиц