Jump to content

Baza e të dhënave relacionale

Nga Wikipedia, enciklopedia e lirë


Një bazë të dhënash relacionale (RDB) është një bazë të dhënash e bazuar në modelin relacional të të dhënave, siç u propozua nga EF Codd në 1970.[1] Një sistem i menaxhimit të bazës së të dhënave që përdoret për të mbajtur bazat e të dhënave relacionale është një sistem i menaxhimit të bazës së të dhënave relacionale (RDBMS). Shumë sisteme të bazës së të dhënave relacionale janë të pajisura me opsionin e përdorimit të SQL (Structured Query Language) për kërkimin dhe përditësimin e bazës së të dhënave.

Një sistem menaxhimi i bazës së të dhënave që përdoret për të ruajtur bazat e të dhënave relacionale quhet sistem menaxhimi i bazës së të dhënave relacionale (RDBMS).

Shumë sisteme të bazës së të dhënave relacionale ofrojnë mundësinë për të përdorur SQL (Structured Query Language) për të kërkuar dhe përditësuar të dhënat në bazën e të dhënave.

Koncepti i bazës së të dhënave relacionale u përcaktua nga EF Codd në IBM në 1970. Codd prezantoi termin relacional në punimin e tij kërkimor "Një model relacional i të dhënave për bankat e mëdha të përbashkëta të të dhënave".[1] Në këtë punim dhe letrat e mëvonshme, ai përcaktoi se çfarë donte të thoshte me relacion. Një përkufizim i mirënjohur i asaj që përbën një sistem të dhënash relacionale është i përbërë nga 12 rregullat e Codd-it.

Megjithatë, asnjë implementim komercial i modelit relacional nuk përmbush të gjitha rregullat e Codd-it, kështu që termi ka evoluar dhe tani përdoret për të përshkruar një grup më të gjerë të sistemeve të bazës së të dhënave, të cilat së paku:

  1. Paraqisni të dhënat tek përdoruesi si relacione (një paraqitje në formë tabelare, p.sh. si një koleksion tabelash me secilën tabelë të përbërë nga një grup rreshtash dhe kolonash);
  2. Siguroni operatorë relacionalë për të manipuluar të dhënat në formë tabelare.



Në 1974, IBM filloi zhvillimin e System R, një projekt kërkimor për të zhvilluar një prototip RDBMS. Sistemi i parë i shitur si një RDBMS ishte Multics Relational Data Store (qershor 1976).[nevojitet citimi] Oracle u lëshua në 1979 nga Relational Software, tani Oracle Corporation. Ingres dhe IBM BS12 pasuan. Shembuj të tjerë të një RDBMS përfshijnë IBM Db2, SAP Sybase ASE dhe Informix. Në vitin 1984, RDBMS e parë për Macintosh filloi të zhvillohej, me emrin e koduar Silver Surfer, dhe u lëshua në 1987 si Dimensioni 4 dhe i njohur sot si 4D.

Sistemet e para që ishin zbatime relativisht besnike të modelit relacional ishin nga:

  • Universiteti i Miçiganit – Micro DBMS (1969)[2]
  • Massachusetts Institute of Technology (1971)[3]
  • Qendra Shkencore e IBM UK në Peterlee – IS1 (1970–72),[4] dhe pasardhësi i saj, PRTV (1973–79).[5]

Përkufizimi më i zakonshëm i një RDBMS është një produkt që paraqet një pamje të të dhënave si një koleksion rreshtash dhe kolonash, edhe nëse nuk bazohet rreptësisht në teorinë relacionale . Sipas këtij përkufizimi, produktet RDBMS zakonisht zbatojnë disa, por jo të gjitha 12 rregullat e Codd.

Një shkollë e dytë e mendimit argumenton se nëse një bazë të dhënash nuk zbaton të gjitha rregullat e Codd-it (ose të kuptuarit aktual mbi modelin relacional, siç shprehet nga Christopher J. Date, Hugh Darwen dhe të tjerë), ajo nuk është relacionale. Kjo pikëpamje, e ndarë nga shumë teoricienë dhe ndjekës të tjerë të rreptë të parimeve të Codd, do të skualifikonte shumicën e DBMS-ve si jo relacionale. Për sqarim, ata shpesh i referohen disa RDBMS si sisteme të menaxhimit të bazës së të dhënave të vërteta relacionale (TRDBMS), duke emërtuar të tjerët sisteme të menaxhimit të bazës së të dhënave pseudo-relacionale (PRDBMS).[nevojitet citimi]

