Reliacinės duomenų bazės. Pagrindinės sąvokos, ryšio savybės, duomenų modelis, reliacinės operacijos ir skaičiavimas

Pradžia> Paskaita

DB paskaita 2 skyrius SANTYKIŲ DUOMENŲ BAZĖS 2.1. Terminai ir apibrėžimai Reliacinės duomenų bazės pradėtos kurti septintojo dešimtmečio pabaigoje, kai pasirodė pirmieji darbai, kuriuose buvo aptariamos specialistui žinomos formalizuoto duomenų vaizdavimo lentelių pavidalu metodų panaudojimo galimybės. Vieni ekspertai tokį informacijos pateikimo būdą vadino sprendimų lentelėmis, kiti – lentelių algoritmais. Reliacinių duomenų bazių teoretikai lentelių informacijos pateikimo būdą vadino duomenų loginiais modeliais. Reliacinių duomenų bazių teorijos pradininku laikomas IBM darbuotojas dr. EF Codd, kuris 1970 m. birželio 6 d. paskelbė straipsnį „Relacinis duomenų modelis dideliems bendriems duomenų bankams“ „Relacinis duomenų modelis Dideli bendri duomenų bankai“. Šiame straipsnyje pirmą kartą buvo pavartotas terminas „santykinių duomenų modelis“, kuris padėjo pagrindus reliacinėms duomenų bazėms. Aštuntajame dešimtmetyje sukurta reliacinė duomenų bazių teorija. JAV daktaro E. F. Coddo, rėmėsi aibių teorijos matematiniu aparatu. Jis įrodė, kad bet koks duomenų rinkinys GALI būti pavaizduotas specialios rūšies dvimačių lentelių, matematikos žinomų kaip santykiai, forma. Iš angliškas žodis atsirado „santykis“ „ryšys“) ir pavadinimas „santykinių duomenų modelis“. Šiuo metu duomenų bazių (DB) projektavimo teorinis pagrindas yra reliacinės algebros matematinis aparatas (žr. 1.2 skyrių). Taigi, reliacinė duomenų bazė – tai informacija (duomenys) apie objektus, pateikiama dvimačių masyvų – lentelių, sujungtų tam tikromis nuorodomis, pavidalu. Duomenų bazė taip pat gali būti sudaryta iš vienos lentelės. Prieš pradėdami toliau tirti reliacines duomenų bazes, panagrinėkime teorijoje ir praktikoje vartojamus terminus ir apibrėžimus. Duomenų bazės lentelė- dvimatis masyvas, kuriame yra informacija apie vieną objektų klasę. Reliacinės algebros teorijoje vadinamas dvimatis masyvas (lentelė). požiūris. Lentelė susideda iš šių elementų: laukas, langelis, įrašas (2.1 pav.). Laukas yra vieno iš atributų, apibūdinančių duomenų bazės objektus, reikšmės. Lentelėje esančių laukų skaičius atitinka duomenų bazės objektus apibūdinančių ženklų skaičių. 22 Ląstelė yra konkreti atitinkamo lauko reikšmė (vieno objekto atributas). Įrašymas- lentelės eilutė. Jame yra visų ženklų, apibūdinančių vieną objektą, reikšmės. Įrašų (eilučių) skaičius atitinka objektų, apie kuriuos duomenys pateikti lentelėje, skaičių. Duomenų bazės teorijoje terminas įrašymas atitinka sąvoką kor-tezh- atributų, susijusių vienas su kitu ryšiu IR (IR), seka. Grafų teorijoje kortežas reiškia paprastą nukreipto grafo šaką – medį. Lentelė 2.1 parodo sąvokas, vartojamas reliacinių duomenų bazių kūrimo teorijoje ir praktikoje. Viena iš svarbių sąvokų, reikalingų kuriant optimalią reliacinių duomenų bazių struktūrą, yra rakto arba rakto lauko sąvoka. Raktas nagrinėjamas laukas, kurio reikšmės vienareikšmiškai nustato visų kitų lentelės laukų reikšmes. Pavyzdžiui, laukas „Paso number“ arba „Mokesčių mokėtojo identifikavimo numeris (TIN)“ unikaliai apibrėžia bet kurio fizinis asmuo(sudarant atitinkamas duomenų bazės lenteles Žmogiškųjų išteklių skyriams ar įmonės apskaitai).
23

Lentelės raktas gali būti ne vienas, o keli laukai. Šiuo atveju laukų rinkinys gali būti galimas lentelės raktas tik tada, kai tenkinamos dvi laiko nepriklausomos sąlygos: unikalumas ir minimalumas. Kiekvienas laukas, kuris nėra pirminio rakto dalis, lentelėje vadinamas nerakto lauku.

Unikalumas raktas reiškia, kad bet kuriuo metu duomenų bazės lentelėje negali būti dviejų skirtingų įrašų, turinčių tas pačias rakto lauko reikšmes. Unikalumo sąlygos įvykdymas yra privalomas. Būklė minimalumas raktų laukai reiškia, kad tik pasirinktų laukų reikšmių derinys atitinka duomenų bazės lentelės įrašų unikalumo reikalavimus. Tai taip pat reiškia, kad nė vienas į raktą įtrauktas laukas negali būti pašalintas iš jo nepažeidžiant unikalumo. Formuojant duomenų bazės lentelės, susidedančios iš kelių laukų, raktą, būtina vadovautis šiomis nuostatomis: į raktą neįtraukti lentelės laukų, kurių reikšmės vienareikšmiškai identifikuoja lentelės įrašus. . Pavyzdžiui, neturėtumėte kurti rakto, kuriame vienu metu būtų laukai „paso numeris“ ir „mokesčių mokėtojo identifikavimo numeris“, nes kiekvienas iš šių atributų gali unikaliai identifikuoti lentelės įrašus; į raktą negalite įtraukti neunikalaus lauko, ty lauko, kurio reikšmės gali būti kartojamos lentelėje. Kiekviena lentelė turi turėti bent vieną galimą raktą, kuris pasirenkamas kaip pirminis raktas. Jei lentelėje yra laukų, kurių kiekvienos reikšmės vienareikšmiškai apibrėžia įrašus, tada šie laukai gali būti laikomi alternatyvūs klavišai. Pavyzdžiui, jei pasirinksite mokesčių mokėtojo identifikavimo numerį kaip pirminį raktą, paso numeris bus alternatyvus raktas. 2.2. Reliacinių duomenų bazių lentelių normalizavimas Reliacinė duomenų bazė yra lentelių, kurios yra tarpusavyje susijusios, rinkinys. Lentelių skaičius viename faile ar vienoje duomenų bazėje priklauso nuo daugelio faktorių, iš kurių pagrindiniai yra: duomenų bazės vartotojų sudėtis, informacijos vientisumo užtikrinimas (ypač svarbu kelių vartotojų Informacinės sistemos ah), užtikrinant mažiausią reikalingos atminties kiekį ir minimalų apdorojimo laiką. 24

Į šiuos veiksnius atsižvelgiama kuriant reliacines duomenų bazes taikant lentelių normalizavimo ir ryšių tarp jų nustatymo metodus.

Lentelių normalizavimas yra būdas padalyti vieną duomenų bazės lentelę į kelias lenteles, kurios paprastai atitinka aukščiau išvardintus reikalavimus. Lentelės normalizavimas – tai nuoseklus lentelės struktūros keitimas, kol ji atitinka paskutinės normalizavimo formos reikalavimus. Iš viso yra šešios normalizavimo formos:
    pirmoji normali forma (First Normal Form - 1NF); antroji normalioji forma (Second Normal Form – 2NF); trečioji normalioji forma (Third Normal Form – ЗNF); normalios formos Boyes - Codd (Brice - Codd Normal Form -BCNF); ketvirta normali forma (KetvirtaĮprasta forma - 4NF); penktoji normalioji forma arba normalioji projekcijos forma – jungtys (penktoji normalioji forma – 5NF arba PJ / NF ).
Apibūdinant normaliąsias formas, vartojamos šios sąvokos: „funkcinė priklausomybė tarp laukų“; „Visiška funkcinė priklausomybė tarp laukų“; „Daugiavertė funkcinė priklausomybė tarp laukų“; „Transityvinė funkcinė priklausomybė tarp laukų“; „Abipusė nepriklausomybė tarp laukų“. Funkcinė priklausomybė tarp A ir B laukų vadinamas ryšys, kuriame kiekviena A reikšmė bet kuriuo laiko momentu atitinka vieną B reikšmę iš visų galimų reikšmių. Funkcinio ryšio pavyzdys – ryšys tarp mokesčių mokėtojo identifikacinio numerio ir jo paso numerio. Visiška funkcinė priklausomybė tarp sudėtinio lauko A ir lauko B vadinama priklausomybe, kurioje laukas B funkciškai priklauso nuo lauko A ir funkciškai nepriklauso nuo jokio lauko A pogrupio. Daugiareikšmė funkcinė priklausomybė tarp laukų apibrėžiamas taip. A laukas B lauką apibrėžia dviprasmiškai, jei kiekvienai A lauko vertei yra „gerai apibrėžtas“ atitinkamų B lauko reikšmių rinkinys. Pavyzdžiui, jei atsižvelgsime į mokinių pažymių mokyklos pažymių lentelę, kurioje yra laukai. „Tema“ (laukas A) ir „Butas“ (laukas B), tada B lauke yra „gerai apibrėžtas“ leistinų verčių rinkinys: 1, 2, 3, 4, 5, tai yra, kiekvienai lauko „Tema“ vertei yra daugiareikšmis „gerai apibrėžtas“ lauko „Vertinimas“ verčių rinkinys. Pereinamoji funkcinė priklausomybė tarp A ir C laukų Egzistuoja, jei laukas C funkciškai priklauso nuo 25 lauko B, o laukas B funkciškai priklauso nuo lauko A; šiuo atveju nėra lauko A funkcinės priklausomybės nuo lauko B. Abipusė nepriklausomybė tarp sričių apibrėžiamas taip. Keletas laukų yra vienas nuo kito nepriklausomi, jei nė vienas iš jų funkciškai nepriklauso nuo kito. Pirma normali forma. Lentelė yra pirmosios įprastos formos tada ir tik tada, kai nė viename lauke nėra daugiau nei vienos reikšmės ir bet kuris rakto laukas nėra tuščias. Pirmoji normalioji forma yra reliacinio duomenų modelio pagrindas. Bet kuri lentelė reliacinėje duomenų bazėje automatiškai yra pirmosios normalios formos, kitaip tai tiesiog neįmanoma pagal apibrėžimą. Tokioje lentelėje neturėtų būti laukų (charakteristikos), kuriuos būtų galima suskirstyti į kelis laukus (charakteristikas). Nenormalizuotos, kaip taisyklė, yra lentelės, kurios iš pradžių nebuvo skirtos kompiuteriniam jose esančios informacijos apdorojimui. Pavyzdžiui, lentelėje. 2.2 pavaizduotas Metalo pjovimo staklių eksperimentinio tyrimo instituto (ENIMS) išleistos žinyno „Universalios metalo pjovimo staklės“ lentelės fragmentas. Ši lentelė nėra normalizuota dėl toliau nurodytų priežasčių. 1. Jame yra eilutės, turinčios kelias vieno lauko reikšmes viename langelyje: „Didžiausias apdorojimo skersmuo, mm“ ir „Špindelio sukimosi dažnis, aps./min.“. 2. Vieną laukelį – „Bendrai matmenys (ilgis x plotis x aukštis), mm“ galima suskirstyti į tris laukus: „Ilgis, mm“, „Plotis, mm“ ir „Aukštis, mm“. Tokio padalijimo tikslingumas gali būti pateisinamas tuo, kad reikia vėliau skaičiuoti plotus ar užimtus tūrius. Pradinė lentelė turi būti konvertuota į pirmąją normalią formą. Tam reikia: padalyti laukus „Maksimalus apdirbimo skersmuo, mm“ ir „Špindelio sukimosi dažnis, aps./min.“ į kelis laukus pagal reikšmių, esančių vienoje langelyje, skaičių;
26

