Shko te përmbajtja

Baza e të dhënave relacionale

Nga Wikipedia, enciklopedia e lirë

Një bazë të dhënash relacionale (RDB[1]) është një bazë të dhënash e bazuar në modelin relacional të të dhënave, siç është propozuar nga E.F.Codd në vitin 1970.[2]

Një Sistem i Menaxhimit të Bazës së të Dhënave Relacionale (RDBMS) është një lloj sistemi i menaxhimit të bazës së të dhënave që ruan të dhënat në një format të strukturuar duke përdorur rreshta dhe kolona .

Shumë sisteme të bazave të të dhënave relacionale janë të pajisura me mundësinë e përdorimit të SQL (Structured Query Language) për pyetjet dhe përditësimin e bazës së të dhënave.[3]

Koncepti i bazës së të dhënave relacionale u përcaktua nga E.F.CoddIBM në vitin 1970.Codd e prezantoi termin relacional në punimin e tij kërkimor "A Relational Model of Data for Large Shared Data Banks".[2] Në këtë punim dhe në punimet e mëvonshme, ai përcaktoi se çfarë nënkuptonte me relacion.Një përkufizim i njohur i asaj që përbën një sistem i bazës së të dhënave relacionale përbëhet nga 12 rregullat e Codd-it .

Megjithatë, asnjë implementim komercial i modelit relacional nuk përputhet me të gjitha rregullat e Codd-it,[4] kështu që termi gradualisht ka filluar të përshkruajë një klasë më të gjerë të sistemeve të bazave të të dhënave, të cilat të paktën:

  1. Paraqesin të dhënat te përdoruesi si relacione(një paraqitje në formë tabelare, d.m.th. si një koleksion tabelash ku secila tabelë përbëhet nga një grup rreshtash dhe kolonash);
  2. Sigurojnë operatorë relacionalë për të manipuluar të dhënat në formë tabelare.

Në vitin 1974, IBM filloi të zhvillonte System R, një projekt kërkimor për të zhvilluar një prototip të RDBMS-së.[5][6] Sistemi i parë i shitur si RDBMS ishte Multics Relational Data Store (qershor 1976).[7][8] [ nevojitet citim ] Oracle u publikua në vitin 1979 nga Relational Software, tani Oracle Corporation.[9] Ingres dhe IBM BS12 pasuan. Shembuj të tjerë të një RDBMS përfshijnë IBM Db2, SAP Sybase ASE dhe Informix.Në vitin 1984, filloi zhvillimi i RDBMS-it të parë për Macintosh, me emrin e koduar Silver Surfer, dhe u publikua në vitin 1987 si 4th Dimension i njohur sot si 4D.[10]

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

  • Universiteti i Michigan – Mikro DBMS (1969)[11]
  • Instituti i Teknologjisë i Massachusetts (1971)[12]
  • Qendra Shkencore e IBM në UK në Peterlee – IS1 (1970–72),[13] dhe pasuesi i tij, PRTV (1973–79).[14]

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 në mënyrë strikte në teorinë relacionale.Sipas këtij përkufizimi, produktet RDBMS zakonisht zbatojnë disa, por jo të gjitha, nga 12 rregullat e Codd-it.

Një qasje tjetër argumenton se nëse një bazë të dhënash nuk i zbaton të gjitha rregullat e Codd-it (ose kuptimin aktual mbi modelin relacional, siç shprehet nga Christopher J. Date, Hugh Darwen dhe të tjerë), atëherë ajo nuk është relacionale. Ky këndvështrim, i ndarë nga shumë teoricienë dhe ndjekës të rreptë të parimeve të Codd-it, do të skualifikonte shumicën e DBMS-ve si jo relacionale. Për sqarim, ata shpesh i referohen disa RDBMS-ve si sisteme të menaxhimit të bazave të të dhënave vërtet relacionale (TRDBMS), ndërsa të tjerët i quajnë sisteme pseudo-relacionale të menaxhimit të bazave të të dhënave (PRDBMS). [ nevojitet citim ]

Që nga viti 2009, shumica e DBMS-ve relacionale komerciale përdorin SQL si gjuhën e tyre për pyetje (query language).[15]

