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

Основные понятия баз данных. Главное

Понимание принципов работы и основ проектирования БД – это основа всех hard skills для системного аналитика, а также и для бизнес-аналитика: BABOK упоминает технику моделирования данных как одно из наиболее востребованных умений бизнес-аналитика.

БД и СУБД

  • База данных (БД) – структурированный набор данных, который хранится на сервере.
  • Система управления базами данных (СУБД) – это ПО, которое позволяет управлять данными в БД: читать и изменять.

БД могут быть реляционными и нереляционными.

Реляционные и нереляционные БД

  • Реляционные БД хранят информацию в виде таблиц. Между таблицами определяются связи (relations) – создаётся схема данных. Для манипулирования данными применяется специальный язык запросов – SQL. Реляционные БД применяются повсеместно, лучше всего подходят для поддержки транзакций или когда нужно поддерживать строгую структуру данных и соблюдать требования ACID (о них ниже). Примеры реляционных СУБД: MySQL, PostgreSQL, Oracle.

  • Нереляционные БД (NoSQL) – это все остальные виды БД, например, ключ-значение, графовые, временных рядов и другие. Все виды нереляционных БД объединяет одно – данные хранятся любым другим способом, кроме таблиц. Нереляционные БД часто применяются там, где нужна высокая скорость (например, для кэширования), требуется работать с большими объёмами данных и обеспечивать лёгкость масштабирования. Примеры нереляционных СУБД: MongoDB, Redis, Cassandra.

Основные понятия реляционных БД

  • Сущность (entity) – это объект, который имеет смысл в предметной области и может быть представлен в БД. Например, студент, книга, заказ и т.д. Сущности обычно соответствуют таблицам в реляционных БД.

  • Атрибут (attribute) – это характеристика сущности, которая может быть измерена или описана. Например, сущность Книга имеет название, автора, год издания и т.д. Атрибуты обычно соответствуют столбцам в реляционных БД.

  • Первичный ключ (primary key) – это атрибут или набор атрибутов, который однозначно идентифицирует каждую сущность в БД. Например, username в телеграме, id страницы ВК и т.д. Первичный ключ не может быть пустым или повторяться в рамках одной таблицы.

  • Внешний ключ (foreign key) – это атрибут или набор атрибутов, который ссылается на первичный ключ другой сущности. Например, book_id в таблице Заказы ссылается на номер книги id в таблице Книги. Внешний ключ позволяет установить связь между сущностями и гарантировать соблюдение целостности данных. В данном примере с таблицей Заказы мы не можем поместить в столбец такой номер книги book_id, которого нет в таблице Книги – СУБД нам не позволит.

Транзакционность – важнейшее свойство реляционных БД

Транзакция — это комплекс последовательных операций с применением операторов SQL, имеющих определенную цель. Например, перевод денег между счетами. Ошибка в транзакции может привести к неконсистентности данных: деньги спишутся, но не поступят.

Все транзакции должны отвечать требованиям ACID:

  1. Атомарность (atomicity) — транзакция является неделимым блоком и выполняется или полностью, или никак.
  2. Согласованность (consistency) — завершенная транзакция сохраняет согласованность базы данных.
  3. Изолированность (isolation) — параллельные транзакции не могут влиять друг на друга.
  4. Устойчивость (durability) — никакой сбой в системе не может влиять на результат завершенной транзакции.

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

Подборка полезных материалов по основам баз данных

Бесплатные курсы

Статьи (теория)

  1. Основы баз данных для бизнес-аналитика: краткий ликбез — Babok School
  2. Реляционные базы данных — база знаний Yandex Cloud
  3. Что такое ACID в базах данных? — подробная статья
  4. Требования ACID на простом языке
  5. О транзакционности
  6. Виды баз данных. Большой обзор типов СУБД — про виды нереляционных БД
  7. Руководство по проектированию реляционных баз данных

Статьи (практика)

  1. Как выбрать СУБД для работы с большими данными?
  2. Как получить информацию о структуре БД для документации
  3. Инструкция: как посмотреть ER-модель готовой БД

Видео и вебинары

  1. Основы реляционных баз данных и языка SQL
  2. Что такое SQL и реляционные базы данных

Книги

  1. Большая подборка книг по БД на любой вкус
  2. Основы проектирования БД от ИТМО (73 стр.)
  3. Роб Корон. Базы данных. Проектирование, реализация и сопровождение. Теория и практика — огромный талмуд, но основательно
  4. SQL. Быстрое погружение — книга на русском, 2022 год

Онлайн-тренажёры по SQL

  • Karpov.courses — тренажёр с исчерпывающими заданиями
  • SQL Academy — онлайн тренажер с упражнениями по SQL
  • Learn DB — аналог первого
  • SQL-EX — упражнения и Интерактивный учебник по SQL
  • SQLBolt — пошаговый интерактивный учебник (уроки + упражнения)
  • Solve SQL | HackerRank — платформа для практики и изучения языков программирования
  • SQL Fiddle — эмулятор написания SQL-запросов, позволяет практиковаться на разных типах СУБД (MySQL, PostgreSQL, SQLite, MS SQL Server)
  • SQL Tutorial — справочник с множеством примеров и упражнений

Памятки и шпаргалки по SQL

А ещё коллеги из Systems.Education и NextWay собрали большой каталог ссылок на тему баз данных и анализа данных.