Që nga viti 2009, shumica e DBMS-ve relacionale komerciale përdorin SQL si gjuhën e tyre të pyetjeve.[6]

Gjuhët alternative të pyetjeve janë propozuar dhe zbatuar, veçanërisht zbatimi i Ingres QUEL para vitit 1996.

Modeli relacional

[Redakto | Redakto nëpërmjet kodit]

Një model relacional organizon të dhënat në një ose më shumë tabela (ose "marrëdhënie") kolonash dhe rreshtash, me një çelës unik që identifikon çdo rresht. Rreshtat quhen gjithashtu rekorde ose tuple.[7] Kolonat quhen gjithashtu atribute. Në përgjithësi, çdo tabelë/lidhje përfaqëson një "lloj entiteti" (siç është klienti ose produkti). Rreshtat përfaqësojnë shembuj të atij lloji entiteti (të tilla si "Lee" ose "karrige") dhe kolonat përfaqësojnë vlerat që i atribuohen atij shembulli (si adresa ose çmimi).

Për shembull, çdo rresht i një tabele klase korrespondon me një klasë, dhe një klasë korrespondon me shumë studentë, kështu që marrëdhënia midis tabelës së klasës dhe tabelës së studentëve është "një me shumë".[8]

Çdo rresht në një tabelë ka çelësin e vet unik. Rreshtat e tabelave mund të lidhën mes tyre duke shtuar një kolonë që përmban çelësin unik të rreshtit të lidhur (këto kolona njihen si çelësa të huaj). Codd tregoi se marrëdhëniet e të dhënave me kompleksitet të lartë mund të përfaqësohen përmes një grupi të thjeshtë konceptesh.

Një pjesë e këtij procesi është mundësia e vazhdueshme për të zgjedhur ose modifikuar një rresht të vetëm në një tabelë. Prandaj, shumica e implementimeve fizike përdorin një çelës primar unik (PK) për secilin rresht të tabelës. Kur një rresht i ri shtohet në tabelë, krijohet një vlerë e re unike për çelësin primar, i cili përdoret kryesisht për hyrjen në tabelë. Performanca e sistemit është optimizuar për PK-të. Çelësa të tjerë, që mund të identifikojnë në mënyrë natyrale një rresht, mund të përcaktohen si çelësa alternativë (AK). Shpesh, për të krijuar një AK, kërkohen disa kolona (për këtë arsye një kolonë e vetme numër i plotë zakonisht përdoret si PK). Të dy PK dhe AK mund të përdoren për të identifikuar në mënyrë unike një rresht brenda tabelës. Në disa raste, mund të aplikohet teknologji shtesë për të siguruar një identifikues unik global, një ID të veçantë që përdoret kur kërkesat e sistemit janë më të gjera.

Çelësa kryesorë në një bazë të dhënash përdoren për të përcaktuar lidhjet midis tabelave. Kur një PK transferohet në një tabelë tjetër, ai bëhet një çelës i huaj në atë tabelë. Kur secila qelizë mund të mbajë vetëm një vlerë dhe PK kalon në një tabelë të zakonshme të entitetit, ky model mund të përfaqësojë një marrëdhënie një-me-një ose një-me-shumë. Për të trajtuar marrëdhëniet shumë-me-shumë, zakonisht krijohet një tabelë shtesë që përmban PK-të nga të dyja tabelat e entiteteve të tjera, duke e transformuar marrëdhënien në një entitet të ri; kjo tabelë do të emërtohet përkatësisht dhe dy çelësat e huaj (FK) do të kombinohen për të formuar një PK. Migrimi i PK-ve në tabela të tjera është arsyeja e dytë kryesore pse numrat e plotë të gjeneruar nga sistemi përdoren zakonisht si PK, pasi migrimi i një grupi kolonash të tjera mund të jetë më pak efikas dhe më pak i qartë.

Marrëdhëniet janë lidhje logjike midis tabelave (entiteteve) të ndryshme, të cilat krijohen përmes ndërveprimit mes këtyre tabelave. Këto marrëdhënie mund të përfaqësohen si një model i marrëdhënieve të entiteteve.

