Co To jest NoSQL?

baza danych NoSQL jest nie relacyjnym systemem zarządzania danymi, który nie wymaga stałego schematu. Unika łączenia i jest łatwy do skalowania. Głównym celem korzystania z bazy danych NoSQL jest rozproszone magazyny danych z ogromnymi potrzebami przechowywania danych. NoSQL jest używany do dużych zbiorów danych i aplikacji internetowych w czasie rzeczywistym. Na przykład firmy takie jak Twitter, Facebook i Google zbierają terabajty danych użytkowników każdego dnia.,

baza danych NoSQL oznacza „Not Only SQL” lub „Not SQL.”Choć lepszym określeniem byłoby” NoREL”, NoSQL się załapał. Carl Strozz wprowadził koncepcję NoSQL w 1998 roku.

tradycyjne RDBMS używa składni SQL do przechowywania i pobierania danych w celu uzyskania dalszych informacji. Zamiast tego system bazodanowy NoSQL obejmuje szeroką gamę technologii bazodanowych, które mogą przechowywać dane ustrukturyzowane, półstrukturalne, nieustrukturyzowane i polimorficzne., Zrozummy o NoSQL z diagramem w tym samouczku bazy danych NoSQL:

w tym samouczku NoSQL dla początkujących nauczysz się podstaw NoSQL, takich jak:

  • dlaczego NoSQL?
  • Krótka historia baz danych NoSQL
  • funkcje NoSQL
  • typy baz danych NoSQL
  • narzędzia mechanizmu zapytań dla NoSQL
  • czym jest twierdzenie CAP?
  • konsystencja
  • zalety NoSQL

dlaczego NoSQL?,

koncepcja baz danych NoSQL stała się popularna wśród internetowych gigantów, takich jak Google, Facebook, Amazon itp. którzy zajmują się ogromnymi ilościami danych. Czas reakcji systemu staje się powolny, gdy używasz RDBMS dla ogromnych ilości danych.

aby rozwiązać ten problem, możemy „skalować” nasze systemy poprzez modernizację naszego istniejącego sprzętu. Ten proces jest kosztowny.

alternatywą dla tego problemu jest dystrybucja obciążenia bazy danych na wielu hostach, gdy obciążenie wzrasta. Metoda ta jest znana jako ” skalowanie.,”

