Junior
Šta su NoSQL baze podataka?
sobes.tech АИ
Одговор од АИ
NoSQL (Not Only SQL) — то је класа нерелативних система за управљање базама података који користе структуре различите од традиционалних табела са фиксним шемама. Они су дизајнирани за рад са великим количинама неструктурираних, полуструктурираних и полиструктурираних података, пружајући флексибилну скалабилност и високу доступност.
Главне категорије NoSQL база података:
- "Кључ-већност" (Key-Value Stores): Чувају податке у паровима кључ-већност, где кључ јединствено идентификује вредност.
# Пример представљања података у key-value store user_data = { "user:123": {"name": "Alice", "age": 30}, "product:456": {"name": "Laptop", "price": 1200} } - "Колона" (Columnar Databases): Чувају податке по колонама, а не по редовима. Оптимизоване за аналитичке упите и обраду великих количина података.
- "Документ" (Document Databases): Чувају податке у виду докумената (нпр. JSON, BSON, XML). Шема података је флексибилна.
// Пример документа у document database { "_id": "prod_abc", "name": "Smartphone", "brand": "XYZ", "specs": { "display": "6.5 inch", "camera": "48MP" }, "tags": ["electronics", "mobile"] } - "Графови" (Graph Databases): Намењени за чување и обраду података представљених у виду врхова (чворова) и ребара (веза). Користе се за анализу односа.
Разлике од релационих БД (SQL):
| Карактеристика | Relational (SQL) | NoSQL |
|---|---|---|
| Шема података | Фиксирана, строга | Флексибилна, динамичка |
| Масовно скалирање | Вертикално (повећање капацитета сервера) | Хоризонтално (додавање сервера) |
| Нормализација | Висока (смањење излишности) | Ниска (дуплирање података за перформансе) |
| ACID трансакције | Обично потпуна подршка | Различита подршка (понекад BASE) |
| Језик упита | SQL | Различит (често API, специфични језици) |
NoSQL базе података бирају се за сценарије који захтевају високу скалабилност, флексибилност шеме, брзу обраду великих количина података (Big Data), рад са полуструктурираним/неструктурираним подацима или специфичне моделе података (нпр. графови).