Почему нельзя обойтись одним общим списком

Когда новички начинают делать проект по информатике, первая мысль обычно выглядит просто. Кажется логичным открыть таблицу и записывать в одну строчку фамилию ученика, его класс, название книги, автора, год издания и дату выдачи. С первой десяткой записей проблем действительно не возникает.

Сложности начинаются, когда активный читатель берет за четверть двадцать разных книг. Приходится двадцать раз вручную вбивать его фамилию, имя и класс. Если ученик перейдет в другой класс, исправить запись придется двадцать раз в разных местах. Где-то обязательно появится опечатка, и при сортировке программа посчитает одну и ту же фамилию двумя разными людьми.

Чтобы избежать хаоса и повторов, данные разделяют по независимым тематическим блокам. В профессиональной среде такой подход называют реляционной структурой. Информация хранится отдельно, а при необходимости собирается воедино с помощью связей.

Три главные таблицы библиотечной базы

Для учебного проекта за 7–9 класс достаточно спроектировать три таблицы. Это необходимый каркас, который полностью решает задачи библиотекаря.

  • Таблица с читателями содержит номер читательского билета, фамилию, имя, параллель, букву класса и контактный телефон.
  • Таблица с книгами включает инвентарный номер издания, фамилию автора, название произведения, жанр, год выпуска и общее количество страниц.
  • Таблица выдачи фиксирует факт передачи учебника ученику, связывая номер читателя, инвентарный номер книги, дату выдачи и планируемую дату возврата.

Каждая сущность живет в своем пространстве. Читатель заносится в базу ровно один раз при поступлении в школу, а книга получает свой номер при поступлении в фонд.

Как первичные ключи связывают данные

Связующим звеном между таблицами служат первичные ключи. Первичный ключ — это уникальный идентификатор записи, который никогда не повторяется. Фамилия человека ключом быть не может, ведь в одной школе часто учатся полные тезки с одинаковым годом рождения. Название книги тоже ненадежно, потому что в библиотеку привозят десятки одинаковых экземпляров одного романа.

Поэтому каждой книге присваивают инвентарный номер, а каждому ученику выдают читательский билет с уникальной цифрой. В таблице выдач соединяются именно эти цифры.

Что выбрать для проекта: Excel или Access

Школьные проекты обычно выполняют в одной из двух программ. Выбор зависит от требований учителя и твоих задач.

Электронные таблицы вроде Excel или LibreOffice Calc отлично подходят для быстрого старта. Каждую таблицу создают на отдельном листе. Связывать данные между листами приходится специальными формулами, чаще всего функцией ВПР или связкой ИНДЕКС и ПОИСКПОЗ. Фильтровать книги можно прямо в заголовках колонок. Это наглядно, но при большом потоке данных легко случайно стереть нужную формулу.

Специальные системы управления базами данных, такие как Microsoft Access, устроены строже. Здесь связи между таблицами настраивают визуально в окне схемы данных через связь один ко многим. У одного читателя бывает много взятых книг, но конкретная строка выдачи относится строго к одной записи. Access сразу защищает информацию от случайных ошибок, запрещая выдать книгу несуществующему читателю.

Как составить запросы по авторам и должникам

После заполнения таблиц тестовыми строками переходят к запросам. Запрос — это команда базе данных отобрать и показать только те строки, которые соответствуют условию.

Запрос на поиск книг конкретного автора

В конструкторе запросов выбирают таблицу с книгами. В поле автора задают критерий отбора. Например, если написать «Тургенев» в строке условий, база скроет всю остальную литературу и покажет только произведения этого писателя с указанием года и полки в хранилище.

Запрос на список должников

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

Частые вопросы

Зачем разделять дату выдачи и дату планируемого возврата?

Школьные правила обычно дают на чтение художественной литературы две недели или месяц. Зная точный день выдачи и нормативный срок, программа автоматически вычисляет крайнюю дату возврата и сигнализирует о просрочке.

Что делать, если один ученик берет сразу несколько книг?

В таблице выдач для каждой отдельной книги создается отдельная строчка. Номер читательского билета в них будет одинаковым, а инвентарные номера книг разными. Так база сохраняет четкий учет каждого тома.

Сколько записей нужно внести для защиты школьного проекта?

Для убедительной демонстрации работы достаточно внести 7–10 читателей, около 15–20 популярных школьных книг и оформить 10–12 фактов выдачи. Среди них обязательно должны быть как аккуратно сданные книги, так и просроченные экземпляры.

Можно ли выполнить проект без платного Microsoft Access?

Да, для этого отлично подойдет бесплатный офисный пакет LibreOffice с компонентом Base. Принципы построения таблиц, создания связей и конструктора запросов там работают точно так же.