Что такое база данных: таблицы, записи и связи

Статья Математика

База данных — это организованное хранилище связанных данных, которым управляет специальная программа — система управления базами данных (СУБД). Она хранит записи по правилам и помогает находить, добавлять и изменять их. В реляционной базе данные обычно раскладывают по таблицам, а одинаковые объекты связывают ключами.

Схема трёх таблиц базы школьной библиотеки: читатели, книги и выдачи
Три связанные таблицы разделяют сведения о читателях, книгах и конкретных выдачах.

Одна библиотека вместо одного длинного списка

Представим школьную библиотеку. Если записывать всё в один лист, в каждой строке выдачи придётся повторять имя читателя, класс и название книги. Исправить ошибку в имени тогда нужно во многих строках. Удобнее отделить постоянные сведения о читателях от сведений о книгах и от событий выдачи.

Именно так строится учебная модель: таблица readers хранит читателей, books — книги, а loans — выдачи. Это ещё не доказательство, что любая таблица является полноценной базой данных. Базой её делает управляемая структура: СУБД знает правила, обрабатывает запросы и может проверять связи.

Таблица, запись и поле

В таблице строки называют записями, а столбцы — полями. Запись читателя может быть такой: id=17, name=Мира, grade=8. Здесь id, name и grade — поля; вся строка описывает одного читателя.

У каждого поля есть ожидаемый вид значения. Для идентификатора в нашей схеме это число, для названия — текст, для даты выдачи — дата. СУБД может отклонять неподходящие значения, если типы и ограничения заданы и контролируются выбранной системой. В реальных системах строгость проверки различается; для первого шага важно видеть, к какому объекту относится каждое поле.

Разобранный пример 1

Задача. В таблице readers есть строки с id=16, id=17 и id=18. Как найти запись Миры, если её идентификатор равен 17? Ответ: выбрать строку, где поле id равно 17. Идентификатор указывает на запись, а не на её место в списке: после добавления нового читателя он не обязан стать номером строки.

Схема записи выдачи с reader_id 17 и book_id 42, соединяющей запись читателя и запись книги
Одна запись выдачи ссылается на две существующие записи по идентификаторам.

Ключи связывают таблицы

Первичный ключ — поле или набор полей, значения которых однозначно отличают одну запись таблицы от другой. В нашем примере достаточно одного поля: readers.id или books.id. Название книги для этой роли ненадёжно: одинаковые названия возможны, а текст может измениться.

В таблице выдач можно хранить reader_id=17, book_id=42 и issued_on=2026-09-04. Поля reader_id и book_id — внешние ключи: их значения ссылаются на ключи в других таблицах. Поэтому имя читателя и название книги не нужно копировать в каждую выдачу. СУБД может проверять, существует ли связанная запись; точные правила зависят от схемы и используемой СУБД.

Разобранный пример 2

Задача. Что означает выдача reader_id=17, book_id=42? Ответ: она связывает читателя с идентификатором 17 и книгу с идентификатором 42. Проверка: дата выдачи относится именно к этой паре, поэтому хранится в loans, а не постоянно в таблице читателей или книг.

Свяжите запись читателя и запись книги

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

Выберите читателя и книгу.

Без JavaScript: reader_id=17 и book_id=42 в выдаче связывают две существующие записи.

Как база находит нужное

Когда мы просим показать выданные книги, СУБД выполняет запрос: отбирает записи по условию и при необходимости сопоставляет связанные таблицы. Например, условие status = 'выдана' выбирает только строки, в которых это поле имеет указанное значение. Запрос не «угадывает» смысл: он следует структуре и условиям, которые задал человек.

У баз данных бывают и другие модели — документные, графовые, ключ-значение. Для вопроса о таблицах полезна реляционная модель, но не стоит переносить её терминологию на все хранилища без уточнения. Даже в реляционной модели структура проектируется под задачу: расписание, магазин и библиотека потребуют разных таблиц и правил.

Проверьте себя

1. Что выбрать первичным ключом книги?

Ответ: book_id, а не название. Названия могут совпасть, измениться или быть записаны с ошибкой; ключ должен однозначно указывать на запись.

2. Где хранить дату выдачи?

Ответ: в таблице loans. Дата относится к конкретной выдаче — паре читателя и книги, а не к читателю или книге навсегда.

3. Что покажет условие status = 'выдана'?

Ответ: записи с этим значением поля. Оно не вернёт все книги автоматически, пока запрос не задан для таблицы, где есть поле status.

Сначала в тренажёре свяжите читателя 17 с книгой 42, затем своими словами объясните, какие две записи соединяет выдача. Для следующего шага можно перейти к основам программного мышления: урок помогает переводить реальную задачу в точные сущности и правила. После этого можно зарегистрироваться для продолжения обучения.

Оставить комментарий