Janë propozuar dhe zbatuar edhe gjuhë alternative për pyetje, veçanërisht implementimi 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 "relacione") kolonash dhe rreshtash, me një çelës unik që identifikon secilin rresht. Rreshtat quhen gjithashtu regjistra ose tuples.[16] Kolonat quhen gjithashtu atribute. Në përgjithësi, çdo tabelë/relacion përfaqëson një "lloj entiteti" (siç është klienti ose produkti).Rreshtat përfaqësojnë instanca të atij lloji entiteti (siç është "Lee" ose "chair") dhe kolonat përfaqësojnë vlerat e atribuara asaj instance (siç është 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ë"[17]

Çdo rresht në një tabelë ka çelësin e vet unik. Rreshtat në një tabelë mund të lidhen me rreshtat në tabela të tjera duke shtuar një kolonë për çelësin unik të rreshtit të lidhur (kolona të tilla njihen si çelësa të huaj ). Codd tregoi se marrëdhëniet e të dhënave me kompleksitet arbitrar mund të përfaqësohen nga një grup i thjeshtë konceptesh.[2]

Një pjesë e këtij përpunimi përfshin mundësinë e vazhdueshme për të zgjedhur ose modifikuar vetëm një rresht në një tabelë. Prandaj, shumica e implementimeve fizike kanë një çelës primar unik (PK) për secilin rresht në një tabelë. Kur një rresht i ri shkruhet në tabelë, gjenerohet një vlerë e re unike për çelësin primar; ky është çelësi që sistemi përdor kryesisht për të aksesuar tabelën. Performanca e sistemit është e optimizuar për PK-të. Çelësa të tjerë, më "natyralë" (natural keys), gjithashtu mund të identifikohen dhe përcaktohen si çelësa alternativë (AK). Shpesh nevojiten disa kolona për të formuar një AK (kjo është një nga arsyet pse zakonisht një kolonë e vetme me numer i behet PK). Si PK-të ashtu edhe AK-të kanë aftësinë për të identifikuar në mënyrë unike një rresht brenda një tabele. Teknologji shtesë mund të aplikohet për të siguruar një ID unik në të gjithë botën, një identifikues globalisht unik, kur ka kërkesa më të gjera të sistemit.

Çelësat primarë brenda një baze të dhënash përdoren për të përcaktuar marrëdhëniet midis tabelave. Kur një çelës primar(PK) migron në një tabelë tjetër, ai bëhet një çelës i huaj (FK) në tabelën tjetër. Kur çdo qelizë mund të përmbajë vetëm një vlerë dhe çelës primar(PK) migron në një tabelë të rregullt entiteti, ky model dizajni mund të përfaqësojë një marrëdhënie një-me-një ose një-me-shumë . Shumica e dizajneve të bazave të të dhënave relacionale zgjidhin marrëdhëniet shumë-me-shumë duke krijuar një tabelë shtesë që përmban çelësat primarë(PK-të) nga të dy tabelat e tjera të entitetit.  Marrëdhënia bëhet një entitet; tabela e rezolucionit emërtohet më pas në mënyrë të përshtatshme dhe dy FK-të kombinohen për të formuar një çelës primar(PK). Migrimi i çelësave primarë(PK-ve) në tabela të tjera është arsyeja e dytë kryesore pse zakonisht përdoren numra të caktuar nga sistemi si çelës primar(PK); zakonisht nuk ka efikasitet apo qartësi në migrimin e një grupi të llojeve të tjera të kolonave.

Marrëdhëniet janë një lidhje logjike midis tabelave (entiteteve) të ndryshme, të vendosura në bazë të bashkëveprimit midis këtyre tabelave. Këto marrëdhënie mund të modelohen si një model entitet-marrëdhënie.

Që një sistem menaxhimi i bazës së të dhënave (DBMS) të funksionojë në mënyrë efikase dhe të saktë, ai duhet të përdorë transaksione ACID.[18][19][20]

Procedurat e ruajtura

[Redakto | Redakto nëpërmjet kodit]

Një pjesë e programimit brenda një RDBMS kryhet duke përdorur procedura të ruajtura (SP).Shpesh procedurat mund të përdoren për të reduktuar ndjeshëm sasinë e informacionit të transferuar brenda dhe jashtë një sistemi.Për siguri më të madhe, dizajni i sistemit mund të japë akses vetëm në procedurat e ruajtura dhe jo direkt në tabela.Procedurat themelore të ruajtura përmbajnë logjikën e nevojshme për të futur të dhëna të reja dhe përditësuar të dhënat ekzistuese.Procedurat më komplekse mund të shkruhen për të zbatuar rregulla dhe logjikë shtesë që lidhen me 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 të vitit 1970 nga Edgar Codd, nga Laboratori Kërkimor San Jose i IBM-it.[2] Pikëpamja e Codd-it për atë që përbën një RDBMS është përmbledhur në 12 rregullat e Codd-it.Një bazë të dhënash relacionale është bërë lloji dominues i bazave të të dhënave.Modele të tjera përveç modelit relacional përfshijnë modelin hierarkik të bazës së të dhënave dhe modelin e rrjetit.

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

Termi SQL Termi i bazës së të dhënave relacionale Përshkrimi
Rresht Tuple ose Record Një grup të dhënash që paraqet një objekt të vetëm
Kolonë Atribut ose fushë Një element i etiketuar i një tuple, p.sh. "Adresa" ose "Data e lindjes"
Tabel Relacion ose Base relvar Një bashkësi tuplesh që ndajnë të njëjtat atribute; një bashkësi kolonash dhe rreshtash
View ose grup rezultatesh Relvar i derivuar Çdo bashkësi tuplesh; një raport të dhënash nga RDBMS në përgjigje të një pyetjeje(query)

Relacionet ose tabelat

[Redakto | Redakto nëpërmjet kodit]

Në një bazë të dhënash relacionale, një relacion është një grup i tuple-ave që kanë të njëjtat atribute.Një tuple zakonisht përfaqëson një objekt dhe informacion rreth atij objekti.Objektet janë zakonisht objekte fizike ose koncepte.Një relacion zakonisht përshkruhet si një tabelë, e cila është e organizuar në rreshta dhe kolona.Të gjitha të dhënat që i referohen një atributi ndodhen në të njëjtën domen dhe përputhen me të njëjtat kufizime.

Modeli relacional specifikon që tuple-t e një relacioni nuk kanë një rend specifik dhe se tuple-t, nga ana tjetër, nuk imponojnë mbi atributet. Aplikacionet qasen në të dhëna duke specifikuar pyetje, të cilat përdorin operacione të tilla si select për të identifikuar tuple-t, project për të identifikuar atributet dhe join për të kombinuar relacionet. Relacionet mund të modifikohen duke përdorur operatorët insert, delete dhe update . Tuple-t e reja mund të japin vlera të qarta ose të nxirren nga një pyetje. Në mënyrë të ngjashme, pyetjet identifikojnë tuple-t për përditësim ose fshirje.

Tuple-t sipas përkufizimit janë unike.Nëse tuple-i përmban një çelës kandidat ose primar, atëherë padyshim që ai është unik; megjithatë, një çelës primar nuk ka nevojë të përcaktohet që një rresht ose regjistrim të jetë një tuple.Përkufizimi i një tuple-i kërkon që ajo të jetë unike, por nuk kërkon që të përcaktohet një çelës primar.Meqenëse një tuple është unike, atributet e saj sipas përkufizimit përbëjnë një superkey .

Marrëdhëniet bazë dhe të derivuara

[Redakto | Redakto nëpërmjet kodit]

Të gjitha të dhënat ruhen dhe aksesohen përmes relacioneve.Relacionet që ruajnë të dhëna quhen "relacione bazë", dhe në implementime quhen "tabela". Relacionet e tjera nuk ruajnë të dhëna, por llogariten duke aplikuar operacionet relacionale në relacione të tjera. Këto relacione ndonjëherë quhen "relacione të derivuara".Në implementime këto quhen "views" ose "queries". Relacionet e derivuara janë të përshtatshme sepse sillen si një relacion i vetëm, edhe pse mund të marrin informacion nga disa relacione te tjera.Gjithashtu, relacionet e derivuara mund të përdoren si një shtresë abstraksioni.

Një domen përshkruan grupin e vlerave të mundshme për një atribut të caktuar dhe mund të konsiderohet si një kufizim mbi vlerën e atij atributi. Matematikisht, lidhja e një domeni me një atribut nënkupton 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 numrave të plotë, por vlera e numrave të plotë 123 është. Një shembull tjetër, domen-i përshkruan vlerat e mundshme për fushën "CoinFace" si ("Heads", "Tails"). Pra, fusha "CoinFace" nuk do të pranojë vlera hyrëse si (0,1) ose (H,T).

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 të caktuar numerik vetëm në vlerat midis 1 dhe 10. Kufizimet ofrojnë një mënyrë për zbatimin e rregullave të biznesit në bazën e të dhënave dhe mbështesin përdorimin pasues të të dhënave brenda shtresës së aplikacionit. SQL zbaton funksionalitetin e kufizimeve në formën e check constraints. Kufizimet kufizojnë të dhënat që mund të ruhen në relacione . Këto zakonisht përcaktohen duke përdorur shprehje që rezultojnë në një vlerë booleane, e cila tregon nëse të dhënat i plotësojnë apo jo kufizimet. Kufizimet mund të zbatohen për atribute të vetme, për një tuple (duke kufizuar kombinime atributësh), ose për një relacion të tërë. Meqenëse çdo atribut ka një domen të shoqëruar, ekzistojnë kufizime ( kufizimet e domenit ). Dy rregullat kryesore për modelin relacional njihen si integriteti i entitetit dhe integriteti referencial .

Çdo relacion/tabelë ka një çelës primar, kjo është pasojë e faktit që një relacion është një bashkësi.[21] 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ë regjistrohen) ndonjëherë janë çelësa të mirë primarë, shpesh përdoren çelësa zëvendësues në vend të tyre. Një çelës zëvendësues është një atribut artificial i caktuar një objekti që e identifikon atë në mënyrë unike (për shembull, në një tabelë me informacion 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ë natyrshëm), por është i dobishëm për shkak të aftësisë së tij për të identifikuar në mënyrë unike një tuple. 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.[21]

