Hogyan magyarázza el nagymamának az SQL és a NoSQL közötti különbséget

Hogyan magyarázza el nagymamának az SQL és a NoSQL közötti különbséget

A fejlesztők egyik legfontosabb döntése az, hogy melyik adatbázist használja. Sok éven át a lehetőségek a különböző relációs adatbázis-beállításokra korlátozódtak, amelyek támogatták a Structured Query Language (SQL) nyelvet. Ezek közé tartozik az MS SQL Server, az Oracle, a MySQL, a PostgreSQL, a DB2 és még sok más.

Az elmúlt 15 évben számos új No-SQL adatbázis jelent meg a piacon. Ezek közé tartoznak a kulcsérték-tárolók, például a Redis és az Amazon DynamoDB, a széles oszlopos adatbázisok, mint például a Cassandra és a HBase, a dokumentumtárolók, például a MongoDB és a Couchbase, valamint a gráf adatbázisok és keresőmotorok, mint például az Elasticsearch és a Solr.

Ebben a cikkben megpróbáljuk megérteni az SQL-t és a NoSQL-t anélkül, hogy belemennénk a funkcióikba.
Ráadásul közben egy kicsit szórakozunk is.

Az SQL magyarázata a nagymamának

Nagymama, képzeld el, hogy nem én vagyok az egyetlen unokája. Ehelyett anya és apa úgy szerették egymást, mint a nyulak, 100 gyerekük született, majd még 50-et örökbe fogadtak.

Tehát mindannyiunkat szeretsz, és nem akarod elfelejteni egyetlen nevünket, születésnapunkat, kedvenc fagylaltízünket, ruhaméretünket, hobbinkat, házastársunk nevét, utódaink nevét és egyéb szuper fontos tényeket. Azonban lássuk be. 85 éves vagy, és a régi szép emléked egyszerűen nem bírja.

Szerencsére, mivel az unokái közül a legokosabb vagyok, tudok segíteni. Szóval eljövök a házadba, kiveszek néhány papírlapot, és megkérlek, hogy süss sütit, mielőtt elkezdjük.

Egy papírlapon készítünk egy listát „unokák" Minden unokája rögzítve néhány lényeges információval, köztük egy egyedi számmal, amely most jelzi, hogy melyik unokája ő van. Valamint a rendszerezés kedvéért a lista elejére írjuk ki a megnevezett attribútumokat, hogy mindig tudjuk, milyen információkat tartalmaz a lista.

id
név
születésnap
utolsó látogatás
ruha mérete
kedvenc fagylaltja
fogadott

1
Feszítővas
09-22-1992
09-01-2019
L
Mentás csokoládé
hamis

2
Jessica
07-21-1992
02-22-2018
M
köves út
igaz

...folytasd a listát!

Unokák listája

Egy idő után mindent kitalál, és már majdnem készen is vagyunk a listával! Ön azonban hozzám fordul, és azt mondja: „Elfelejtettünk helyet adni házastársaknak, hobbiknak, unokáknak!” De nem, nem felejtettük el! Ez a továbbiakban következik, és új papírlapra van szükség.

Előveszek hát egy másik papírt, és azon hívjuk a listát házastársak. Ismét hozzáadjuk a számunkra fontos attribútumokat a lista elejéhez, és elkezdjük a hozzáadást sorokban.

id
unoka_azonosítója
név
születésnap

1
2
János
06-01-1988

2
9
Fernanda
03-05-1985

...több házastárs!

Házastársak listája

Ebben a szakaszban elmagyarázom a nagymamámnak, hogy ha tudni akarja, ki kivel házas, akkor csak összehasonlítania kell id a listában unokák с unoka_azonosítója a házastársak listáján.

Pár tucat süti után szunyókálnom kell. – Folytatnád, nagymama? Elmegyek aludni.

Néhány óra múlva visszajövök. Ügyes vagy, nagymama! A listán kívül minden remekül néz ki hobbi. Körülbelül 1000 hobbi van a listán. Legtöbbjük ismétlődő; Mi történt?

unoka_azonosítója
hobby

1
kerékpározás

4
kerékpározás

3
kerékpározás

7
futás

11
kerékpározás

...folytassuk!

