1. Что такое база данных и как она устроена
Что такое база данных и как она устроена
Представь, что у тебя есть маленький магазин на районе. Ты продаёшь товары, ведёшь список клиентов, записываешь заказы в тетрадку. Проходит месяц — тетрадка заканчивается. Берёшь вторую. Потом третью. А потом клиент звонит и спрашивает: «А что я у вас покупал в марте?» — и ты часами листаешь три тетрадки, пытаясь найти нужную запись. Знакомо? Именно эту проблему решают базы данных — системы, которые хранят информацию так, чтобы её можно было быстро найти, обновить и не потерять.
База данных — это умная тетрадка
База данных — это организованное хранилище информации, к которому можно обращаться по определённым правилам. Не просто файл на диске, а структурированная система, которая знает, как данные связаны между собой, как их быстро найти и как защитить от ошибок.
Проведём аналогию. Представь огромную библиотеку. Книги не валяются в куче — они расставлены по полкам по темам, у каждой книги есть каталожная карточка с автором, названием и годом издания. Библиотекарь (то есть программа) знает, где лежит каждая книга, и может за секунды найти нужную. База данных работает точно так же: данные распределены по «полкам» (таблицам), у каждой записи есть «карточка» (идентификатор), а система управления базой данных — это тот самый библиотекарь.
Система управления базой данных (СУБД)
Отдельно база данных — это просто набор информации. Чтобы с ней работать, нужна система управления базой данных (СУБД). Это программа, которая умеет создавать базы, добавлять и удалять данные, искать записи по заданным условиям и следить за тем, чтобы информация не повредилась.
Существует множество СУБД: MySQL, PostgreSQL, SQLite, Microsoft SQL Server, Oracle. Все они понимают один и тот же язык — SQL (Structured Query Language, структурированный язык запросов). Это как английский язык для общения между людьми: неважно, в какой стране ты живёшь, — английский понимают везде. Так и SQL: неважно, какую СУБД ты выберешь — синтаксис запросов будет почти одинаковым.
| СУБД | Особенности | Когда использовать | |------|------------|-------------------| | SQLite | Не требует сервера, данные хранятся в одном файле | Личные проекты, мобильные приложения, прототипы | | MySQL | Быстрая, популярная, бесплатная | Веб-сайты, небольшие и средние проекты | | PostgreSQL | Мощная, поддерживает сложные запросы | Крупные проекты, аналитика, геоданные |
Для личного проекта новичку идеально подойдёт SQLite — не нужно ничего устанавливать отдельно, база данных живёт в одном файле, и ты можешь переносить её на флешке как обычный документ.
Как устроена база данных внутри
Самая распространённая модель хранения данных — реляционная. Слово «реляционная» происходит от английского relation (связь, отношение). Суть в том, что данные хранятся в таблицах, а таблицы связаны между собой через общие поля.
Представь таблицу в Excel: есть строки и столбцы. В базе данных всё устроено похоже, но с жёсткими правилами.
Вот как может выглядеть таблица «Клиенты»:
| id | Имя | Телефон | Дата регистрации | |----|-----|---------|-----------------| | 1 | Иванов Иван | +7-999-123-45-67 | 2024-01-15 | | 2 | Петрова Мария | +7-999-765-43-21 | 2024-02-20 | | 3 | Сидоров Алексей | +7-999-555-12-34 | 2024-03-10 |
Обрати внимание на столбец id — это первичный ключ (primary key). Он уникально идентифицирует каждую запись. Как паспортный номер у человека: неважно, сколько в базе Ивановых Иванов — по id ты всегда найдёшь конкретного. Первичный ключ не может повторяться и не может быть пустым.
Реляционная модель: почему таблицы, а не одна большая куча
Можно было бы хранить всё в одной гигантской таблице. Но представь: у тебя есть клиенты, заказы и товары. Если всё в одной таблице, то для каждого заказа придётся заново писать имя клиента, его телефон, адрес. Клиент сделал 10 заказов — и его данные повторились 10 раз. Изменился телефон — нужно искать и исправлять все 10 записей. А если пропустил одну — данные стали противоречивыми.
Реляционная модель решает это через нормализацию — разбиение данных на отдельные таблицы и связывание их через общие поля. Клиент описан один раз в таблице «Клиенты», а в таблице «Заказы» просто стоит его id. Телефон изменился — исправил одну запись, и все заказы автоматически «узнали» новый номер.
> Нормализация — это принцип, при котором каждая единица информации хранится в базе данных ровно в одном месте. Это устраняет дублирование и снижает риск противоречий в данных.
SQL — язык общения с базой
Чтобы создать таблицу, добавить запись или найти нужные данные, используется SQL. Это декларативный язык: ты описываешь, что ты хочешь получить, а не как это сделать. СУБД сама решает, какой путь поиска будет самым быстрым.
Вот самые базовые операции, которые ты будешь выполнять постоянно:
CREATE TABLEINSERT INTOSELECTUPDATEDELETEКаждая из этих операций — это отдельная тема, которую мы разберём в следующих статьях. Пока что важно понять общий принцип: SQL — это набор команд, которые ты отправляешь СУБД, а она выполняет их и возвращает результат.
Зачем это нужно именно тебе
Если ты ведёшь личный проект — блог, интернет-магазин, каталог книг, трекер привычек — рано или поздно данные перестанут помещаться в текстовый файл или таблицу. База данных даст тебе три вещи:
С этого момента мы переходим от теории к практике. В следующей статье ты узнаешь, как создать свою первую таблицу и правильно выбрать типы данных для каждого столбца.