Çelësi i huaj i referohet një fushe në një tabelë relacionale që përputhet me kolonën e çelësit primar të një tabele tjetër. Ai lidh dy çelësat. Çelësat e huaj nuk kanë nevojë të kenë vlera unike në relacionin referues. Një çelës i huaj mund të përdoret për të kryqëzuar tabela dhe ai 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 referues. Koncepti përshkruhet formalisht si: "Për të gjitha tuple-t në relacionin referues të projektuara mbi atributet referuese, duhet të ekzistojë një tuple në relacionin e referuar të projektuar mbi të njëjtat atribute në mënyrë të tillë që vlerat në secilin prej atributeve të referencimit 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 me bazën e të dhënave dhe në përgjithësi ruhet brenda saj. Procedurat e ruajtura zakonisht mbledhin dhe përshtatin operacione të zakonshme, si futja e një tuple në një relacion, mbledhja e informacionit statistikor rreth modeleve të përdorimit ose kapsulimi i logjikës komplekse të biznesit dhe llogaritjeve. Shpesh ato përdoren si një ndërfaqe programimi aplikacionesh (API) për siguri ose thjeshtësi. Implementimet e procedurave të ruajtura në RDBMS SQL shpesh u lejojnë zhvilluesve të përfitojnë nga zgjerimet procedurale (shpesh specifike për prodhuesin) të sintaksës 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(queries) që filtrojnë duke përdorur ato atribute mund të gjejnë tuple-t që përputhen direkt duke përdorur indeksin (ngjashëm me kërkimin në tabelën Hash ), pa pasur nevojë të kontrollojnë secilën tuple një nga një. Kjo është e ngjashme me përdorimin e indeksit të një libri për të shkuar direkt në faqen në të cilën gjendet informacioni që po kërkon, në mënyrë që të mos keni nevojë të lexoni të gjithë librin.Bazat e të dhënave relacionale zakonisht ofrojnë teknika indeksimi, secila është optimale për kombinime te ndryshme të shpërndarjes së të dhënave, madhësisë së relacionit dhe modelit tipik të aksesit. Indekset zakonisht implementohen me B+ trees, R-trees dhe bitmap-eve . Indekset zakonisht nuk konsiderohen pjesë e bazës së të dhënave, pasi ato konsiderohen një detaj implementimi, megjithëse indekset zakonisht mirëmbahen nga i njëjti grup që mirëmban pjesët e tjera të bazës së të dhënave. Përdorimi i indekseve efikase si në çelësat primarë(primary key) ashtu edhe në ata të huaj(foreign key) mund të përmirësojë ndjeshëm performancën e pyetjeve. Kjo ndodh sepse indekset e tipit B-tree rezultojnë në kohë pyetjesh proporcionale me log(n), ku n është numri i rreshtave në tabelë dhe indekset hash rezultojnë në pyetje me kohë konstante (pa varësi nga madhësia për sa kohë që pjesa përkatëse e indeksit futet në memorie).