Për të funksionuar me efikasitet dhe saktësi, një sistem i menaxhimit të bazës së të dhënave (DBMS) duhet të implementojë transaksionet ACID.[9]

Procedurat e ruajtura

[Redakto | Redakto nëpërmjet kodit]

Një pjesë e programimit brenda një RDBMS realizohet përmes procedurave të ruajtura (SP). Këto procedura shpesh përdoren për të zvogëluar ndjeshëm sasinë e informacionit që transferohet brenda dhe jashtë sistemit. Për të siguruar një nivel më të lartë sigurie, dizajni i sistemit mund të kufizojë aksesin vetëm në procedurat e ruajtura, duke parandaluar hyrjen direkte në tabela. Procedurat themelore të ruajtura përmbajnë logjikën e nevojshme për të shtuar të dhëna të reja dhe për të përditësuar të dhënat ekzistuese. Mund të krijohen gjithashtu procedura më të avancuara për të zbatuar rregulla të veçanta dhe logjikë shtesë për përpunimin ose përzgjedhjen e të dhënave.

Terminologjia e bazës së të dhënave relacionale

Baza e të dhënave relacionale u përcaktua për herë të parë në qershor 1970 nga Edgar Codd, nga Laboratori Kërkimor San Jose i IBM. Pikëpamja e Codd-it për atë që kualifikon si RDBMS është përmbledhur në 12 rregullat e tij. Një bazë të dhënash relacionale ka evoluar për të u bërë lloji mbizotërues i bazave të të dhënave. Modele të tjera të bazave të të dhënash përveç modelit relacional përfshijnë modelin hierarkik dhe modelin e rrjetit.

Tabela më poshtë përmbledh disa nga termat më të rëndësishëm të bazës së të dhënave relacionale dhe emrat përkatës të SQL-së:

Termi SQL Termi i bazës së të dhënave relacionale Përshkrimi
Rreshti Tuple ose Rekord Një grup të dhënash që përfaqëson një artikull të vetëm
Kolona Atribut ose fushë Një element i etiketuar i një tuple, p.sh. "Adresa" ose "Data e lindjes"
Tabela Relacioni ose Bazë relvar Një grup tuplesh që ndajnë të njëjtat atribute; një grup kolonash dhe rreshtash
Shiko ose grup rezultatesh Relvar i prejardhur Çdo grup tuplesh; një raport të dhënash nga RDBMS në përgjigje të një pyetjeje

Marrëdhëniet ose tabelat

[Redakto | Redakto nëpërmjet kodit]

Në një bazë të dhënash relacionale, një relacion është një grup tuple që kanë të njëjtat atribute. Një tuple zakonisht përfaqëson një objekt dhe informacionin lidhur me atë objekt. Këto objekte janë shpesh entitete ose koncepte fizike. Një relacion zakonisht përshkruhet si një tabelë, e cila është e organizuar në rreshta dhe kolona. Të dhënat e referuara nga një atribut janë në të njëjtin domen dhe janë në përputhje me të njëjtat kufizime.

Modeli relacional specifikon që tuple-t e një relacioni nuk kanë një rend të caktuar dhe se tuplet, gjithashtu, nuk imponojnë rend mbi atributet. Aplikacionet mund të aksesojnë të dhënat duke specifikuar pyetje (queries), të cilat përdorin operacione të tilla si përzgjedhja (selection) për të identifikuar tuple-t, projektimi (projection) për të identifikuar atributet dhe bashkimi (join) për të kombinuar marrëdhëniet. Marrëdhëniet mund të modifikohen duke përdorur operatorët e futjes (insertion), fshirjes (deletion) dhe përditësimit (update). Tuple të reja mund të ofrojnë vlera të qarta ose të rrjedhin nga një pyetje. Po ashtu, pyetjet mund të identifikojnë tuple për përditësim ose fshirje.

Tuple-t janë unike sipas definicionit. Nëse një tuple përmban një kandidat çelës (candidate key) ose çelës primar (primary key), atëherë ai është padyshim unik. Megjithatë, një çelës primar nuk ka nevojë të përcaktohet që një rresht ose rekord të jetë një tuple. Përkufizimi i një tuple kërkon që ai të jetë unik, por nuk është e nevojshme që të përcaktohet një çelës primar. Për shkak se një tuple është unik, atributet e tij sipas përkufizimit përbëjnë një superçelës (superkey), i cili është një grup atributesh që mund të identifikojnë një tuple në mënyrë unike.

