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

пятница, сент. 12, 2025 | 4 минуты чтения

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

База данных - Организованная совокупность данных, хранящаяся в эвм, отображающая

Модель данных - Набор концепций, правил и структур, которые определяют, как хранятся данные в базе данных

СУБД - ПО для создания, манипулирования и совместного использования баз данных

ERD - Entity Reltion Diagram - показывает сущности и их связи

У ERD есть разные нотации:

  • Воронья лапка
  • Е-диаграмма
  • дев что-то там

У сущностей есть атрибуты Сущности - объекты Атрибуты - свойства сущностей

  • Простые и составные
  • Обязательные и необязательные

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

  • Это решение определяет, насколько система будет производительной, масштабируемой, гибкой, и в конечном итоге, успешной
  • Неверный выбор модели данных подобен выбору неправильного фундамента для здания

Самые популярная модель данных, основанная на реляционной алгебре

  • Организует дынные в виде двумерных таблиц
  • Используют структурированный язык запросов (SQL) для запросов
  • ACID - свойства
    • некие гарантии на инвариантность

Реляционная

Особенности

  • Организует данные в виде двухмерных таблиц.
  • Используют структурированный язык запросов (SQL) для запросов.
  • ACID - свойства

Преимущества:

  • Благодаря механизму ключей, ограничений и транзакций обеспечивается целостность и непротиворечивость данных
  • Использование SQL как стандарта облегчает разработку и поддержку приложений, а также миграцию данных между системами
  • Процесс нормализации позволяет устранить избыточность данных и аномалии

Недостатки:

  • Изменение структуры таблиц на работающей системе может быть сложной и дорогой операцией
  • Горизонтальное масштабирование релиционных баз данных зачастую сложнее реализовать по сравнению с некоторым NoSQL решениями
  • Сложные JOIN-запросы на огромных таблицах могут выполняться медленно
  • Неэффективна для хранения иерархических (древовидных) или графовых данных

Применение:

  • OLTP - системы

    • Oltp и Olap - запросы. Онлайн запросы. Запрос на каждое движение
  • Системы с высокими требованиями к целостности

    • всё. где деньги
    • всё должно быть чётенько
  • Данные чётко структурированы

  • SQL

  • NoSQl

  • NewSQL

Колоночная

Особенности

  • Вместо того, чтобы хранить каждую запись целиком, данные организуются по столбцам
  • Относятся к семейству NoSQL

OLAP-запросы

  • такая же двоичная таблица, то вертикаль и горизонталь поменяны местами

  • большое количество оптимизаций

Кассссандраа

Преимущества:

  • Высокая производительностьт аналитических запросов
  • Эффективное сжатие данных
  • Улучшенная производительность ввода-вывода
  • При горизонтальном масштабировании почти линейное увеличение производительности

Недостатки:

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

Применение: Big data…

Реализации:

  • Cassandra
  • ScyllaDB
  • Google BigQuery
  • ClickHouse (колоночная реляционная СУБД)

Документоориентированные

Особенности:

  • Данные хранятся в виде документов, а не в виде строк таблицы, как в реляционных СУБД
  • Относятся к семейству NoSQL а-ля бинарный json
  • Документы обычно представляют собой структуры в формате BSON
  • Документы объединяются в коллекции (аналогичны таблицам, но без обязательного соответствия единой схеме для всех записей)
  • Документы могут содержать вложенные объекты и массивы

Спроектируем сериал: бегаем по куче форейн кеев а вот в документоориентированном просто храним массив внутри клетки

давайте теперь вместо вложенных объектов использовать ссылки, но нет целостности ссылки (возможны висячие ссылки) - репс

Преимущества:

  • Возможность изменения структуры документов без необходимости модифицировать общую схему базы данных
  • Документы в формате JSON или BSON естественным образом отображаются…

Недостатки:

  • Ограничение целостности данных
  • Сложность запросов
  • Потенциальная избыточность

Применение:

  • Хранение логов
  • OLTP - системы
  • Разработка MVP
  • Данные неструктурированы
  • Обработка больших объёмов данных

Реализации:

  • MongoDB
  • Firebase Realtime Database
  • Elasticsearch (поисковый движок)
  • Amazon DynamoDB
  • CouchDB

Графовая

Особенности:

  • Вместо традиционных таблиц, как в реляционных базах данных, здесь основными объектами являются: узлы, рёбра, свойства
  • Относятся к семейству NoSQL

Преимущества:

  • Заросы, направленные на поиск путей, обход графа или анализ связей, выполняются очень быстро
  • Нет жёстко фиксированной схемы
  • Легко добавлять новые типы связей и узлов без необходимости пересмотра всей структуры данных

Недостатки:

  • специфические задачи

Реализации:

  • Neo4j
  • Dgraph

Ключ-значение

Преимущества:

  • Операции получения, вставки и удаления данных осуществляются за $О(1)$
  • Быстрые и требуют мало ресурсов

Недостатки:

  • Не подходят для сложных запросов, агрегаций или выборок

Применение:

  • Кеширование данных
  • Хранение сессионных данных
  • Реализация очередей
  • Хранение конфигурационных данных

Временные ряды

Особенности:

Преимущества:

  • Оптимизация на высокую скорость записи
  • Позволяет легко делать агрегация и интерполяция
  • Хранение больших объемов данных
  • Быстрый доступ к данным за определённые временные интервалы

Недостатки:

Применение:

  • Мониторинг и логирование
  • Финансовые рынки
  • Интернет вещей

Реализации:

Векторная

Особенности:

  • Данные сохраняются в виде векторов вещественных чисел

Преимущества:

  • Позволяют быстро выполнять запросы поиска похожих векторов благодаря специальным индексам и алгоритмам (напр. Hierarchical Navigable Small World)

Недостатки: TO-DO

Применение:

  • Рекомендательные системы
  • Поиск по смыслу
  • Кластеризация

Реализации:

  • Pinecone
  • Milvus

Хранилище данных

Особенности:

  • предназначены для работы с файлами, такими как документы, изображения, видео, аудиофайлы
  • Распологаются в каталогах и подкаталогах
  • Хранит помимо фйла методанные
  • Доступ к файлам

Преимущества:

  • Интеграция с операционными системами и стандартными программами для работы с файлами
  • Позволяет выстраивать сложнык модели доступа
  • Позволяет разворачивать CDN (Сщтеуте Вудшмукн Туецщкл)

Недостатки:

  • Поиск данных осуществляется по именам файлов и метаданным, а не по содержимому

Примение:

  • Хранение слабоустро

Реализации:

  • Amazon S3
  • MinIO

🌱 Авторы:
salt-caramel
notakeith