Operacione relacionale

[Redakto | Redakto nëpërmjet kodit]

Pyetjet(queries) e bëra ndaj bazës së të dhënave relacionale dhe relvar-et të derivuara në bazën e të dhënave shprehen në një kalkulus relacional ose një algjebër relacionale. Në algjebrën e tij origjinale relacionale, Codd prezantoi tetë operatorë relacionalë të ndarë në dy grupe me nga katër operatorë secili. Katër operatorët e parë bazohen në operacionet tradicionale matematikore të bashkësive:

  • Operatori i bashkimit (υ) kombinon tuple-t e dy relacioneve dhe largon të gjitha tuple-t e dyfishta nga rezultati. Operatori racional i bashkimit është ekuivalent me operatorin SQL UNION .
  • Operatori i prerjes (∩) prodhon bashkësinë e tuple-ve që dy relacione kanë të përbashkëta. Prerja zbatohet në SQL në formën e operatorit INTERSECT .
  • Operatori i diferencës së bashkësive (-) vepron mbi dy relacione dhe prodhon bashkësinë e tuple-ve nga relacioni i parë që nuk ekzistojnë në relacionin e dytë. Diferenca implementohet në SQL përmes operatorit EXCEPT ose MINUS.
  • Prodhimi kartezian (X) i dy relacioneve është një bashkim që nuk kufizohet nga asnjë kriter, duke rezultuar në krahasimin e çdo tuple të relacionit të parë me çdo tuple të relacionit të dytë. Prodhimi kartezian zbatohet në SQL si operatori Cross join .

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

  • Operacioni i përzgjedhjes, ose kufizimit, (σ) rikthen tuple nga një relacion, duke kufizuar rezultatin vetëm te ato që plotësojnë një kriter specifik, dmth. një nënbashkësi në terma të teorisë së bashkësive. 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ë tuple ose bashkësi tuplesh.
  • Operacioni i join-it i përcaktuar për bazat e të dhënave relacionale shpesh quhet një natural join(⋈), në këtë lloj bashkimi, dy relacione janë të lidhura nga atributet e tyre të përbashkëta. Në MySQL, përafërsisht realizohet me INNER JOIN . Në SQL, një INNER JOIN parandalon që të ndodhë një prodhim kartezian kur ka dy tabela në një query. Për çdo tabelë të shtuar në një query SQL, shtohet një INNER JOIN shtesë për të parandaluar një prodhim kartezian. Kështu, për N tabela në një querySQL, duhet të ketë N−1 INNER JOIN.
  • Operatori i divizionit relacional (÷) është një operacion pak më kompleks dhe në thelb përfshin përdorimin e tuple-ve të një relacioni (dividendi) për të ndarë një relacion të dytë. Operatorë e divizionit janë praktikisht e kundërta e operatorëve të produktit kartezian (pra emri).

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

