Что такое реляционная база данных, зачем нужен SQL и как настроить рабочее место
Прогресс курсаМодуль 1 из 9
Что вы освоите в этом модуле
Понять, что такое реляционная БД и SQL
Разобраться в подмножествах SQL: DQL, DML, DDL, DCL, TCL
Настроить рабочее окружение (PostgreSQL + клиент)
Познакомиться с учебной базой «Социальная сеть»
Написать первые SELECT-запросы
01
Что такое реляционная база данных
База данных — это организованное хранилище данных. В реляционной базе данных (РБД) данные хранятся в виде таблиц, связанных между собой.
Ключевые понятия
Таблица (отношение) — набор строк одинаковой структуры. Например, таблица пользователей.
Строка (запись, кортеж) — один объект: один пользователь, один пост.
Столбец (атрибут, поле) — один признак объекта: имя, возраст, город.
Первичный ключ (Primary Key, PK) — уникальный идентификатор строки. Не может быть NULL и не повторяется.
Внешний ключ (Foreign Key, FK) — ссылка из одной таблицы на первичный ключ другой. Обеспечивает связи между таблицами.
Ограничение (Constraint) — правило целостности данных (NOT NULL, UNIQUE, CHECK и др.).
Реляционная модель была предложена Эдгаром Коддом в 1970 году. Почти все современные СУБД — реляционные: PostgreSQL, MySQL, Oracle, SQL Server, SQLite.
02
Что такое SQL и его подмножества
SQL (Structured Query Language) — язык для работы с реляционными базами данных. С его помощью вы запрашиваете данные, изменяете их и управляете структурой базы.
DML (Data Manipulation Language) — изменение данных: INSERT, UPDATE, DELETE
DDL (Data Definition Language) — определение структуры: CREATE, ALTER, DROP
DCL (Data Control Language) — управление доступом: GRANT, REVOKE
TCL (Transaction Control Language) — управление транзакциями: COMMIT, ROLLBACK
В этом курсе вы освоите все подмножества — от SELECT до триггеров.
03
Выбор СУБД и инструментов
Все примеры курса написаны для PostgreSQL — одной из самых мощных и популярных open-source СУБД. Большинство запросов работают в MySQL, SQLite и других СУБД с минимальными изменениями.
PostgreSQL + pgAdmin — официальный клиент от сообщества PostgreSQL.
SQLiteOnline / DB Fiddle — онлайн-тренажёры, не нужно ничего устанавливать. Подходит для старта.
Neon / Supabase — бесплатный PostgreSQL в облаке, доступен через браузер.
Если не хотите устанавливать PostgreSQL локально — используйте db-fiddle.com и выберите PostgreSQL. Вставьте содержимое файла socialnet_db.sql в левое окно и запускайте любые примеры курса.
04
Учебная база данных — «Социальная сеть»
На протяжении всего курса мы работаем с базой данных небольшой социальной сети. Это 5 связанных таблиц:
Схема базы данных
users
idinteger PK
namevarchar
ageinteger
gendervarchar
cityvarchar
communities
idinteger PK
namevarchar
ratingnumeric(3,1)
posts
idinteger PK
community_idFK → communities
titlevarchar
scoreinteger
views
idinteger PK
user_idFK → users
community_idFK → communities
viewed_atdate
likes
idinteger PK
user_idFK → users
post_idFK → posts
liked_atdate
Обратите внимание: просмотр ленты и лайк поста — независимые события. Пользователь может открыть ленту сообщества и не поставить ни одного лайка, а может лайкнуть пост из рекомендаций без захода в само сообщество.
Примерные данные в таблицах
Пользователи: Andrey, Anna, Denis, Dmitriy, Kate, Irina и другие из разных городов России
SELECT * — только для изучения; в продакшне явно перечисляйте столбцы
Практические задания — на учебном портале. Задания, критерии оценивания, сдача работ и оценки преподавателя — в курсе на portal.nevabit.ru. Учётную запись выдаёт преподаватель.