Hello, ħbieb. Qabel ma nitilqu għat-tieni parti tal-vaganzi ta’ Mejju, naqsmu magħkom il-materjal li ttraduċijna b’antiċipazzjoni tat-tnedija ta’ stream ġdid fuq il-kors
L-iżviluppaturi tal-applikazzjoni jqattgħu ħafna ħin iqabblu databases operattivi multipli biex jagħżlu dik li taqbel l-aħjar għall-ammont ta’ xogħol maħsub. Il-ħtiġijiet jistgħu jinkludu mudellar ta' data simplifikata, garanziji transazzjonali, prestazzjoni ta' qari/kitba, skalar orizzontali, u tolleranza għall-ħsarat. Tradizzjonalment, l-għażla tibda bil-kategorija tad-database, SQL jew NoSQL, peress li kull kategorija tippreżenta sett ċar ta 'kompromessi. Prestazzjoni għolja f'termini ta' latenza baxxa u throughput għoli ġeneralment titqies bħala rekwiżit mhux ta' kompromess u għalhekk hija essenzjali għal kwalunkwe database tal-kampjun.
L-għan ta 'dan l-artikolu huwa li jgħin lill-iżviluppaturi tal-applikazzjoni jagħmlu l-għażla t-tajba bejn SQL u NoSQL fil-kuntest tal-immudellar tad-dejta tal-applikazzjoni. Aħna ser inħarsu lejn database SQL waħda, jiġifieri PostgreSQL, u żewġ databases NoSQL, Cassandra u MongoDB, biex ikopru l-baŜi tad-disinn tad-database, bħall-ħolqien ta 'tabelli, il-popolazzjoni tagħhom, il-qari tad-dejta minn tabella, u t-tħassir tagħha. Fl-artiklu li jmiss, aħna ser inkunu żguri li nħarsu lejn indiċi, tranżazzjonijiet, JOINs, direttivi TTL, u disinn ta 'database ibbażat fuq JSON.
X'inhi d-differenza bejn SQL u NoSQL?
Id-databases SQL iżidu l-flessibbiltà tal-applikazzjoni permezz ta’ garanziji transazzjonali ACID, kif ukoll il-kapaċità tagħhom li jfittxu d-dejta bl-użu ta’ JOINs b’modi mhux mistennija fuq il-mudelli eżistenti ta’ database relazzjonali normalizzati.
Minħabba l-arkitettura monolitika/single-node tagħhom u l-użu ta’ mudell ta’ replikazzjoni master-slave għal redundancy, id-databases SQL tradizzjonali m’għandhomx żewġ karatteristiċi importanti - iskalabbiltà tal-kitba lineari (jiġifieri qsim awtomatiku fuq nodi multipli) u telf ta’ dejta awtomatiku/żero. Dan ifisser li l-ammont ta 'dejta riċevuta ma jistax jaqbeż il-fluss massimu tal-kitba ta' nodu wieħed. Barra minn hekk, xi telf temporanju tad-dejta għandu jitqies fit-tolleranza tal-ħsarat (f'arkitettura ta' xejn maqsuma). Hawnhekk trid iżżomm f'moħħok li kommessi reċenti għadhom ma ġewx riflessi fil-kopja tal-iskjavi. Aġġornamenti mhux ta 'waqfien huma wkoll diffiċli biex jinkisbu fid-databases SQL.
Id-databases NoSQL huma ġeneralment imqassma min-natura, i.e. fihom, id-dejta hija maqsuma f'taqsimiet u mqassma f'diversi nodi. Huma jeħtieġu denormalizzazzjoni. Dan ifisser li d-dejta mdaħħla trid tiġi kkupjata wkoll diversi drabi biex tirrispondi għat-talbiet speċifiċi li tibgħat. L-għan ġenerali huwa li tinkiseb prestazzjoni għolja billi jitnaqqas in-numru ta 'shards disponibbli waqt il-qari. Dan jimplika li NoSQL jeħtieġ li timmudella l-mistoqsijiet tiegħek, filwaqt li SQL teħtieġ li timmudella d-dejta tiegħek.
NoSQL jiffoka fuq il-kisba ta 'prestazzjoni għolja f'grupp distribwit u dan huwa r-raġuni bażika għal ħafna kompromessi tad-disinn tad-database li jinkludu telf ta' tranżazzjonijiet ACID, JOINs, u indiċijiet sekondarji globali konsistenti.
Hemm argument li filwaqt li d-databases NoSQL jipprovdu skalabbiltà tal-kitba lineari u tolleranza għolja għall-ħsarat, it-telf ta 'garanziji transazzjonali jagħmilhom mhux adattati għal data kritika għall-missjoni.
It-tabella li ġejja turi kif l-immudellar tad-dejta f'NoSQL huwa differenti minn SQL.
SQL u NoSQL: Għaliex it-tnejn huma meħtieġa?
Applikazzjonijiet fid-dinja reali b'numru kbir ta 'utenti, bħal Amazon.com, Netflix, Uber, u Airbnb, għandhom il-kompitu li jwettqu kompiti kumplessi u b'diversi aspetti. Pereżempju, applikazzjoni tal-kummerċ elettroniku bħal Amazon.com teħtieġ li taħżen data ħafifa u kritika għolja bħal informazzjoni tal-utent, prodotti, ordnijiet, fatturi, flimkien ma’ data tqila u inqas sensittiva bħal reviżjonijiet tal-prodotti, messaġġi ta’ appoġġ, attività tal-utent, reviżjonijiet tal-utenti u rakkomandazzjonijiet. Naturalment, dawn l-applikazzjonijiet jiddependu fuq mill-inqas database SQL waħda flimkien ma 'mill-inqas database NoSQL waħda. F'sistemi transreġjonali u globali, database NoSQL topera bħala cache ġeo distribwit għal data maħżuna f'database SQL ta 'sors affidabbli li taħdem f'reġjun wieħed.
Kif YugaByte DB jgħaqqad SQL u NoSQL?
Mibnija fuq magna tal-ħażna mħallta orjentata lejn il-log, auto-sharding, replikazzjoni ta' kunsens imqassam imqassam u tranżazzjonijiet distribwiti ACID (ispirati minn Google Spanner), YugaByte DB hija l-ewwel database ta' sors miftuħ fid-dinja li hija simultanjament kompatibbli ma' NoSQL (Cassandra & Redis) u SQL (PostgreSQL). Kif muri fit-tabella hawn taħt, YCQL, il-YugaByte DB API kompatibbli ma 'Cassandra, iżid il-kunċetti ta' tranżazzjonijiet ACID b'ċavetta waħda u multi-ċavetta u indiċi sekondarji globali għall-API NoSQL, u b'hekk daħħal l-era ta 'databases NoSQL transazzjonali. Barra minn hekk, YCQL, il-YugaByte DB API kompatibbli ma 'PostgreSQL, iżid il-kunċetti ta' skalar ta 'kitba lineari u tolleranza ta' ħsara awtomatika mal-SQL API, u jġib databases SQL distribwiti fid-dinja. Minħabba li YugaByte DB huwa ta 'natura transazzjonali, l-API NoSQL issa tista' tintuża fil-kuntest ta 'dejta kritika għall-missjoni.
Kif intqal qabel fl-artikolu
- Jekk l-ammont ta 'xogħol primarju tiegħek huwa operazzjonijiet JOIN multi-key, allura meta tagħżel YSQL, ifhem li ċ-ċwievet tiegħek jistgħu jitqassmu f'nodi multipli, li jirriżulta f'latency ogħla u/jew throughput aktar baxx minn NoSQL.
- Inkella, agħżel waħda miż-żewġ APIs NoSQL, filwaqt li żżomm f'moħħok li se tikseb prestazzjoni aħjar bħala riżultat ta 'mistoqsijiet moqdija minn nodu wieħed kull darba. YugaByte DB jista 'jservi bħala database operattiva waħda għal applikazzjonijiet kumplessi tad-dinja reali li jeħtieġu li jimmaniġġjaw ammonti ta' xogħol multipli simultanjament.
Il-laboratorju tal-immudellar tad-Data fit-taqsima li jmiss huwa bbażat fuq databases YugaByte DB kompatibbli mal-API PostgreSQL u Cassandra, għall-kuntrarju tad-databases indiġeni. Dan l-approċċ jenfasizza l-faċilità li jinteraġixxu ma 'żewġ APIs differenti (fuq żewġ portijiet differenti) tal-istess cluster ta' database, għall-kuntrarju tal-użu ta 'clusters kompletament indipendenti ta' żewġ databases differenti.
Fit-taqsimiet li ġejjin, aħna ser nagħtu ħarsa lejn il-laboratorju tal-immudellar tad-dejta biex neżaw id-differenzi u xi wħud mill-komunitajiet tad-databases koperti.
Laboratorju tal-Immudellar tad-Data
Installazzjoni tad-database
Minħabba l-enfasi fuq id-disinn tal-mudell tad-dejta (aktar milli arkitetturi ta 'skjerament kumplessi), aħna ser ninstallaw databases f'kontenituri Docker fuq il-magna lokali u mbagħad jinteraġixxu magħhom billi tuża l-qxur tal-linja tal-kmand rispettivi tagħhom.
Database YugaByte DB kompatibbli PostgreSQL u Cassandra
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_postgres
MongoDB
docker run --name my-mongo -d mongo:latest
Aċċess tal-linja tal-kmand
Ejja nqabbdu mad-databases billi tuża l-qoxra tal-linja tal-kmand għall-APIs korrispondenti.
PostgreSQL
docker exec -it yb-postgres-n1 /home/yugabyte/postgres/bin/psql -p 5433 -U postgres
Cassandra
cqlsh
fil-katalgu bin
.
Innota li CQL kien ispirat mill-SQL u għandu kunċetti simili ta 'tabelli, ringieli, kolonni u indiċi. Madankollu, bħala lingwa NoSQL, iżid ċertu sett ta 'limitazzjonijiet, li ħafna minnhom se nkopru wkoll f'artikoli oħra.
docker exec -it yb-tserver-n1 /home/yugabyte/bin/cqlsh
MongoDB
docker exec -it my-mongo bash
cd bin
mongo
Oħloq tabella
Issa nistgħu jinteraġixxu mad-database biex inwettqu diversi operazzjonijiet bl-użu tal-linja tal-kmand. Nibdew billi noħolqu tabella li taħżen informazzjoni dwar kanzunetti miktuba minn artisti differenti. Dawn il-kanzunetti jistgħu jkunu parti minn album. Attributi fakultattivi wkoll għal kanzunetta huma s-sena tar-rilaxx, il-prezz, il-ġeneru u l-klassifikazzjoni. Irridu nikkunsidraw attributi addizzjonali li jistgħu jkunu meħtieġa fil-futur permezz tal-qasam "tags". Jista 'jaħżen data semi-strutturata fil-forma ta' pari ta 'valuri ewlenin.
PostgreSQL
CREATE TABLE 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,
PRIMARY KEY(Artist, SongTitle)
);
Cassandra
Il-ħolqien ta 'tabella f'Cassandra huwa simili ħafna għal PostgreSQL. Waħda mid-differenzi ewlenin hija n-nuqqas ta' restrizzjonijiet ta' integrità (eż. MHUX NULL), iżda din hija r-responsabbiltà tal-applikazzjoni, mhux id-database NoSQL.. Iċ-ċavetta primarja tikkonsisti f'ċavetta diviżorja (il-kolonna Artist fl-eżempju hawn taħt) u sett ta 'kolonni ta' raggruppament (il-kolonna SongTitle fl-eżempju hawn taħt). Iċ-ċavetta tal-partizzjoni tiddetermina f'liema partizzjoni/shard għandha titqiegħed ir-ringiela, u l-kolonni tar-raggruppament jindikaw kif id-dejta għandha tiġi organizzata fi ħdan il-parti attwali.
CREATE KEYSPACE myapp;
USE myapp;
CREATE TABLE Music (
Artist TEXT,
SongTitle TEXT,
AlbumTitle TEXT,
Year INT,
Price FLOAT,
Genre TEXT,
CriticRating FLOAT,
Tags TEXT,
PRIMARY KEY(Artist, SongTitle)
);
MongoDB
MongoDB jorganizza data f'databases (Database) (simili għal Keyspace f'Cassandra), fejn hemm Kollezzjonijiet (simili għal tabelli) li fihom Dokumenti (simili għal ringieli f'tabella). F'MongoDB, bażikament m'hemmx bżonn li tiġi definita skema inizjali. Tim "uża database", muri hawn taħt, tistanzia d-database fl-ewwel sejħa u tibdel il-kuntest għad-database maħluqa ġdida. Anke kollezzjonijiet m'għandhomx għalfejn jinħolqu b'mod espliċitu; huma maħluqa awtomatikament, sempliċiment meta żżid l-ewwel dokument ma' kollezzjoni ġdida. Innota li MongoDB juża d-database tat-test b'mod awtomatiku, għalhekk kwalunkwe operazzjoni fil-livell ta 'ġbir mingħajr ma tispeċifika database speċifika taħdem fuqha b'mod awtomatiku.
use myNewDatabase;
Ikseb informazzjoni dwar tabella
PostgreSQL
d Music
Table "public.music"
Column | Type | Collation | Nullable | Default
--------------+-----------------------+-----------+----------+--------
artist | character varying(20) | | not null |
songtitle | character varying(30) | | not null |
albumtitle | character varying(25) | | |
year | integer | | |
price | double precision | | |
genre | character varying(10) | | |
criticrating | double precision | | |
tags | text | | |
Indexes:
"music_pkey" PRIMARY KEY, btree (artist, songtitle)
Cassandra
DESCRIBE TABLE MUSIC;
CREATE TABLE myapp.music (
artist text,
songtitle text,
albumtitle text,
year int,
price float,
genre text,
tags text,
PRIMARY KEY (artist, songtitle)
) WITH CLUSTERING ORDER BY (songtitle ASC)
AND default_time_to_live = 0
AND transactions = {'enabled': 'false'};
MongoDB
use myNewDatabase;
show collections;
Id-dħul tad-dejta f'tabella
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
Espressjoni ġenerali INSERT
f'Cassandra jidher simili ħafna għal dak f'PostgreSQL. Madankollu, hemm differenza waħda kbira fis-semantika. F'Kassandra INSERT
fil-fatt hija operazzjoni UPSERT
, fejn l-aħħar valuri huma miżjuda mar-ringiela jekk ir-ringiela diġà teżisti.
Id-dħul tad-dejta huwa simili għal PostgreSQL
INSERT
hawn fuq
.
MongoDB
Anke jekk MongoDB hija database NoSQL bħal Cassandra, l-operazzjoni ta 'inserzjoni tagħha m'għandha xejn komuni mal-imġieba semantika ta' Cassandra. F'MongoDB UPSERT
, li jagħmilha simili għal PostgreSQL. Żieda tad-data default mingħajr _idspecified
se jikkawża li dokument ġdid jiġi miżjud mal-kollezzjoni.
db.music.insert( {
artist: "No One You Know",
songTitle: "Call Me Today",
albumTitle: "Somewhat Famous",
year: 2015,
price: 2.14,
genre: "Country",
tags: {
Composers: ["Smith", "Jones", "Davis"],
LengthInSeconds: 214
}
}
);
db.music.insert( {
artist: "No One You Know",
songTitle: "My Dog Spot",
albumTitle: "Hey Now",
price: 1.98,
genre: "Country",
criticRating: 8.4
}
);
db.music.insert( {
artist: "The Acme Band",
songTitle: "Look Out, World",
albumTitle:"The Buck Starts Here",
price: 0.99,
genre: "Rock"
}
);
db.music.insert( {
artist: "The Acme Band",
songTitle: "Still In Love",
albumTitle:"The Buck Starts Here",
price: 2.47,
genre: "Rock",
tags: {
radioStationsPlaying:["KHCR", "KBQX", "WTNR", "WJJH"],
tourDates: {
Seattle: "20150625",
Cleveland: "20150630"
},
rotation: "Heavy"
}
}
);
Mistoqsija Tabella
Forsi l-aktar differenza sinifikanti bejn SQL u NoSQL f'termini ta 'kostruzzjoni ta' mistoqsija hija l-lingwa użata FROM
и WHERE
. SQL jippermetti wara l-espressjoni FROM
agħżel tabelli multipli, u espressjoni bi WHERE
jista' jkun ta' kwalunkwe kumplessità (inklużi operazzjonijiet JOIN
bejn it-tabelli). Madankollu, NoSQL għandu tendenza li jimponi limitazzjoni severa fuq FROM
, u taħdem biss ma 'tabella speċifikata waħda, u in WHERE
, iċ-ċavetta primarja għandha dejjem tkun speċifikata. Dan jorbot mal-ispinta tal-prestazzjoni NoSQL li tkellimna dwarha qabel. Din ix-xewqa twassal għal kull tnaqqis possibbli fi kwalunkwe interazzjoni cross-tabular u cross-key. Tista' tintroduċi dewmien kbir fil-komunikazzjoni bejn in-nodi meta tirrispondi għal talba u għalhekk l-aħjar jiġi evitat b'mod ġenerali. Pereżempju, Cassandra teħtieġ li l-mistoqsijiet ikunu limitati għal ċerti operaturi (biss =, IN, <, >, =>, <=
) fuq il-partition keys, ħlief meta jintalab indiċi sekondarju (l-operatur = biss huwa permess hawn).
PostgreSQL
Hawn taħt hemm tliet eżempji ta’ mistoqsijiet li jistgħu faċilment jiġu esegwiti minn database SQL.
- Uri l-kanzunetti kollha minn artist;
- Uri l-kanzunetti kollha tal-artist li jaqblu mal-ewwel parti tat-titlu;
- Uri l-kanzunetti kollha ta’ artist li għandhom ċertu kelma fit-titlu u li għandhom prezz inqas minn 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
Mill-mistoqsijiet PostgreSQL elenkati hawn fuq, l-ewwel waħda biss se taħdem mhux mibdula f'Cassandra, peress li l-operatur LIKE
ma jistgħux jiġu applikati għall-clustering columns bħal SongTitle
. F'dan il-każ, l-operaturi biss huma permessi =
и 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
Kif muri fl-eżempji preċedenti, il-metodu ewlieni għall-ħolqien ta 'mistoqsijiet f'MongoDB huwa music
fl-eżempju ta' hawn taħt), għalhekk l-istħarriġ ta' kollezzjonijiet multipli huwa pprojbit.
db.music.find( {
artist: "No One You Know"
}
);
db.music.find( {
artist: "No One You Know",
songTitle: /Call/
}
);
Qari kollha ringieli ta 'tabella
Il-qari tar-ringieli kollha huwa sempliċement każ speċjali tal-mudell tal-mistoqsija li ħares lejn aktar kmieni.
PostgreSQL
SELECT *
FROM Music;
Cassandra
Simili għall-eżempju PostgreSQL hawn fuq.
MongoDB
db.music.find( {} );
Editjar tad-dejta f'tabella
PostgreSQL
PostgreSQL jipprovdi struzzjonijiet UPDATE
biex tibdel id-data. Hija m'għandha l-ebda opportunitajiet UPSERT
, għalhekk din id-dikjarazzjoni tfalli jekk ir-ringiela ma tibqax fid-database.
UPDATE Music
SET Genre = 'Disco'
WHERE Artist = 'The Acme Band' AND SongTitle = 'Still In Love';
Cassandra
Cassandra għandha UPDATE
simili għal PostgreSQL. UPDATE
għandha l-istess semantika UPSERT
, simili INSERT
.
Simili għall-eżempju PostgreSQL hawn fuq.
MongoDB
Operazzjoni UPSERT
. Aġġornament ta 'dokumenti multipli u mġiba simili UPSERT
jistgħu jiġu applikati billi jiġu stabbiliti bnadar addizzjonali għall-operazzjoni. Per eżempju, fl-eżempju hawn taħt, il-ġeneru ta 'artist speċifiku huwa aġġornat ibbażat fuq il-kanzunetta tiegħu.
db.music.update(
{"artist": "The Acme Band"},
{
$set: {
"genre": "Disco"
}
},
{"multi": true, "upsert": true}
);
Tneħħija tad-dejta minn tabella
PostgreSQL
DELETE FROM Music
WHERE Artist = 'The Acme Band' AND SongTitle = 'Look Out, World';
Cassandra
Simili għall-eżempju PostgreSQL hawn fuq.
MongoDB
MongoDB għandu żewġ tipi ta' operazzjonijiet biex iħassar id-dokumenti -
db.music.deleteMany( {
artist: "The Acme Band"
}
);
Ħassar tabella
PostgreSQL
DROP TABLE Music;
Cassandra
Simili għall-eżempju PostgreSQL hawn fuq.
MongoDB
db.music.drop();
Konklużjoni
Id-dibattitu dwar l-għażla bejn SQL u NoSQL ilu għaddej għal aktar minn 10 snin. Hemm żewġ aspetti ewlenin għal dan id-dibattitu: arkitettura tal-magna tad-database (monolitika, SQL transazzjonali vs NoSQL distribwit, mhux transazzjonali) u approċċ tad-disinn tad-database (immudellar tad-dejta tiegħek f'SQL vs immudellar tal-mistoqsijiet tiegħek f'NoSQL).
B'database transazzjonali distribwita bħal YugaByte DB, id-dibattitu dwar l-arkitettura tad-database jista 'jitwaqqaf faċilment. Hekk kif il-volumi tad-dejta jsiru akbar minn dak li jista 'jinkiteb f'nodu wieħed, issir meħtieġa arkitettura distribwita bis-sħiħ li tappoġġja l-iskalabbiltà tal-kitba lineari bi sharding/ibbilanċjar awtomatiku.
Barra minn hekk, kif intqal f'wieħed mill-artikoli
Niġu lura għad-diskussjoni tad-disinn tad-database, huwa ġust li wieħed jgħid li ż-żewġ approċċi tad-disinn (SQL u NoSQL) huma meħtieġa għal kwalunkwe applikazzjoni kumplessa fid-dinja reali. L-approċċ tal-"immudellar tad-dejta" SQL jippermetti lill-iżviluppaturi jissodisfaw aktar faċilment ir-rekwiżiti tan-negozju li qed jinbidlu, filwaqt li l-approċċ tal-"mudellar tal-mistoqsijiet" NoSQL jippermetti lill-istess żviluppaturi joperaw fuq volumi kbar ta 'dejta b'latenza baxxa u throughput għoli. Huwa għal din ir-raġuni li YugaByte DB jipprovdi APIs SQL u NoSQL f'qalba komuni, aktar milli jippromwovi wieħed mill-approċċi. Barra minn hekk, billi tipprovdi kompatibilità ma’ lingwi ta’ database popolari inklużi PostgreSQL u Cassandra, YugaByte DB jiżgura li l-iżviluppaturi ma jkollhomx għalfejn jitgħallmu lingwa oħra biex jaħdmu b’magna ta’ database mqassma u konsistenti ħafna.
F'dan l-artikolu, ħares lejn kif il-prinċipji fundamentali tad-disinn tad-database huma differenti bejn PostgreSQL, Cassandra u MongoDB. F'artikoli futuri, ser nidħlu f'kunċetti ta' disinn avvanzati bħal indiċi, tranżazzjonijiet, JOINs, direttivi TTL, u dokumenti JSON.
Nawgurawlkom mistrieħ mill-isbaħ tal-weekend u nistednukom
Sors: www.habr.com