
База данных - Организованная совокупность данных, хранящаяся в эвм, отображающая
Модель данных - Набор концепций, правил и структур, которые определяют, как хранятся данные в базе данных
СУБД - ПО для создания, манипулирования и совместного использования баз данных
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