dr inż. Michał Malinowski

bazy grafowe, sztuczna inteligencja, cyberbezpieczeństwo

Bazy dokumentów (NoSQL)


Kluczowy element nowoczesnych aplikacji


December 31, 2024

Schemat bazy dokumentów (NoSQL)
Schemat bazy dokumentów (NoSQL)
Bazy dokumentów to jeden z typów baz danych NoSQL, które oferują elastyczność w przechowywaniu danych w formacie dokumentów, zwykle w strukturze JSON lub BSON. W przeciwieństwie do relacyjnych baz danych, bazy dokumentów nie wymagają sztywnego schematu, co czyni je idealnym rozwiązaniem dla dynamicznych aplikacji.

Jak działają bazy dokumentów?

W bazach dokumentów dane są przechowywane w kolekcjach, które zawierają dokumenty – podstawowe jednostki danych. Dokument jest strukturą klucz-wartość, gdzie klucze są nazwami pól, a wartości mogą być liczbami, tekstem, tablicami lub zagnieżdżonymi strukturami. Na przykładzie ze slajdu:
  1. Dokument – pojedynczy rekord, który przechowuje informacje o użytkowniku, takie jak imię, email, miasto oraz historię zamówień.
  2. Pole – każda para klucz-wartość, np. "imię": "Jan".
  3. Kolekcja – zbiór dokumentów, np. wszystkie dane użytkowników.
Dzięki temu bazy dokumentów są bardziej elastyczne niż relacyjne bazy danych, gdzie dane muszą pasować do ustalonego schematu tabel.

Kluczowe cechy baz dokumentów

  • Brak sztywnego schematu – pozwala na różne struktury danych w tej samej kolekcji.
  • Łatwość przechowywania danych złożonych – zagnieżdżone pola umożliwiają przechowywanie powiązanych informacji w jednym dokumencie.
  • Optymalizacja pod kątem odczytu – dane są często pobierane w jednym zapytaniu, eliminując potrzebę dołączania (joinów).

Zalety baz dokumentów

  • Skalowalność: Bazy dokumentów są zaprojektowane do obsługi dużych wolumenów danych i mogą być skalowane poziomo.
  • Elastyczność: Można łatwo dostosować strukturę danych w miarę rozwoju aplikacji.
  • Wydajność: Dzięki możliwości przechowywania danych złożonych w jednym dokumencie, operacje odczytu są szybkie.

Przykłady zastosowań

Bazy dokumentów znajdują zastosowanie w wielu scenariuszach, w tym:
  • Aplikacje mobilne i webowe: Przechowywanie profili użytkowników, preferencji czy historii zakupów.
  • Systemy e-commerce: Zarządzanie produktami, zamówieniami i koszykami zakupowymi.
  • Analiza danych: Przechowywanie niestrukturalnych danych, takich jak logi systemowe czy dane IoT.

Przykład dokumentu 

Na przedstawionym slajdzie widać przykłady dokumentów reprezentujących użytkowników (JSON): 
{
  "_id": "101",
  "imię": "Jan",
  "email": "jan.kowalski@example.com",
  "miasto": "Warszawa",
  "zamówienia": [
    {
      "zamówienie_id": "5001",
      "data": "2024-12-20",
      "produkty": [
        {
          "produkt_id": "1",
          "nazwa": "Smartfon XYZ",
          "cena": 799.99,
          "ilość": 1
        }
      ]
    }
  ]
}
Każdy dokument zawiera złożone dane, takie jak tablice zamówień czy zagnieżdżone listy produktów, co znacząco upraszcza ich przechowywanie i zarządzanie w porównaniu do relacyjnych baz danych. 

Typy plików mogące być dokumentami?

W bazach dokumentów dokumenty zwykle przechowywane są w formacie JSON lub BSON, ale mogą także obsługiwać inne typy danych w zależności od konkretnego systemu. Typy plików, które mogą być przechowywane jako dokumenty, obejmują:
  • JSON – standardowy format dla baz dokumentów, idealny do przechowywania złożonych struktur danych.
  • XML – używany w niektórych systemach, szczególnie w starszych aplikacjach.
  • YAML – bardziej czytelny dla człowieka format podobny do JSON.
  • Pliki binarne – np. obrazy, dźwięki czy filmy, które mogą być przechowywane jako załączniki lub kodowane w formacie BSON (np. w MongoDB).
  • Dokumenty tekstowe – takie jak pliki TXT czy Markdown, przechowywane jako pola w dokumentach.

Zastosowanie baz dokumentów w kontekście AI

Bazy dokumentów odgrywają kluczową rolę w rozwoju sztucznej inteligencji, umożliwiając elastyczne przechowywanie i przetwarzanie różnorodnych danych potrzebnych do trenowania i wdrażania modeli AI. Dzięki możliwości przechowywania niestrukturalnych danych, takich jak tekst, obrazy czy metadane w formacie JSON, bazy dokumentów pozwalają na łatwą integrację z systemami uczenia maszynowego. W procesie budowy modeli AI mogą być wykorzystywane do przechowywania danych wejściowych, wyników analizy, a także parametrów i wersji modeli, co znacząco upraszcza ich zarządzanie. Ponadto, w aplikacjach takich jak chatboty czy systemy rekomendacyjne, bazy dokumentów mogą dynamicznie przechowywać dane kontekstowe i historię interakcji użytkownika, co pozwala na bardziej personalizowane i skuteczne działanie algorytmów. Ich elastyczność i skalowalność sprawiają, że są one niezbędnym narzędziem w środowiskach AI wymagających pracy z dużymi i zróżnicowanymi zbiorami danych. 

Podsumowanie

Bazy dokumentów to wszechstronne narzędzie dla współczesnych aplikacji, oferujące elastyczność, skalowalność i łatwość w obsłudze danych złożonych. Dzięki temu są one popularnym wyborem w takich technologiach jak MongoDB, CouchDB czy Firebase Firestore, będąc fundamentem wielu nowoczesnych systemów. 
#NoSQL #BazyDanych #BazyDokumentów 

Share

Tools
Translate to