1. В каких задачах проявляются недостатки реляционных БД?
Реляционные базы данных (БД) сталкиваются с проблемами в задачах, где требуется хранение и обработка больших объёмов неструктурированных или слабо структурированных данных, таких как мультимедиа, JSON-документы или текстовые данные. Они также плохо справляются с горизонтальным масштабированием, обработкой данных в реальном времени и моделированием сложных графов (например, социальных сетей).
2. Что такое распределённые базы данных?
Распределённые базы данных — это системы, в которых данные хранятся на нескольких узлах, часто расположенных в разных географических местах. Такие БД обеспечивают повышенную отказоустойчивость, производительность и масштабируемость, позволяя обрабатывать запросы параллельно на разных серверах.
3. Что такое масштабируемость? Почему говорят, что реляционные БД плохо масштабируются?
Масштабируемость — это способность системы увеличивать производительность с ростом объёмов данных или нагрузки. Реляционные БД плохо масштабируются горизонтально, так как их структура требует соблюдения строгой целостности данных (например, транзакции ACID), что делает синхронизацию данных между узлами сложной и ресурсоёмкой.
4. Как обеспечиваются связи между объектами в БД «ключ — значение»? Как обеспечивается целостность данных?
В БД типа "ключ — значение" связи между объектами обычно реализуются через вложенные структуры данных или ссылки, где одно значение содержит идентификатор другого объекта. Целостность данных обеспечивается на уровне приложения, так как сами БД этого типа не предоставляют встроенных механизмов для обеспечения связности и транзакций.
5. Вспомните, что такое хэширование и хэш-коды. Как можно выполнить масштабирование на основе хэш-кодов?
Хэширование — это процесс преобразования данных в фиксированный уникальный код (хэш) с использованием специального алгоритма. Хэш-коды позволяют равномерно распределять данные по серверам в распределённой системе, что облегчает горизонтальное масштабирование. Например, сервер для хранения ключа выбирается на основе хэш-функции, вычисленной от этого ключа.
6. Что такое документоориентированные базы данных?
Документоориентированные базы данных хранят данные в формате документов, например JSON, BSON или XML. Такие БД позволяют гибко работать с данными, где структура может меняться от документа к документу, что удобно для неструктурированных данных и приложений с динамическими схемами.
7. Назовите достоинства и недостатки баз данных типа «ключ — значение». В каких задачах их имеет смысл использовать?
Достоинства:
Высокая производительность. Простота структуры. Хорошая масштабируемость. Недостатки: Отсутствие поддержки сложных запросов. Сложности в обеспечении целостности данных. Использовать такие БД имеет смысл для кеширования, систем рекомендаций, хранения сессий пользователей и работы с неструктурированными данными.
8. Что вы думаете о дальнейшей судьбе реляционных БД в связи с появлением новых принципов хранения данных? Обсудите этот вопрос в классе.
Реляционные БД останутся востребованными в задачах, где важна строгая структура и целостность данных, например, в банковских и бухгалтерских системах. Однако в задачах, связанных с большими данными, IoT и неструктурированными данными, их постепенно заменяют NoSQL-решения. В дальнейшем вероятно сосуществование обоих подходов, где каждый будет использоваться для своей специфики.