1. Введение в реляционные базы данных и основные понятия SQL
Введение в реляционные базы данных и основные понятия SQL
Добро пожаловать на курс «Основы SQL и проектирование баз данных». Это первая статья, с которой начнется ваше погружение в мир хранения и обработки информации. Сегодня мы разберем фундамент, на котором строятся практически все современные IT-системы: от небольших интернет-магазинов до банковских приложений.
Зачем нам нужны базы данных?
Представьте, что вы ведете учет книг в домашней библиотеке. Пока книг десять, достаточно листа бумаги. Когда их становится сто, удобнее использовать таблицу в Excel. Но что, если книг миллион, а доступ к списку нужен одновременно тысяче человек, причем каждый хочет быстро найти книгу по автору, жанру или году издания?
Обычные текстовые файлы или электронные таблицы перестают справляться, когда:
* Объем данных растет. Excel начинает «тормозить» на сотнях тысяч строк. * Нужен многопользовательский доступ. Если два человека одновременно попытаются отредактировать один файл, возникнет конфликт версий. * Требуется безопасность. В файле сложно разграничить права: кому-то можно только читать, а кому-то — удалять записи. * Важна целостность. Нужно гарантировать, что в поле «Год издания» записано число, а не слово «вчера».
Здесь на сцену выходят Базы Данных (БД).
> База данных — это организованная коллекция структурированной информации или данных, обычно хранящаяся в электронном виде в компьютерной системе.
Однако сама по себе база данных — это просто хранилище. Чтобы с ним работать, нужно специальное программное обеспечение — СУБД (Система Управления Базами Данных). СУБД — это «прослойка» между пользователем и данными. Именно она отвечает за то, чтобы данные записывались корректно, быстро находились и не терялись при сбоях.
!Схема взаимодействия: Пользователь — СУБД — База Данных
Реляционные базы данных
Существует множество типов баз данных, но самыми популярными уже более 50 лет остаются реляционные базы данных (от англ. relation — отношение, связь). Идея была предложена Эдгаром Коддом в 1970 году.
В реляционной базе данных вся информация хранится в виде таблиц, которые могут быть связаны друг с другом. Это очень похоже на привычные нам таблицы Excel, но с более строгими правилами.
Анатомия таблицы
Давайте разберем структуру таблицы на примере списка пользователей интернет-магазина. Назовем эту таблицу Users.
| ID | FirstName | LastName | Email | Age | | :--- | :--- | :--- | :--- | :--- | | 1 | Иван | Петров | ivan@mail.ru | 25 | | 2 | Анна | Сидорова | anna@gmail.com | 30 | | 3 | Дмитрий | Волков | volkov@yandex.ru | 22 |
Основные элементы:
Age могут быть только числа, а в Email — строки.ID. Он гарантирует, что мы сможем отличить одного Ивана Петрова от другого, если у них совпадут имена.Математическая основа (для любознательных)
Реляционная модель базируется на теории множеств. Формально отношение (таблица) определяется как подмножество декартова произведения доменов (типов данных столбцов).
Где: * — это отношение (наша таблица). * — знак подмножества (означает, что отношение состоит из выбранных комбинаций значений). * — это домены (множества допустимых значений для каждого столбца, например, множество всех возможных имен или множество всех целых чисел). * — знак декартова произведения (операция, создающая все возможные комбинации элементов из множеств).
Простыми словами: таблица состоит из строк, где каждая ячейка берет значение из своего допустимого списка значений (домена).
Что такое SQL?
Мы поняли, как данные хранятся. Но как нам «поговорить» с базой данных? Как попросить её: «Покажи мне всех пользователей старше 25 лет»?
Для этого используется язык SQL (Structured Query Language — язык структурированных запросов). Это стандартный язык для работы с реляционными базами данных.
Важно понимать: SQL — это не база данных. Это язык, на котором вы отдаете приказы СУБД.
Аналогия с рестораном
Чтобы лучше понять роль SQL, представим ресторан:
* Вы — это пользователь или приложение. * Меню — это структура базы данных (список доступных таблиц и полей). * Продукты на складе — это сами данные. * Официант — это SQL. Вы не идете на кухню сами. Вы говорите официанту (пишете SQL-запрос): «Принесите мне стейк». * Повар — это СУБД (например, PostgreSQL, MySQL). Повар получает заказ от официанта, знает, где лежат продукты, как их обработать, и выдает готовое блюдо.
!Аналогия работы SQL: Клиент делает заказ через Официанта (SQL), а Повар (СУБД) выполняет работу
Основные категории команд SQL
SQL — очень логичный язык. Все команды делятся на несколько групп в зависимости от их назначения. Мы будем подробно изучать их в следующих статьях, но сейчас важно запомнить общую картину.
1. DQL (Data Query Language) — Язык запросов данных
Самая частая операция — чтение данных. Для этого используется всего одна, но очень мощная команда:
* SELECT — выбрать данные из таблицы.
Пример (найти всех пользователей):
2. DML (Data Manipulation Language) — Язык манипулирования данными
Эти команды меняют содержимое таблиц:
* INSERT — добавить новую строку.
* UPDATE — изменить существующие данные.
* DELETE — удалить строку.
3. DDL (Data Definition Language) — Язык определения данных
Эти команды создают и меняют саму структуру (скелет) базы данных:
* CREATE — создать таблицу или базу данных.
* ALTER — изменить структуру таблицы (например, добавить столбец).
* DROP — удалить таблицу полностью.
Почему SQL так популярен?
SQL появился в 1970-х годах и до сих пор является стандартом индустрии. Почему его не заменили?
Заключение
Сегодня мы узнали, что реляционные базы данных хранят информацию в виде таблиц, связанных между собой. Мы выяснили, что СУБД — это программа-менеджер, а SQL — это язык, на котором мы отдаем ей команды. В следующей статье мы перейдем от теории к практике и научимся писать свои первые запросы, используя команду SELECT.
Для тех, кто хочет углубиться в историю создания реляционной модели, рекомендую ознакомиться с оригинальной работой Эдгара Кодда: A Relational Model of Data for Large Shared Data Banks (ссылка на архив ACM).