1. Введение в SQL: что такое реляционные базы данных и таблицы
Введение в SQL: что такое реляционные базы данных и таблицы
В современном мире данные — это новая нефть. Каждое действие в интернете, будь то лайк в социальной сети, банковская транзакция или заказ такси, генерирует информацию. Чтобы эта информация не превратилась в хаос, её необходимо структурировать, хранить и быстро извлекать. Для этого существуют базы данных.
Отличия базы данных от СУБД
Новички часто путают понятия «база данных» и «СУБД». Разберемся в терминологии.
* База данных (БД) — это само организованное хранилище информации. Это файлы, лежащие на диске, в которых записаны ваши данные. * СУБД (Система Управления Базами Данных) — это программное обеспечение, которое позволяет создавать базы данных, обновлять их и управлять доступом к ним.
Представьте библиотеку. Книги на полках — это база данных. Библиотекарь, который знает, где лежит нужная книга, выдает её вам и следит за порядком — это СУБД. Вы (пользователь или программа) не идете искать книгу сами, вы делаете запрос библиотекарю.
Наиболее популярными СУБД в мире являются PostgreSQL, MySQL, Oracle и Microsoft SQL Server. Все они относятся к классу реляционных СУБД.
Реляционная модель и таблицы
Слово «реляционный» происходит от английского relation (отношение). В теории баз данных «отношение» — это математический термин, но на практике его проще всего представить в виде таблицы.
Реляционная база данных — это набор взаимосвязанных таблиц. Эта модель была предложена Эдгаром Коддом в 1970 году и стала стандартом индустрии благодаря своей простоте и надежности selectel.ru.
В отличие от электронных таблиц (например, Excel), где в одной ячейке может быть текст, а в соседней — картинка или формула, реляционные таблицы имеют строгую структуру.
!Структура реляционной таблицы: столбцы, строки и ячейки
Структура таблицы
Любая таблица в реляционной базе данных состоит из трех ключевых элементов:
price (цена), то в нем могут храниться только числа. Вы не сможете записать туда слово «дорого». Это обеспечивает целостность данных.Users (Пользователи) одной строкой будет информация об одном конкретном человеке: его имя, email, возраст.Пример таблицы Products (Товары):
| id | name | price | category | | :--- | :--- | :--- | :--- | | 1 | iPhone 15 | 999 | Smartphone | | 2 | MacBook Air | 1200 | Laptop | | 3 | AirPods | 150 | Audio |
Здесь name, price, category — это атрибуты. А строка 2 | MacBook Air | 1200 | Laptop — это запись о конкретном товаре.
Первичный ключ (Primary Key)
Обратите внимание на столбец id в примере выше. Это первичный ключ. В реляционной базе данных каждая строка должна быть уникально идентифицируема.
Мы не можем использовать имя товара или имя человека в качестве идентификатора, так как они могут повторяться (в магазине может быть два разных товара с названием «USB кабель»). Поэтому создается специальный столбец, обычно называемый id, который содержит уникальное числовое значение для каждой записи.
Основные требования к первичному ключу: * Уникальность: значения не могут повторяться. * Непустота: у каждой записи обязательно должен быть ключ.
Связи между таблицами
Сила реляционных баз данных не просто в хранении таблиц, а в умении их связывать. Представьте, что у нас есть интернет-магазин. У нас есть информация о пользователях и о заказах.
Вместо того чтобы хранить всё в одной гигантской таблице (где для каждого заказа пришлось бы заново писать имя и адрес покупателя), мы разделяем данные на две таблицы: Users и Orders.
В таблице Orders мы просто укажем user_id — ссылку на первичный ключ из таблицы Users.
!Связь между таблицами через внешний ключ
Такой подход позволяет:
* Избежать дублирования информации.
* Экономить место на диске.
* Легко менять данные (если пользователь сменил фамилию, мы меняем её только в таблице Users, а все исторические заказы автоматически ссылаются на верного человека).
Что такое SQL?
Чтобы взаимодействовать с СУБД, нужен язык, который она понимает. Таким языком является SQL (Structured Query Language — язык структурированных запросов).
SQL — это декларативный язык. Это означает, что вы говорите системе, что вы хотите получить, а не как это сделать. СУБД сама решает, как именно найти и извлечь данные наиболее эффективным способом ru.hexlet.io.
С помощью SQL можно выполнять четыре базовые операции, часто объединяемые аббревиатурой CRUD:
Пример простого SQL-запроса, который просит базу данных показать все товары дороже 500 долларов:
Этот код понятен даже интуитивно: «ВЫБРАТЬ всё ИЗ таблицы Products ГДЕ цена больше 500». Именно благодаря своей простоте и близости к естественному английскому языку SQL стал мировым стандартом.
Итоги
В этой статье мы познакомились с фундаментом, на котором строятся современные информационные системы.