Что такое NoSQL
Python
Middle
Без компании
Что такое NoSQL
Ответы
NoSQL (Not Only SQL) — это класс нереляционных баз данных, которые отличаются от традиционных SQL-СУБД гибкой схемой данных, горизонтальной масштабируемостью и высокой производительностью.
**Основные типы NoSQL:**
- **Документные** (MongoDB, CouchDB) — хранят данные в JSON-подобных документах.
- **Ключ-значение** (Redis, DynamoDB) — простейший вид, где данные хранятся как пары ключ-значение.
- **Колоночные** (Cassandra, HBase) — оптимизированы для обработки больших объемов данных.
- **Графовые** (Neo4j) — хранят данные в виде узлов и связей между ними.
**Пример с MongoDB (документная БД):**
```
from pymongo import MongoClient
client = MongoClient("mongodb://localhost:27017/")
db = client["test_db"]
collection = db["users"]
# Вставка документа
collection.insert_one({"name": "Alice", "age": 25, "city": "Berlin"})
# Поиск
user = collection.find_one({"name": "Alice"})
print(user) # {'_id': ObjectId('...'), 'name': 'Alice', 'age': 25, 'city': 'Berlin'}
```
**Плюсы NoSQL:**
- Гибкость схемы.
- Высокая скорость работы с большими данными.
- Легкость масштабирования.
**Минусы:**
- Отсутствие ACID-транзакций в некоторых реализациях.
- Менее строгая согласованность данных.