Trace Id is missing
Przejdź do głównej zawartości

Baza danych NoSQL — co to jest NoSQL?

Omówienie wprowadzające

Czym są bazy danych NoSQL?

Bazy danych NoSQL są zamiennie nazywane „nierelacyjnymi” lub „nie SQL”, aby podkreślić fakt, że potrafią obsłużyć ogromne ilości szybko zmieniających się, nieustrukturyzowanych danych innymi sposobami niż relacyjna (SQL) baza danych z wierszami i tabelami.

Technologie NoSQL pod różnymi nazwami są dostępne od lat sześćdziesiątych, ale cieszą się coraz większą popularnością ze względu na zmianę otoczenia danych i potrzebę przystosowania się deweloperów do obsługi ogromnych ilości danych generowanych w chmurze, na urządzeniach przenośnych, w mediach społecznościowych i w systemach danych big data.

Nowe dane i typy danych — od popularnych tweetów gwiazd do ratujących życie informacji w elektronicznych rekordach medycznych — są generowane z niesamowitą szybkością. Bazy danych NoSQL ewoluowały, aby ułatwić deweloperom szybkie tworzenie systemów baz danych do przechowywania nowych informacji i natychmiastowego udostępniania ich na potrzeby wyszukiwania, konsolidacji i analizy.

Zalety baz danych NoSQL (NoSQL DB)

Bazy danych NoSQL ułatwiają informatykom i deweloperom radzenie sobie z nowymi wyzwaniami związanymi z coraz większą różnorodnością typów i modeli danych. Umożliwiają one bardzo skuteczną obsługę nieprzewidywalnych danych, często z niesamowitą szybkością zapytań. W przypadku istniejących obciążeń NoSQL zapewniają również płynną migrację baz danych do chmury.

Zwinne tworzenie aplikacji

Dzięki zdolności do reagowania na nieplanowane sytuacje bazy danych NoSQL radzą sobie z częstymi cyklami wydawania oprogramowania oraz nadają się do szybszego i bardziej zwinnego tworzenia aplikacji.

Elastyczna obsługa danych

Dzięki większej swobodzie, szybkości oraz elastyczności zmian schematów i zapytań baza danych NoSQL ułatwia deweloperom dostosowywanie się do wymagań dotyczących danych. Informacje przechowywane w postaci zagregowanej pozwalają na szybkie wprowadzanie iteracyjnych ulepszeń bez konieczności wstępnego projektowania schematu.

Działanie w dowolnej skali

Bazy danych NoSQL mogą zapewnić atrakcyjne korzyści operacyjne i oszczędności dzięki możliwości skalowania "na zewnątrz" w poziomie lub dodawania tańszych serwerów bez konieczności przeprowadzania uaktualnień. Można je skalować, aby obsługiwać więcej danych, lub przechowywać pojedynczą, dużą bazę danych w klastrach serwerów o dużych możliwościach rozpraszania.

Typy modeli danych w bazach danych NoSQL

Większość wydajnych, nierelacyjnych baz danych, nazywanych czasami „not only SQL” (nie tylko SQL), umożliwia także obsługę danych o zaawansowanej strukturze — nie są one ograniczone jedynie do stałych modeli danych jak relacyjne (SQL) bazy danych.

 

Cztery najpopularniejsze typy baz danych NoSQL to:

Klucz-wartość

Baza danych klucz-wartość zawiera pary kluczy i wartości w tablicy skrótów. Bazy danych klucz-wartość najlepiej sprawdzają się, gdy klucz jest znany, a skojarzona z nim wartość — nie.

Dokument

Bazy danych dokumentów rozszerzają koncepcję bazy danych klucz-wartość, organizując całe dokumenty w grupy nazywane kolekcjami. Obsługują one zagnieżdżone pary klucz-wartość i umożliwiają wysyłanie zapytań dotyczących dowolnego atrybutu w obrębie dokumentu.

Kolumnowa

Kolumnowe, szerokokolumnowe lub zawierające rodziny kolumn bazy danych skutecznie przechowują dane i zapytania w wierszach rozproszonych danych i są przydatne podczas wysyłania zapytań do określonych kolumn w bazie danych.

Grafowa

Grafowe bazy danych korzystają z modelu opartego na węzłach i krawędziach, aby przedstawić wzajemnie połączone dane, takie jak relacje między użytkownikami sieci społecznościowej, oraz zaoferować uproszczone przechowywanie złożonych relacji i nawigowanie między nimi.