Laukas „Bendrai matmenys (ilgis x plotis x aukštis), mm“, padalintas į tris laukus: „Ilgis, mm“, „Plotis, mm“, „Aukštis, mm“. Pagrindinis šios lentelės laukas gali būti laukas „Mašinos modelis“ arba „Nr. 2.3. Paimkime kitą pavyzdį. Fig. 2.2 rodomas testo rezultatų lapo fragmentas, kuris, kaip ir ankstesniame pavyzdyje, iš pradžių nebuvo skirtas kompiuteriniam apdorojimui. Tarkime, kad norime sukurti duomenų bazę, skirtą automatizuotam testo-apžiūros seanso rezultatų apdorojimui pagal
27

su testo ir egzamino lapo turiniu. Norėdami tai padaryti, formos turinį transformuojame į duomenų bazės lenteles. Atsižvelgiant į poreikį laikytis funkcinės priklausomybės tarp laukų sąlygų, būtina suformuoti bent dvi lenteles (2.3 pav.) (kiekvienoje lentelėje pagrindiniai laukai yra paryškinti). Pirmoje lentelėje pateikiami kiekvieno mokinio konkretaus dalyko testo (egzamino) išlaikymo rezultatai. Antroje lentelėje pateikiami galutiniai konkrečios grupės mokinių konkretaus dalyko įskaitos (egzamino) išlaikymo rezultatai. Pirmoje lentelėje raktas yra laukas „Visas studento vardas“, o antroje – laukas „Disciplina“. Lentelės turi būti susietos laukais „Disciplina“ IR „Grupės kodas“.

Pateiktos lentelių struktūros visiškai atitinka pirmosios normalios formos reikalavimus, tačiau pasižymi šiais trūkumais: norint į lenteles įtraukti naujus duomenis, reikia įvesti visų laukų reikšmes; Kiekvienoje kiekvienos lentelės eilutėje reikia įvesti pasikartojančias laukų „Disciplina“, „Visas mokytojo vardas“, „Grupės kodas“ reikšmes. Vadinasi, esant tokiai lentelių kompozicijai ir jų struktūrai, yra aiškus informacijos perteklius, kuriam, žinoma, reikės papildomos atminties. Norint išvengti išvardytų trūkumų, lenteles reikia perkelti į antrą ar trečią normalią formą. Antroji normali forma. Lentelė yra antrosios normalios formos, jei ji atitinka pirmosios normaliosios formos reikalavimus ir visi jos laukai, kurie nėra įtraukti į pirminį raktą, yra visiškai funkcionalūs, priklauso nuo pirminio rakto. 28

Jei lentelė turi paprastą pirminį raktą, kurį sudaro tik vienas laukas, tada ji automatiškai yra antrosios normalios formos.

Jei pirminis raktas yra sudėtinis, tada lentelė pasirinktinai yra antrosios normalios formos. Tada jis turi būti padalintas į dvi ar daugiau lentelių taip, kad pirminis raktas vienareikšmiškai identifikuotų reikšmę bet kuriame lauke. Jei lentelėje yra bent vienas laukas, kuris nepriklauso nuo pirminio rakto, tada į pirminį raktą turi būti įtraukti papildomi stulpeliai. Jei tokių stulpelių nėra, turite pridėti naują stulpelį. Remiantis šiomis sąlygomis, kurios lemia antrąją normaliąją formą, galima daryti tokias išvadas apie sudarytų lentelių charakteristikas (žr. 2.3 pav.). Pirmoje lentelėje nėra tiesioginio ryšio tarp raktinio lauko ir lauko „Visas mokytojo vardas“, nes to paties dalyko išlaikymą arba egzaminą gali laikyti skirtingi mokytojai. Lentelėje yra visiška funkcinė priklausomybė tik tarp visų kitų laukų ir raktinio lauko „Disciplina“. Panašiai ir antroje lentelėje nėra tiesioginio ryšio tarp rakto lauko ir lauko „Mokytojo vardas ir pavardė“. Norint optimizuoti duomenų bazę, ypač sumažinti reikiamą atminties kiekį, nes kiekviename įraše reikia kartoti laukų „Disciplina“ ir „Mokytojo vardas“ reikšmes, būtina pakeisti duomenų bazės struktūrą - paversti pirmines lenteles į antrąją normaliąją formą. Modifikuotos duomenų bazės struktūros lentelių sudėtis parodyta fig. 2.4. Konvertuota duomenų bazės struktūra susideda iš šešių lentelių, iš kurių dvi yra tarpusavyje sujungtos (kiekvienos lentelės pagrindiniai laukai yra paryškinti). Visos lentelės atitinka antrosios normaliosios formos reikalavimus. Penktoje ir šeštoje lentelėse laukuose yra pasikartojančios reikšmės, tačiau, atsižvelgiant į tai, kad šios reikšmės yra sveikieji skaičiai, o ne tekstiniai duomenys, bendras atminties kiekis, reikalingas informacijai saugoti, yra daug mažesnis nei pirminėse lentelėse (žr. 2.1 pav. ). Be to, nauja duomenų bazės struktūra suteiks galimybę lenteles pildyti įvairių specialistų (vadybos paslaugų padalinių). Tolesnis duomenų bazių lentelių optimizavimas sumažinamas iki trečios normalios formos. Trečia normali forma. Lentelė yra trečiosios normaliosios formos, jei ji atitinka antrosios normaliosios formos apibrėžimą ir nė vienas jos neparaktinis laukas funkciškai nepriklauso nuo jokio kito neparakto lauko. 29

Taip pat galite sakyti, kad lentelė yra trečios normalios formos, jei ji yra antrosios normalios formos ir kiekvienas nerakto laukas tranzityviai nepriklauso nuo pirminio rakto. Trečiasis normalios formos reikalavimas yra tas, kad visi neraktiniai laukai priklausytų tik nuo pirminio rakto, o ne vienas nuo kito. Pagal šiuos reikalavimus, kaip duomenų bazės lentelių dalis (žr. 2.3 pav.), pirma, antra, trečia ir ketvirta lentelės priklauso trečiajai normaliajai formai. Norėdami perkelti penktą ir šeštą lenteles į trečią įprastą formą, sukursime naują lentelę, kurioje bus informacija apie dalykų, kurių egzaminai ar testai laikomi mokinių grupėse, sudėtį. Kaip raktą sukursime lauką „Skaitiklis“, kuriame nustatomas lentelės įrašo numeris, nes kiekvienas įrašas turi būti unikalus. trisdešimt

Dėl to gauname naują duomenų bazės struktūrą, kuri parodyta Fig. 2.5 (kiekvienoje lentelėje pagrindiniai laukai yra paryškinti). Šioje struktūroje yra septynios lentelės, atitinkančios trečiosios normaliosios formos reikalavimus.

Įprasta Boyce'o forma yra Codd. Lentelė yra įprastos Boyce-Codd formos tik tada, jei bet kokia funkcinė priklausomybė tarp jos laukų sumažinama iki visiškos funkcinės priklausomybės nuo galimo rakto. Pagal šį apibrėžimą duomenų bazės struktūroje (žr. 2.4 pav.) visos lentelės atitinka Boyes - Codd normaliosios formos reikalavimus. Tolesnis duomenų bazių lentelių optimizavimas turėtų būti sumažintas iki visiško lentelių išskaidymo. Visas lentelės išskaidymas vadinamas toks savavališko skaičiaus jo projekcijų rinkinys, kurio ryšys visiškai sutampa su lentelės turiniu. Projekcija yra lentelės, kurioje nėra vieno ar daugiau naujos lentelės stulpelių, kopija. Ketvirta normali forma. Ketvirtoji normalioji forma yra ypatingas penktosios normaliosios formos atvejis, kai pilnas skilimas turi būti dviejų projekcijų sąjunga.
31

Labai sunku rasti lentelę, kuri būtų ketvirtos normaliosios formos, bet neatitinka penktosios normaliosios formos apibrėžimo.

