Hur förklarar jag för min mormor skillnaden mellan SQL och NoSQL?

Hur förklarar jag för min mormor skillnaden mellan SQL och NoSQL?

Ett av de viktigaste besluten en utvecklare fattar Àr vilken databas som ska anvÀndas. Under mÄnga Är har alternativen varit begrÀnsade till olika typer av relationsdatabaser som stöder strukturerat frÄgesprÄk (SQL). Dessa inkluderar MS SQL Server, Oracle, MySQL, PostgreSQL, DB2 och mÄnga fler.

Under de senaste 15 Ären har mÄnga nya databaser kommit pÄ marknaden inom No-SQL-ansatsen. Dessa omfattar nyckel-vÀrdeslager sÄsom Redis och Amazon DynamoDB, breda kolumndatabaser som Cassandra och HBase, dokumentlager som MongoDB och Couchbase, samt grafdatabaser och sökmotorer som Elasticsearch och Solr.

I den hÀr artikeln kommer vi att försöka reda ut SQL och NoSQL utan att dyka för djupt in i deras funktionalitet.
Dessutom kommer vi att ha lite kul under processen.

Förklara SQL för mormor

Mormor, tÀnk dig att jag inte Àr ditt enda barnbarn. IstÀllet Àlskade mamma och pappa varandra som kaniner, de fick 100 barn och adopterade sedan ytterligare 50.

SÄ, du Àlskar oss alla och vill inte glömma nÄgot av vÄra namn, födelsedagar, favoritglassmaker, klÀdstorlekar, hobbys, makars namn, barnens namn och andra superviktiga fakta. Men lÄt oss vara Àrliga. Du Àr 85 Är gammal och den gamla goda minnet klarar helt enkelt inte av allt.

Lyckligtvis, som det smartaste av dina barnbarn, kan jag hjÀlpa till. SÄ jag kommer över till ditt hus, tar fram nÄgra ark papper och ber dig att baka kakor innan vi börjar.

PÄ ett av papperna gör vi en lista som kallas "Barnbarn" var och en barnbarn Àr skriven med viss vÀsentlig information om dem, inklusive ett unikt nummer som nu kommer att indikera vilket barnbarn de Àr. Dessutom skriver vi upp namngivna attribut högst upp pÄ listan sÄ att vi alltid vet vilken information den innehÄller.

id
name
födelsedag
senaste besök
klÀdstorlek
favoritglass
adopterad

1
Jimmy
09-22-1992
09-01-2019
L
Mintchoklad
false

2
Jessica
07-21-1992
02-22-2018
M
Rocky road
true


vi fortsÀtter listan!

Lista över barnbarn

Efter ett tag förstÄr du allt och vi Àr nÀstan klara med listan! Men sÄ vÀnder du dig till mig och sÀger: "Vi glömde att lÀgga till plats för makar, hobbys, barnbarn!" Men nej, vi glömde inte! Det följer efter och krÀver ett nytt ark papper.

SÄ jag tar fram ett till papper, och pÄ det listar vi makar. Vi lÀgger Äterigen till de attribut som Àr viktiga för oss i början av listan och börjar lÀgga till i rader.

id
barnbarn_id
name
födelsedag

1
2
John
06-01-1988

2
9
Fernanda
03-05-1985


fler makar!

Makar-lista

Vid det hÀr laget förklarar jag för mormor att om hon vill veta vem som Àr gift med vem, behöver hon bara matcha id i listan barnbarn med barnbarn_id i makar-listan.

Efter ett par dussin kakor behöver jag ta en tupplur. "Kan du fortsÀtta, mormor?" Jag gÄr för att vila lite.

Jag kommer tillbaka efter nÄgra timmar. Och du Àr fantastisk, mormor! Allt ser bra ut, förutom listan hobbyer. Det finns nÀstan 1000 hobbyer pÄ listan. De flesta av dem upprepas; vad hÀnde?

barnbarn_id
hobby

1
cykling

4
cykling

3
cykling

7
löpning

11
cykling


vi fortsÀtter!