Elnézést, teljesen elfelejtettem mondani! Egy lista használatával csak nyomon követhető hobbi. Aztán egy másik listában kell követnünk unokákakik ezt teszik hobbi. Fel fogjuk hívni "Közös lista". Látva, hogy nem tetszik, aggódni kezdek, és visszatérek a lista módba.

id
hobby

1
kerékpározás

2
futás

3
úszás

...több hobbit!

A hobbik listája

Miután megvan a hobbilistánk, létrehozzuk a második listánkat, és elhívjuk "Az unokák hobbija".

unoka_azonosítója
hobby_id

4
1

3
1

7
2

…több!

Az unokák hobbijának általános listája

Ennyi munka után a nagymamának van egy remek memóriarendszere, amellyel nyomon követheti elképesztően nagy családját. Aztán – hogy tovább tartson – felteszi a varázslatos kérdést: „Hol tanultad meg mindezt?”

Relációs adatbázisok

A relációs adatbázis formálisan leírt táblák halmaza (példánkban ezek lapok), amelyekből elérheti Szerint vagy különböző módon gyűjtheti össze őket anélkül, hogy át kellene rendezni a táblázatokat Adatbázis. Sokféle relációs adatbázis létezik, de sajnos egy papíron lévő lista nem tartozik ezek közé.

A legnépszerűbb relációs adatbázisok megkülönböztető jellemzője az SQL lekérdezési nyelv (Structured Query Language). Ennek köszönhetően, ha a nagymama áthelyezné a memóriarendszerét a számítógépre, gyorsan választ kaphatna olyan kérdésekre, mint például: „Ki nem látogatott meg tavaly, házas és nincs hobbija?”

Az egyik legnépszerűbb SQL adatbázis-kezelő rendszer a nyílt forráskódú MySQL. Elsősorban relációs adatbázis-kezelő rendszerként (RDBMS) valósul meg webalapú szoftveralkalmazásokhoz.

A MySQL néhány fő funkciója:

  • Elég jól ismert, széles körben használt és alaposan tesztelt.
  • Sok képzett fejlesztő van, akinek van tapasztalata SQL és relációs adatbázisok kezelésében.
  • Az adatok különböző táblákban tárolódnak, ami megkönnyíti a kapcsolatok létrehozását elsődleges és idegen kulcsok (azonosítók) használatával.
  • Könnyen használható és hatékony, így ideális kis és nagy vállalkozások számára.
  • A forráskód a GNU General Public License feltételei alatt áll.

Most felejtsd el ALL.

A NoSQL elmagyarázása a nagymamának

Nagyi, hatalmas családunk van. 150 unoka van benne! Sokan házasok, gyerekeik vannak, érdekli őket valami, stb. A te korodban lehetetlen mindannyiunkról mindenre emlékezni. Amire szüksége van, az egy memorizáló rendszer!

Szerencsére I nincs Szeretném, ha elfelejtenéd a születésnapomat és a kedvenc fagylalt ízemet, segíthetek. Így hát elrohanok a legközelebbi boltba, veszek egy füzetet, és visszatérek otthonába.

Az első lépés, hogy a füzetem borítójára nagy, vastag betűkkel felírom az „Unokák” szót. Aztán fellapozom az első oldalt, és elkezdek írni mindent, amire emlékeznie kell rólam. Néhány perc múlva az oldal valahogy így néz ki.

{ 
  "_id":"dkdigiye82gd87gd99dg87gd",
  "name":"Cody",
  "birthday":"09-12-2006",
  "last_visit":"09-02-2019",
  "clothing_size":"XL",
  "favorite_ice_cream":"Fudge caramel",
  "adopted":false,
  "hobbies":[ 
     "video games",
     "computers",
     "cooking"
  ],
  "spouse":null,
  "kids":[ 

  ],
  "favorite_picture":"file://scrapbook-103/christmas-2010.jpg",
  "misc_notes":"Prefers ice-cream cake on birthday instead of chocolate cake!"
}

Я: "Úgy tűnik, minden készen áll!"
nagymama: "Várj, mi lesz a többi unokával?"
Я: "Igen, pontosan. Ezután mindegyiknek kijelölünk egy oldalt.”
nagymama: "Mindenki számára ugyanazt az információt kell leírnom, mint neked?"
Я: „Nem, csak ha akarod. Hadd mutassam meg."
Nagymamám tollát fogom, lapozgatok, és gyorsan leírom a legkevésbé kedvelt unokatestvéremről szóló információkat.

