Ответ:

Чтобы хранить сведения о книгах и выдачах без повторения данных, удобно создать несколько связанных таблиц. Для учёта учащихся, получавших книгу, используются записи о выдаче; число таких учащихся можно получить запросом.

Таблица «Книги»

ПолеТипНазначениеПример
КнигаIDЦелое, первичный ключИдентификатор книги1
НазваниеТекстНазвание книгиОстров сокровищ
ИздательствоIDЦелое, внешний ключСсылка на издательство1
ГодИзданияЦелоеГод издания2020
СтраницЦелоеКоличество страниц320
ИллюстрацийЦелоеКоличество иллюстраций12
ЭкземпляровЦелоеВсего экземпляров в библиотеке5

Связанные таблицы

  • «Авторы»: АвторID (первичный ключ), ФИО.
  • «АвторКниги»: КнигаID и АвторID — таблица связи, позволяющая указать одного или нескольких авторов у книги.
  • «Издательства»: ИздательствоID (первичный ключ), Наименование.
  • «Учащиеся»: УченикID (первичный ключ), ФИО, класс.
  • «Выдачи»: ВыдачаID (первичный ключ), КнигаID, УченикID, ДатаВыдачи, ДатаВозврата. Каждая запись фиксирует выдачу книги учащемуся.

Связи: «Книги»—«Издательства» — многие к одному; «Книги»—«Авторы» — многие ко многим через «АвторКниги»; «Книги»—«Учащиеся» — многие ко многим через «Выдачи».

Пример запроса

Запрос подсчитывает число разных учащихся, которым выдавалась каждая книга. В редакторе SQL запрос можно задать так:

SELECT Книги.Название, COUNT(DISTINCT Выдачи.УченикID) AS ЧислоУчащихся
FROM Книги LEFT JOIN Выдачи ON Книги.КнигаID = Выдачи.КнигаID
GROUP BY Книги.КнигаID, Книги.Название;

Если используемая версия Base не поддерживает COUNT(DISTINCT), сначала создайте запрос с уникальными парами КнигаID—УченикID, а затем сгруппируйте их по КнигаID и подсчитайте записи.

Форма

Создайте форму «Карточка книги» на основе таблицы «Книги»: поля «Название», «Издательство», «ГодИздания», «Страниц», «Иллюстраций» и «Экземпляров». Для автора добавьте подформу, связанную с таблицами «АвторКниги» и «Авторы». Отдельную форму «Выдача книги» свяжите с таблицей «Выдачи» и добавьте выбор книги и учащегося, дату выдачи и дату возврата. В мастере форм OpenOffice Base укажите соответствующие таблицы и связи.