UrsÀkta, jag glömde helt att sÀga! Med hjÀlp av en lista kan vi bara spÄra hobbyer. Sedan behöver vi i en annan lista spÄra barnbarn, som sysslar med detta hobbyer. Vi ska kalla det "Gemensam lista". NÀr jag ser att du inte gillar det, börjar jag oroa mig och gÄr tillbaka till listlÀge.

id
hobby

1
cykling

2
löpning

3
simning


fler hobbyer!

Hobby-lista

SÄ snart vi har vÄr hobbylista skapar vi vÄr andra lista och kallar den "Barnbarnens intressen».

barnbarn_id
hobby_id

4
1

3
1

7
2


fler!

Gemensam lista barnbarn hobbyer

Efter allt detta arbete har mormor nu ett fantastiskt system för att hÄlla koll pÄ hela sin otroligt stora familj. Och sedan, för att hÄlla mig lÀngre, stÀller hon den magiska frÄgan: "Var lÀrde du dig allt detta?"

Relationsdatabaser

En relationsdatabas Àr en uppsÀttning formellt beskrevna tabeller (i vÄrt exempel Àr det bladen) frÄn vilka man kan fÄ Ätkomst data eller sammanstÀlla dem pÄ olika sÀtt utan att behöva omorganisera tabellerna databaser. Det finns mÄnga olika typer av relationsdatabaser, men tyvÀrr Àr listan pÄ pappret inte en av dem.

En utmÀrkande drag hos de mest populÀra relationsdatabaserna Àr frÄgesprÄket SQL (Structured Query Language). Tack vare det, om mormor flyttar sitt minnessystem till datorn, kan hon snabbt fÄ svar pÄ frÄgor som: "Vem har inte hÀlsat pÄ mig förra Äret, Àr gift och har inga intressen?"

En av de mest populÀra SQL-databashanteringssystemen Àr MySQL med öppen kÀllkod. Den Àr frÀmst implementerad som ett relationsdatabashanteringssystem (RDBMS) för programapplikationer baserade pÄ webteknologier.

NÄgra nyckelfunktioner i MySQL:

  • Den Ă€r ganska kĂ€nd, allmĂ€nt anvĂ€nd och noggrant testad.
  • Det finns mĂ„nga kvalificerade utvecklare som har erfarenhet av att arbeta med SQL och relationsdatabaser.
  • Data lagras i olika tabeller, vilket gör det enkelt att skapa relationer med hjĂ€lp av primĂ€ra och externa nycklar (identifierare).
  • Den Ă€r enkel att anvĂ€nda och effektiv, vilket gör den idealisk för bĂ„de stora och smĂ„ företag.
  • KĂ€llkoden finns under GNU General Public License.

Glöm nu ALLT.

Förklara NoSQL för mormor

Mormor, vi har en stor familj. Det finns 150 barnbarn! MÄnga av dem Àr gifta, har barn, hobbyn och sÄ vidare. I din Älder Àr det omöjligt att komma ihÄg allt om alla oss. Det du behöver Àr ett minnessystem!

Lyckligtvis kan jag, inte som vill att du ska glömma min födelsedag och min favoritglass, hjÀlpa till. SÄ jag springer till nÀrmaste butik, köper en anteckningsbok och kommer tillbaka hem till dig.

Det första steget jag gör Àr att skriva "Barnbarn" med stora, fet stil pÄ framsidan av anteckningsboken. Sedan blÀddrar jag till första sidan och börjar skriva ner allt som du behöver komma ihÄg om mig. Efter nÄgra minuter ser sidan ungefÀr sÄ hÀr ut.

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

  ],
  "favorite_picture":"file://scrapbook-103/christmas-2010.jpg",
  "misc_notes":"Föredrar tÄrta med glass pÄ födelsedagen istÀllet för chokladtÄrta!"
}

Jag: “Allt verkar vara klart!”
Mormor: “VĂ€nta, vad hĂ€nder med de andra barnbarnen?”
Jag: “Ja, precis. DĂ„ ger vi varje en sida.”
Mormor: “MĂ„ste jag skriva ner exakt samma information för alla, som jag gjorde för dig?”
Jag: “Nej, bara om du vill. LĂ„t mig visa.”
NÀr jag tar en penna frÄn mormor, blÀddrar jag till sidan och skriver snabbt ner information om min minst omtyckta kusin.