Penkta normali forma. Lentelė yra penktoji normalioji forma tada ir tik tada, kai visose projekcijose yra galimas raktas kiekvienoje jos pilnoje deko padėtyje. Lentelė, kurioje nėra visiško skaidymo, taip pat yra penktoji normalioji forma. Praktiškai duomenų bazių lentelių optimizavimas baigiasi trečia įprasta forma. Lentelių sumažinimas iki ketvirtos ir penktos normaliosios formos, mūsų nuomone, yra grynai teorinis interesas. Praktiškai ši problema išspręsta kuriant užklausas kuriant naują lentelę. 2.3. Santykių tarp lentelių projektavimas Pradinių duomenų bazės lentelių normalizavimo procesas leidžia sukurti optimalią informacinės sistemos struktūrą – sukurti duomenų bazę, kuriai reikia mažiausiai atminties resursų ir dėl to mažiausiai laiko prieiga prie informacijos. Tuo pačiu, skaidant vieną šaltinio lentelę į kelias, būtina įvykdyti vieną iš svarbiausių informacinių sistemų projektavimo sąlygų – užtikrinti informacijos vientisumą duomenų bazės veikimo metu. Aukščiau pateiktame pirminių lentelių normalizavimo pavyzdyje (žr. 2.3 pav.) iš dviejų lentelių galiausiai gavome septynias lenteles, sumažintas iki trečios ir ketvirtos normalių formų. Kaip rodo praktika, realioje gamyboje ir versle duomenų bazės yra kelių vartotojų sistemos. Tai taikoma tiek duomenų kūrimui ir priežiūrai atskirose lentelėse, tiek informacijos naudojimui priimant sprendimus. Aukščiau aptartame pavyzdyje tikrai veikiančioje švietimo procesų valdymo sistemoje universitete ar kolegijoje pirminį studijų grupių formavimą atlieka priėmimo komisijos, registruodamos stojančius pagal stojamųjų egzaminų rezultatus. Tolesnis informacijos apie studentų sudėtį grupėse tvarkymas universitetuose pavedamas dekanatams, o kolegijose – švietimo skyriams ar atitinkamoms struktūroms. Akademinių disciplinų sudėtį grupėse nustato kitos tarnybos ar specialistai. Informacija apie dėstytojus formuojama personalo skyriuose. Įskaitų ir egzaminų sesijų rezultatai būtini dekanato ir katedrų vedėjams, tame tarpe ir priimant sprendimus dėl stipendijų skyrimo 32 sėkmę baigusiems studentams ar neatlikusių studentų „nutraukimo iš stipendijos“. Bet koks pakeitimas bet kurioje iš duomenų bazės lentelių turi rasti tinkamą pakeitimą visose kitose lentelėse. Tai yra duomenų bazės vientisumo užtikrinimo esmė. Praktiškai ši užduotis atliekama nustatant ryšius tarp duomenų bazių lentelių. Suformuluokime pagrindines ryšių tarp lentelių nustatymo taisykles. 1. Iš dviejų susietų lentelių pasirinkite pagrindinį ir pavaldinį. 2. Kiekvienoje lentelėje pasirinkite rakto lauką. Pagrindinės lentelės raktinis laukas vadinamas pirminis raktas. Pagalbinės lentelės raktų laukas vadinamas svetimas raktas. 3. Susietos lentelės laukai turi būti to paties tipo duomenų. 4. Tarp lentelių nustatomos šių tipų nuorodos: "vienas su vienu"; Vienas prieš daugelį; Daugelis su daugeliu: ryšys vienas su vienu nustatomas, kai tam tikra pagrindinės lentelės eilutė bet kuriuo metu yra susieta tik su viena antrinės lentelės eilute; ryšys vienas su daugeliu nustatomas tais atvejais, kai konkreti pagrindinės lentelės eilutė bet kuriuo metu
33 yra susietas su keliomis antrinės lentelės eilutėmis; šiuo atveju bet kuri pavaldžios lentelės eilutė susieta tik su viena pagrindinės lentelės eilute; ryšys daug su daugeliu nustatomas tais atvejais, kai konkreti pagrindinės lentelės eilutė bet kuriuo metu yra susieta su keliomis antrinės lentelės eilutėmis ir tuo pačiu metu viena pavaldžios lentelės eilutė yra susieta su keliomis pagrindinės lentelės eilutėmis. stalo. Keičiant pirminio rakto reikšmę pagrindinėje lentelėje, galimi šie priklausomos lentelės veiksmai. Kaskados. Pasikeitus pirminio rakto duomenims pagrindinėje lentelėje, pasikeičia ir atitinkami išorinio rakto duomenys priklausomoje lentelėje. Visi esami ryšiai išsaugomi. Apriboti. Jei bandysite pakeisti pirminio rakto, susieto su priklausomos lentelės eilutėmis, reikšmę, pakeitimai bus atmesti. Leidžiama keisti tik tas pirminio rakto reikšmes, kurioms nėra užmegztas ryšys su priklausoma lentele. Įsteigimas (Santykis). Pasikeitus pirminio rakto duomenims, išorinis raktas nustatomas į nulinę reikšmę (NULL). Prarandama priklausomos lentelės eilutės nuosavybės informacija. Jei pakeičiate kelias pirminio rakto reikšmes, tada priklausomoje lentelėje susidaro kelios eilučių grupės, kurios anksčiau buvo susietos su pakeistais raktais. Po to neįmanoma nustatyti, kuri eilutė buvo susieta su kokiu pirminiu raktu. Fig. 2.6 parodytos duomenų bazės lentelių jungčių schemos, parodytos pav. 2.5. Kontroliniai klausimai 1. Pateikite apibrėžimus šiems duomenų bazės lentelės elementams: laukas, langelis, įrašas. 2. Ką reiškia sąvokos „raktas“, „rakto laukas“? 3. Kuris rakto laukas vadinamas pirminiu, o kuris išoriniu raktu? 4. Koks yra duomenų bazių lentelių normalizavimo procesas? 5. Kokias penkias įprastas duomenų bazių lentelių formas žinote? 6. Apibrėžkite šiuos ryšių tipus tarp duomenų bazės lentelių: "vienas su vienu"; Vienas prieš daugelį; Daug prie daugelio. loginis reliacinės duomenų bazės modelisį reliacinės duomenų bazės objektus. Norėdami išspręsti šią problemą, duomenų bazių dizaineris turi žinoti: a) kokius objektus iš esmės turi reliacinė duomenų bazė; b) kokius objektus palaiko konkreti DBVS, kuri parenkama duomenų bazės diegimui.

Taigi, darome prielaidą, kad sprendimą dėl DBVS pasirinkimo jau priėmė IT projektų vadovas, ir susitarė su duomenų bazės užsakovu, t.y. DBVS nustatyta. Duomenų bazės kūrėjas turi būti susipažinęs su dokumentacija, apibūdinančia pasirinktos DBVS palaikomą SQL dialektą. Šioje paskaitoje daroma prielaida, kad pasirinktas Oracle 9i, nors didžioji dalis medžiagos apima objektus bet kurioje pramoninių reliacinių duomenų bazių valdymo sistemoje.

komentuoti. Dėl DBVS pasirinkimo. DBVS pasirinkimas susijęs su daugiakriterine atrankos problema ir šiame kurse nenagrinėjamas. Reikėtų prisiminti, kad DBVS paprastai palaiko tik vieną duomenų modelį: reliacinį, hierarchinį, tinklinį, daugiamatį, objektinį, objektinį. Išimtis yra nedidelis DBVS skaičius. Pavyzdžiui, ADABAS, Software AG (tinklo ir santykių modeliai) arba Oracle 9i, Oracle Inc. (santykiniai ir objektų-santykiniai modeliai). Paprastai, renkantis DBVS, kai visi kiti dalykai yra vienodi, jie bando sukurti duomenų bazę DBVS, kuri teigia esanti pramoninis standartas.

Reliacinės duomenų bazės objektų hierarchija yra išdėstyta SQL standartuose, ypač SQL-92 standarte, kuriuo vadovausimės pristatydami šios paskaitos medžiagą. Šį standartą palaiko beveik visos šiuolaikinės DBVS, iki darbalaukio. Reliacinės duomenų bazės objektų hierarchija parodyta paveikslėlyje žemiau.

Žemiausiame lygyje yra mažiausi objektai, su kuriais dirba reliacinė duomenų bazė – stulpeliai (stulpeliai) ir eilutės. Jie, savo ruožtu, yra sugrupuoti į lenteles ir rodinius.

komentuoti. Paskaitos kontekste atributai, stulpeliai, stulpeliai ir laukai laikomi sinonimais. Tas pats pasakytina apie eilutę, įrašą ir eilutę.

Lentelės ir rodiniai, atspindintys fizinį duomenų bazės loginės struktūros atspindį, yra surenkami į schemą. Kelios schemos surenkamos į katalogus, kuriuos vėliau galima sugrupuoti į grupes. Pažymėtina, kad nė viena iš SQL-92 standarto objektų grupių nėra susieta su fizinio informacijos saugojimo kompiuterių atmintyje struktūromis.


Ryžiai. 8.1.

Be paveikslėlyje pavaizduotų objektų, reliacinėje duomenų bazėje galima sukurti indeksus, trigerius, įvykius, saugomas komandas, saugomas procedūras ir daugybę kitų. Dabar pereikime prie reliacinės duomenų bazės objektų apibrėžimo.

Pagrindiniai reliacinės duomenų bazės objektai

Klasteriai, katalogai ir schemos yra pasirenkami standarto, taigi ir reliacinės duomenų bazės programinės įrangos aplinkos elementai.

Klasteris yra katalogų grupė, kurią galima pasiekti vienu prisijungimu prie duomenų bazės serverio (DBVS programinės įrangos komponento).

Praktiškai procedūra sukurti katalogą yra nulemtas DBVS įdiegimo konkrečioje operacinėje platformoje. Katalogas yra schemų grupė. Praktiškai katalogas dažnai siejamas su fizine duomenų baze kaip fizinių failų rinkiniu. Operacinė sistema kurie atpažįstami pagal jos vardą.

Duomenų bazės kūrėjui schema yra bendras, logiškas visos duomenų bazės ryšio vaizdavimas. SQL požiūriu schema yra lentelių, rodinių ir kitų reliacinės duomenų bazės struktūrinių elementų talpykla. Duomenų bazės elementų išdėstymą kiekvienoje schemoje visiškai nustato duomenų bazės dizaineris.

