Tere, sĂ”brad. Enne mai pĂŒhade teise osa algust jagame teiega materjali, mille oleme tĂ”lkinud uue kursuse voolu kĂ€ivitamise eel. .

Rakenduste arendajad kulutavad palju aega, et vÔrrelda mitmeid operatiivseid andmebaase, et leida see, mis kÔige paremini sobib eeldatava töökoormusega. NÔuded vÔivad hÔlmata lihtsat andmemudelite koostamist, tehingute tagatisi, lugemise/kirjutamise jÔudlust, horisontraalset skaleerimist ja tÔrkekindlust. Traditsiooniliselt algab valik andmebaasi kategooria, SQL vÔi NoSQL, sest iga kategooria pakub selget kompromisside kogumit. KÔrge jÔudlus, mis seisneb madalas latentsuses ja kÔrges lÀbilaskevÔimes, peetakse tavaliselt kompromissituks nÔudmiseks ning seetÔttu on see hÀdavajalik igas valitud andmebaasis.
Selle artikli eesmĂ€rk on aidata rakenduste arendajatel teha Ă”ige valik SQL ja NoSQL vahel rakenduse andmemudelite kontekstis. KĂ€sitleme ĂŒht SQL andmebaasi, nimelt PostgreSQL-i ning kahte NoSQL andmebaasi â Cassandra ja MongoDB, et rÀÀkida andmebaaside projekteerimise alustest, nagu tabelite loomine, nende tĂ€itmine, andmete lugemine tabelist ja nende kustutamine. JĂ€rgmisel artiklil vaatame kindlasti indekseid, tehinguid, JOIN-e, TTL direktiive ja andmebaaside projekteerimist JSON-i pĂ”hjal.
Mis on SQL ja NoSQL erinevus?
SQL andmebaasid suurendavad rakenduse paindlikkust ACID tehingu garantii tĂ”ttu ning ka seetĂ”ttu, et nad suudavad andmeid kĂŒsida JOINidega ootamatutel viisidel olemasolevate normaliseeritud relatsiooniliste andmebaasimudelite ĂŒle.
Tuginedes nende monoliitset/ĂŒhe sĂ”lme arhitektuuri ja master-slave replikatsioonimudeli kasutamisega andmete ĂŒlejÀÀkide tĂ”ttu, ei oma traditsioonilised SQL andmebaasid kahte olulist omadust â kirje lineaarset skaleeritavust (st automaatset jagamist mitmele sĂ”lmele) ja automaatset/nullkadu andmeid. See tĂ€hendab, et saadud andmete maht ei tohi ĂŒletada ĂŒhe sĂ”lme maksimaalset kirje lĂ€bilaskevĂ”imet. Lisaks sellele tuleb arvestada teatud ajakadu andmetega talitlushĂ€irete korral (ressursside jagamise arhitektuuris). Siin tuleb meeles pidada, et hiljutised commid ei ole veel alluvatesse (slave) koopiatesse jĂ”udnud. Ăksikasjade uuendamine ilma seiskamiseta on samuti SQL andmebaasides keeruline.
NoSQL andmedbases on oma olemuselt tavaliselt jagatud, mis tĂ€hendab, et andmed jaotatakse osadeks ja jaotatakse mitme sĂ”lme vahel. Need nĂ”uavad denormaliseerimist. See tĂ€hendab, et sisestatud andmeid tuleb ka mitu korda kopeerida, et vastata konkreetsetele pĂ€ringutele, mida saadate. Ăhine eesmĂ€rk on saavutada kĂ”rge jĂ”udlus, vĂ€hendades lugemiseks kĂ€ttesaadavate shardide arvu. Seega tuleb NoSQL'iga mudelida oma pĂ€ringud, samas kui SQL nĂ”uab teie andmete modelleerimist.
NoSQL keskendub kÔrge jÔudluse saavutamisele jaotatud klastris, mis on peamine alus paljude andmebaasi disainikomplekside, sealhulgas ACID'i tehingute kaotuse, JOIN'ide ja jÀrjepidevate globaalsete sekundaarsete indeksite jaoks.
On arvamus, et kuigi NoSQL andmebaasid tagavad lineaarse kirjutamismahu ja kĂ”rge talitluspĂŒsivuse, muudab tehingu garantiide kaotus need kriitiliste andmete jaoks sobimatuks.
JÀrgmine tabel nÀitab, kuidas andmemudeldamine NoSQL-is erineb SQL-ist.