Marrëdhëniet bazë dhe të prejardhura

[Redakto | Redakto nëpërmjet kodit]

Të gjitha të dhënat ruhen dhe arrihen përmes marrëdhënieve. Marrëdhëniet që ruajnë të dhënat quhen "marrëdhënie bazë" dhe në implementime quhen "tabela". Marrëdhëniet e tjera nuk ruajnë të dhëna, por llogariten duke aplikuar operacione relacionale në marrëdhënie të tjera. Këto quhen "marrëdhënie të prejardhura", dhe në implementime njihen si "pamje" ose "pyetje". Marrëdhëniet e prejardhura veprojnë si një lidhje e vetme, edhe pse ato mund të marrin informacion nga disa marrëdhënie të tjera. Gjithashtu, këto marrëdhënie mund të përdoren si një shtresë abstraksioni, duke e ndihmuar sistemin të menaxhojë kompleksitetin dhe të ofrojë një nivel më të lartë të fleksibilitetit.

Një domen përshkruan grupin e mundshëm të vlerave për një atribut të caktuar dhe mund të konsiderohet si një kufizim për vlerën e atributit. Matematikisht, bashkimi i një domeni me një atribut do të thotë që çdo vlerë për atributin duhet të jetë një element i grupit të specifikuar. Për shembull, vargu i karaktereve "ABC" nuk është në domenin e numrit të plotë, por vlera 123 është. Një shembull tjetër i domenit mund të jetë për fushën "CoinFace", ku mundësitë e vlefshme për vlerat janë ("Heads", "Tails"). Kështu, fusha "CoinFace" nuk do të pranojë vlera si (0,1) ose (H,T), pasi ato nuk përputhen me domenin e parashikuar.

Kufizimet përdoren shpesh për të bërë të mundur kufizimin e mëtejshëm të domenit të një atributi. Për shembull, një kufizim mund të kufizojë një atribut numër të plotë të dhënë në vlerat midis 1 dhe 10. Kufizimet ofrojnë një metodë të zbatimit të rregullave të biznesit në bazën e të dhënave dhe mbështesin përdorimin e mëvonshëm të të dhënave brenda shtresës së aplikacionit. SQL zbaton funksionalitetin e kufizimeve në formën e kufizimeve të kontrollit . Kufizimet kufizojnë të dhënat që mund të ruhen në marrëdhënie. Këto zakonisht përcaktohen duke përdorur shprehje që rezultojnë në një vlerë Boolean, duke treguar nëse të dhënat plotësojnë ose jo kufizimin. Kufizimet mund të zbatohen për atribute të vetme, për një tuple (kombinime kufizuese të atributeve) ose për një lidhje të tërë. Meqenëse çdo atribut ka një domen të lidhur, ka kufizime (kufizime të domenit). Dy rregullat kryesore për modelin relacional njihen si integriteti i entitetit dhe integriteti referencial.

Çdo relacion/tabelë ka një çelës primar, ky është pasojë e faktit se një lidhje është një grup.[10] Një çelës primar specifikon në mënyrë unike një tuple brenda një tabele. Ndërsa atributet natyrore (atributet e përdorura për të përshkruar të dhënat që futen) ndonjëherë janë çelësa kryesorë të mirë, në vend të tyre përdoren shpesh çelësat zëvendësues. Një çelës zëvendësues është një atribut artificial që i është caktuar një objekti që e identifikon atë në mënyrë unike (për shembull, në një tabelë informacioni rreth nxënësve në një shkollë, të gjithëve mund t'u caktohet një ID studenti për t'i dalluar ata). Çelësi zëvendësues nuk ka kuptim të brendshëm (të qenësishëm), por është i dobishëm përmes aftësisë së tij për të identifikuar në mënyrë unike një tufë. Një tjetër dukuri e zakonshme, veçanërisht në lidhje me kardinalitetin N:M është çelësi i përbërë. Një çelës i përbërë është një çelës i përbërë nga dy ose më shumë atribute brenda një tabele që (së bashku) identifikojnë në mënyrë unike një rekord.[11]

