В данной презентации рассказывается о базах данных NoSQL. Дается определение, - что такое базы NoSQL? Для чего и где их применяют. В чем отличие от классических реляционных СУБД? Какие преимущества дает использование неструктурированной модели данных? Перспективы применения этих СУБД.
Преимущества реляционных СУБД
- Жесткая структура данных в таблицах.
- Нормализация данных (разделение по нескольким таблицам).
- Поддержка ACID-транзакций (Atomicity, Consistency, Isolation, Durability).
- Стандартный язык SQL для выборки и манипуляции с данными.
- Вертикальная масштабируемость (увеличение производительности сервера).
Недостатки реляционных (RDBMS) баз данных
- Необходимо поддерживать две разнородные модели: реляционную в базе и объектную в коде.
- Любые изменения в схеме сущностей нужно отражать в структуре таблиц + менять SQL-запросы и проекции таблиц на объекты .
- При больших объемах данных возникает порог вертикального масштабирования.
- Необходима параллельная обработка в кластере серверов (горизонтальная масштабируемость).
- Падение производительности в больших распределенных системах из-за необходимости поддерживать согласованность данных + проблемы с устойчивостью к физическому разделению узлов.
Объектные БД и объектно-реляционные проекции
Для простых запросов (CRUD) ORM подходит хорошо:
- Более строгая типизация результатов.
- Простота работы с одиночными объектами вместо строк набора данных.
- Простая навигация по связям.
NoSQL СУБД
Основные особенности:
- Отказ от реляционной модели и языка SQL
- Использование распределенной архитектуры
- Отсутствие полноценной поддержки ACID-транзакций
Преимущества:
- Большая производительность
- Хорошая масштабируемость при возрастающих нагрузках и огромных объемах данных
- Отсутствие жесткой структуры объектов БД
Причины появления - распределенность систем:
- Потребность в горизонтальной масштабируемости БД (путем добавления новых узлов).
- Сложность эффективной реализации транзакций в распределенной среде.