Симоненко_Степан.md 5.4 KB

Ведение в реляционные базы данных и SQL

-- Реляционная база данных-- представляет собой организованный набор структурированных данных, хранящихся в таблицах, связанных между собой. Язык SQL (Structured Query Language) является стандартизированным инструментом для создания, управления и манипулирования этими данными. Его декларативная природа позволяет описывать --что-- необходимо получить, а не --как-- это сделать, перекладывая задачи оптимизации на СУБД (систему управления базами данных).

Ключевые концепции реляционной модели

Основной структурной единицей является ##таблица (отношение)##. Каждая таблица состоит из столбцов (атрибутов, полей) и строк (записей, кортежей). Столбцы имеют строго определенный тип данных (INTEGER, VARCHAR, DATE, BOOLEAN), что обеспечивает целостность информации. Первичный ключ (PRIMARY KEY) — атрибут или набор атрибутов, однозначно идентифицирующий каждую запись в таблице. Для связи таблиц используются внешние ключи (FOREIGN KEY), которые ссылаются на первичный ключ другой таблицы, обеспечивая реляционную целостность.

Изображение 1: Схема простой реляционной базы данных с двумя связанными таблицами.

Основы синтаксиса SQL: DDL, DML, DQL

SQL можно разделить на несколько подъязыков. DDL (Data Definition Language) отвечает за определение структуры. Ключевые команды: CREATE TABLE, ALTER TABLE, DROP TABLE.

CREATE TABLE Employees (
    id INT PRIMARY KEY,
    name VARCHAR(100) NOT NULL,
    department_id INT,
    FOREIGN KEY (department_id) REFERENCES Departments(id)
);

DML (Data Manipulation Language) управляет данными внутри структур: INSERT, UPDATE, DELETE.

sql
INSERT INTO Employees (id, name, department_id) VALUES (1, 'Иванов А.С.', 5);

Наиболее часто используемая часть — DQL (Data Query Language), представленная командой SELECT. Она позволяет выполнять сложные выборки с использованием фильтрации (WHERE), сортировки (ORDER BY), группировки (GROUP BY и агрегатные функции COUNT, SUM, AVG) и объединения таблиц (JOIN).

sql
SELECT d.name, COUNT(e.id) as emp_count
FROM Departments d
LEFT JOIN Employees e ON d.id = e.department_id
GROUP BY d.name
HAVING COUNT(e.id) > 5
ORDER BY emp_count DESC;

--Оператор JOIN-- является фундаментальным для реляционных баз, позволяя комбинировать данные из нескольких таблиц. Основные типы: INNER (возвращает только совпадающие записи), LEFT (все записи из левой таблицы и совпадения из правой), RIGHT, FULL.

Изображение 2: Визуализация типов операторов JOIN в SQL (INNER, LEFT, RIGHT, FULL).

Транзакции и целостность

Важнейшее свойство СУБД — обеспечение целостности данных и устойчивости к сбоям. --Транзакция-- это атомарная последовательность операторов SQL, которая либо выполняется целиком (COMMIT), либо полностью откатывается (ROLLBACK). Это гарантирует соблюдение принципов ACID (Атомарность, Согласованность, Изоляция, Долговечность). Например, при переводе денег между счетами оба UPDATE должны быть частью одной транзакции, чтобы избежать потери средств. Таким образом, SQL — это мощный и гибкий язык, который служит основой для работы с структурированными данными в бесчисленных приложениях. Понимание его принципов и конструкций является обязательным для backend-разработчика, проектирующего логику хранения и обработки информации.