Çelësi i huaj i referohet një fushe në një tabelë relacionale që përputhet me kolonën e çelësit kryesor të një tabele tjetër. Ajo lidh dy çelësat. Çelësat e huaj nuk duhet të kenë vlera unike në relacionin e referencës. Një çelës i huaj mund të përdoret për të kryqëzuar tabelat e referencës dhe përdor në mënyrë efektive vlerat e atributeve në relacionin e referuar për të kufizuar domenin e një ose më shumë atributeve në relacionin e referencës. Koncepti përshkruhet zyrtarisht si: "Për të gjitha tufat në relacionin e referencës të projektuara mbi atributet e referencës, duhet të ekzistojë një tuple në relacionin e referuar të projektuar mbi të njëjtat atribute në mënyrë që vlerat në secilin prej atributeve referuese të përputhen me vlerat përkatëse në atributet e referuara."

Procedurat e ruajtura

[Redakto | Redakto nëpërmjet kodit]

Një procedurë e ruajtur është kod i ekzekutueshëm që lidhet dhe ruhet përgjithësisht në bazën e të dhënave. Procedurat e ruajtura zakonisht mbledhin dhe personalizojnë operacionet e zakonshme, si futja e një tupleje në një lidhje, mbledhja e informacionit statistikor rreth modeleve të përdorimit ose përmbledhja e logjikës dhe llogaritjeve komplekse të biznesit . Shpesh ato përdoren si një ndërfaqe programimi aplikacioni (API) për siguri ose thjeshtësi. Zbatimet e procedurave të ruajtura në SQL RDBMS shpesh i lejojnë zhvilluesit të përfitojnë nga zgjerimet procedurale (shpesh specifike për shitësin) në sintaksën standarde deklarative SQL. Procedurat e ruajtura nuk janë pjesë e modelit të bazës së të dhënave relacionale, por të gjitha implementimet komerciale i përfshijnë ato.

Një indeks është një mënyrë për të siguruar akses më të shpejtë në të dhëna. Indekset mund të krijohen në çdo kombinim të atributeve në një relacion . Pyetjet që filtrojnë duke përdorur ato atribute mund të gjejnë tuple që përputhen drejtpërdrejt duke përdorur indeksin (e ngjashme me kërkimin e tabelës Hash ), pa pasur nevojë të kontrollojnë secilën tuple me radhë. Kjo është e ngjashme me përdorimin e indeksit të një libri për të shkuar drejtpërdrejt në faqen në të cilën gjendet informacioni që kërkoni, në mënyrë që të mos keni nevojë të lexoni të gjithë librin për të gjetur atë që kërkoni. Bazat e të dhënave relacionale zakonisht ofrojnë teknika të shumta indeksimi, secila prej të cilave është optimale për disa kombinime të shpërndarjes së të dhënave, madhësisë së lidhjes dhe modelit tipik të aksesit. Indekset zakonisht zbatohen nëpërmjet pemëve B+, pemëve R dhe bitmap-ve. Indekset zakonisht nuk konsiderohen si pjesë e bazës së të dhënave, pasi ato konsiderohen si një detaj i zbatimit, megjithëse indekset zakonisht mbahen nga i njëjti grup që ruan pjesët e tjera të bazës së të dhënave. Përdorimi i indekseve efikase në çelësat kryesorë dhe të huaj mund të përmirësojë në mënyrë dramatike performancën e pyetjeve. Kjo ndodh sepse indekset e pemës B rezultojnë në kohë të pyetjeve në përpjesëtim me log(n) ku n është numri i rreshtave në një tabelë dhe indekset hash rezultojnë në pyetje konstante kohore (pa varësi nga madhësia për sa kohë që pjesa përkatëse e indeksit përshtatet në kujtesa).

Operacionet relacionale

[Redakto | Redakto nëpërmjet kodit]

