Перейти к содержанию

Проект для начинающих: база данных школьной библиотеки

Программирование SQL Сложность 1/5

Начало урока

Проект для начинающих: база данных школьной библиотеки

Соберите вместе всё, что вы узнали, и постройте настоящую работающую базу данных библиотеки.

Главная идея: база данных полезнее всего, когда она отвечает на настоящие вопросы. В этом финальном проекте вы спроектируете три таблицы, наполните их данными и будете задавать базе вопросы вроде "Какую книгу берут чаще всего?" и "Какие книги ни разу не брали?"
К концу вы сможете:
  • спланировать небольшую базу из таблиц books, students и loans,
  • писать CREATE TABLE с первичным ключом и внешними ключами,
  • добавлять строки через INSERT,
  • отвечать на реальные вопросы с помощью SELECT, WHERE, ORDER BY, JOIN и GROUP BY.

1. План: три таблицы

Школьная библиотека следит за тремя видами вещей, поэтому мы возьмём три таблицы. Представьте каждую таблицу как один аккуратный список:

  • books - по одной строке на каждую книгу библиотеки.
  • students - по одной строке на каждого ученика, который может брать книги.
  • loans - по одной строке каждый раз, когда ученик берёт книгу.

Почему три таблицы, а не одна большая? Потому что одна огромная таблица снова и снова повторяла бы одно и то же название книги и одно и то же имя ученика. Разделение данных хранит каждый факт один раз. Таблица loans - самая хитрая часть: вместо того чтобы копировать книгу и ученика целиком, каждая выдача хранит только book_id и student_id. Эти маленькие числа указывают на настоящие строки. Такой указатель называется внешним ключом.

books book_id (PK) title author category copies loans loan_id (PK) book_id (FK) student_id (FK) loan_date return_date students student_id (PK) name grade loans связывает books и students
Таблица loans соединяет книгу с учеником. book_id и student_id - внешние ключи.

Аналогия: представьте полку с книгами и класс учеников. Выдача - это маленький стикер с надписью "книга номер 1 у ученика номер 3". Стикер не копирует всю книгу и всего ученика - он просто записывает их номера. Именно это и делает внешний ключ.

Продолжите этот урок на YourAIZone

В полном уроке — объяснение целиком, разобранные примеры, частые ошибки, тесты с мгновенной проверкой и ИИ-репетитор. Начните сразу как гость или создайте аккаунт, чтобы сохранять прогресс.

В полном уроке

  • Объяснение целиком
  • Разобранные примеры
  • Частые ошибки и как их избежать
  • Тестовые вопросы: 15
  • ИИ-репетитор, который отвечает на вопросы по теме
  • Отслеживание прогресса для ученика, родителей и учителя