Banner image placeholder
Banner image
Site avatar

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

Translate to