{ 
  "_id":"dh97dhs9b39397ss001",
  "name":"Tanner",
  "birthday":"09-12-2008",
  "clothing_size":"S",
  "friend_count":0,
  "favorite_picture":null,
  "remember":"Born on same day as Cody but not as important"
}

Valahányszor a nagymamának emlékeznie kell valamire az egyik unokájáról, csak a megfelelő oldalra kell lépnie az unokái jegyzetfüzetében. Minden róluk szóló információ közvetlenül az oldalukon kerül tárolásra, amelyet gyorsan módosíthat és frissíthet.

Amikor minden készen van, felteszi a varázslatos kérdést: „Hol tanultad meg mindezt?”

NoSQL adatbázisok

Sok NoSQL adatbázisok („nem csak SQL”). Példáinkban bemutattuk dokumentum adatbázis. A NoSQL adatbázisok olyan módon modellezik az adatokat, amelyek kiküszöbölik a relációs adatbázisokban használt táblakapcsolatokat. Ezek az adatbázisok a 2000-es évek elején váltak népszerűvé a felhő alapú adatbázis-fürtözést igénylő vállalatok körében a puszta skálázási követelményeik miatt (pl. Facebook). Az ilyen alkalmazásokban az adatok konzisztenciája sokkal kevésbé volt fontos, mint a teljesítmény és a méretezhetőség.

Kezdetben a NoSQL-adatbázisokat gyakran használták niche-adatkezelési feladatokra. Alapvetően, ami a webes és felhőalkalmazásokat illeti, a NoSQL adatbázisok jelentős mennyiségű adatot dolgoztak fel és osztottak szét. A NoSQL mérnökei az adatséma rugalmasságát (vagy annak hiányát) is kedvelték, így a frissíthető alkalmazásokban gyors változtatások lehetségesek.

A NoSQL főbb jellemzői:

  • Nagyon rugalmas módja az adatok tárolásának
  • Vízszintes skálázás klaszterekre
  • A fennmaradás/szaporítás lehetséges sorrendje
  • Egyedi kulcsokkal azonosított dokumentumok

Részletes összehasonlítás

A MySQL definiált és strukturált sémát igényel.
A NoSQL lehetővé teszi bármilyen adat tárolását „dokumentumban”.

A MySQL-t hatalmas közösség támogatja.
A NoSQL-nek kicsi és gyorsan növekvő közössége van.

A NoSQL könnyen méretezhető.
A MySQL-nek több kezelhetőségre van szüksége.

A MySQL SQL-t használ, amelyet sokféle adatbázisban használnak.
A NoSQL egy tervezett adatbázis népszerű megvalósításokkal.

A MySQL szabványos lekérdezési nyelvet (SQL) használ.
A NoSQL nem használ szabványos lekérdezési nyelvet.

A MySQL számos nagyszerű jelentéskészítő eszközzel rendelkezik.
A NoSQL számos jelentéskészítő eszközzel rendelkezik, amelyeket nehéz szabványosítani.

A MySQL-nek teljesítményproblémái lehetnek nagy adatok esetén.
A NoSQL kiváló teljesítményt nyújt nagy adatokon.

Gondolatok 8base

A vállalat 8bázis, ahol dolgozom, minden egyes projekt munkaterületét egy AWS-en tárolt Aurora MySQL relációs adatbázissal látjuk el. Míg a NoSQL logikus választás, ha az alkalmazások követelményei nagy teljesítményt és méretezhetőséget igényelnek, úgy gondoljuk, hogy a DBMS által biztosított erős adatkonzisztencia elengedhetetlen SaaS-alkalmazások és egyéb üzleti szoftverek készítésekor.

A jelentéskészítést, tranzakciós integritást és jól definiált adatmodelleket igénylő üzleti alkalmazásokat építő startupok és fejlesztők számára véleményünk szerint a relációs adatbázisokba való befektetés a megfelelő választás.

Tudjon meg többet az Aurora, Serverless és GraphQL fejlesztésekről a 8base.com webhelyen itt.

Forrás: will.com

Hozzászólás