baza danych NoSQL jest nie relacyjna, więc skaluje się lepiej niż relacyjne bazy danych, ponieważ są zaprojektowane z myślą o aplikacjach internetowych.,ST z JSON

  • najczęściej nie używany standardowy język zapytań NoSQL
  • bazy danych z obsługą sieci Web działające jako usługi internetowe
  • rozproszone

    • wiele baz danych NoSQL może być uruchamianych w sposób rozproszony
    • oferuje automatyczne skalowanie i funkcje fail-over
    • często koncepcja ACID może być poświęcona dla skalowalności i przepustowości
    • głównie brak synchronicznej replikacji między rozproszonymi węzłami replikacja multi-master, peer-to-peer, replikacja HDFS
    • tylko zapewniająca ostateczną spójność
    • współdzielona architektura nothing., Umożliwia to mniejszą koordynację i większą dystrybucję.

    NoSQL nie jest współdzielony.

    typy baz danych NoSQL

    bazy danych NoSQL są podzielone głównie na cztery typy: para klucz-wartość, zorientowana na kolumny, oparta na wykresach i zorientowana na dokumenty. Każda kategoria ma swoje unikalne atrybuty i ograniczenia. Żadna z wyżej wymienionych baz danych nie jest lepsza do rozwiązania wszystkich problemów. Użytkownicy powinni wybrać bazę danych w oparciu o ich potrzeby produktu.,

    typy baz danych NoSQL:

    • para klucz-wartość oparta na
    • Wykres zorientowany kolumnowo
    • wykresy oparte na
    • zorientowany na dokument

    pary wartości klucza oparte na

    dane są przechowywane w parach klucz/wartość. Został zaprojektowany w taki sposób, aby obsługiwać wiele danych i duże obciążenie.

    przechowujące pary klucz-wartość bazy danych przechowują dane jako tabelę skrótu, w której każdy klucz jest unikalny, a wartością może być JSON, BLOB(binarne duże obiekty), string, itp.,

    na przykład para klucz-wartość może zawierać klucz typu „Website” powiązany z wartością typu „Guru99”.

    jest to jeden z najbardziej podstawowych przykładów bazy danych NoSQL. Tego rodzaju baza danych NoSQL jest używana jako zbiór, słowniki, tablice asocjacyjne itp. Magazyn wartości klucza pomaga programistom przechowywać dane bez schematu. Najlepiej sprawdzają się w przypadku zawartości koszyka.

    Redis, Dynamo, Riak to przykłady NoSQL baz danych przechowujących klucz-wartość. Wszystkie są oparte na papierze Dynamo firmy Amazon.,

    bazujące na kolumnach

    bazujące na kolumnach bazują na BigTable paper firmy Google. Każda kolumna jest traktowana oddzielnie. Wartości baz danych pojedynczych kolumn są przechowywane obok siebie.

    baza danych NoSQL oparta na kolumnach

    zapewniają wysoką wydajność przy zapytaniach agregacyjnych, takich jak SUM, COUNT, AVG, MIN itp. ponieważ dane są łatwo dostępne w kolumnie.,

    bazy danych NoSQL oparte na kolumnach są szeroko stosowane do zarządzania hurtowniami danych, business intelligence, CRM, katalogami kart bibliotecznych,

    HBase, Cassandra, HBase, Hypertable są przykładami zapytań NoSQL baz danych opartych na kolumnach.

    Document-Oriented:

    Document-Oriented NoSQL DB przechowuje i pobiera dane jako parę wartości klucza, ale część wartości jest przechowywana jako dokument. Dokument jest przechowywany w formatach JSON lub XML. Wartość jest rozumiana przez DB i może być zapytana.

    , Dokument

    na tym diagramie po lewej stronie widać, że mamy wiersze i kolumny, a po prawej mamy bazę danych dokumentów, która ma podobną strukturę do JSON. Teraz dla relacyjnej bazy danych, musisz wiedzieć, jakie kolumny masz i tak dalej. Jednak w przypadku bazy danych dokumentów przechowuje się dane, takie jak obiekt JSON. Nie musisz definiować, które sprawiają, że jest elastyczny.

    typ dokumentu jest najczęściej używany w systemach CMS, platformach blogowych, analizach w czasie rzeczywistym & aplikacjach e-commerce., Nie powinien być stosowany w przypadku złożonych transakcji, które wymagają wielu operacji lub zapytań przeciwko różnym strukturom agregatów.

    Amazon SimpleDB, CouchDB, MongoDB, Riak, Lotus Notes, MongoDB, są popularnymi systemami DBMS pochodzącymi z dokumentów.

    oparta na grafie

    baza danych typu Graf przechowuje encje, a także relacje między tymi encjami. Encja jest przechowywana jako węzeł z relacją jako krawędzie. Krawędź daje relację między węzłami. Każdy węzeł i krawędź ma unikalny identyfikator.,

    w porównaniu do relacyjnej bazy danych, w której tabele są luźno połączone, Grafowa baza danych ma charakter multi-relacyjny. Relacje przechodzące są szybkie, ponieważ są już przechwytywane do DB i nie ma potrzeby ich obliczania.

    baza danych grafów wykorzystywana głównie w sieciach społecznościowych, logistyce, danych przestrzennych.

    Neo4J, Infinite Graph, OrientDB, FlockDB to popularne bazy danych oparte na grafie.,

    narzędzia mechanizmu zapytań dla NoSQL

    najczęstszym mechanizmem wyszukiwania danych jest pobieranie wartości na podstawie klucza/ID z zasobu GET

    baza danych magazynu dokumentów oferuje trudniejsze zapytania, ponieważ rozumie wartość pary klucz-wartość. Na przykład CouchDB umożliwia definiowanie widoków za pomocą MapReduce

    czym jest twierdzenie CAP?

    twierdzenie CAP jest również nazywane twierdzeniem Brewera., Stwierdza, że jest niemożliwe, aby rozproszony magazyn danych oferował więcej niż dwie z trzech gwarancji

    1. spójność
    2. dostępność
    3. tolerancja partycji

    spójność:

    dane powinny pozostać spójne nawet po wykonaniu operacji. Oznacza to, że po zapisaniu danych każde przyszłe żądanie odczytu powinno zawierać te dane. Na przykład po zaktualizowaniu statusu zamówienia wszyscy klienci powinni być w stanie zobaczyć te same dane.

    dostępność:

    baza danych powinna być zawsze dostępna i responsywna. Nie powinno mieć żadnych przestojów.,

    tolerancja partycji:

    tolerancja partycji oznacza, że system powinien nadal działać, nawet jeśli komunikacja między serwerami nie jest stabilna. Na przykład serwery mogą być podzielone na wiele grup, które mogą nie komunikować się ze sobą. Tutaj, jeśli część bazy danych jest niedostępna, Inne części są zawsze nienaruszone.

    ewentualna spójność

    termin „ewentualna spójność” oznacza posiadanie kopii danych na wielu komputerach w celu uzyskania wysokiej dostępności i skalowalności., Tak więc zmiany wprowadzone do dowolnej pozycji danych na jednej maszynie muszą być propagowane do innych replik.

    replikacja danych może nie być natychmiastowa, ponieważ niektóre kopie będą aktualizowane natychmiast, a inne w odpowiednim czasie. Kopie te mogą być wzajemnie, ale w odpowiednim czasie stają się spójne. Stąd nazwa ewentualna konsekwencja.,i> zasadniczo, dostępne oznacza, że DB jest dostępny przez cały czas zgodnie z twierdzeniem CAP

  • Stan miękki oznacza nawet bez wejścia; stan systemu może ulec zmianie
  • ostateczna spójność oznacza, że system będzie spójny w czasie
  • zalety NoSQL h2

    • może być używany jako główne lub analityczne źródło danych
    • możliwość Big Data
    • brak pojedynczego punktu awarii
    • łatwa replikacja
    • nie ma potrzeby oddzielnej warstwy buforowania
    • zapewnia szybką wydajność i skalowalność poziomą.,
    • może obsługiwać ustrukturyzowane, półstrukturalne i nieustrukturyzowane dane z jednakowym skutkiem
    • Programowanie obiektowe, które jest łatwe w użyciu i elastyczne
    • bazy danych NoSQL nie potrzebują dedykowanego serwera o wysokiej wydajności
    • obsługują kluczowe Języki i platformy programistyczne
    • prosty w implementacji niż przy użyciu RDBMS
    • może służyć jako podstawowe źródło danych dla aplikacji online.,
    • eliminuje potrzebę stosowania określonej warstwy buforowania do przechowywania danych
    • oferuje elastyczny projekt schematu, który można łatwo zmienić bez przestojów lub zakłóceń w usługach

    wady NoSQL

    • brak normalizacji
    • ograniczone możliwości zapytań
    • bazy danych i narzędzia RDBMS są stosunkowo proste w obsłudze.mature
    • nie oferuje żadnych tradycyjnych możliwości baz danych, takich jak spójność, gdy wiele transakcji jest wykonywanych jednocześnie.,
    • gdy zwiększa się objętość danych, trudno jest utrzymać unikalne wartości, ponieważ klucze stają się trudne
    • nie działa tak dobrze z danymi relacyjnymi
    • krzywa uczenia się jest sztywna dla nowych programistów
    • opcje Open source, więc nie są tak popularne w przedsiębiorstwach.

    podsumowanie

    • NoSQL jest nie relacyjnym DMS, który nie wymaga stałego schematu, unika łączenia i jest łatwy do skalowania
    • koncepcja baz danych NoSQL jest popularna wśród internetowych gigantów, takich jak Google, Facebook, Amazon itp., kto zajmuje się ogromnymi ilościami danych
    • W roku 1998 – Carlo Strozzi używa terminu NoSQL dla swojej lekkiej, open-source relacyjnej bazy danych
    • bazy danych NoSQL nigdy nie są zgodne z modelem relacyjnym jest albo schema-free lub ma luźne Schematy
    • cztery rodzaje bazy danych NoSQL są 1).Para klucz-wartość na podstawie 2).Wykres 3). Na podstawie wykresów 4).,Zorientowane na dokumenty
    • NOSQL może obsługiwać dane ustrukturyzowane, półstrukturalne i niestrukturalne z jednakowym skutkiem
    • twierdzenie CAP składa się z trzech słów spójność, dostępność i tolerancja partycji
    • base oznacza zasadniczo Dostępny, miękki stan, ewentualną spójność
    • termin „ewentualna spójność” oznacza posiadanie kopii danych na wielu maszynach w celu uzyskania wysokiej dostępności i skalowalności
    • NOSQL oferuje ograniczone możliwości zapytań