Reliacinis modelis

  Šiam straipsniui ar jo daliai trūksta išnašų į patikimus šaltinius.
Jūs galite padėti Vikipedijai pridėdami tinkamas išnašas su šaltiniais.

Reliacinis modelis – duomenų aprašymo modelis, kuris remiasi predikatų logika ir aibių teorija. Modelį aprašė Edgaras Kodas (Edgar F. Codd) 1970 metais. Šio modelio pagrindinis elementas yra reliacinė lentelė. Kiti, anksčiau naudoti, duomenų aprašymo modeliai – hierarchinis ir tinklinis, o naujausias naudojamas modelis – objektinis. Reliacinis modelis buvo pirmas formaliai aprašytas modelis, anksčiau naudotieji modeliai buvo aprašyti tik po reliacinio modelio aprašymo. Modelio pagrindas – prielaida, jog visi duomenys gali būti pavaizduoti matematiniais ryšiais, tai yra kaip N aibių Dekarto sandaugos poaibis.

Reliacinė lentelė

Pirma lentelė
VardasPavardėSvorisMoka plaukti
JonasPetraitis70taip
PetrasJonaitis75ne
VardenisPavardenis92taip
Antra lentelė
VardasPavardėMėgiamas skaičius
JonasPetraitis5
6
7
17
VardenisPavardenis9

Reliacinė lentelė (angl. relational table) – turinti vardą, dviejų matavimų lentelė duomenims saugoti. Tokios lentelės stulpelių skaičius yra žinomas ir kiekvienas stulpelis turi vardą. Kiekviena eilutė yra duomenų bazės įrašas, kurio stulpeliai pateikia informaciją apie objektą. Eilučių skaičius iš anksto nežinomas ir gali būti bet koks (taip pat ir nulis).

Atributai

Lentelės stulpeliai dar vadinami atributais. Atributai gali būti įvairaus tipo (tekstas, skaičiai, datos, loginiai (taip/ne), taip pat ir duomenų bazėje neapibrėžtos struktūros dvejetainės sekos (angl. blob – binary large object – didelis dvejetainis objektas). Kaip tokie objektai saugomi vaizdai, garsai ir pan.

Raktai

Lentelės pirminis raktas (angl. primary key) yra stulpelis (ar kelių stulpelių derinys), kurį žinodami galime vienareikšmiškai pasakyti, iš kurios eilutės jis paimtas. Pateikiamame pavyzdyje vidutiniškai patikimu pirminiu raktu galėtų būti pavardės stulpelis. Raktas, kuris yra stulpelių derinys, vadinamas sudėtiniu raktu (angl. composite key). Pavyzdyje sudėtiniu raktu galėtų būti vardo ir pavardės stulpelių derinys. Tai patikimiau, nes didelėje duomenų bazėje pasitaiko žmonių vienodomis pavardėmis.

Jei lentelėje galimi keli pirminio rakto variantai, kitos alternatyvos vadinamos kandidatiniais raktais (angl. candidate key).

Normalizacija

Jei lentelės stulpelis (atributas) turi keletą reikšmių tai pačiai eilutei, jis vadinamas daugiareikšmiu atributu (angl. multivalue attribute). Antroji lentelė turi daugiareikšmių atributų, ir jos tiesiogiai į daugelį duomenų bazių perkelti nepatartina ar išvis neįmanoma. Daugiareikšmių atributų galima atsikratyti tiesiog sukuriant papildomas likusių duomenų kopijas, po vieną kiekvienai atributo reikšmei.

Antra lentelė be daugiareikšmių atributų
VardasPavardėMėgiamas skaičius
JonasPetraitis5
JonasPetraitis6
JonasPetraitis7
JonasPetraitis17
VardenisPavardenis9

Tokia lentelė nebeturi daugiareikšmių atributų, tačiau ji turi vadinamų funkcinių priklausomybių – kai kurių gretimų lentelės stulpelių reikšmės priklauso viena nuo kitos. Šiame pavyzdyje vardas ir pavardė yra logiškai tarpusavyje susiję ir be reikalo kartojasi kiekvienai mėgiamo skaičiaus reikšmei. Norint tokią lentelę papildyti nauju Jono Petraičio mėgiamu skaičiumi, teks dar kartą iš naujo įvesti ir saugoti tuos pačius vardą ir pavardę. Tai nepatogu ir neekonomiška, todėl gerai padarytoje duomenų bazėje funkcinių priklausomybių turi nebūti.

Darbas, kurio metu lentelė keičiama keliomis tarpusavyje susijusiomis lentelėmis be funkcinių priklausomybių vadinamas duomenų bazės normalizacija.

Sudentų kodai
VardasPavardėStudento kodas
JonasPetraitis12456
VardenisPavardenis12345
Mėgiami skaičiai
Studento kodasMėgiamas skaičius
124565
124566
124567
1234617
123459
Dviejų lentelių susiejimo diagrama (sukurta su Umbrello). „Šakutės“ ženklas reiškia „vienas su daug“

Normalizacijos metu šią lentelę reikia keisti dviem, iš kurių viena saugo kiekvienam studentui priskirtą kodą o kita – bet kokį kiekį kodo ir tą kodą turinčio studento mėgiamo skaičiaus įrašų. Kodas gali būti generuojamas iš vardo ir pavardės ar bet kuriuo kitu būdu. Svarbu jog jis kiekvienam studentui būtų unikalus ir jo gyvenime nesikeistų. Pavyzdžiui, paso numeris netinka kaip kodas nes keičiasi pakeitus pasą.

Vardų lentelėje studento kodas šiuo atveju gali būti pirminis raktas. Jis saugomas ir mėgiamų skaičių lentelėje. Stulpelis ar stulpelių derinys, kuri yra kitos lentelės pirminis raktas, vadinamas išoriniu raktu (angl. foreign key).

Lentelių sukūrimui, jų susiejimui svetimaisiais raktais ir duomenų paieškoms yra sukurta speciali programavimo kalba (SQL). Tačiau kai kada tenka programuoti panašias duomenų struktūras ir kitokiomis programavimo kalbomis.

Taip pat skaitykite