Pyetjet e bëra kundër bazës së të dhënave relacionale dhe relvarët e prejardhur në bazën e të dhënave shprehen në një llogaritje relacionale ose një algjebër relacionale. Në algjebrën e tij origjinale relacionale, Codd prezantoi tetë operatorë relacionalë në dy grupe me nga katër operatorë secili. Katër operatorët e parë u bazuan në operacionet tradicionale të grupit matematikor:

  • Operatori i bashkimit (υ) kombinon tuplet e dy relacioneve dhe heq të gjitha tupat e dyfishta nga rezultati. Operatori i bashkimit relacional është i barabartë me operatorin SQL UNION.
  • Operatori i kryqëzimit (∩) prodhon grupin e tupave që dy relacione kanë të përbashkëta. Ndërprerja zbatohet në SQL në formën e operatorit INTERSECT .
  • Operatori i diferencës së grupeve (-) vepron në dy relacione dhe prodhon grupin e tupave nga relacioni i parë që nuk ekzistojnë në relacionin e dytë. Diferenca zbatohet në SQL në formën e operatorit EXCEPT ose MINUS.
  • Produkti kartezian (X) i dy marrëdhënieve është një bashkim që nuk kufizohet nga asnjë kriter, duke rezultuar që çdo tufë e relacionit të parë të përputhet me çdo tufë të relacionit të dytë. Produkti kartezian zbatohet në SQL si operatori Cross join.

Operatorët e mbetur të propozuar nga Codd përfshijnë operacione speciale specifike për bazat e të dhënave relacionale:

  • Zgjedhja, ose kufizimi, operacioni (σ) nxjerr tuples nga një relacion, duke i kufizuar rezultatet vetëm në ato që plotësojnë një kriter specifik, dmth një nëngrup për sa i përket teorisë së grupeve. Ekuivalenti SQL i përzgjedhjes është deklarata e pyetjes SELECT me një klauzolë WHERE.
  • Operacioni i projeksionit (π) nxjerr vetëm atributet e specifikuara nga një tufë ose grup tuplesh.
  • Operacioni i bashkimit i përcaktuar për bazat e të dhënave relacionale shpesh referohet si një bashkim natyror (⋈). Në këtë lloj bashkimi, dy marrëdhënie lidhen me atributet e tyre të përbashkëta. Përafrimi i MySQL për një lidhje natyrale është operatori i bashkimit të brendshëm . Në SQL, një JOIN INNER parandalon që një produkt kartezian të ndodhë kur ka dy tabela në një pyetje. Për çdo tabelë të shtuar në një pyetësor SQL, shtohet një BASHKIM INTERNET shtesë për të parandaluar një produkt kartezian. Kështu, për N tabela në një pyetje SQL, duhet të ketë N−1 NJOHJE TË BRENDSHME për të parandaluar një produkt kartezian.
  • Operacioni i ndarjes relacionale (÷) është një operacion pak më i ndërlikuar dhe në thelb përfshin përdorimin e tupave të një relacioni (dividend) për të ndarë një relacion të dytë (pjesëtuesin). Operatori i ndarjes relacionale është efektivisht e kundërta e operatorit të produktit kartezian (prandaj emri).

Operatorë të tjerë janë prezantuar ose propozuar që nga prezantimi i tetë origjinal nga Codd duke përfshirë operatorët e krahasimit relacional dhe zgjerimet që ofrojnë mbështetje për të dhënat e foleve dhe hierarkike, ndër të tjera.

Normalizimi u propozua fillimisht nga Codd si një pjesë integrale e modelit relacional. Ai përfshin një sërë procedurash të dizajnuara për të eliminuar domenet jo të thjeshta (vlerat joatomike) dhe tepricën (dyfishimin) e të dhënave, e cila nga ana tjetër parandalon anomalitë e manipulimit të të dhënave dhe humbjen e integritetit të të dhënave. Format më të zakonshme të normalizimit të aplikuara në bazat e të dhënave quhen forma normale.

Struktura e përgjithshme e një baze të dhënash relacionale

Connolly dhe Begg përcaktojnë sistemin e menaxhimit të bazës së të dhënave (DBMS) si një "sistem softuerësh që u mundëson përdoruesve të përcaktojnë, krijojnë, mirëmbajnë dhe kontrollojnë aksesin në bazën e të dhënave".[12] RDBMS është një zgjerim i atij inicializmi që përdoret ndonjëherë kur baza e të dhënave është relacionale.

Një përkufizim alternativ për një sistem të menaxhimit të bazës së të dhënave relacionale është një sistem i menaxhimit të bazës së të dhënave (DBMS) i bazuar në modelin relacional . Shumica e bazave të të dhënave në përdorim të gjerë sot bazohen në këtë model.[13]