SQL ja NoSQL: Miks on mÔlemad vajalikud?
Reaalsetes rakendustes, mis teenindavad suurt arvu kasutajaid, nagu Amazon.com, Netflix, Uber ja Airbnb, esinevad keerukad mitmeotstarbelised ĂŒlesanded. NĂ€iteks e-kaubanduse rakendus nagu Amazon.com peab haldama kergekaalulisi, kĂ”rge prioriteediga andmeid, nagu kasutajate, toodete, tellimuste ja arvetega seotud informatsioon, koos mahukate, kuid vĂ€hem kriitiliste andmetega, nagu tooteĂŒlevaated, klienditeeninduse teadete, kasutajate tegevus, tagasiside ja soovitused. Loomulikult toetuvad need rakendused vĂ€hemalt ĂŒhele SQL andmebaasile ning vĂ€hemalt ĂŒhele NoSQL andmebaasile. Piirkondlikes ja globaalsetes sĂŒsteemides toimib NoSQL andmebaas geograafiliselt jaotatud vahemĂ€luna andmetele, mis on salvestatud usaldusvÀÀrses allikas, SQL andmebaas, mis töötab ĂŒhes piirkonnas.
Kuidas YugaByte DB ĂŒhendab SQL-i ja NoSQL-i?
YugaByte DB on ehitatud logipĂ”hisele hĂŒbriidmootorile, mis toetab salvestamist, automaatset jagamist ja jagatud konsensuslike replikatsioonide ning jaotatud ACID-tehingud (inspireeritud Google Spannerist). See on maailma esimene avatud lĂ€htekoodiga andmebaas, mis on samaaegselt ĂŒhilduv NoSQL (Cassandra ja Redis) ja SQL (PostgreSQL) sĂŒsteemidega. Nagu nĂ€idatud allolevas tabelis, lisab YCQL, YugaByte DB Cassandra ĂŒhilduv API, ĂŒhe- ja mitmemĂ€rgiliste ACID-tehingute ning globaalsete teisejĂ€rguliste indeksite mĂ”isted NoSQL API-le, avades seelĂ€bi tehinguliste NoSQL andmebaaside ajajĂ€rgu. Lisaks lisab YCQL, YugaByte DB PostgreSQL ĂŒhilduv API, kirjutamise lineaarset skaleerimist ja automaatset talitlushĂ€irete taluvust SQL API-le, tutvustades maailmale jaotatud SQL andmebaase. Kuna YugaByte DB andmebaas on oma olemuselt tehinguline, saab NoSQL API-d kasutada nĂŒĂŒd kriitiliste andmete kontekstis.