Normalizimi u propozua për herë të parë nga Codd si një pjesë thelbësore e modelit relacional. Ai përfshin një sërë procedurash të krijuara për të eliminuar domenet jo të thjeshta (vlerat jo-atomike) dhe tepricat (dyfishimet) e të dhënave, gjë që nga ana tjetër parandalon anomalitë gjatë 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 format normale .

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

Connolly and Begg e përkufizojnë sistemin për menaxhimin e bazave të të dhënave(DBMS) si një "sistem softuerik që u mundëson Përdoruesve të përcaktojnë, krijojnë, mirëmbajnë dhe kontrollojnë qasjen në bazën e të dhënave".[22] RDBMS është një zgjerim i këtij akronimi, i cili përdoret ndonjëherë kur baza e të dhënave në themel ështe relacionale.

Një përkufizim alternativ për një sistem për menaxhimin e bazës së të dhënave relacionale është një sistem menaxhimi të bazës së të dhënave (DBMS) i bazuar në modelin relacional . Shumica e bazave të të dhënave që përdoren gjerësisht sot bazohen në këtë model.[23]

RDBMS-të kanë qenë një opsion i zakonshëm për ruajtjen e informacionit në bazat e të dhënave që përdoren për të dhënat financiare, informacionet e prodhimit dhe logjistikës, 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ëguara dhe bazat e të dhënave të rrjetit, sepse RDBMS-të ishin më të lehta për t'u implementuar dhe administruar. Megjithatë, të dhënat e ruajtura në mënyrë relacionale morën vazhimisht sfida te pasuksesshme, nga sistemet për menaxhimin e bazave të të dhënave me objekteve në vitet 1980 dhe 1990 (të cilat u prezantuan si një përpjekje për të adresuar të ashtuquajturën object–relational impedance mismatch midis bazave të të dhënave relacionale dhe programeve të aplikacioneve të orientuara nga objektet), si dhe nga sistemet për menaxhimin e bazave të të dhënave XML në vitet 1990.[24] Megjithatë, për shkak të zgjerimit të teknologjive, siç është shkallëzimi horizontal i grupeve kompjuterike, bazat e të dhënave NoSQL janë bërë kohët e fundit të njohura si një alternativë ndaj bazave të të dhënave RDBMS.[25]

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