Norint sukurti lenteles ir rodinius, schemos nereikia. Jei planuojate įdiegti tik vieną loginę duomenų bazę, aišku, kad galite apsieiti be schemos. Tačiau, jei planuojate naudoti tą pačią DBVS, kad palaikytumėte kelias duomenų bazes, tinkamai sutvarkydami duomenų bazės objektus į schemas, galite labai palengvinti tų duomenų bazių priežiūrą. Praktikoje schema dažnai siejama su vartotojui būdingais objektais fizinėje duomenų bazėje.

Be to, reliacinės duomenų bazės objektai bus pristatyti Oracle 9i reliacinės DBVS kontekste. Šis požiūris priimtas, nes dizainas fizinės reliacinės duomenų bazės modelis atliekama konkrečiai jo įgyvendinimo aplinkai.

„Oracle 9i“ sistemoje terminas „schema“ vartojamas visiems duomenų bazės objektams, kuriuos sukuria koks nors vartotojas, apibūdinti. Kiekvienam naujam vartotojui automatiškai sukuriama nauja schema.

Pagrindiniai reliacinių duomenų bazių objektai yra lentelė, rodinys ir vartotojas.

Lentelė yra pagrindinė reliacinės duomenų bazės struktūra. Tai reiškia duomenų saugojimo vienetą – santykį. Lentelė duomenų bazėje identifikuojama pagal unikalų pavadinimą, kuris apima vartotojo tapatybę. Lentelė gali būti tuščia arba sudaryta iš eilučių rinkinio.

Rodinys yra pavadintas, dinamiškai prižiūrimas duomenų bazės valdymo sistemos pasirinkimas iš vienos ar daugiau duomenų bazės lentelių. Pasirinktas operatorius riboja duomenis, kuriuos vartotojas gali matyti. Paprastai DBVS garantuoja rodinio aktualumą – jis generuojamas kiekvieną kartą, kai naudojamas vaizdas. Kartais pažiūros vadinamos virtualūs stalai.

Vartotojas (Vartotojas) – tai objektas, turintis galimybę kurti ar naudoti kitus duomenų bazės objektus ir reikalauti DBVS funkcijų vykdymo, pavyzdžiui, seanso organizavimo, duomenų bazės būsenos keitimo ir pan.

Siekiant supaprastinti objektų identifikavimą ir pavadinimų suteikimą duomenų bazėje, palaikomi tokie objektai kaip sinonimas, seka ir.

Sinonimas ( Sinonimas)- tai yra Alternatyvus pavadinimas reliacinės duomenų bazės objektas (alias), leidžiantis turėti prieigą prie šio objekto. Sinonimas gali būti bendras ir privatus. Bendras sinonimas leidžia visiems duomenų bazės vartotojams nurodyti atitinkamą objektą jo slapyvardžiu. Sinonimas leidžia paslėpti visą duomenų bazėje esančio objekto kvalifikaciją nuo galutinių vartotojų.

Seka yra duomenų bazės objektas, leidžiantis generuoti unikalių skaičių (skaičių) seką kelių vartotojų asinchroninės prieigos aplinkoje. Paprastai sekos elementai naudojami unikaliai sunumeruoti lentelės elementus (eilutes) duomenų keitimo operacijose.

Vartotojo nustatyti duomenų tipai (Vartotojo apibrėžti duomenų tipai) yra vartotojo apibrėžti atributų tipai (domenai), kurie skiriasi nuo palaikomų (įtaisytųjų) DBVS tipų. Jie apibrėžiami pagal įmontuotus tipus. Vartotojo nustatyti duomenų tipai sudaro tą DBVS aplinkos dalį, kuri yra organizuota pagal objektinę paradigmą.

Siekiant užtikrinti efektyvią prieigą prie duomenų reliacinėje DBVS, palaikoma daugybė kitų objektų: indeksas, lentelių sritis, klasteris, sekcija.

Indeksas yra duomenų bazės objektas, sukurtas siekiant pagerinti duomenų gavimo našumą ir valdyti pirminio rakto unikalumą (jei nurodyta lentelėje). Visiškai sutvarkytos lentelės vienu metu veikia ir kaip lentelė, ir kaip rodyklė.

Stalo vieta arba sritis ( Stalo vieta) yra pavadinta duomenų bazės dalis, naudojama lentelių ir indeksų atminčiai paskirstyti. „Oracle 9i“ tai yra loginis operacinės sistemos fizinių failų pavadinimas. Visi duomenų bazės objektai, kuriuose saugomi duomenys, atitinka kai kuriuos stalų erdvės... Dauguma duomenų nesaugo duomenų bazės objektų yra duomenų žodyne, esančiame SISTEMOS lentelių srityje.

Klasteris yra objektas, apibrėžiantis duomenų saugojimo būdą keliose arba vienoje lentelėje. Vienas iš klasterio naudojimo kriterijų yra tas, kad keliose lentelėse yra bendri raktų laukai, naudojami toje pačioje SQL komandoje. Paprastai sugrupuoti stulpeliai arba lentelės duomenų bazėje saugomi kaip maišos lentelės(t. y. ypatingu būdu).

Skyrius (skirstymas) yra duomenų bazės objektas, leidžiantis pavaizduoti objektą su duomenimis subobjektų rinkinio pavidalu, priskirtų skirtingiems objektams. stalų erdvės... Taigi, skaidymas leidžia paskirstyti labai dideles lenteles keliuose standžiuosiuose diskuose.

Duomenų apdorojimui specialiu būdu arba įgyvendinimui referencinio vientisumo palaikymas Naudojami duomenų bazės objektai: saugoma procedūra, funkcija, komanda, trigeris, laikmatis ir paketas (Oracle). Su šiais duomenų bazės objektais galima atlikti vadinamąjį duomenų įrašų apdorojimą. Duomenų bazės taikomųjų programų požiūriu apdorojimas po eilutę yra nuoseklus duomenų gavimas po vieną eilutę, jų apdorojimas ir perėjimas prie kitos eilutės.

Šie reliacinės duomenų bazės objektai yra programos, t.y. vykdomąjį kodą. Šis kodas paprastai vadinamas serverio kodu, nes jį vykdo įrenginys, kuriame veikia reliacinės duomenų bazės variklis. Tokio kodo planavimas ir kūrimas yra viena iš reliacinės duomenų bazės dizainerio užduočių.

Išsaugota procedūra yra duomenų bazės objektas, vaizduojantis įvardytą SQL komandų ir (arba) operatorių rinkinį specializuotomis duomenų bazės programavimo kalbomis (pvz., SQLWindows arba PL / SQL).

Funkcija yra duomenų bazės objektas, vaizduojantis įvardytą SQL komandų ir (arba) specializuotų duomenų bazės programavimo apdorojimo kalbų operatorių rinkinį, kuris, kai jis vykdomas, grąžina reikšmę - skaičiavimų rezultatą.

Komanda yra pavadintas SQL sakinys, kuris yra iš anksto sukompiliuotas ir saugomas duomenų bazėje. Komandos apdorojimo greitis yra didesnis nei atitinkamo SQL sakinio. kol fazės nevykdomos analizuojant ir kompiliacija.

Trigeris yra duomenų bazės objektas, kuris yra speciali saugoma procedūra. Ši procedūra vykdoma automatiškai, kai įvyksta paleidimo įvykis (pavyzdžiui, prieš įterpiant eilutę į lentelę).

Laikmatis (Laikmatis) skiriasi nuo trigerio tuo, kad saugomos procedūros paleidimo įvykis yra laikmačio įvykis.

Paketas yra duomenų bazės objektas, kurį sudaro pavadintas struktūrinis kintamųjų, procedūrų ir funkcijų rinkinys.

Paskirstytos reliacinės DBVS turi specialius objektus: momentinį vaizdą ir duomenų bazės nuorodą.

„Snapshop“ yra vietinė nuotolinės duomenų bazės lentelės kopija, kuri naudojama lentelės arba užklausos rezultatui replikuoti. Momentinės nuotraukos gali būti keičiamos arba tik skaitomos.

Duomenų bazės saitas arba nuotolinės duomenų bazės saitas yra duomenų bazės objektas, leidžiantis kreiptis į objektus nuotolinėje duomenų bazėje. Duomenų bazės ryšio pavadinimas, grubiai tariant, gali būti laikomas nuoroda į nuotolinės duomenų bazės prieigos parametrus.

Siekdama efektyviai valdyti prieigos prie duomenų diferenciaciją, „Oracle“ palaiko objekto vaidmenį.

Vaidmuo yra duomenų bazės objektas, kuris yra pavadintas privilegijų rinkinys, kurį galima priskirti vartotojams, vartotojų kategorijoms ar kitiems vaidmenims.

Pagrindinės reliacinių duomenų bazių sąvokos

Pagrindinės reliacinių duomenų bazių sąvokos yra šios:

    duomenų tipas,

  • pirminis raktas ir

    požiūris.

Pirmiausia parodysime šių sąvokų prasmę naudodamiesi požiūrio DARBUOTOJAI pavyzdžiu,

4.1 pav. Sąvokų hierarchija EMPLOYEES duomenų bazėje

Duomenų tipas

Duomenų tipo sąvoka reliaciniame duomenų modelyje yra visiškai adekvati duomenų tipo sąvokai programavimo kalbose. Paprastai šiuolaikinės reliacinės duomenų bazės leidžia saugoti simbolius, skaitinius duomenis, bitų eilutes, specializuotus skaitmeninius duomenis (pvz., pinigus), taip pat specialius laiko duomenis (datą, laiką, laiko intervalą).

Domenas

Domenas labiau būdingas duomenų bazėms, nors turi tam tikrų analogijų su kai kurių programavimo kalbų potipiais. Bendriausia forma domenas apibrėžiamas nurodant tam tikrą pagrindinį duomenų tipą, kuriam priklauso domeno elementai, ir savavališką loginę išraišką, taikomą duomenų tipo elementui. Jei ši Būlio išraiška vertinama kaip tiesa, tada duomenų elementas yra domeno elementas. Pats teisingiausias intuityvus domeno sąvokos aiškinimas yra domeno kaip leistino potencialaus tam tikro tipo verčių rinkinio supratimas. Pavyzdžiui, domenų vardai mūsų pavyzdyje yra apibrėžti pagal pagrindinį simbolių eilučių tipą, tačiau jo reikšmės gali apimti tik tas eilutes, kurios gali reikšti vardą (ypač tokios eilutės negali prasidėti minkštas ženklas). Taip pat reikėtų atkreipti dėmesį į semantinę domeno sąvokos apkrovą: duomenys laikomi palyginamais tik tada, kai priklauso tai pačiai domenui. Mūsų pavyzdyje spragų ir grupių numerių domenų reikšmės yra sveikojo skaičiaus tipo, bet nėra palyginamos.