Jak dokonać wyboru między relacyjnymi (SQL) a nierelacyjnymi (NoSQL) bazami danych

NoSQL lub nierelacyjna SQL lub relacyjna

NAJLEPSZE DLA:

  • Obsługa dużych ilości niepowiązanych, nieokreślonych lub szybko zmieniających się danych.
  • Dane o nieznanym schemacie lub schemacie podyktowanym przez aplikację.
  • Aplikacje, w przypadku których wydajność i dostępność są ważniejsze od silnej spójności.
  • Zawsze włączone aplikacje służące użytkownikom na całym świecie.
  • Obsługa relacyjnych danych mających logiczne i odrębne wymagania, które można określić z góry.
  • Schemat, który wymaga konserwacji oraz synchronizacji aplikacji i bazy danych.
  • Starsze systemy oparte na strukturach relacyjnych.
  • Aplikacje wymagające skomplikowanych zapytań lub transakcji wielowierszowych.

SCENARIUSZE:

  • Aplikacje mobilne.
  • Analiza w czasie rzeczywistym.
  • Zarządzanie zawartością.
  • Personalizacja.
  • Aplikacje IoT.
  • Migracja bazy danych.
  • Księgowość, finanse i systemy bankowości.
  • Systemy zarządzania zapasami.
  • Systemy zarządzania transakcjami.

SKALOWANIE:

  • Skaluje dane w poziomie, dzieląc je na fragmenty między serwerami.
  • Skaluje dane w pionie, zwiększając obciążenie serwera.

MODEL DANYCH:

  • Typy baz danych: bazy danych klucz-wartość, dokumentowe, kolumnowe i grafowe.
  • Przechowuje dane w zależności od typu danych.
  • Typ bazy danych: tabele składające się z wierszy, pogrupowane w relacje.
  • Używa języka zapytań Structured Query Language (SQL).
  • Przechowuje dane, takie jak wiersze w tabelach; dane relacyjne przechowywane oddzielnie i łączone w przypadku złożonych zapytań.

Jak ocenić bazę danych NoSQL?

Wybierz model danych

Wiele baz danych NoSQL jest zorientowanych na agregacje — kolekcje danych używane jako jednostki. Dzięki temu są one bardziej naturalne w przypadku nowoczesnych, zorientowanych obiektowo języków programowania. Wybierając bazę danych NoSQL, prawdopodobnie chcesz zacząć od wybrania modelu danych, a następnie dokonać oceny obsługujących go baz danych NoSQL wraz z językami programowania i zestawami SDK obsługiwanymi przez poszczególne bazy danych.

Rozważ kompromisy dotyczące spójności

Większość baz danych NoSQL pozwala wybrać dowolny kraniec spektrum spójności — od silnej spójności, w przypadku której będziesz otrzymywać najnowsze dane, co może wymagać czekania, do spójności ostatecznej, która zapewnia szybką reakcję, ale dane mogą być przestarzałe. Istnieje wiele baz danych NoSQL, które obsługują także inne poziomy spójności, zazwyczaj mieszczące się między tymi skrajnościami. Wybierz taką bazę danych NoSQL, która zapewni Ci największą elastyczność i kontrolę w modelach spójności spełniających Twoje wymagania.

Rozważ kwestie związane z chmurą i migracją bazy danych

Dzięki swojej rozproszonej charakterystyce i skalowalności w poziomie bazy danych NoSQL idealnie nadają się do przetwarzania w chmurze, chociaż można również znaleźć wiele systemów baz danych NoSQL przeznaczonych do działania w scenariuszach lokalnych lub hybrydowych.

