itmo_conspects

Лекция 2. Модели данных

Как уже говорилось, модели данных со своими преимуществами и недостатками имеют свои области применения, в которых они будут наиболее эффективны

Реляционная

По статистике реляционные базы данных имеют наибольшую популярность в разработке

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

Преимущества реляционных баз данных:

Недостатки:

Применения реляционных БД:

Распространенные реализации: PostgreSQL, MySQL, SQLite, MariaDB, Microsoft SQL Server, Oracle DB, YandexDB

Колоночная

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

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

Недостатки:

Применение:

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

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

Данные хранятся в виде документов (обычно представляющиеся в формате BSON), а не в виде строк таблицы. Документы объединяются в коллекции (по аналогии с таблицами, но без обязательного соответствия единой схеме). Причисляется к NoSQL

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

Недостатки:

Применение:

Реализации: MongoDB, Firebase Realtime Database, Elasticsearch, Amazon DynamoDB, CouchDB

Графовая

Вместо таблиц и кортежей в графовой БД объектами являются узлы, ребра и их свойства. Графовые БД считаются NoSQL

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

Недостатки:

Применение:

Реализации: Neo4j, Dgraph

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

Данные в “ключ-значение” БД хранятся в виде ключ-значение

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

Недостатки:

Применение:

Реализации: Redis, Memcached, Etcd, Kafka

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

Данные упорядочены по времени (в данном случае ключ - это метка времени)

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

Недостатки:

Применение:

Реализации: InfluxDB, TimescaleDB, Prometheus

Векторная

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

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

Недостатки:

Применение: кластеры, техническое зрение, машинное обучение

Реализации: Pinecone, Milvus

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

Данных хранятся в виде файлах (текст, аудио, видео и др.) в файловой системе. Помимо этого каждый файл хранит метаданные. Доступ к файлам осуществляется по их именам и путям в файловой системы

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

Недостатки:

Применение: хранение и распространение файлов

Реализации: Amazon S3, MinIO