Неделя 1
Учебное пособие - Бинариум
Базы данных
Книга 1
Что такое база данных?

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

Базы данных существуют задолго до компьютеров. Раньше данные хранились в журналах, библиотеках и картотеках — всё было записано на бумаге, занимало много места и с трудом поддавалось резервному копированию. С появлением компьютеров открылись принципиально новые возможности.

Зачем нужна база данных?

База данных — не единственный способ хранения информации, но один из самых эффективных. Наряду с хранением информации она облегчает управление данными и их осмысление.

  • Быстрый поиск

    В отличие от файлов, не нужно загружать весь документ целиком — извлекается только нужная запись.

  • Взаимосвязи
    Реляционные БД показывают связи между разными точками данных.
  • Безопасность
    Встроенные механизмы защиты и разграничения доступа к данным.
  • Аналитика
    Удобные инструменты для анализа, фильтрации и обработки больших массивов данных.
Мы взаимодействуем с базами данных постоянно, даже не замечая этого — каждый раз при онлайн-покупке, входе в аккаунт или обращении к банковскому счёту.

Данные как ценный ресурс

Данные — бесценный ресурс для современного бизнеса, но их также сложно собирать, использовать и защищать. Полезность данных зависит от различных условий и процессов, которые обеспечивают их качество и актуальность.

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

⚠️ Важно

Знание жизненного цикла данных помогает распознавать возможности для автоматизации на каждом этапе — от сбора до удаления.

История баз данных
Более 60 лет эволюции — от картотек до облаков и больших данных.
  • 1960-е
    Первые компьютеризированные БД. Чарльз Бахман создаёт IDS — Интегрированное хранилище данных. IBM вслед за этим выпускает систему управления информацией (IMS). Это навигационные базы данных — данные перемещаются по жёсткой иерархии.
  • 1970-е
    Революция реляционных БД. Эдгар Кодд публикует статью «Реляционная модель данных для больших банков данных» — вводит понятие реляционной базы данных с возможностью поиска. Данные становятся компактнее, появляются запросы.
  • 1980-е
    Коммерциализация и SQL. Навигационные модели уходят в прошлое. Реляционные СУБД становятся стандартом. Oracle выпускает первую коммерческую СУБД в 1979-м. SQL принят как стандартный язык — и используется до сих пор.
  • 1990-е
    Интернет и открытый код. Всемирная паутина вызывает взрывной рост спроса на клиент-серверные системы. В 1995 году появляется MySQL с открытым исходным кодом — альтернатива Oracle и Microsoft. В 1998-м впервые вводится термин «NoSQL».
  • 2000-е
    Расцвет NoSQL. Интернет-компании-гиганты (Google, Amazon, Facebook) публикуют статьи о своих масштабных решениях. Появляются Cassandra, MongoDB, Redis. NoSQL позволяет быстрее обрабатывать большие и разнообразные наборы данных.
  • 2010-е
    Большие данные и защита. «Big Data» становится главным трендом десятилетия. Автоматизация при работе с БД превращается в норму. Общество осознаёт ценность данных — и важность их защиты (GDPR, 2018).
Типы баз данных
Две главные категории — реляционные и нереляционные — и множество подкатегорий под каждой из них.

1 - Реляционные базы данных


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

📌 Ключевые понятия

Таблица = сущность ·  Строка = кортеж ·  Столбец = атрибут ·  Первичный ключ = уникальный идентификатор строки

2 - Нереляционные (NoSQL) базы данных


Не используют таблицы. Хранят неструктурированные данные: документы, изображения, JSON. NoSQL расшифровывается как «Not Only SQL» — они могут поддерживать SQL, но не ограничены им.

🌲 Пример графовой БД

Семейное дерево — упрощённый пример: Узлы = люди, Рёбра = родственные связи между ними.

Выбор базы данных
Нет единственно правильного ответа. Выбор зависит от трёх ключевых факторов: структуры, размера и скорости.
  • Структура

    Как нужно хранить и извлекать данные? Если выбрать неправильную структуру, приложению придётся тратить ресурсы на обходные пути, и оно перестанет масштабироваться.
  • Размер

    Объём данных, который нужно хранить и извлекать. Зависит от структуры, способности разбивать данные по серверам и оптимизаций конкретного поставщика.
  • Скорость

    Одни БД оптимизированы под чтение, другие — под запись. Правильный выбор критичен для масштабируемой архитектуры.

Моделирование данных

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


Когда нужно несколько баз данных

Иногда одной базы недостаточно. Например: реляционная СУБД как основное хранилище + Elasticsearch для полнотекстового поиска. В таком случае важно выбрать каноническую базу данных — ту, которая «владеет» данными. Остальные хранят лишь копии.

⚠️ Правило нескольких БД

При использовании нескольких баз одна всегда должна быть каноническим источником истины. Обновления в копиях производятся только вслед за изменениями в канонической базе.

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