RDBMS-të kanë qenë një opsion i zakonshëm për ruajtjen e informacionit në bazat e të dhënave të përdorura për të dhënat financiare, informacionin prodhues dhe logjistik, të dhënat e personelit dhe aplikacione të tjera që nga vitet 1980. Bazat e të dhënave relacionale shpesh kanë zëvendësuar bazat e të dhënave hierarkike të trashëgimisë dhe bazat e të dhënave të rrjetit, sepse RDBMS ishin më të lehta për t'u zbatuar dhe administruar. Megjithatë, të dhënat e ruajtura relacionale të marra vazhduan, sfidat e pasuksesshme nga sistemet e menaxhimit të bazës së të dhënave të objekteve në vitet 1980 dhe 1990, (të cilat u prezantuan në një përpjekje për të adresuar të ashtuquajturën mospërputhje të impedancës relacionale midis bazave të të dhënave relacionale dhe programeve aplikative të orientuara nga objekti). si dhe nga sistemet e menaxhimit të bazës së të dhënave XML në vitet 1990.[14] Megjithatë, për shkak të shtrirjes së teknologjive, të tilla si shkallëzimi horizontal i grupimeve kompjuterike, bazat e të dhënave NoSQL kohët e fundit janë bërë të njohura si një alternativë ndaj bazave të të dhënave RDBMS.[15]

Baza e të dhënave relacionale të shpërndara

[Redakto | Redakto nëpërmjet kodit]

Arkitektura e Bazës së të Dhënave të Shpërndara Relacionale (DRDA) është projektuar nga një grup pune brenda IBM në periudhën 1988-1994. DRDA mundëson që bazat e të dhënave relacionale të lidhura me rrjetin të bashkëpunojnë për të përmbushur kërkesat SQL.[16][17] Mesazhet, protokollet dhe komponentët strukturorë të DRDA përcaktohen nga Arkitektura e Menaxhimit të të Dhënave të Shpërndara.

Lista e motorëve të bazës së të dhënave

[Redakto | Redakto nëpërmjet kodit]

Sipas DB-Engines, në janar 2023 sistemet më të njohura në faqen e internetit db-engines.com ishin:[18]

  1. Baza e të dhënave Oracle
  2. MySQL
  3. Microsoft SQL Server
  4. PostgreSQL (softuer falas)
  5. IBM Db2
  6. Microsoft Access
  7. SQLite (softuer falas)
  8. MariaDB (softuer falas)
  9. Flokë dëbore
  10. Baza e të dhënave Microsoft Azure SQL
  11. Apache Hive (softuer falas)
  12. Teradata Vantage