[Redakto | Redakto nëpërmjet kodit]

Arkitektura e Bazës së të Dhënave Relacionale të Shpërndarë (DRDA) u projektua nga një grup pune brenda IBM-së gjatë periudhës 1988 deri në 1994. DRDA u mundëson bazave të të dhënave relacionale të lidhura në rrjet të bashkëpunojnë për të përmbushur kërkesat SQL.[26][27] Mesazhet, protokollet dhe komponentët strukturorë të DRDA-s 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ë dhjetor 2024 sistemet më të njohura në faqen e internetit db-engines.com ishin:[28]

  1. Oracle Database
  2. MySQL
  3. Microsoft SQL Server
  4. PostgreSQL
  5. Snowflake
  6. IBM Db2
  7. SQLite
  8. Microsoft Access
  9. Databricks
  10. MariaDB

Sipas kompanisë kërkimore Gartner, në vitin 2011, pesë shitësit kryesorë të bazave të të dhënave relacionale të softuerëve të patentuar sipas të ardhurave ishin Oracle (48.8%), IBM (20.2%), Microsoft (17.0%), SAP duke përfshirë Sybase (4.6%) dhe Teradata (3.7%).[29]

  1. Hastings, Jordan (2003). "Portable Software Tools for Managing and Referencing Taxonomies". Communications of the ACM (në anglisht). U.S. Geological Survey Open-File Report 03–471. Arkivuar nga origjinali më 2014-10-21. Marrë më 2024-04-06.
  2. 1 2 3 4 Codd, E.F. (1970). "A Relational Model of Data for Large Shared Data Banks". Communications of the ACM (në anglisht). 13 (6): 377–387. doi:10.1145/362384.362685.
  3. Ambler, Scott (21 mars 2023). "Relational Databases 101: Looking at the Whole Picture".
  4. Date, Chris (5 maj 2005). Database in depth: relational theory for practitioners (në anglisht). O'Reilly. ISBN 0-596-10012-4.
  5. Funding a Revolution: Government Support for Computing Research (në anglisht). National Academies Press. 8 janar 1999. ISBN 0309062780.
  6. Sumathi, S.; Esakkirajan, S. (13 shk 2008). Fundamentals of Relational Database Management Systems (në anglisht). Springer. ISBN 978-3540483977. The product was called SQL/DS (Structured Query Language/Data Store) and ran under the DOS/VSE operating system environment
  7. Leavitt, Don (6 shtator 1976). "MDBM' Backs Network, Relational Approaches". Computerworld (në anglisht). IDG Enterprise.
  8. Schmidt, Joachim W.; Brodie, Michael L. Relational Database Systems: Analysis and Comparison (në anglisht). Springer Science & Business Media. fq. 181–220. ISBN 978-3-642-68847-8.
  9. "Oracle Timeline" (PDF). Profit Magazine (në anglisht). 12 (2). Oracle: 26. maj 2007. Marrë më 2013-05-16.
  10. "New Database Software Program Moves Macintosh Into The Big Leagues". tribunedigital-chicagotribune. 28 qershor 1987. Marrë më 2016-03-17.
  11. Hershey, W.R.; Easthope, C.H. (1 dhjetor 1972). "A set theoretic data structure and retrieval language". ACM SIGIR Forum (në anglisht). 7 (4). Association for Computing Machinery: 45–55. doi:10.1145/1095495.1095500. Marrë më 4 janar 2024.
  12. SIGFIDET '74: Proceedings of the 1974 ACM SIGFIDET (Now SIGMOD) Workshop on Data Description, Access and Control: Data Models: Data-Structure-Set versus Relational (në anglisht). Association for Computing Machinery. 1 janar 1975. doi:10.1145/800297. ISBN 978-1-4503-7418-7. Marrë më 4 janar 2024.
  13. Notley, M.G. (1972). The Peterlee IS/1 System (në anglisht). IBM United Kingdom Scientific Centre. Marrë më 4 janar 2024.
  14. Todd, Stephen (1976). "The Peterlee Relational Test Vehicle - A System Overview". IBM Systems Journal (në anglisht). 15 (4): 285–308. doi:10.1147/sj.154.0285.
  15. Ramakrishnan, Raghu; Donjerkovic, Donko; Ranganathan, Arvind; Beyer, Kevin S.; Krishnaprasad, Muralidhar (1998). "SRQL: Sorted Relational Query Language" (PDF). E Proceedings of SSDBM (në anglisht).
  16. "A Relational Database Overview". oracle.com.
  17. A universal relation model for a nested database. The Nested Universal Relation Database Model. Lecture Notes in Computer Science (në anglisht). Vëll. 595. Berlin, Heidelberg: Springer Berlin Heidelberg. 1992. fq. 109–135. doi:10.1007/3-540-55493-9_5. ISBN 978-3-540-55493-6. Marrë më 2020-11-01.
  18. "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.
  19. Gray, Jim (shtator 1981). "The Transaction Concept: Virtues and Limitations" (PDF). Proceedings of the 7th International Conference on Very Large Databases (në anglisht). Cupertino, CA: Tandem Computers. fq. 144–154. Marrë më 2006-11-09.
  20. Gray, Reuter; Jim, Andreas (1993). "Distributed Transaction Processing: Concepts and Techniques" (në anglisht). ISBN 1-55860-190-2.
  21. 1 2 Connolly, Thomas M; Begg, Carolyn E (2015). Database systems: a practical approach to design, implementation, and management (në anglisht) (bot. global). Boston Columbus Indianapolis: Pearson. fq. 416. ISBN 978-1-292-06118-4.
  22. Connolly, Thomas M; Begg, Carolyn E (2015). Database systems: a practical approach to design, implementation, and management (në anglisht) (bot. global). Boston Columbus Indianapolis: Pearson. fq. 416. ISBN 978-1-292-06118-4.
  23. Pratt, Philip J.; Pratt, Mary Z. (2014-09-08). Concepts of Database Management (në anglisht) (bot. 8). Course Technology. fq. 29. ISBN 9781285427102.
  24. Feuerlich, George (21 prill 2010). Dateso 10; Database Trends and Directions: Current Challenges and Opportunities (në anglisht) (bot. 1st). Prague, Sokolovsk: MATFYZPRESS. fq. 163–174. ISBN 978-80-7378-116-3.
  25. "NoSQL databases eat into the relational database market". 4 mars 2015. Marrë më 2018-03-14.
  26. Reinsch, R. (1988). "Distributed database for SAA". IBM Systems Journal (në anglisht). 27 (3): 362–389. doi:10.1147/sj.273.0362.
  27. Distributed Relational Database Architecture Reference (në anglisht). IBM Corp. SC26-4651-0. 1990.
  28. "DB-Engines Ranking of Relational DBMS". DB-Engines. 2024-12-01.
  29. "Oracle the clear leader in $24 billion RDBMS market". Eye on Oracle (në anglisht). 2012-04-12. Arkivuar nga origjinali më 2014-01-08. Marrë më 2013-03-01.