Santykių schema, duomenų bazės schema

Santykių schema yra pavadintas porų rinkinys atributo pavadinimas, domeno vardas(arba įveskite, jei nepalaikoma domeno koncepcija). Santykių schemos laipsnis arba ariškumas yra šio rinkinio kardinalumas. DARBUOTOJŲ santykių laipsnis yra keturi, tai yra 4 metai. Jei visi vieno ryšio atributai yra apibrėžti skirtinguose domenuose, atributams pavadinti prasminga naudoti atitinkamų domenų pavadinimus (žinoma, nepamirštant, kad tai tik patogus įvardijimo būdas ir nepanaikina skirtumo tarp srities ir atributo sąvokos). DB schema (struktūrine prasme) yra įvardytų santykių schemų rinkinys.

Tuple, santykis

Eilė, atitinkanti nurodytą santykių schemą, yra porų rinkinys atributo pavadinimas, reikšmė, kuriame yra po vieną kiekvieno ryšio schemai priklausančio atributo pavadinimo atvejį. Reikšmė yra tinkama šio atributo domeno reikšmė (arba duomenų tipas, jei domeno koncepcija nepalaikoma). Taigi kortelių laipsnis, arba aritetas, t.y. elementų skaičius jame sutampa su atitinkamos santykio schemos aritetu. Paprastais žodžiais tariant, rinkinys yra tam tikro tipo įvardytų verčių rinkinys. Ryšys – tai eilučių rinkinys, atitinkantis tą pačią santykių schemą. Kartais, kad nesusipainiotų, sakoma sąryšio schema ir santykio atvejis, kartais santykio schema vadinama santykio pavadinimu, o santykis kaip eilučių rinkinys – santykio korpusu. . Tiesą sakant, santykių schemos sąvoka yra artimiausia struktūrizuotų duomenų tipo sąvokai programavimo kalbose. Būtų visiškai logiška leisti atskirai apibrėžti santykių schemą, o tada vieną ar daugiau ryšių su šia schema. Tačiau reliacinėse duomenų bazėse taip nėra. Ryšio schemos pavadinimas tokiose duomenų bazėse visada yra toks pat kaip ir atitinkamo egzemplioriaus ryšio pavadinimas. Klasikinėse reliacinėse duomenų bazėse, apibrėžus duomenų bazės schemą, keičiami tik egzempliorių ryšiai. Juose gali atsirasti naujų eilučių, o esamas eilutes galima ištrinti arba modifikuoti. Tačiau daugelis diegimų taip pat leidžia keisti duomenų bazės schemą: apibrėžti naujas ir modifikuoti esamas santykių schemas. Tai paprastai vadinama duomenų bazės schemos evoliucija. Įprastas kasdienis ryšio vaizdavimas yra lentelė, kurios pavadinimas yra ryšio diagrama, o eilutės yra egzempliorių santykio eilės; šiuo atveju atributų pavadinimai įvardija tos lentelės stulpelius. Todėl kartais sakoma, kad lentelės stulpelis reiškia ryšio atributą. Kai pereisime prie praktinių reliacinių duomenų bazių organizavimo ir valdymo įrankių klausimų, naudosime šią bendrą terminiją. Šią terminiją naudoja dauguma komercinių reliacinių DBVS. Reliacinė duomenų bazė yra ryšių rinkinys, kurių pavadinimai yra tokie patys kaip ryšių schemų pavadinimai duomenų bazės schemoje. Kaip matote, pagrindinės struktūrinės reliacinių duomenų modelio sąvokos (neskaitant domeno sąvokos) turi labai paprastą intuityvią interpretaciją, nors reliacinių duomenų bazių teorijoje jos visos apibrėžtos absoliučiai formaliai ir tiksliai.

Pagrindinės santykių savybės

Dabar apsistokime ties kai kuriomis svarbiomis santykių savybėmis, kurios išplaukia iš anksčiau pateiktų apibrėžimų.

Nėra pasikartojančių eilučių

Savybė, kad santykyje nėra pasikartojančių eilučių, išplaukia iš santykio apibrėžimo kaip eilučių rinkinio. V klasikinė teorija aibės, pagal apibrėžimą kiekvienas rinkinys susideda iš skirtingų elementų. Ši savybė reiškia, kad kiekvienas ryšys turi vadinamąjį pirminį raktą - atributų rinkinį, kurio reikšmės vienareikšmiškai nustato ryšio eilutę. Kiekvienam ryšiui šią savybę turi bent visas jo atributų rinkinys. Tačiau formaliame pirminio rakto apibrėžime reikalaujama užtikrinti, kad jis būtų minimalus, t.y. pirminio rakto atributų rinkinyje neturėtų būti tokių atributų, kurių būtų galima atmesti nepažeidžiant pagrindinės savybės – vienareikšmiškai identifikuoti eilutę. Pirminio rakto sąvoka yra nepaprastai svarbi duomenų bazės vientisumo sampratai. Žvelgdami į ateitį, pastebime, kad daugelis praktinių RDBMS diegimų leidžia pažeisti tarpinių ryšių, netiesiogiai generuojamų vykdant užklausą, unikalumo savybę. Tokie ryšiai yra ne aibės, o multiaivės, kurios tam tikrais atvejais leidžia pasiekti tam tikrų pranašumų, tačiau kartais sukelia rimtų problemų.

Trūksta kortelių užsakymo

Savybė, kad santykio eilės nėra išdėstytos, taip pat yra egzempliorių santykio apibrėžimo kaip eilučių rinkinio pasekmė. Tai, kad nėra reikalavimo palaikyti santykio eilučių rinkinio tvarką, suteikia DBVS papildomo lankstumo, kai duomenų bazės saugomos išorinėje atmintyje ir vykdomos duomenų bazės užklausos. Tai neprieštarauja faktui, kad formuluodami duomenų bazės užklausą, pavyzdžiui, SQL kalba, galite reikalauti rūšiuoti gautą lentelę pagal kai kurių stulpelių reikšmes. Toks rezultatas, paprastai kalbant, yra ne santykis, o kažkoks tvarkingas eilučių sąrašas.

Trūksta atributų tvarkos

Santykių atributai nėra išdėstyti, nes pagal apibrėžimą santykių schema turi daug porų atributo pavadinimas, domeno vardas... Atributo pavadinimas visada naudojamas nurodant atributo reikšmę santykio eilutėje. Ši savybė teoriškai leidžia, pavyzdžiui, modifikuoti esamų santykių schemas ne tik pridedant naujų atributų, bet ir pašalinant esamus atributus. Tačiau daugumoje esamų sistemų tokia galimybė neleidžiama ir, nors ryšio atributų rinkinio tvarka nėra aiškiai reikalaujama, dažnai jų tvarka linijine forma apibrėžiant ryšio schemą naudojama kaip numanoma santykio tvarka. atributai.

Atributų verčių atomiškumas

Visos atributų reikšmės yra atominės. Tai išplaukia iš domeno, kaip galimo paprasto duomenų tipo reikšmių rinkinio, apibrėžimo, t.y. domeno reikšmėse negali būti reikšmių rinkinių (ryšių). Paprastai sakoma, kad reliacinėse duomenų bazėse leidžiami tik normalizuoti ryšiai arba santykiai, pavaizduoti pirmąja normalia forma. Galimas nenormalizuotų santykių pavyzdys parodytas Fig. 4.2.1.

4.2.1 pav. SKYRIŲ santykis nenormalizuota forma

4.2.2 pav. Normalizuotas požiūris DARBUOTOJAI

Galima sakyti, kad čia turime dvejetainį ryšį, kurio atributo DEPARTMENTS reikšmės yra santykiai. Atkreipkite dėmesį, kad pradinis DARBUOTOJŲ ryšys yra normalizuota SKYRIŲ SKYRIAUS versija (žr. 4.2.2 pav.). Normalizuoti santykiai sudaro klasikinio reliacinio požiūrio į duomenų bazių organizavimą pagrindą. Jie turi tam tikrų apribojimų (ne visą informaciją patogu pateikti plokščių lentelių pavidalu), tačiau jie labai supaprastina duomenų apdorojimą. Apsvarstykite, pavyzdžiui, du vienodus eilės įvesties operatorius:

Priimkite darbuotoją Kuznecovą (leidimo numeris 3000, atlyginimas 115 000) į skyrių Nr. 320, o darbuotoją Kuznecovą (leidimo numeris 3000, atlyginimas 115 000) į skyrių Nr. 310. Jei informacija apie darbuotojus pateikiama kaip DARBUOTOJŲ santykiai, bus vykdomi abu operatoriai. taip pat (įterpkite kortelių santykį su EMPLOYEES). Jei dirbate su nenormalizuotu DIVISION ryšiu, tada pirmasis operatorius bus išreikštas įvedant eilutę, o antrasis - įtraukiant informaciją apie Kuznecovą prie kortos atributo DEPARTMENT kartotinės reikšmės su pirminiu raktu 310.

Reliacinių duomenų modelis

Kai ankstesniuose skyriuose kalbėjome apie pagrindines reliacinių duomenų bazių sąvokas, nepasitikėjome jokiu konkrečiu įgyvendinimu. Šis samprotavimas buvo vienodai taikomas bet kuriai sistemai, kuri buvo sukurta naudojant santykinį metodą. Kitaip tariant, naudojome vadinamojo reliacinio duomenų modelio sąvokas. Duomenų modelis apibūdina tam tikrą bendrųjų sąvokų ir charakteristikų rinkinį, kurį turėtų turėti visos konkrečios DBVS ir jų valdomos duomenų bazės, jei jos yra pagrįstos šiuo modeliu. Duomenų modelis leidžia palyginti konkrečius įgyvendinimus naudojant vieną bendrą kalbą. Nors duomenų modelio samprata yra bendra, galima kalbėti apie hierarchinius, tinklinius, kai kuriuos semantinius ir kt. duomenų modelius, reikia pažymėti, kad ši sąvoka buvo pradėta naudoti reliacinėse sistemose ir yra efektyviausiai naudojama šiame kontekste. Bandymai tiesiogiai pritaikyti panašius modelius ikisantykinėms organizacijoms rodo, kad reliacinis modelis joms yra per didelis, tačiau posantykinėms organizacijoms jis pasirodo esąs mažas.

