База данных — это организованное хранилище данных. Звучит банально, но давайте разберём что это значит на практике.
Аналогия: таблица в Excel
Представьте Excel-файл с таблицей клиентов. Колонки: Имя, Email, Телефон, Город. Каждая строка — один клиент.
База данных — это то же самое, только:
- Таблиц много (клиенты, заказы, товары, платежи)
- Данных миллионы строк, а не сотни
- Таблицы связаны между собой
- С данными работают одновременно тысячи пользователей
- Данные защищены от случайного удаления и потери
Из чего состоит база данных
Таблица (Table)
Основной элемент. Выглядит как таблица: строки и колонки.
Таблица users:
| id | name | city | |
|---|---|---|---|
| 1 | Анна | anna@mail.ru | Москва |
| 2 | Иван | ivan@gmail.com | СПб |
Строка (Row / Record)
Одна запись в таблице. В таблице users — один пользователь.
Колонка (Column / Field)
Атрибут записи. У каждой колонки есть тип: текст, число, дата, булево значение.
Первичный ключ (Primary Key)
Уникальный идентификатор строки. Обычно колонка id. Гарантирует что каждая запись уникальна.
Внешний ключ (Foreign Key)
Связь между таблицами. Таблица orders содержит user_id — ссылку на пользователя из таблицы users.
Как таблицы связаны
В реальной базе много таблиц, связанных между собой.
Один пользователь — много заказов (один-ко-многим):
users (id=1, name="Анна")
↓
orders (user_id=1, amount=1500)
orders (user_id=1, amount=2300)
orders (user_id=1, amount=890)
Один заказ — много товаров (многие-ко-многим):
orders (id=101)
↕
order_items (order_id=101, product_id=5, quantity=2)
order_items (order_id=101, product_id=12, quantity=1)
↕
products (id=5, name="Книга SQL")
products (id=12, name="Курс по Python")
Реляционные vs нереляционные базы
Реляционные (SQL): данные в таблицах со связями. PostgreSQL, MySQL, SQLite. Подходят для большинства задач.
Нереляционные (NoSQL): гибкая структура. MongoDB (документы), Redis (ключ-значение), Cassandra (колонки). Используются для специфических задач: кэш, большие объёмы, нефиксированная схема.
90% разработчиков и аналитиков работают с реляционными базами. С них и стоит начинать.
Зачем нужна СУБД
СУБД (система управления базами данных) — программа которая управляет базой: PostgreSQL, MySQL, SQLite.
Она обеспечивает:
- Хранение данных на диске
- Запросы — быстрый поиск среди миллионов строк
- Безопасность — разграничение прав доступа
- Целостность — нельзя добавить заказ для несуществующего пользователя
- Параллельность — тысячи пользователей одновременно без конфликтов
SQL — язык для работы с базой
SQL (Structured Query Language) — язык запросов к реляционной базе данных.
-- Получить всех пользователей из Москвы
SELECT name, email FROM users WHERE city = 'Москва';
-- Посчитать заказы каждого пользователя
SELECT user_id, COUNT(*) AS orders_count
FROM orders
GROUP BY user_id;
SQL — это стандарт. Базы данных разные, но SQL везде похожий.
Где используются базы данных
Везде, где есть данные:
- Интернет-магазины — товары, заказы, пользователи
- Банки — счета, транзакции, клиенты
- Социальные сети — посты, лайки, подписчики
- Медицина — пациенты, диагнозы, назначения
- Ваш телефон — контакты, сообщения, фото (SQLite)
База данных — фундамент любого современного приложения.