Oceniając opcje chmury, rozważ następujące aspekty:

  • Obsługiwane modele danych. Czy dostawca usług w chmurze obsługuje wszystkie modele danych, których możesz chcieć używać?
  • Wdrażanie i operacje. Jak łatwo można wdrożyć bazę danych i w razie potrzeby zreplikować ją na inne regiony?
  • Obecność geograficzna. Gdzie znajdują się centra danych dostawcy usług w chmurze? Czy możesz umieścić swoje dane tam, gdzie chcesz? Jak zachowasz zgodność z obowiązującymi na świecie przepisami w zakresie poufności danych, takimi jak Ogólne rozporządzenie o ochronie danych (RODO) w Unii Europejskiej?
  • Łatwość replikacji. Jak przebiega proces replikacji bazy danych na inny region geograficzny?
  • Skalowalność. Czy zasoby bazy danych NoSQL pozwalają zapewnić odpowiednią wydajność, a także skalowanie na potrzeby rozwoju? Czy będzie możliwe skalowanie w górę, w dół i w poziomie?
  • Wysoka dostępność. Co się stanie w razie nieoczekiwanej awarii? Czy usługa oferuje wbudowane funkcje wysokiej dostępności i odzyskiwania po awarii?
  • Poziomy usług. Jakie są proponowane gwarancje dotyczące dostępności lub opóźnień?
  • Ekosystem. Czy baza danych jest ściśle zintegrowana z resztą platformy w chmurze i można ją szybko łączyć w celu tworzenia nowych rozwiązań?

Sposoby korzystania z systemów baz danych NoSQL

Stosowanie modeli danych opartych na technologii NoSQL znakomicie sprawdza się w przypadku firm, które chcą tworzyć aplikacje mobilne, internetowe, IoT (Internet rzeczy) i gry wymagające elastycznych, skalowalnych, wydajnych i funkcjonalnych baz danych, aby dostarczać użytkownikom doskonałe środowiska na potrzeby gier, handlu elektronicznego, analizy danych big data czy aplikacji internetowych działających w czasie rzeczywistym.

Globalne rozpowszechnianie aplikacji

Możliwość zdobycia nowych użytkowników na całym świecie dzięki zwiększonej wydajności aplikacji obejmującej wysoką dostępność i odzyskiwanie po awarii.

Oferowanie środowisk użytkownika w czasie rzeczywistym

Bazy danych NoSQL zapewniają personalizację, rekomendacje w czasie rzeczywistym i ulepszone środowisko użytkownika.

Obsługa różnorodnych obciążeń IoT

Błyskawiczne i elastyczne skalowanie umożliwiające obsługę nieprzerwanego pozyskiwania danych z dużymi obciążeniami związanymi z zapisem ze zwiększoną wydajnością zapytań w przypadku aplikacji IoT.

Rozszerzenie aplikacji handlu elektronicznego

Dzięki elastycznym schematom i hierarchicznym danym technologia NoSQL doskonale nadaje się do przechowywania danych katalogów produktów, w których różne produkty mają różne atrybuty.

Przyciąganie graczy nową zawartością

Dostarczanie spersonalizowanych środowisk z taką zawartością jak statystyki w grach, integracja z mediami społecznościowymi i tablice wyników. Małe opóźnienia i elastyczne możliwości skalowania zapewniają obsługę wzrostów ruchu podczas wprowadzania na rynek gier oraz turniejów.

Tworzenie aplikacji bezserwerowych

Bezproblemowe pozyskiwanie dużych ilości danych, przepływność i ilość danych z natychmiastową dostępnością, automatycznym indeksowaniem, stabilną szybkością pozyskiwania i wydajnością zapytań.

Uzyskiwanie bardziej szczegółowych informacji z danych big data

Implementacja uczenia maszynowego na dużą skalę w środowiskach zawierających duże ilości szybko zmieniających się danych w celu zwiększenia przydatności analiz.

Migracja istniejących obciążeń NoSQL do chmury

Migracja do chmury pozwala poświęcić mniej czasu na zarządzanie lokalną bazą danych, umożliwiając jednocześnie korzystanie z dotychczasowych narzędzi, sterowników, bibliotek i zestawów SDK.

Rozpocznij od technologii NoSQL i migracji bazy danych do chmury

Dowiedz się, jak tworzyć aplikacje, korzystając z nowych funkcji zapewniających skuteczność, elastyczność i skalowalność w zarządzaniu systemami baz danych i różnorodnymi typami danych, a także umożliwiających migrację istniejących obciążeń NoSQL do bazy danych w chmurze. Zapoznaj się z omówieniem technicznym usługi Azure Cosmos DB dla deweloperów  i dowiedz się więcej o natywnej obsłudze baz danych NoSQL w globalnie rozproszonej, wysoce skalowalnej i wielomodelowej usłudze baz danych.

Dowiedz się więcej o danych usługi Azure Cosmos DB for NoSQL   
Dowiedz się więcej