bendrosios charakteristikos

Atrodo, kad dažniausiai reliacinio duomenų modelio interpretacija yra datos, kuri jį (įvairiais patobulinimais) atkuria beveik visose savo knygose. Anot Data, reliacinį modelį sudaro trys dalys, apibūdinančios skirtingus reliacinio požiūrio aspektus: struktūrinė dalis, manipuliavimo dalis ir integralioji dalis. Struktūrinėje modelio dalyje fiksuota, kad reliacinėse duomenų bazėse naudojama vienintelė duomenų struktūra yra normalizuotas n-arinis ryšys. Tiesą sakant, ankstesnėse dviejose šios paskaitos dalyse nagrinėjome būtent reliacinio modelio struktūrinio komponento sąvokas ir savybes. Modelio manipuliavimo dalis tvirtina du pagrindinius manipuliavimo reliacinėmis duomenų bazėmis mechanizmus – reliacinę algebrą ir reliacinį skaičiavimą. Pirmasis mechanizmas daugiausia grindžiamas klasikine aibių teorija (su tam tikrais patobulinimais), o antrasis - klasikiniu loginiu pirmosios eilės predikatinio skaičiavimo aparatu. Toliau apžvelgsime šiuos mechanizmus išsamiau, tačiau kol kas tik atkreipsime dėmesį, kad pagrindinė reliacinio modelio manipuliavimo dalies funkcija yra pateikti reliatyvumo matą bet kuriai konkrečiai reliacinių duomenų bazių kalbai: kalba vadinama reliacine. jeigu ji turi ne mažiau išraiškingumo ir galios nei reliacinė algebra ar reliacinis skaičiavimas.

Esybės ir nuorodos vientisumas

Galiausiai, neatsiejama reliacinių duomenų modelio dalis, yra nustatyti du pagrindiniai vientisumo reikalavimai, kurie turi būti palaikomi bet kurioje reliacinėje DBVS. Pirmasis reikalavimas vadinamas subjekto vientisumo reikalavimu. Objektas arba subjektas realus pasaulis reliacinėse duomenų bazėse atitinka santykių eilutes. Tiksliau, reikalaujama, kad bet kuri bet kurio santykio korėtelė turi būti atskirta nuo bet kurios kitos šio santykio kortos, t.y. kitaip tariant, bet kokie santykiai turi turėti pirminį raktą. Kaip matėme ankstesniame skyriuje, šis reikalavimas automatiškai tenkinamas, jei sistemoje nepažeidžiamos pagrindinės ryšio savybės. Antrasis reikalavimas vadinamas nuorodos vientisumo reikalavimu ir yra šiek tiek sudėtingesnis. Akivaizdu, kad jei santykiai normalizuojami, sudėtingi realaus pasaulio objektai reliacinėje duomenų bazėje yra vaizduojami kelių kelių santykio eilučių pavidalu. Pavyzdžiui, tarkime, kad turime atstovauti DEPARTAMENTO objektą reliacinėje duomenų bazėje su atributais DTD_NUMBER (skyriaus numeris), DTD_COL (darbuotojų skaičius) ir DTD_SOTR (skyriaus darbuotojų rinkinys). Kiekvienam darbuotojui turite išsaugoti SOTR_NUMBER (darbuotojo numerį), SOTR_NAME (darbuotojo vardą) ir SOTR_ZARP (darbuotojo atlyginimą). Kaip netrukus pamatysime, tinkamai suprojektavus atitinkamą duomenų bazę, joje atsiras du ryšiai: DEPARTMENTS (DEPARTMENT_NUMBER, DEPARTMENT_COL) (pirminis raktas - DEPARTMENT_NUMBER) ir DARBUOTOJAI (COP_NUMBER, COP_NAME, COPY_ZARP, COPO_OF_KEY - COUNT.) (Pagrindinis raktas – COUNT_NUMBER) (COPY_OPER_NUMBER) (COPY_OPER_KEY) (pirminis raktas) Kaip matote, atributas SOTR_OTD_NOM atsiranda santykyje EMPLOYEES ne todėl, kad skyriaus numeris yra paties darbuotojo nuosavybė, o tik tam, kad prireikus būtų galima atkurti visą SKYRIAUS subjektą. Atributo SOTR_OTD_NOM reikšmė bet kuriame EMPLOYEES santykio stulpelyje turi sutapti su OTD_NOM atributo verte tam tikrame DEPARTMENTS santykio stulpelyje. Tokio tipo atributas vadinamas išoriniu raktu, nes jo reikšmės unikaliai apibūdina esybes, vaizduojamas kokio nors kito ryšio eilėmis (t. y. nustato jų pirminio rakto reikšmes). Sakoma, kad ryšys, kuriame apibrėžiamas išorinis raktas, reiškia atitinkamą ryšį, kuriame tas pats atributas yra pirminis raktas. Nuorodos vientisumo reikalavimas arba išorinio rakto reikalavimas yra tas, kad kiekvienai išorinio rakto vertei, kuri rodoma nuorodos ryšyje, nuoroda turi turėti eilutę su ta pačia pirminio rakto reikšme arba svetimo rakto reikšmė turi būti visiškai neapibrėžta (ty ne nurodykite bet ką). Mūsų pavyzdyje tai reiškia, kad jei darbuotojui nurodytas skyriaus numeris, tai šis skyrius turi egzistuoti. DBVS turi palaikyti objekto vientisumo apribojimus ir pagal nuorodą. Norint išlaikyti objekto vientisumą, pakanka užtikrinti, kad jokiame santykyje nebūtų kortelių, turinčių tą pačią pirminio rakto reikšmę. Vientisumas remiantis nuoroda yra šiek tiek sudėtingesnis. Akivaizdu, kad atnaujinant nuorodų ryšį (įterpiant naujas eilutes arba modifikuojant svetimo rakto reikšmę esamose eilėse), tiesiog reikia būti atsargiems, kad nepatektumėte neteisingų išorinio rakto reikšmių. Bet ką daryti su kortos pašalinimu iš nurodyto santykio? Čia yra trys požiūriai, kurių kiekvienas išlaiko nuorodinį vientisumą. Pirmasis būdas yra tai, kad draudžiama ištrinti eilutę, į kurią yra nuorodų (tai yra, pirmiausia turite ištrinti nurodytas eilutes arba atitinkamai pakeisti jų išorinio rakto reikšmes). Antruoju metodu, kai ištrinama nuoroda, pašalinio rakto reikšmė visose nurodytose eilutėse automatiškai neapibrėžiama. Galiausiai, trečiasis metodas (pakopinis trynimas) yra tas, kad pašalinus seką iš nurodyto ryšio, visos nurodytos eilės automatiškai pašalinamos iš nurodyto ryšio. Išplėstinėse reliacinėse duomenų bazėse paprastai galite pasirinkti, kaip išlaikyti nuorodos vientisumą kiekvienai atskirai išorinio rakto apibrėžimo situacijai. Žinoma, norint priimti tokį sprendimą, būtina išanalizuoti konkrečios taikymo srities reikalavimus.

Reliacinių duomenų bazių terminija ir pagrindinės sąvokos

Beveik visi programinės įrangos produktai, sukurti nuo 70-ųjų pabaigos, yra pagrįsti reliaciniu požiūriu:

1. Duomenys pateikiami dvimatėse lentelėse, sutvarkytose pagal tam tikras taisykles.

2. Darbui su duomenimis vartotojui suteikiami operatoriai, kurių pagalba generuojamos naujos lentelės pagal pradines – užklausas.

Reliacinės duomenų bazės- viena duomenų saugykla, kuri yra unikaliai apibrėžta ir naudojama daugelio vartotojų. Duomenų keitimas ir įtraukimas į duomenų bazę neturi įtakos programai.

Duomenų bazių valdymo sistema- programinės įrangos paketas, kurio pagalba vartotojai gali apibrėžti ir palaikyti duomenų bazę, naudotis kontroliuojama prieiga.

Pagrindinės reliacinių duomenų bazių sąvokos:

1. Koncepcija duomenų tipas reliaciniame duomenų modelyje yra visiškai adekvatus duomenų tipo sąvokai programavimo kalbose. Paprastai šiuolaikinės reliacinės duomenų bazės leidžia saugoti simbolius, skaitinius duomenis, bitų eilutes, specializuotus skaitmeninius duomenis (pvz., „pinigai“), taip pat specialius „laikinius“ duomenis (datą, laiką, laiko intervalą).

2. Reliacinis modelis remiasi matematine koncepcija požiūris, kurios fizinis vaizdas yra lentelė, tai yra ryšį galima pavadinti plokščia lentele, susidedančia iš stulpelių ir eilučių.

3. Tuple atitinkamą ryšio schemą atitinkantis porų rinkinys (atributo pavadinimas, reikšmė), kuriame yra po vieną kiekvieno ryšio schemai priklausančio atributo pavadinimo atvejį.

4. Atributas- lentelės stulpelis, duomenų bazės failo laukas. Lentelės santykio atributų reikšmės gali turėti tik vieną specifinę funkcinę priklausomybę viena nuo kitos, ty visos savavališkos eilutės reikšmės turėtų atskirai priklausyti tik nuo stulpelio ar stulpelių grupės verčių - tas pats visam santykiui. Toks stulpelis ar stulpelių grupė vadinami raktu, o juose esančių atributų reikšmės – raktais.

5. Domenas- vieno ar kelių atributų galiojančių verčių rinkinys.

6. Santykių laipsnis yra nustatomas pagal jame esančių atributų skaičių. Ryšys su vienu atributu turi 1 laipsnį ir vadinamas vienetiniu ryšiu. Ryšys su dviem atributais vadinamas dvejetainiu, ryšys su trimis atributais yra trejas, o ryšiui su dideliu atributų skaičiumi terminas yra n-arinis.

