Исследуйте ключевые модели данных, их архитектуру и способы реализации — от классических реляционных до современных графовых и NoSQL-решений.
Данные организованы в виде таблиц (отношений) со строго заданной схемой. Связи между таблицами реализуются через внешние ключи. SQL — стандартный язык запросов. Обеспечивают ACID-транзакции и целостность.
СУБД используют буферный кэш, планировщик запросов, синхронизацию блокировок (row-level locking) и контроль конкурентности. Современные решения (PostgreSQL) реализуют параллельное выполнение запросов, секционирование и репликацию master-slave / multi-master.
ACID SQL:1999+ Индексы B-Tree / HashХранят данные в виде полуструктурированных документов (JSON, BSON, XML). Схема гибкая, каждая запись может иметь свой набор полей. Отлично подходят для иерархических данных и быстрого прототипирования.
Документные БД используют LSM-деревья или MMAP для эффективной работы. Реализуют eventual consistency (в конфигурациях с репликами) либо сильную согласованность. MongoDB использует движок WiredTiger с поддержкой транзакций на нескольких документах.
Гибкая схема MapReduce АгрегацииПростейшая модель: ассоциативный массив (хэш-таблица). Значение — непрозрачный набор байт (строки, объекты). Минимальная задержка, высокая производительность. Идеальны для кэшей, сессий, очередей.
Для персистентности используют write-ahead log и периодические снэпшоты. В кластерах (Dynamo, Riak) реализуются векторные часы для разрешения конфликтов, репликация N=3, Quorum-алгоритмы. Redis поддерживает Lua-скрипты и модули для расширения.
O(1) чтение Горизонт. масштаб.Хранят данные по столбцам, а не по строкам. Оптимизированы для аналитических запросов и агрегаций на больших объёмах. Позволяют сжимать однородные данные и достигать высокой производительности чтения выбранных атрибутов.
Cassandra использует consistent hashing (кольцо) и gossip для обнаружения узлов, tunable consistency. ClickHouse для аналитики реализует векторные вычисления и колоночные сжатые части. Такие БД отлично подходят для IoT, временных рядов и OLAP-кубов.
Высокое сжатие OLAP-дружелюбныеМоделируют связи между сущностями как граф: вершины (узлы) и рёбра (отношения). Оптимальны для социальных сетей, рекомендательных систем, сетевой аналитики, поиска путей.
Индексно-свободные соединения (index-free adjacency) — каждая вершина ссылается на смежные, что даёт O(1) доступ. Neo4j использует кэш страниц и транзакции ACID. В распределённых системах — секционирование графа и балансировка.
Анализ связей PathfindingИсторические модели: иерархическая (дерево «предок-потомок»), сетевая (записи с множественными связями — граф произвольной структуры). Заложили основы многих современных концепций.
Хотя эти системы уступили место реляционным, их идеи повлияли на XML-БД, файловые системы и графовые модели. Реализации основаны на предварительно определённых физических ссылках и иерархических путях. Используются в специфических legacy-системах.
Физическая навигация Древовидная модельИнтегрируют концепции ООП в СУБД: объекты, классы, наследование, полиморфизм. Позволяют хранить сложные структуры без ORM-отображения. Поддерживают ссылки между объектами напрямую.
OODBMS используют страничную модель с отображением объект-кортеж, но сохраняют идентичность и навигационные ссылки. Транзакции обычно работают на уровне объектов. db4o использует файл с B-деревьями для метаданных и индексов.
Прямая навигация Наследование