{ 
  "_id":"dh97dhs9b39397ss001",
  "name":"Tanner",
  "birthday":"09-12-2008",
  "clothing_size":"S",
  "friend_count":0,
  "favorite_picture":null,
  "remember":"Född samma dag som Cody, men inte sÄ viktig"
}

Varje gÄng mormor behöver pÄminna sig om nÄgot om ett av barnbarnen behöver hon bara gÄ till rÀtt sida i barnbarnens anteckningsbok. All information om dem kommer att förvaras dÀr, pÄ deras sida, som hon snabbt kan Àndra och uppdatera.

NÀr allt Àr klart stÀller hon den magiska frÄgan: "Var lÀrde du dig allt det hÀr?"

NoSQL-databaser

Det finns mĂ„nga NoSQL-databaser (“inte bara SQL”). I vĂ„ra exempel har vi visat dokumentsdatabasen. NoSQL-databaser modellerar data pĂ„ sĂ€tt som utesluter tabellrelationer som anvĂ€nds i relationsdatabaser. Dessa databaser blev populĂ€ra i början av 2000-talet bland företag som behövde molnklustering av databaser pĂ„ grund av deras tydliga skalningskrav (t.ex. Facebook). I sĂ„dana applikationer var datakonsistens mycket mindre viktig Ă€n prestanda och skalbarhet.

I början anvÀndes NoSQL-databaser ofta för nischhantering av data. Framför allt nÀr det kom till webb- och molnapplikationer hanterade och distribuerade NoSQL-databaser betydande mÀngder data. Ingenjörer som arbetade med NoSQL uppskattade ocksÄ den flexibla datastrukturen (eller avsaknaden av den), vilket möjliggjorde snabba förÀndringar i uppdaterade applikationer.

Nyckelfunktioner för NoSQL:

  • Mycket flexibel datalagringsmetod
  • Horisontell skalning till kluster
  • Möjlig sekvens för bestĂ€ndighet / distribution
  • Dokument som identifieras med hjĂ€lp av unika nycklar

Detaljerad jÀmförelse

MySQL krÀver en specifik och strukturerad schema.
NoSQL tillÄter lagring av alla typer av data i ett "dokument".

MySQL stöder en enorm gemenskap.
NoSQL har en liten och snabbt vÀxande gemenskap.

NoSQL kÀnnetecknas av enkel skalning.
MySQL krÀver mer hanterbarhet.

MySQL anvÀnder SQL, som tillÀmpas i mÄnga typer av databaser.
NoSQL Àr en designbaserad databas med populÀra implementationer.

MySQL anvÀnder ett standardiserat frÄgesprÄk (SQL).
NoSQL anvÀnder inget standardiserat frÄgesprÄk.

MySQL har mÄnga utmÀrkta rapporteringsverktyg.
I NoSQL finns det nÄgra rapporteringsverktyg som Àr svÄra att standardisera.

MySQL kan ge upp problem med prestanda för stora datamÀngder.
NoSQL erbjuder utmÀrkt prestanda för stora datamÀngder.

TÀnk pÄ 8base

PĂ„ företaget 8base, dĂ€r jag arbetar, tillhandahĂ„ller vi en arbetsyta för varje projekt med den relationella databasen Aurora MySQL som hostas pĂ„ AWS. Även om NoSQL Ă€r ett logiskt val nĂ€r ditt applicerings krav krĂ€ver hög prestanda och skalbarhet, anser vi att den strikta datakonsistensen som tillhandahĂ„lls av databashanterare Ă€r nödvĂ€ndig nĂ€r man bygger SaaS-applikationer och annan affĂ€rsprogramvara.

För startups och utvecklare som skapar sÄdana affÀrsapplikationer som krÀver rapportering, transaktionsintegritet och klart definierade datamodeller, anser vi att det Àr rÀtt beslut att satsa pÄ arbete med relationella databaser.

LÀr dig mer om utveckling med Aurora, Serverless och GraphQL med hjÀlp av 8base.com hÀr.

KĂ€lla: habr.com

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster