1. Введение в реляционные базы данных и основные понятия SQL
Введение в реляционные базы данных и основные понятия SQL
Представьте, что вы разрабатываете интернет-магазин. У вас есть тысячи товаров, десятки тысяч пользователей и миллионы заказов. Хранить эту информацию в текстовых файлах или таблицах Excel невозможно: это медленно, небезопасно и неудобно для одновременного доступа множества людей. Здесь на сцену выходят базы данных.
В этой статье мы разберем, как устроены современные системы хранения данных, почему мир до сих пор держится на «таблицах» и что такое язык SQL.
Что такое База Данных и СУБД?
Важно сразу разделить два понятия, которые новички часто путают:
Проще говоря, БД — это библиотека с книгами, а СУБД — это библиотекарь, который точно знает, где лежит нужная книга, и выдает её вам по запросу.
!Архитектура взаимодействия: Пользователь — СУБД — Данные
Любая серьезная система состоит из кода (логики) и хранилища. Как отмечают эксперты hexlet.io, СУБД решают критически важные задачи: обеспечивают доступ к данным для множества пользователей одновременно и защищают информацию от сбоев.
Реляционная модель: мир состоит из таблиц
В 1970 году Эдгар Кодд предложил реляционную модель данных (от англ. relation — отношение). Несмотря на сложное название, суть её проста: данные хранятся в таблицах, связанных между собой.
Системы, работающие по этому принципу, называются РCУБД (Реляционные СУБД). Самые популярные из них сегодня: PostgreSQL, MySQL, Microsoft SQL Server и Oracle.
Структура таблицы
Любая таблица в реляционной базе данных состоит из трех ключевых элементов:
* Сущность (Таблица) — объект реального мира (например, «Клиенты» или «Заказы»). * Атрибуты (Столбцы) — характеристики объекта (имя, телефон, цена). * Кортежи (Строки) — конкретные записи с данными.
С математической точки зрения, строка таблицы (кортеж) может быть описана следующим образом:
где — это кортеж (строка), — это значения атрибутов (ячеек) в этой строке, а — количество столбцов в таблице. Например, для пользователя это может быть (1, 'Иван', 'ivan@mail.ru').
Первичные ключи и связи
Главная сила реляционных баз — в связях. Чтобы отличить одного «Ивана» от другого, используется Первичный ключ (Primary Key) — уникальный идентификатор строки (обычно это столбец id).
Чтобы связать заказ с пользователем, мы не пишем имя пользователя в таблицу заказов. Мы просто указываем его id. Это называется Внешний ключ (Foreign Key).
Пример двух связанных таблиц:
Таблица: Users (Пользователи)
| id | name | email | | :--- | :--- | :--- | | 1 | Анна | anna@example.com | | 2 | Борис | boris@example.com |
Таблица: Orders (Заказы)
| id | user_id | amount | | :--- | :--- | :--- | | 101 | 1 | 5000 | | 102 | 1 | 1200 | | 103 | 2 | 3000 |
Здесь user_id в таблице заказов ссылается на id в таблице пользователей. Это позволяет хранить данные компактно и избегать дублирования.
SQL: Язык общения с данными
Для управления всем этим хозяйством используется язык SQL (Structured Query Language — язык структурированных запросов). Это стандарт, который понимают все реляционные СУБД.
SQL — это декларативный язык. Это значит, что вы говорите системе, что хотите получить, а не как это сделать. СУБД сама решит, как эффективнее всего найти данные на диске.
Основные группы команд SQL
Все команды SQL делятся на несколько логических групп. Две самые важные для начинающих:
CREATE — создать таблицу или базу.
* ALTER — изменить таблицу (добавить столбец).
* DROP — удалить таблицу полностью.SELECT — выбрать (прочитать) данные.
* INSERT — вставить новые данные.
* UPDATE — обновить существующие данные.
* DELETE — удалить строки.> SQL — это не просто язык программирования, это стандарт взаимодействия с информацией. Как указано в материалах kpfu.ru, изучение SQL часто начинается с теории множеств, так как операции над таблицами (объединение, пересечение) имеют под собой строгую математическую основу.
Ваш первый запрос
Самая частая операция — это чтение данных. Для этого используется команда SELECT. Давайте посмотрим на её базовый синтаксис:
Разберем этот запрос по частям:
* SELECT name, email — «Покажи мне столбцы name и email».
* FROM users — «Возьми их из таблицы users».
* WHERE id > 1 — «Но только для тех строк, где значение id больше 1».
В результате СУБД вернет нам таблицу, содержащую только нужные данные.
!Принцип работы оператора WHERE: отсеивание ненужных строк
Почему SQL и реляционные базы до сих пор актуальны?
Несмотря на появление новых типов баз данных (NoSQL), реляционные СУБД остаются стандартом де-факто для большинства бизнес-задач. Причина в надежности и предсказуемости.
Реляционные базы гарантируют целостность данных через набор свойств, называемых ACID (Atomicity, Consistency, Isolation, Durability). Если вы переводите деньги со счета на счет, ACID гарантирует, что деньги не исчезнут на полпути, даже если в момент перевода выключат электричество.
Как подчеркивают авторы курса на wiki.merionet.ru, знание принципов работы баз данных — это неотъемлемая часть работы IT-специалиста, будь то разработчик, аналитик или администратор.
Итоги
Мы сделали первый шаг в мир баз данных. Вот что нужно запомнить:
CREATE, DROP) и DML (данные: SELECT, INSERT).В следующей статье мы перейдем от теории к практике и научимся устанавливать окружение для работы с SQL.