Nagu varem artiklis öeldi , sÔltub YugaByte DB-s SQL vÔi NoSQL valik tÀiesti pÔhilise töökoormuse omadustest:
- Kui teie peamine koormus koosneb paljuski JOIN-idega seotud operatsioonidest, siis YSQL-i valimisel pidage meeles, et teie vÔtmed vÔivad olla jaotatud mitme sÔlme vahel, mis toob kaasa suurema latentsuse ja/vÔi madalama lÀbilaskevÔime vÔrreldes NoSQL-iga.
- Vastasel juhul valige ĂŒks kahest NoSQL API-st, pidage meeles, et saate parema jĂ”udluse pĂ€ringutest, mida teenindatakse ĂŒhe sĂ”lme kaupa. YugaByte DB vĂ”ib toimida ainsa operatiivandmebaasina keerukate reaalsete rakenduste jaoks, kus on vajalik samaaegselt hallata mitut koormust.
JĂ€rgmisel jaotisel on andmemudelite labori (Data modeling lab) aluseks YugaByte DB andmebaasid, mis on ĂŒhilduvad PostgreSQL-i ja Cassandra API-dega, erinevalt lĂ€hteandmebaasidest. See lĂ€henemine rĂ”hutab kahe erineva API (kahel erineval pordi) lihtsat koostööd sama andmebaasiklusteriga, erinevalt kahest tĂ€iesti iseseisest erineva andmebaasi klastrist.
JĂ€rgmistes jaotistes tutvume andmemudeli laboratooriumiga, et illustreerida kĂ€sitletud andmebaaside erinevusi ja mĂ”ningaid ĂŒhiseid jooni.
Andmemudeli laboratoorium
Andmebaaside installatsioon
Kuna keskendume andmemudeli projekteerimisele (mitte keerukatele juurutamisarhitektuuridele), installime andmebaasid Docker konteineritesse kohalikus arvutis ja seejÀrel suhtleme nendega vastavate kÀsurea liidestega.
PostgreSQL ja Cassandra ĂŒhilduv andmebaas YugaByte DB
mkdir ~/yugabyte && cd ~/yugabyte
wget https://downloads.yugabyte.com/yb-docker-ctl && chmod +x yb-docker-ctl
docker pull yugabytedb/yugabyte
./yb-docker-ctl create --enable_postgresMongoDB
docker run --name my-mongo -d mongo:latestKesine ligipÀÀs
Connect the databases using the command line interface for the respective APIs.
PostgreSQL
â see on kĂ€surea liides PostgreSQL-iga suhtlemiseks. YugaByte DB on kasutusmugavuse huvides varustatud psql-iga otse bin kaustas.
docker exec -it yb-postgres-n1 /home/yugabyte/postgres/bin/psql -p 5433 -U postgresCassandra
â see on kĂ€surea liides, millega suhelda Cassandra ja selle ĂŒhilduvate andmebaasidega lĂ€bi CQL-i (Cassandra pĂ€ringute keel). Mugavuse huvides tuleb YugaByte DB koos cqlsh kaustas bin.
Pange tÀhele, et CQL on inspireeritud SQL-ist ja omab sarnaseid mÔisteid nagu tabelid, read, veerud ja indeksid. Kuid, kuna see on NoSQL keel, lisab see teatud piiranguid, millest enamikku kÀsitleme ka teistes artiklites.
docker exec -it yb-tserver-n1 /home/yugabyte/bin/cqlshMongoDB
â see on kĂ€surea liides MongoDB-ga suhtlemiseks. Seda leidub MongoDB installatsiooni bin kaustas.
docker exec -it my-mongo bash
cd bin
mongoTabeli loomine
NĂŒĂŒd saame andmebaasiga suhelda erinevate toimingute tegemiseks kasutades kĂ€surea liidest. Alustame tabeli loomisega, mis salvestab erinevate esitajate lood. Need lood vĂ”ivad olla osa albumist. Samuti on valikuline atribuut loo jaoks â vĂ€ljaandmise aasta, hind, genre ja hinnang. Peame arvestama ka tĂ€iendavaid atribuute, mis vĂ”ivad tulevikus vajalikuks osutuda, lĂ€bi vĂ€lja «mĂ€rksĂ”nad». See vĂ”ib salvestada poolstruktureeritud andmeid vĂ”tme-vÀÀrtuse paaridena.
PostgreSQL
LOOME TABEL Music (
Artist VARCHAR(20) NOT NULL,
SongTitle VARCHAR(30) NOT NULL,
AlbumTitle VARCHAR(25),
Year INT,
Price FLOAT,
Genre VARCHAR(10),
CriticRating FLOAT,
Tags TEXT,
PEAMI PALG (Artist, SongTitle)
); Cassandra
Tabeli loomine Cassandras sarnaneb vĂ€ga PostgreSQL-iga. Ăks peamisi erinevusi on terviklikkuse piirangute (nt NOT NULL) puudumine, kuid see kuulub rakenduse vastutusalasse, mitte NoSQL andmebaasi.. Peamine vĂ”ti koosneb jaotuse vĂ”tmes (veerg Artist allpool toodud nĂ€ites) ja klasterdamist vĂ€listavatest veergudest (veerg SongTitle allpool toodud nĂ€ites). Jaotuse vĂ”ti mÀÀrab, kuhu jaotusse/shardi rida panna, samas kui klasterdamise veerud nĂ€itavad, kuidas andmed peaksid olema korraldatud kĂ€esolevas shardis.
LOOME KEYSPACE myapp;
KASUTAME myapp;
LOOME TABEL Music (
Artist TEXT,
SongTitle TEXT,
AlbumTitle TEXT,
Year INT,
Price FLOAT,
Genre TEXT,
CriticRating FLOAT,
Tags TEXT,
PEAMI PALG (Artist, SongTitle)
);MongoDB
MongoDB korraldab andmed andmebaasidesse (Database) (sarnane Keyspace'ile Cassandras), milles on kollektsioonid (Collections) (sarnane tabelitele), kus asuvad dokumendid (Documents) (sarnane ridadele tabelis). MongoDB-s ei ole pÔhimÔtteliselt vajalik algse skeemi mÀÀramine. KÀsk «use database», allpool toodud loob andmebaasi eksemplari esmakordsel kutsel ja muudab konteksti uuesti loodud andmebaasi jaoks. Isegi kogusid ei pea eraldi looma, need luuakse automaatselt, kui lisate esimese dokumendi uude kollektsiooni. Pange tÀhele, et MongoDB kasutab vaikimisi testandmebaasi, seega kÔik kollektsioonitasandi toimingud ilma konkreetse andmebaasi mÀÀramiseta teostatakse vaikimisi selles.
kasuta myNewDatabase;Teabe saamine tabelist
PostgreSQL
d Music
Tabel "public.music"
Veerg | TĂŒĂŒp | Jaotamine | Nullable | Vaikimisi
--------------+-----------------------+-----------+----------+--------
artist | karakteri varieerumine(20) | | mitte null |
songtitle | karakteri varieerumine(30) | | mitte null |
albumtitle | karakteri varieerumine(25) | | |
year | tÀisarv | | |
price | kahekordne tÀpsus | | |
genre | karakteri varieerumine(10) | | |
criticrating | kahekordne tÀpsus | | |
tags | tekst | | |
Indeksid:
"music_pkey" PEAMISED VĂTME, btree (artist, songtitle)Cassandra
KĂŒsi TABELI MUSIC kohta;
LOO TABEL myapp.music (
artist tekst,
songtitle tekst,
albumtitle tekst,
year int,
price float,
genre tekst,
tags tekst,
PEAMINE VĂTI (artist, songtitle)
) KLUSTERIMISE JĂRJESTUSEGA (songtitle ASC)
JA vaikeaeg = 0
JA tehingud = {'enabled': 'false'};MongoDB
kasuta myNewDatabase;
nÀita kollektsioone;Andmete sisestamine tabelisse
PostgreSQL
INSERT INTO Music
(Artist, SongTitle, AlbumTitle,
Year, Price, Genre, CriticRating,
Tags)
VALUES(
'No One You Know', 'Call Me Today', 'Somewhat Famous',
2015, 2.14, 'Country', 7.8,
'{"Composers": ["Smith", "Jones", "Davis"],"LengthInSeconds": 214}'
);
INSERT INTO Music
(Artist, SongTitle, AlbumTitle,
Price, Genre, CriticRating)
VALUES(
'No One You Know', 'My Dog Spot', 'Hey Now',
1.98, 'Country', 8.4
);
INSERT INTO Music
(Artist, SongTitle, AlbumTitle,
Price, Genre)
VALUES(
'The Acme Band', 'Look Out, World', 'The Buck Starts Here',
0.99, 'Rock'
);
INSERT INTO Music
(Artist, SongTitle, AlbumTitle,
Price, Genre,
Tags)
VALUES(
'The Acme Band', 'Still In Love', 'The Buck Starts Here',
2.47, 'Rock',
'{"radioStationsPlaying": ["KHCR", "KBQX", "WTNR", "WJJH"], "tourDates": { "Seattle": "20150625", "Cleveland": "20150630"}, "rotation": Heavy}'
);Cassandra
KokkuvÔttes vÀljakutse INSERT Cassandra-s on vÀga sarnane PostgreSQL-i vastavale. Siiski on semantikas suur erinevus. Cassandra INSERT on tegelikult operatsioon UPSERT, kus rida lisatakse viimased vÀÀrtused, eeldusel, et rida juba eksisteerib.
Andmete sisestamine toimub sarnaselt PostgreSQL-ile
INSERTĂŒle
.
MongoDB
Kuigi MongoDB on NoSQL andmebaas, sarnaselt Cassandra-le, ei ole selle andmesisestusoperatsioonil midagi ĂŒhist Cassandra semantilise kĂ€itumisega. MongoDB-s ei oma vĂ”imalusi UPSERT, mis teeb selle sarnaseks PostgreSQL-iga. Andmete lisamine toimub vaikimisi ilma _idspecified toob ĂŒksuse lisamine kogu.
db.music.insert( {
artist: "Keegi, keda sa ei tea",
songTitle: "Helista mulle tÀna",
albumTitle: "Kohati kuulus",
year: 2015,
price: 2.14,
genre: "Country",
tags: {
Composers: ["Smith", "Jones", "Davis"],
LengthInSeconds: 214
}
}
);
db.music.insert( {
artist: "Keegi, keda sa ei tea",
songTitle: "Minu koer Spot",
albumTitle: "Hei nĂŒĂŒd",
price: 1.98,
genre: "Country",
criticRating: 8.4
}
);
db.music.insert( {
artist: "Acme bÀnd",
songTitle: "Vaata vÀlja, maailm",
albumTitle:"Raha tuleb siia",
price: 0.99,
genre: "Rock"
}
);
db.music.insert( {
artist: "Acme bÀnd",
songTitle: "Endiselt armunud",
albumTitle:"Raha tuleb siia",
price: 2.47,
genre: "Rock",
tags: {
radioStationsPlaying:["KHCR", "KBQX", "WTNR", "WJJH"],
tourDates: {
Seattle: "20150625",
Cleveland: "20150630"
},
rotation: "Heavy"
}
}
);
Tabeli pÀring
VĂ”ib-olla on peamine erinevus SQL-i ja NoSQL-i vahel pĂ€ringute koostamisel sĂ”nastuses FROM ja WHERE. SQL vĂ”imaldab pĂ€rast vĂ€ljendit FROM valida mitu tabelit, ja vĂ€ljend peab olema WHERE iga keerukuse tase (sealhulgas operatsioonid JOIN tabelite vahel). Kuid NoSQL-l on kalduvus seada ranged piirangud FROM, ja töötab ainult ĂŒhe mÀÀratud tabeliga, ja WHERE, peab alati olema mÀÀratud peamine vĂ”ti. See tuleneb NoSQL-i soovist saavutada suuremat jĂ”udlust, millest oleme varem rÀÀkinud. See soov viib igasuguste tabelitevaheliste ja vĂ”tmetevaheliste interaktsioonide vĂ€hendamiseni. See vĂ”ib pĂ”hjustada suurt viivitust sĂ”lmede vahelise ĂŒhenduse puhul pĂ€ringule vastamisel, seetĂ”ttu tuleks seda pĂ”himĂ”tteliselt vĂ€ltida. NĂ€iteks nĂ”uab Cassandra, et pĂ€ringud oleksid piiratud teatud operaatoritega (lubatud on ainult =, IN, , =>, <=) sektsioonide vĂ”tmetel, vĂ€lja arvatud juhud, kus pĂ€ring on sekundaarse indeksi pĂ€ring (siin on lubatud ainult operaator =).
PostgreSQL
JÀrgnevates nÀidetes on toodud kolm pÀringut, mida SQL-andmebaas saab kergesti tÀita.
- Tooda vÀlja kÔik laulud esitajalt;
- Tooda vÀlja kÔik laulud esitajalt, mis vastavad pealkirja esimesele osale;
- Tooda vÀlja kÔik laulud esitajalt, mis sisaldavad teatud sÔna pealkirjas ja mille hind on alla 1,00.
SELECT * FROM Music
WHERE Artist='No One You Know';
SELECT * FROM Music
WHERE Artist='No One You Know' AND SongTitle LIKE 'Call%';
SELECT * FROM Music
WHERE Artist='No One You Know' AND SongTitle LIKE '%Today%'
AND Price < 1.00;Cassandra
Ălaltoodud pĂ€ringutest töötab PostgreSQL-is ainult esimene Cassandra-s muutumatult, kuna operaatorit LIKE ei saa rakendada klasterdamise veergude, nĂ€iteks SongTitle. Sellisel juhul on lubatud ainult operaatorid = ja IN.
SELECT * FROM Music
WHERE Artist='No One You Know';
SELECT * FROM Music
WHERE Artist='No One You Know' AND SongTitle IN ('Call Me Today', 'My Dog Spot')
AND Price < 1.00;MongoDB
Nagu nÀidatud eelnevates nÀidetes, on MongoDB pÀringute loomise peamine meetod . See meetod sisaldab selgelt kollektiivi nime (music allolevas nÀites), seega on pÀring mitme kollektsiooni osas keelatud.
db.music.find( {
artist: "No One You Know"
}
);
db.music.find( {
artist: "No One You Know",
songTitle: /Call/
}
);Loe kÔiki tabeli ridu
KÔik ridade lugemine on lihtsalt varasemalt kÀsitletud pÀringu mall erijuht.
PostgreSQL
VALI *
MUUSIKA;Cassandra
Sarnane eespool PostgreSQL nÀitele.
MongoDB
db.music.find( {} );Andmete redigeerimine tabelis
PostgreSQL
PostgreSQL pakub kÀsku KUUDA andmete muutmiseks. Sellel ei ole vÔimalusi UPSERT, seetÔttu pÔhjustab selle kÀsu tÀitmine vea, kui rida andmebaasis enam ei eksisteeri.
KUUDA Muusika
SETPĆŸanr = 'Disco'
KUS Esitaja = 'The Acme Band' JA LauluPealkiri = 'Still In Love';Cassandra
Cassandra-l on KUUDA sarnane PostgreSQL. KUUDA omab sama semantikat UPSERT, sarnaselt INSERT.
Sarnane eespool PostgreSQL nÀitele.
MongoDB
Operatsioon MongoDB-s vĂ”ib tĂ€ielikult uuendada olemasolevat dokumenti vĂ”i muuta ainult teatud vĂ€lju. Vaikimisi uuendab see ainult ĂŒhte dokumenti ilma semantikat UPSERT. Mitme dokumendi uuendamine ja kĂ€itumine on sarnane UPSERT saab rakendada, seadistades operatsiooni jaoks tĂ€iendavad lipud. NĂ€iteks allolevas nĂ€ites uuendatakse konkreetse esineja ĆŸanri tema laulu pĂ”hjal.
db.music.update(
{"artist": "The Acme Band"},
{
$set: {
"genre": "Disco"
}
},
{"multi": true, "upsert": true}
);Andmete kustutamine tabelist
PostgreSQL
KUSTUTA MUUSIKA
KUS Esitaja = 'The Acme Band' JA LauluPealkiri = 'Look Out, World';Cassandra
Sarnane eespool PostgreSQL nÀitele.
MongoDB
MongoDB-s on kaks tĂŒĂŒpi dokumentide kustutamise operatsioone â ja . MĂ”lemad tĂŒĂŒbid kustutavad dokumente, kuid tagastavad erinevaid tulemusi.
db.music.deleteMany( {
artist: "The Acme Band"
}
);
Tabeli kustutamine
PostgreSQL
DROP TABLE Music;Cassandra
Sarnane eespool PostgreSQL nÀitele.
MongoDB
db.music.drop();KokkuvÔte
SQL ja NoSQL vaheline arutelu on kestnud juba ĂŒle 10 aasta. Selle arutelu kaks peamist aspekti on: andmebaasi tuumikarhitektuur (monoliitne, tehinguline SQL versus hajutatud, tehinguline NoSQL) ning andmebaasi kavandamise lĂ€henemine (andmemudelite loomine SQL-is versus pĂ€ringute modelleerimine NoSQL-is).
Hajutatud tehinguandmebaasi nagu YugaByte DB puhul on andmebaasi arhitektuuri arutelud kergesti hajutatud. Kuna andmemahud ĂŒletavad ĂŒhe sĂ”lme kirjutamisvĂ”imet, muutub tĂ€ielikult hajutatud arhitektuur, mis toetab lineaarset kirjutamiskaalavust automaatse jaotamise ja ĂŒmberjaotamisega, hĂ€davajalikuks.
Nagu ĂŒks artikkel ĂŒtleb , transaktsioonilised, rangelt kooskĂ”lastatud arhitektuurid on nĂŒĂŒd laiemalt rakendatud, et tagada arenduse parem paindlikkus kui mittetransaktsioonilised, lĂ”ppkokkuvĂ”ttes kooskĂ”lastatud arhitektuurid.
Naasdes andmebaasi kujundamise arutelule, on Ă”iglane öelda, et mĂ”lemad lĂ€henemisviisid (SQL ja NoSQL) on vajalikud mis tahes keerulise rakenduse jaoks. SQL lĂ€henemine 'andmemudeli moodustamine' vĂ”imaldab arendajatel hĂ”lpsamini kohanduda muutuvate Ă€ri nĂ”udmistega, samas kui NoSQL lĂ€henemine 'pĂ€ringute mudeli moodustamine' vĂ”imaldab neil arendajatel töötada suurte andmemahtudega, sĂ€ilitades samal ajal madala latentsuse ja kĂ”rge lĂ€bilaskevĂ”ime. Just sellepĂ€rast pakub YugaByte DB nii SQL kui ka NoSQL API-d ĂŒhes tuumas, mitte ei propageeri ĂŒht lĂ€henemisviisi. Lisaks, tagades ĂŒhilduvuse populaarsete andmebaasikeeltega, sealhulgas PostgreSQL ja Cassandra, garanteerib YugaByte DB, et arendajad ei pea Ă”ppima uut keelt, et töötada jaotatud rangelt kooskĂ”lastatud andmebaasi tuumaga.
Selles artiklis uurime, kuidas andmebaasi kavandamise alused erinevad PostgreSQL, Cassandra ja MongoDB puhul. JĂ€rgmistes artiklites sĂŒveneme edasijĂ”udnud kavandamise kontseptsioonidesse, nagu indeksid, tehingud, JOIN'id, TTL-direktiivid ja JSON-dokumendid.
Soovime teile meeldivate ĂŒlejÀÀnud nĂ€dalavahetuste mingeid ja kutsume teid , mis toimub juba 14. mail.
Allikas: habr.com
