Перейти к основному содержимому

О разделе

Здесь — вход в тему баз данных и СУБД — что хранится, как описывается схема, чем реляционная модель отличается от NoSQL и когда нужны оба подхода.

Массовая загрузка, чанки, транзакции на импорт и отличие bulk от OLTP — Пакетная работа с данными.


Рекомендуемый маршрут

Базовый путь (теория + практика в компании):

  1. Знакомство с базами данных — определения БД и схемы, модель данных vs схема, relation / relationship, четыре основных типа БД (реляционные, NoSQL, иерархические, объектно-ориентированные), обзор SQL / NoSQL / NewSQL.
  2. СУБД в экосистеме — продукты, клиент–сервер, процессы и память (например PostgreSQL), где что применяют.
  3. Роль базы данных в организации — зачем центральная БД, жизненный цикл модели, выбор СУБД, люди и процессы.
  4. Как СУБД выполняет запрос — путь SQL, когда нужна оптимизация, пять шагов формулировки запроса; буферы, пять структур индексов, типы по роли, партиции, план. Конспект для масштабирования — опорные темы. Эксплуатация — управление РСУБД.
  5. Теоретические основы реляционных данных — Кодд, страницы, WAL, алгебра.
  6. Двенадцать правил Кодда — критерии "настоящей" реляционной СУБД.
  7. Entity Relationship — сущности, ключи, кардинальность 1:1 / 1:N / M:N, расширенная EER (супертипы, подтипы), DDL-примеры; теория ключей и JOIN — Реляционная модель.
  8. Конкурентный доступ — блокировки, MVCC, оптимистичный контроль.
  9. Восстановление после сбоя — WAL, redo/undo; отличие от бэкапа DBA.
  10. Итоги и чек-лист.

Проектирование схем (углубление): после пунктов 1 и 7 — Проектирование баз данных (концептуальная / логическая / физическая модель, нормализация, чек-лист перед CREATE TABLE).

Нормализация (1НФ–4НФ, НФБК) подробно в разделе SQL: Нормализация — после Entity Relationship и Реляционная модель данных. Краткий чек-лист моделирования — в той же главе.

Файлы и СУБД, нотации ER: ERD среди нотаций моделирования, расширенная EER (супертипы и подтипы), СУБД — файловое хранение и ограничения, Entity Relationship — нотации.

SQL, транзакции, администрирование: раздел SQL и Управление РСУБД (в т.ч. администрирование в облаке). Практика запросов на схеме магазина с разбором — SQL — реальные кейсы.

Практика по популярным СУБД из кода: SQLite, PostgreSQL, MySQL, Microsoft SQL Server.

Корпоративный контекст: Data Governance.

Масштабирование и system design: опорные темы (B⁺, LSM, WAL, 2PC, реплики, шардинг, CDC) → репликация и шардинг в управлении РСУБДSystem Design — карта.


Мини-глоссарий

ТерминКоротко
БДСовокупность данных + схема (метаданные, ограничения); обрабатывается в ЭВМ.
СУБДПрограммно-лингвистический комплекс: DDL/DML, буферы, журнал, транзакции, права.
Схема БДОписание содержания, структуры и целостности; в каталоге СУБД (словарь данных).
Схема (концептуальная / логическая / физическая)От ER-идей до файлов и индексов на диске.
Модель данныхТеория (структура + манипуляция + целостность); не путать со схемой одной БД.
РМДРеляционная модель Кодда: отношения, алгебра, декларативные ограничения.
Отношение (relation)Множество кортежей с заголовком атрибутов; "реляционная" — от этого слова.
КортежОдна строка отношения; порядок кортежей в теории не задан.
Потенциальный ключМинимальный набор атрибутов, однозначно идентифицирующий кортеж.
relationshipСвязь на ER-диаграмме; в SQL — FK и JOIN.
Внешний ключ (FK)Подмножество атрибутов дочернего отношения, ссылающееся на ключ родителя.
ЦелостностьДанные удовлетворяют объявленным правилам; истинность фактов СУБД не проверяет.
Согласованность данныхНепротиворечивость значений друг с другом; в БД — через ограничения и транзакции.
RPO / RTOДопустимая потеря данных и время восстановления сервиса; задают политику бэкапов.
Бэкап / PITRКопия отдельно от оригинала; откат на момент времени — бэкап + архив WAL.
Иерархическая / сетевая модельДерево (один родитель) и граф записей (несколько родителей); эпоха до SQL.
schema в PostgreSQLИмя пространства имён (CREATE SCHEMA) — отдельно от "схемы данных" в общем смысле.
postmasterГлавный процесс серверной СУБД PostgreSQL: принимает подключения, порождает backend'ы.
backend-процессПроцесс на одну клиентскую сессию; выполняет SQL этой сессии.
WALЖурнал опережающей записи; изменения сначала в журнале, затем в файлах таблиц.
ШардингДанные одной логической БД на нескольких серверах по ключу шарда; отличие от партиций одной СУБД — §10 в "Как СУБД выполняет запрос".

В подборках

Статья входит в тематические подборки и блок "С чего начать?" на главной. Соседние шаги того же маршрута:

Базы данныхСтруктуры данных — о разделе, SQL — о разделе, Базовые операции с данными — о разделе, NoSQL — о разделе, Данные и информация — о разделе, Управление реляционными СУБД — о разделе.

Аналитика данныхСтруктуры данных — о разделе, SQL — о разделе, Данные и информация — о разделе, NoSQL — о разделе, Продвинутые операции с данными — о разделе, Анализ данных — о разделе.