7. Santykių kardinalumas- santykyje esančių kortelių skaičius. Ši charakteristika kinta kiekvieną kartą ištrynus ar pridedant eilutes.

8. Remiantis tuo, kas išdėstyta aukščiau, reliacinė duomenų bazė susideda iš ryšių, kurių struktūra nustatoma naudojant specialius metodus, vadinamus normalizavimu.

9. Santykyje neturi būti pasikartojančių eilučių, šiuo atžvilgiu įvedama sąvoka santykių raktai unikaliai identifikuoti kiekvieną atskirą santykio eilutę pagal vieno ar kelių atributų reikšmes.

10. Superraktas- atributas arba atributų rinkinys, vienareikšmiškai identifikuojantis tam tikro ryšio eilutę.

11. Potencialus raktas- superraktas, kuriame nėra poaibio, kuris taip pat yra nurodyto santykio superraktas. Potencialus raktas K tam tikram ryšiui R turi dvi savybes:

· Unikalumas. Kiekvienoje santykio R eilėje rakto K reikšmė vienareikšmiškai identifikuoja šią eilutę.

· Neredukuojamumas. Joks tinkamas rakto K poaibis nėra unikalus.

12. Pirminis raktas- potencialus raktas, kuris pasirenkamas unikaliai identifikuoti santykio eilutes, o kiti nepasirinkti raktai yra alternatyvūs. Jei pirminis raktas susideda iš vieno lauko, jis vadinamas paprastu, jei jis susideda iš kelių laukų, jis vadinamas sudėtiniu.

13. Antrinis (išorinis) raktas (VK) yra vienas ar daugiau ryšio atributų, kurie atitinka galimą ryšio raktą ir naudojami kaip paieškos arba grupavimo funkcijos. Skirtingai nuo pirminio, antrinio rakto reikšmė gali būti kartojama keliuose failo įrašuose, tai yra, ji nėra unikali. Jei pagal pirminio rakto reikšmę galima rasti vieną įrašo kopiją, tai pagal antrinį raktą - keletą.

14. Požiūris yra eilučių rinkinys, atitinkantis tą pačią santykių schemą.

15. Bazinis santykis- santykis, kurio eilės fiziškai saugomos duomenų bazėje.

16. Atstovavimas- dinaminis vienos ar kelių santykių operacijų su pagrindiniais ryšiais rezultatas, siekiant sukurti kokį nors kitą ryšį. Rodinys yra virtualus ryšys, kurio iš tikrųjų nėra duomenų bazėje, bet kuris sukuriamas individualaus vartotojo prašymu tuo metu, kai gaunama ši užklausa. Rodiniai suteikia didesnį duomenų saugumą ir suteikia dizaineriui priemonių tinkinti pasirinktinį modelį.

17. Pagrindinės santykių savybės:

· Ryšys turi pavadinimą, kuris skiriasi nuo visų kitų santykių schemoje esančių ryšių pavadinimų.

· Kiekviename ryšio langelyje yra tik viena elementari (nedaloma) reikšmė.

· Kiekvienas atributas turi unikalų pavadinimą.

· Atributų reikšmės paimtos iš to paties domeno.

· Kiekviena kortele yra unikali, t.y. Pasikartojančių eilučių negali būti.

· Atributų tvarka neturi reikšmės.

· Teoriškai santykio kortelių tvarka neturi reikšmės. (Tačiau praktiškai ši tvarka gali labai paveikti prieigos prie jų efektyvumą.)

Pasak Date, reliacinis modelis susideda iš trijų dalių, apibūdinančių skirtingus reliacinio požiūrio aspektus: struktūrinės dalies, manipuliavimo dalies ir integraliosios dalies.

1. Modelio struktūra paremta normalizuotais ryšiais, atsižvelgiant į pagrindines reliacinės duomenų bazės sąvokas.

2. Modelio manipuliavimo dalyje patvirtinti du pagrindiniai reliacinių duomenų bazių manipuliavimo mechanizmai – reliacinė algebra ir reliacinis skaičiavimas.

3. Sąžiningumas b(iš angl. vientisumas – nepažeistas, neliečiamumas, saugumas, vientisumas) suprantamas kaip duomenų teisingumas bet kuriuo metu.

3 skyrius. „Duomenų bazės“

1. Automatizuotų sistemų informacinis palaikymas.

Automatizuotos sistemos (AS) informacinis palaikymas - dokumentų formų, klasifikatorių, norminės bazės ir įdiegtų sprendimų, skirtų AS naudojamos informacijos kiekiui, talpinimui ir egzistavimo formoms, visuma jos veikimo metu.

Pagal GOST 24.205-80, ACS informacinio palaikymo aprašymą turėtų sudaryti šie skyriai:

informacinės paramos organizavimo principai;

informacijos rinkimo ir perdavimo organizavimas;

klasifikavimo ir kodavimo sistemos kūrimas;

Įrenginio informacinės bazės organizavimas;

ne mašinos informacinės bazės organizavimas.

Sąvoka „informacinė parama“ plačiai vartojama įvairiuose kontekstuose, siejant su įvairiomis funkcijomis ir veiklos rūšimis, interpretuojama nevienareikšmiškai ir diskutuotina. Be informacijos struktūrų žymėjimo šiuo terminu, tai dažnai suprantama kaip tam tikro socialinio ir ekonominio objekto poreikiams būtinos informacijos teikimo procesas.

Skaičiavimo centrų tinklo informacinė pagalba apima duomenų masyvus, jų aprašymo, rinkimo, saugojimo ir išdavimo priemones, kurios kartu turėtų sudaryti geriausias sąlygas centralizuotam integruotam informacijos apdorojimui, suteikti kolektyvinę prieigą prie daugeliui abonentų bendrų duomenų, gautos informacijos patikimumas ir patikimumas.