Sipas kompanisë hulumtuese Gartner, në vitin 2011, pesë shitësit kryesorë të pronarit të bazës së të dhënave të të dhënave të softuerit sipas të ardhurave ishin Oracle (48.8%), IBM (20.2%), Microsoft (17.0%), SAP duke përfshirë Sybase (4.6%) dhe Teradata (3.7%).[19]

  • Krahasimi i sistemeve të menaxhimit të bazës së të dhënave relacionale
  • Datalog
  • Magazina e të dhënave
  • Lista e sistemeve të menaxhimit të bazës së të dhënave relacionale
  • Baza e të dhënave të objekteve (OODBMS)
  • Përpunimi analitik në internet (OLAP) dhe ROLAP (Përpunimi analitik në linjë relacionale)
  • Transduktor relacional
  • Skema e flokeve të borës
  • SQL
  • Skema e yjeve
  1. ^ a b Codd, E. F. (1970). "A Relational Model of Data for Large Shared Data Banks". Communications of the ACM. 13: 377–387. doi:10.1145/362384.362685. {{cite journal}}: Mungon ose është bosh parametri |language= (Ndihmë!)
  2. ^ Hershey, W.R.; Easthope, C.H. (1 dhjetor 1972). "A set theoretic data structure and retrieval language". ACM SIGIR Forum. Association for Computing Machinery. 7 (4): 45–55. doi:10.1145/1095495.1095500. Marrë më 4 janar 2024. {{cite journal}}: Mungon ose është bosh parametri |language= (Ndihmë!)Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja)
  3. ^ SIGFIDET '74: Proceedings of the 1974 ACM SIGFIDET (Now SIGMOD) Workshop on Data Description, Access and Control: Data Models: Data-Structure-Set versus Relational. Association for Computing Machinery. 1 janar 1975. doi:10.1145/800297. ISBN 978-1-4503-7418-7. Marrë më 4 janar 2024. {{cite book}}: Mungon ose është bosh parametri |language= (Ndihmë!)Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja)
  4. ^ Notley, M.G. (1972). The Peterlee IS/1 System. IBM United Kingdom Scientific Centre. Marrë më 4 janar 2024. {{cite book}}: Mungon ose është bosh parametri |language= (Ndihmë!)Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja)
  5. ^ Todd, Stephen (1976). "The Peterlee Relational Test Vehicle - A System Overview". IBM Systems Journal. 15 (4): 285–308. doi:10.1147/sj.154.0285. {{cite journal}}: Mungon ose është bosh parametri |language= (Ndihmë!)
  6. ^ Ramakrishnan, Raghu; Donjerkovic, Donko; Ranganathan, Arvind; Beyer, Kevin S.; Krishnaprasad, Muralidhar (1998). "SRQL: Sorted Relational Query Language" (PDF). E Proceedings of SSDBM. {{cite journal}}: Mungon ose është bosh parametri |language= (Ndihmë!)
  7. ^ "A Relational Database Overview". oracle.com. {{cite web}}: Mungon ose është bosh parametri |language= (Ndihmë!)
  8. ^ "A universal relation model for a nested database", The Nested Universal Relation Database Model, Lecture Notes in Computer Science, Berlin, Heidelberg: Springer Berlin Heidelberg, vëll. 595, fq. 109–135, 1992, doi:10.1007/3-540-55493-9_5, ISBN 978-3-540-55493-6, marrë më 2020-11-01 {{citation}}: Mungon ose është bosh parametri |language= (Ndihmë!)
  9. ^ "Gray to be Honored With A. M. Turing Award This Spring". Microsoft PressPass. 1998-11-23. Arkivuar nga origjinali më 6 shkurt 2009. Marrë më 2009-01-16. {{cite web}}: Mungon ose është bosh parametri |language= (Ndihmë!)Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja)
  10. ^ Date (1984).
  11. ^ Connolly, Thomas M; Begg, Carolyn E (2015). Database systems: a practical approach to design, implementation, and management (bot. global). Boston Columbus Indianapolis: Pearson. fq. 416. ISBN 978-1-292-06118-4. {{cite book}}: Mungon ose është bosh parametri |language= (Ndihmë!)
  12. ^ Connolly, Thomas M.; Begg, Carolyn E. (2014). Database Systems – A Practical Approach to Design Implementation and Management (bot. 6th). Pearson. fq. 64. ISBN 978-1292061184. {{cite book}}: Mungon ose është bosh parametri |language= (Ndihmë!)
  13. ^ Pratt, Philip J.; Last, Mary Z. (2014-09-08). Concepts of Database Management (bot. 8). Course Technology. fq. 29. ISBN 9781285427102. {{cite book}}: Mungon ose është bosh parametri |language= (Ndihmë!)
  14. ^ Feuerlich, George (21 prill 2010). Dateso 10; Database Trends and Directions: Current Challenges and Opportunities (bot. 1st). Prague, Sokolovsk: MATFYZPRESS. fq. 163–174. ISBN 978-80-7378-116-3. {{cite book}}: Mungon ose është bosh parametri |language= (Ndihmë!)Mirëmbajtja CS1: Data dhe viti (lidhja) Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja)
  15. ^ "NoSQL databases eat into the relational database market". 4 mars 2015. Marrë më 2018-03-14. {{cite web}}: Mungon ose është bosh parametri |language= (Ndihmë!)Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja)
  16. ^ Reinsch, R. (1988). "Distributed database for SAA". IBM Systems Journal. 27 (3): 362–389. doi:10.1147/sj.273.0362. {{cite journal}}: Mungon ose është bosh parametri |language= (Ndihmë!)
  17. ^ Distributed Relational Database Architecture Reference. IBM Corp. SC26-4651-0. 1990. {{cite book}}: Mungon ose është bosh parametri |language= (Ndihmë!)
  18. ^ "DB-Engines Ranking of Relational DBMS". DB-Engines. Marrë më 2022-04-29. {{cite web}}: Mungon ose është bosh parametri |language= (Ndihmë!)
  19. ^ "Oracle the clear leader in $24 billion RDBMS market". 2012-04-12. Marrë më 2013-03-01. {{cite web}}: Mungon ose është bosh parametri |language= (Ndihmë!)