Automatizuotos sistemos informacinis palaikymas yra dokumentų formų, klasifikatorių, reguliavimo sistemos ir įdiegtų sprendimų, skirtų informacijos, naudojamos automatizuotoje sistemoje jos veikimo metu, apimties, vietai ir egzistavimo formoms rinkinys (GOST 34.003-90 („Automatizuotos sistemos. Terminai ir apibrėžimai")).

IO – tai vieningos informacijos klasifikavimo ir kodavimo sistemos, vieningų dokumentacijos sistemų, organizacijoje cirkuliuojančių informacijos srautų schemų rinkinys, duomenų bazių kūrimo metodika.



Šis posistemis skirtas laiku pateikti informaciją, valdymo sprendimus. Įmonės IO yra tam tikro objekto informacinis modelis. Norint sukurti IO, reikia aiškiai suprasti valdymo sistemos tikslus ir uždavinius, funkcijas; dokumentų valdymo sistemos diegimas; informacijos judėjimo nustatymas nuo jos atsiradimo iki jos panaudojimo įvairiuose valdymo lygiuose; informacijos klasifikavimo ir kodavimo prieinamumas ir naudojimas; Informacijos matricų kūrimas mašininėse laikmenose; informacinių modelių kūrimo metodikos išmanymas.

Organizuojant IO, taikomas sisteminis požiūris, užtikrinantis vieningos informacinės bazės sukūrimą; tipinės duomenų mainų tarp skirtingų sistemos lygių ir kiekviename lygmenyje schemos sukūrimas; vieningos informacijos palaikymo ir saugojimo schemos organizavimas; spręstinų užduočių pateikimas pradiniais duomenimis;

Pagrindinės IO funkcijos – gamybinės ir ūkinės veiklos eigos stebėjimas, valdomų parametrų būklės ir jų nukrypimo nuo nurodytų režimų nustatymas ir registravimas; pirminių dokumentų, atspindinčių valdomų objektų būklę, paruošimas tvarkyti; automatizuoto duomenų apdorojimo teikimas; tiesioginio ir grįžtamojo ryšio tarp valdymo objektų ir subjektų įgyvendinimas.

Automatizuotų informacinių sistemų IO susideda iš išorinės ir vidinės mašinos IO.

„Out-of-machine“ apima techninės ir ekonominės informacijos klasifikavimo ir kodavimo sistemą; dokumentų sistema; informacijos srautų schema (darbo eiga: pirminiai, efektyvūs, norminiai ir informaciniai dokumentai).

Mašinos IO yra duomenų masyvai mašinos laikmenoje ir programa, skirta prieigai prie šių duomenų organizuoti.

Out-of-machine IO – informacija, kurią žmogus suvokia be jokių techninių priemonių (dokumentų).

Klasifikacija reiškia sąlyginį informacijos elementų rinkinio padalijimą į poaibius, remiantis tam tikru būdu panašumais ar skirtumais.

2. DBVS ir duomenų bazių programos.

Duomenų bazių valdymo sistema (DBVS) yra kalbos ir programinės įrangos įrankių rinkinys, užtikrinantis duomenų bazių kūrimo ir naudojimo valdymą.

Šiuolaikinė DBVS susideda iš:

branduoliai – DBVS programų dalys, atsakingos už duomenų tvarkymą atmintyje ir registravimą; Duomenų bazės kalbos procesorius, kuris optimizuoja duomenų gavimo ir modifikavimo užklausas bei duomenų bazės kūrimą;

Vykdymo laiko palaikymo posistemės, interpretuojančios duomenų apdorojimo programas, kurios sukuria DBVS vartotojo sąsają;

Paslaugų programos (išorinės komunalinės paslaugos), suteikiančios kitas informacinių sistemų priežiūros galimybes.

Pagrindinės DBVS funkcijos yra

Išorinėje atmintyje saugomų duomenų valdymas;

Įkeltų duomenų tvarkymas RAM naudojant disko talpyklą; Įvykių ir pakeitimų registravimas, duomenų bazės atsarginės kopijos ir atkūrimas po gedimų;

Duomenų bazių tvarkymo kalbų palaikymas (duomenų apibrėžimo kalba, duomenų apdorojimo kalba);

DBVS klasifikacijos

Yra keli kriterijai, pagal kuriuos galite klasifikuoti DBVS.

DBVS pagal duomenų modelį yra:

Hierarchinė DBVS, tinklo DBVS, Reliacinė DBVS, Objektinė DBVS, Objektinė reliacinė DBVS. Šiuo metu paskutiniai du tipai naudojami rimtuose projektuose. DBVS pagal paskirstymo laipsnį. Vietinis (DBVS yra tik viename kompiuteryje) Paskirstytasis (DBVS dalys gali būti 2 ar daugiau kompiuterių).

Duomenų bazių programos

Duomenų bazės programa, kaip rodo jos pavadinimas, yra sukurta sąveikauti su tam tikru duomenų šaltiniu – duomenų baze (DB). Sąveika – tai duomenų gavimas, pateikimas konkrečiu formatu vartotojui peržiūrėti, redagavimas pagal programoje įdiegtus verslo algoritmus ir apdorotų duomenų grąžinimas atgal į duomenų bazę.

Duomenų šaltinis gali būti tikrosios duomenų bazės arba įprasti failai – tekstas, skaičiuoklės ir tt Bet čia mes apsvarstysime programas, kurios dirba su duomenų bazėmis.

Pačioje programoje yra duomenų gavimo ir siuntimo mechanizmas, vidinio duomenų pateikimo viena ar kita forma mechanizmas, vartotojo sąsaja duomenims rodyti ir redaguoti bei verslo logika duomenų apdorojimui.

Duomenų gavimo ir siuntimo mechanizmas užtikrina ryšį su duomenų šaltiniu (dažnai netiesiogiai). Jis turi „žinoti“, kur kreiptis ir kokį apsikeitimo protokolą naudoti, kad būtų užtikrintas dvipusis duomenų srautas.

Vidinis pristatymo variklis yra duomenų bazės programos pagrindas. Jis numato gautų duomenų saugojimą programoje ir pateikia juos pareikalavus kitoms programėlės dalims.

Vartotojo sąsaja leidžia peržiūrėti ir redaguoti duomenis, taip pat valdyti duomenis ir visą programą.

Programos verslo logika – tai programoje įdiegtų duomenų apdorojimo algoritmų rinkinys.

Tarp programos ir pačios duomenų bazės yra speciali programinė įranga (programinė įranga), kuri sujungia programą ir duomenų šaltinį bei kontroliuoja duomenų mainų procesą. Ši programinė įranga gali būti įdiegta labai įvairiais būdais, priklausomai nuo duomenų bazės dydžio, sistemos sprendžiamų užduočių, vartotojų skaičiaus, aplikacijos ir duomenų bazės sujungimo būdų. Tarpinė programinė įranga gali būti įdiegta kaip programos aplinka, be kurios ji visiškai neveiks, nes tvarkyklių ir dinaminių bibliotekų rinkinys, kurį programa nurodo, gali būti integruotas į pačią programą. Galiausiai tai gali būti atskiras nuotolinis serveris, aptarnaujantis tūkstančius programų.

Duomenų šaltinis yra duomenų saugykla (pati duomenų bazė) ir DBVS, kuri valdo duomenis, kad užtikrintų duomenų vientisumą ir nuoseklumą.

3. Šiuolaikinė reliacinių duomenų bazių samprata.

Pagrindinės reliacinių duomenų bazių sąvokos

Prieš išsamiai išnagrinėdami kiekvieną iš šių veiksmų, pažvelkime į pagrindines reliacinių duomenų bazių sąvokas. Santykių teorijoje viena iš pagrindinių sąvokų yra santykio samprata. Matematiškai santykis apibrėžiamas taip. Tegu duota n aibių D1, D2, ..., Dn. Tada R yra ryšys tarp šių aibių, jei R yra sutvarkytų formos aibių rinkinys , kur d1 yra elementas iš D1, d2 yra elementas iš D2, ..., dn yra elementas iš Dn. Be to, formų rinkiniai vadinamos kortelėmis, o aibės D1, D2, ..., Dn – domenais. Kiekvieną seką sudaro elementai, parinkti iš atitinkamų domenų. Šie elementai vadinami atributais, o jų reikšmės vadinamos atributų reikšmėmis. 9-a pav. mums pateikiamas grafinis ryšio vaizdas iš skirtingų požiūrių.

Nesunku pastebėti, kad santykis yra kažkokio realaus pasaulio subjekto (šiuo atveju esybės „detalė“) atspindys, o duomenų apdorojimo požiūriu yra lentelė. Kortelė yra lentelės eilutė arba, lygiaverčiai, įrašas. Atributas yra lentelės stulpelis arba įrašo laukas. Domenas vaizduojamas kaip tam tikras bendrasis tipas, kuris gali būti įrašo laukų tipų šaltinis. Taigi šie terminų trigubai yra lygiaverčiai:

santykis, lentelė

virtinė, eilutė, įrašas

atributas, stulpelis, laukas.

Reliacinė duomenų bazė yra santykių rinkinys, kuriame yra visa reikalinga informacija ir kuriuos vienija įvairūs saitai.

Atributas (arba atributų rinkinys), kuris gali būti naudojamas vienareikšmiškai identifikuoti tam tikrą eilutę (eilutę, įrašą), vadinamas pirminiu raktu. Pirminis raktas neturi turėti papildomų atributų. Tai reiškia, kad jei savavališkas atributas neįtraukiamas į pirminį raktą, likusių atributų nepakaks, kad būtų galima vienareikšmiškai identifikuoti atskiras eilutes. Siekiant pagreitinti prieigą prie pirminio rakto, visos duomenų bazių valdymo sistemos (DBVS) turi mechanizmą, vadinamą indeksavimu. Grubiai tariant, indeksas yra apverstas medžio vaizdas, nurodantis tikrąją kiekvieno pirminio rakto įrašo vietą. Natūralu, kad indeksai skirtingose ​​DBVS yra diegiami skirtingai (vietinėse DBVS, kaip taisyklė, atskirų failų pavidalu), tačiau jų organizavimo principai yra vienodi.

Galima indeksuoti ryšį naudojant kitus atributus nei pirminis raktas. Šis indekso tipas vadinamas antriniu indeksu ir naudojamas sutrumpinti prieigos laiką ieškant duomenų santykyje, taip pat rūšiuojant. Taigi, jei pats santykis nėra niekaip sutvarkytas ir jame gali būti eilučių, kurios lieka po kai kurių eilučių ištrynimo, tada indeksas (vietinėms DBVS - indekso failas), priešingai, yra rūšiuojamas.

Siekiant išlaikyti duomenų nuorodinį vientisumą, daugelis DBVS turi vadinamųjų išorinių raktų mechanizmą. Šio mechanizmo idėja yra ta, kad vieno ryšio atributui (arba atributų grupei) priskiriama nuoroda į kito santykio pirminį raktą; taigi pavaldumo ryšiai tarp šių santykių yra įtvirtinami. Šiuo atveju ryšys, kurio pirminis raktas nurodomas kito ryšio išoriniu raktu, vadinamas pagrindiniu ryšiu arba pagrindiniu ryšiu; o ryšys, iš kurio atsiranda saitas, vadinamas detaliu ryšiu arba pavaldiniu. Priskyrus tokią nuorodą, DBVS turi galimybę automatiškai sekti ryšių tarp ryšių „nenutrūkimo“ problemas, būtent:

jei bandysite į antrinę lentelę įterpti įrašą, kurio pagrindinėje lentelėje nėra išorinio rakto atitikimo (pvz., dar nėra įrašo su tokiu pirminiu raktu), DBVS sugeneruos klaidą;

jei bandysite ištrinti įrašą iš pagrindinės lentelės, kurio pirminis raktas turi bent vieną nuorodą iš antrinės lentelės, DBVS taip pat sugeneruos klaidą.

jei bandysite pakeisti pagrindinės lentelės įrašo, į kurį yra bent viena nuoroda iš antrinės lentelės, pirminį raktą, DBVS taip pat sugeneruos klaidą.

PAPILDYMAS

Pagrindinės reliacinių duomenų bazių sąvokos

Pagrindinės reliacinių duomenų bazių sąvokos yra duomenų tipas, domenas, atributas, eilė, pirminis raktas ir ryšys.

Duomenų tipas

Koncepcija duomenų tipas reliaciniame duomenų modelyje yra visiškai adekvatus duomenų tipo sąvokai programavimo kalbose. Paprastai šiuolaikinės reliacinės duomenų bazės leidžia saugoti simbolius, skaitinius duomenis, bitų eilutes, specializuotus skaitmeninius duomenis (pvz., „pinigai“), taip pat specialius „laikinius“ duomenis (datą, laiką, laiko intervalą). Aktyviai vystomas požiūris į reliacinių sistemų galimybių išplėtimą naudojant abstrakčius duomenų tipus (pavyzdžiui, Ingres / Postgres šeimos sistemos turi tokias galimybes). Mūsų pavyzdyje mes susiduriame su trijų tipų duomenimis: simbolių eilutėmis, sveikaisiais skaičiais ir pinigais.

Domenas

Koncepcija domenas labiau būdingas duomenų bazėms, nors turi tam tikrų analogijų su kai kurių programavimo kalbų potipiais. Bendriausia forma domenas apibrėžiamas nurodant tam tikrą pagrindinį duomenų tipą, kuriam priklauso domeno elementai, ir savavališką loginę išraišką, taikomą duomenų tipo elementui. Jei ši Būlio išraiška vertinama kaip tiesa, tada duomenų elementas yra domeno elementas.

Pats teisingiausias intuityvus domeno sąvokos aiškinimas yra domeno kaip leistino potencialaus tam tikro tipo verčių rinkinio supratimas. Pavyzdžiui, domenas „Vardai“ mūsų pavyzdyje yra apibrėžtas pagal pagrindinį simbolių eilučių tipą, tačiau jo reikšmės gali apimti tik tas eilutes, kurios gali reikšti vardą (ypač tokios eilutės negali prasidėti minkštuoju ženklu).

Taip pat reikėtų atkreipti dėmesį į semantinę domeno sąvokos apkrovą: duomenys laikomi palyginamais tik tada, kai priklauso tai pačiai domenui. Mūsų pavyzdyje domenų „Atotrūkio numeriai“ ir „Grupių numeriai“ reikšmės yra sveikųjų skaičių, tačiau jų negalima palyginti. Atminkite, kad dauguma reliacinių DBVS nenaudoja domeno koncepcijos, nors Oracle V.7 jau ją palaiko.

Ar jums patiko straipsnis? Pasidalinkite su draugais!