Pagrindinės reliacinio duomenų modelio sąvokos – failas Pagrindinės sąvokos reliacinių duomenų modelio.doc. Reliacinės duomenų bazės

17.12.2023

Reliacinis modelis remiasi aibės teoretine santykio samprata. Matematinėse disciplinose yra sąvoka „ požiūris "(santykis), kurio fizinis vaizdas yra stalo . Iš čia kilęs modelio pavadinimas - santykinis .

Kalbant apie duomenų bazes, sąvokos „santykinė duomenų bazė“ ir „lentelinė duomenų bazė“ yra sinonimai. Reliacinės duomenų bazės yra labiausiai paplitusios pasaulyje. Beveik visi duomenų bazių produktai, sukurti nuo 70-ųjų pabaigos, yra reliaciniai.

1970 metais pasirodė straipsniai, kuriuose buvo aptariamos įvairių lentelių duomenų modelių panaudojimo galimybės. Reikšmingiausias iš jų buvo IBM darbuotojo dr. E. F. straipsnis (Codd E.F., A Relational Model of Data for Large Shared Data Banks. CACM 13: 6, June 1970), kuriame jis buvo pirmą kartą panaudotas. terminas "santykinių duomenų modelis" . „System R“ projektas buvo sukurtas IBM tyrimų laboratorijoje. Šis projektas buvo sukurtas siekiant įrodyti reliacinio modelio praktiškumą. Reliacinė DBVS reiškia DBVS antra karta.

Reliacinio duomenų modelio kūrimo tikslai:

1. Didesnio duomenų nepriklausomumo laipsnio užtikrinimas.

2. Sukurkite tvirtą pagrindą duomenų nuoseklumo ir dubliavimo problemoms spręsti.

3. Duomenų valdymo kalbų išplėtimas įtraukiant operacijas su rinkiniais.

Komercinės sistemos, pagrįstos reliacinių duomenų modeliu, pradėjo atsirasti 70-ųjų pabaigoje ir 80-ųjų pradžioje. Šiuo metu yra keli šimtai skirtingų reliacinių DBVS tipų.

Reliacinis modelis yra patogi ir labiausiai paplitusi duomenų pateikimo formoje forma lenteles (santykiai ). Kiekvienas santykis turi vardas ir susideda iš vardinių atributai (stulpeliai) duomenų. Vienas iš pagrindinių reliacinio modelio privalumų yra jo homogeniškumas. Visi duomenys saugomi lentelėse, kuriose kiekviena eilutė turi tą patį formatą. Kiekviena lentelės eilutė reiškia tam tikrą realaus pasaulio objektą arba ryšį tarp objektų.

Pagrindinės sąvokos, kuriomis apibrėžiamas reliacinis modelis, yra šios:

- reliacinė duomenų bazė- normalizuotų santykių rinkinys;

- požiūris- failas, plokščia lentelė, susidedanti iš stulpelių ir eilučių; lentelė, kurioje kiekvienas laukas yra atominis;

- domenas- galiojančių reikšmių rinkinys, iš kurio paimama atitinkamo tam tikro ryšio atributo reikšmė. Programavimo požiūriu, domenas- tai duomenų tipas;

- visata- visų laukų reikšmių rinkinys arba domenų rinkinys;


- autokolonas- įrašas, lentelės eilutė;

- kardinalumas - lentelės eilučių skaičius;

- atributai- pavadinti laukai, lentelės stulpeliai;

- santykių laipsnis- laukelių (stulpelių) skaičius;

- santykių diagrama- sutvarkytas atributų pavadinimų sąrašas;

- reliacinės duomenų bazės schema- santykių schemų rinkinys;

- pirminis raktas- unikalus identifikatorius su nesikartojančiais įrašais - stulpelis arba tam tikras stulpelių poaibis, kuris vienareikšmiškai apibrėžia eilutes.

Iškviečiamas pirminis raktas, kuriame yra daugiau nei vienas stulpelis daugkartinis , arba sujungti , arba sudėtinis , arba super raktas .

Objekto vientisumo taisyklė nurodo, kad pirminis raktas negali būti visiškai arba iš dalies tuščias.

Ryšys tarp šių sąvokų parodytas fig. 4.5.

Pilnas vardas Gimimo metai Darbo pavadinimas skyrius
1. Ivanovas I.I. Galva skyrius 22
2. Sidorovas S. S. Prof. 22
3. Andreeva G. G. Prof. 22
4. Tsvetkova S. S. Docentas
5. Kozlovas K.K. Docentas 22
6. Petrovas P.P. Art. Rev. 22
Atributai

ryžių. 4.5. Pagrindinės reliacinio duomenų modelio sąvokos.

Kartais skirtingi stulpeliai gali būti pasirinkti kaip pagrindinis lentelės raktas. Skirtasis raktas yra raktas, kuris yra aiškiai nurodytas reliacinėje schemoje. Kitu atveju kalbame apie numanomąjį raktą arba kandidatinį raktą arba kandidato raktą.

- išorės Raktas yra vienos lentelės stulpelis arba stulpelių poaibis, kuris gali būti kitos lentelės pirminis raktas. Lentelės išorinis raktas yra nuoroda į kitos lentelės pirminį raktą. Kadangi duomenų bazės kūrimo tikslas yra visus duomenis, jei įmanoma, saugoti vienoje kopijoje, tai jei tam tikras atributas yra keliuose santykiuose, tai jo buvimas dažniausiai atspindi tam tikrą ryšį tarp šių ryšių eilučių.

Užsienio raktai įgyvendina ryšius tarp duomenų bazės lentelių.

Užsienio raktas, kaip ir pirminis raktas, gali būti stulpelių derinys. Praktiškai užsienio raktas visada bus sudėtinis raktas, jei jis nurodo kitos lentelės sudėtinį pirminį raktą. Stulpelių skaičius ir jų duomenų tipai pirminiame ir išoriniame raktuose turi būti vienodi.

Jei lentelė yra susijusi su keliomis kitomis lentelėmis, ji gali turėti kelis pašalinius raktus.

Kiekvienas santykių lentelė turi šiuos dalykus savybių:

Turi pavadinimą, kuris skiriasi nuo visų kitų lentelių pavadinimų;

Duomenys lentelės langeliuose turi būti struktūriškai nedalomi. Nepriimtina, kad lentelės langelyje būtų daugiau nei viena informacijos dalis. Pavyzdžiui, paso numeris ir serija turėtų būti išdėstyti skirtinguose lentelės stulpeliuose;

Visi lentelės stulpeliai yra vienarūšiai, t.y. visi stulpelio elementai yra vienodo tipo (skaitiniai, simboliai ir pan.) ir ilgio;

Kiekvienas stulpelis turi unikalų pavadinimą;

Lentelėje nėra identiškų eilučių;

Eilučių ir stulpelių tvarka gali būti savavališka; nepaisant jų pertvarkymo, santykis išliks toks pat, todėl turės tą pačią reikšmę.

3 skyrius. „Duomenų bazės“

1. Informacinis palaikymas automatizuotoms sistemoms.

Automatizuotos sistemos (AS) informacinis palaikymas - dokumentų formų, klasifikatorių, reguliavimo sistemos ir įdiegtų sprendimų, susijusių su informacijos, naudojamos AS veikimo metu, apimtis, išdėstymas ir egzistavimo formos, rinkinys.

Pagal GOST 24.205-80 automatinės valdymo sistemos 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;

vidinės mašinos informacijos bazės organizavimas;

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

Sąvoka „informacinė parama“ yra plačiai vartojama įvairiuose kontekstuose, skirtingų funkcijų ir veiklos rūšių atžvilgiu, interpretuojama nevienareikšmiškai ir diskutuotina. Be informacijos struktūrų žymėjimo šiuo terminu, tai dažnai reiškia reikalingos informacijos teikimo konkretaus socialinio ir ekonominio objekto poreikiams procesą.

Informacinė pagalba kompiuterių centrų tinklui 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ų ir gautos informacijos patikimumas ir patikimumas.

Automatizuotos sistemos informacinis palaikymas – tai dokumentų formų, klasifikatorių, reglamentavimo sistemos ir įdiegtų sprendimų, susijusių su automatizuotoje sistemoje jos veikimo metu naudojamos informacijos apimtimi, išdėstymu ir egzistavimo formomis, 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ų, duomenų bazių kūrimo metodikos rinkinys.



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

Organizuojant IO naudojamas sisteminis požiūris, užtikrinantis vieningos informacinės bazės sukūrimą; standartinės duomenų mainų tarp skirtingų sistemos lygių ir kiekvieno lygmens viduje 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ų nukrypimų nuo nurodytų režimų nustatymas ir fiksavimas; pirminių dokumentų, atspindinčių valdomų objektų būklę, paruošimas tvarkyti; automatizuoto duomenų tvarkymo užtikrinimas; tiesioginio ir grįžtamojo ryšio tarp valdymo objektų ir subjektų įgyvendinimas.

Automatizuotų informacinių sistemų AI susideda iš papildomo mašininio ir vidinio DI.

Papildoma mašina apima techninės ir ekonominės informacijos klasifikavimo ir kodavimo sistemą; dokumentų sistema; informacijos srauto diagrama (dokumentų srautas: pirminiai, rezultatiniai, norminiai ir informaciniai dokumentai).

Įrenginyje esančioje informacijoje yra duomenų masyvai mašinos laikmenoje ir programa, skirta prieigai prie šių duomenų organizuoti.

Ekstramašininė informacija – tai informacija, kurią žmogus suvokia be jokių techninių priemonių (dokumentų).

Klasifikacija suprantama kaip sąlyginis informacijos elementų rinkinio padalijimas į poaibius, remiantis panašumu ar skirtumu tam tikru pagrindu.

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, teikiantis duomenų gavimo ir keitimo užklausų optimizavimą 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ų tvarkymas;

Duomenų, įkeltų į RAM, valdymas 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 galima klasifikuoti DBVS.

Duomenų modeliu pagrįstos DBVS yra:

Hierarchinė DBVS, tinklo DBVS, Reliacinė DBVS, Objektinė DBVS, Objektinė reliacinė DBVS. Šiuo metu paskutiniai 2 tipai naudojami rimtuose projektuose. DBVS pagal pasiskirstymo 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 skirta sąveikauti su tam tikru duomenų šaltiniu – duomenų baze (DB). Sąveika apima duomenų gavimą, pateikimą konkrečiu formatu vartotojui peržiūrėti, redagavimą pagal programoje įdiegtus verslo algoritmus ir apdorotų duomenų grąžinimą atgal į duomenų bazę.

Duomenų šaltinis gali būti pati duomenų bazė 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 suteikia ryšį su duomenų šaltiniu (dažnai netiesiogiai). Ji turi „žinoti“, kur eiti ir kokį ryšio protokolą naudoti, kad užtikrintų dvikryptį duomenų srautą.

Vidinis duomenų atvaizdavimo variklis yra duomenų bazės programos pagrindas. Jis saugo gautus duomenis programoje ir padaro juos prieinamus, kai to prašo kitos programos dalys.

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, jungianti programą ir duomenų šaltinį bei kontroliuojanti apsikeitimo duomenimis 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 ir tai, kaip programa ir duomenų bazė yra sujungtos. Tarpinė programinė įranga gali būti įdiegta kaip taikomoji aplinka, be kurios ji visiškai neveiks, arba tvarkyklių ir dinaminių bibliotekų rinkinys, prie kurių programa pasiekia, gali būti integruotas į pačią programą. Galiausiai tai gali būti vienas nuotolinis serveris, aptarnaujantis tūkstančius programų.

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

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

Pagrindinės reliacinės duomenų bazės sąvokos

Prieš išsamiai apžvelgdami kiekvieną iš šių veiksmų, apžvelkime pagrindines reliacinių duomenų bazių sąvokas. Santykių teorijoje viena pagrindinių yra santykių 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. Šiuo atveju formos rinkiniai vadinamos kortelėmis, o aibės D1,D2,...,Dn – domenais. Kiekvieną seką sudaro elementai, parinkti iš jų 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 „detalės“ esybės) atspindys, o duomenų apdorojimo požiūriu tai yra lentelė. Kortelė yra lentelės eilutė arba, lygiaverčiai, įrašas. Atributas yra lentelės stulpelis arba laukas įraše. Domenas vaizduojamas kaip apibendrintas 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 ryšių rinkinys, kuriame yra visa reikalinga informacija ir kuriuos vienija įvairūs ryšiai.

Atributas (arba atributų rinkinys), kuris gali būti naudojamas unikaliai identifikuoti tam tikrą eilutę (eilutę, įrašą), vadinamas pirminiu raktu. Pirminis raktas neturi turėti jokių 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 sąrašas, 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 niekaip nesutvarkytas ir gali turėti eilučių, likusių ištrynus kai kurias eilutes, indeksas (vietinėms DBVS - indekso failas), atvirkščiai, yra rūšiuojamas.

Siekiant išlaikyti nuorodinį duomenų vientisumą, daugelis DBVS turi vadinamųjų išorinių raktų mechanizmą. Šio mechanizmo prasmė ta, kad tam tikram vieno ryšio atributui (ar atributų grupei) priskiriama nuoroda į kito santykio pirminį raktą; taip sustiprinant pavaldumo ryšius tarp šių santykių. Šiuo atveju ryšys, kurio pirminis raktas nurodomas kito santykio užsienio raktu, vadinamas pagrindiniu ryšiu arba pagrindiniu ryšiu; o santykis, iš kurio kyla saitas, vadinamas detaliuoju ryšiu arba pavaldiniu. Priskyrus tokią nuorodą, DBVS turi galimybę automatiškai stebėti ryšių tarp santykių „nepažeidimo“ klausimus, būtent:

jei į antrinę lentelę bandysite įterpti įrašą, kurio išorinis raktas nesutampa pagrindinėje lentelėje (pavyzdžiui, 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š pagalbinės lentelės, DBVS taip pat sugeneruos klaidą.

Jei bandysite pakeisti pagrindinės lentelės įrašo, kuriame yra bent viena nuoroda iš pagalbinė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, skaitmeninius duomenis, bitų eilutes, specializuotus skaitmeninius duomenis (pvz., „pinigai“), taip pat specialius „laikinius“ duomenis (datą, laiką, laiko intervalą). Gana aktyviai vystomas požiūris į reliacinių sistemų galimybių išplėtimą abstrakčiais duomenų tipais (pavyzdžiui, Ingres/Postgres šeimos sistemos turi atitinkamas 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 subtipiais kai kuriose programavimo kalbose. Bendriausia forma domenas apibrėžiamas nurodant tam tikrą bazinį duomenų tipą, kuriam priklauso domeno elementai, ir savavališką loginę išraišką, taikomą duomenų tipo elementui. Jei šios Būlio išraiškos įvertinimas grąžina teisingą, tada duomenų elementas yra domeno elementas.

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

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

Tai pritaikymas tokių matematikos šakų kaip aibių teorija ir pirmosios eilės logika duomenų apdorojimo problemoms spręsti.

Reliacinės duomenų bazės yra sukurtos remiantis reliacinių duomenų modeliu.

Reliacinis duomenų modelis apima šiuos komponentus:

  • Struktūrinis aspektas (komponentas) – duomenys duomenų bazėje yra ryšių visuma.
  • Vientisumo aspektas (komponentas) – ryšiai (lentelės) atitinka tam tikras vientisumo sąlygas. RMD palaiko deklaratyvaus vientisumo apribojimus domeno (duomenų tipo), santykio ir duomenų bazės lygiu.
  • Apdorojimo (manipuliavimo) aspektas (komponentas) – RMD palaiko santykių manipuliavimo operatorius (reliacinė algebra, reliacinis skaičiavimas).

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

Koncepcija duomenų tipas reliaciniame duomenų modelyje yra visiškai panašus į duomenų tipo sąvoką programavimo kalbose. Paprastai šiuolaikinės reliacinės duomenų bazės leidžia saugoti simbolių duomenis, skaitmeninius duomenis, bitų eilutes, specializuotus skaitmeninius duomenis (pvz., pinigus) ir specialius duomenis (datą, laiką, laiko intervalą).

Požiūris yra esminė sąvoka ir yra dvimatė lentelė, kurioje yra tam tikrų duomenų.

Esmė koks nors izoliuotas objektas ar įvykis, apie kurį informacija turi būti saugoma duomenų bazėje ir kuris turi tam tikrą savybių rinkinį – atributus. Esybės gali būti tiek fiziniai (tikrai egzistuojantys) objektai, pavyzdžiui, STUDENTAS (atributai – pažymių knygelės numeris, pavardė, vardas, tėvavardis, specialybė, grupės numeris ir kt.), ir abstraktūs, pavyzdžiui, EGZAMINAS (atributai – disciplina, data). , Mokytojas, auditorija ir kt.). Esybės išskiriamos pagal tipą ir egzempliorių. Tipui būdingas pavadinimas ir savybių sąrašas, o egzempliorius – konkrečiomis ypatybių reikšmėmis.

Atributai reprezentuoja esybę apibūdinančias savybes. Lentelės struktūroje kiekvienas atributas yra pavadintas ir atitinka tam tikro lentelės stulpelio antraštę. Subjekto atributai yra šie:

1) identifikuojantis ir aprašomasis. Identifikuojantys atributai turi unikalią reikšmę tam tikro tipo objektams ir yra galimi raktai. Jie leidžia unikaliai atpažinti objekto atvejus. Pasirinktas vienas iš galimų raktų pirminis raktas. Pirminis raktas paprastai yra kandidatas, kuris dažniau naudojamas norint pasiekti įrašų atvejus. Pirminis raktas turi apimti minimalų skaičių atributų, reikalingų identifikuoti. Likę atributai vadinami aprašomaisiais;

2) paprastas ir sudėtingas. Paprastas atributas susideda iš vieno komponento, jo reikšmė nedaloma. Sudėtinis atributas yra kelių komponentų, kurie gali priklausyti skirtingiems duomenų tipams (pavyzdžiui, adresas), derinys. Sprendimas, ar naudoti sudėtinį atributą, ar suskaidyti jį į komponentus, priklauso nuo konkrečių jo taikymo procesų ir gali būti susijęs su didelio darbo su didelėmis duomenų bazėmis greičio užtikrinimu;

3) vienvertės ir daugiavertės. Atributai gali turėti atitinkamai vieną arba daug reikšmių kiekvienam objekto egzemplioriui;

4) baziniai ir išvestiniai. Pagrindinio požymio reikšmė nepriklauso nuo kitų atributų. Išvestinio požymio reikšmė apskaičiuojama pagal kitų požymių reikšmes (pavyzdžiui, žmogaus amžius skaičiuojamas pagal jo gimimo datą ir dabartinę datą).

Atributo specifikaciją sudaro jo pavadinimas, duomenų tipo nuoroda ir vientisumo apribojimų aprašymas – reikšmių rinkinys (arba domenas), kurį atributas gali priimti.

Domenas reiškia visų galimų konkretaus santykio atributo reikšmių rinkinį.

Ryšio schema (santykių antraštė) yra atributų pavadinimų sąrašas, nurodantis domenų vardus.

automobilių kolona, atitinkanti nurodytą santykio schemą, yra (atributo pavadinimo, reikšmės) porų rinkinys, kuriame yra po vieną kiekvieno atributo pavadinimo atvejį. Vertės argumentas yra tinkama šio atributo domeno reikšmė.

Pirminis raktas(santykinis raktas, rakto atributas) Iškviečiamas santykio atributas arba atributų rinkinys, kuris vienareikšmiškai identifikuoja kiekvieną jo eilutę. Pirminis raktas pagal apibrėžimą yra unikalus: ryšys negali turėti dviejų skirtingų kortelių su tomis pačiomis pirminio rakto reikšmėmis. Atributai, sudarantys pirminį raktą, negali turėti reikšmės NULL. Koncepcija NULL Reliacinėje duomenų bazės teorijoje jis skirtas atributo reikšmės nebuvimui. Kiekvienam ryšiui gali būti tik vienas pirminis raktas.

Kiekvienas ryšys būtinai turi atributų derinį, kuris gali būti raktas. Gali būti atvejų, kai santykis turi keletą atributų derinių, kurių kiekvienas unikaliai identifikuoja visas ryšio eilutes. Visi šie atributų deriniai yra galimi raktai santykiai. Bet kuris iš galimų klavišų gali būti pasirinktas kaip pirminis raktas.

Užsienio raktai yra pagrindinis mechanizmas, padedantis organizuoti ryšius tarp lentelių ir išlaikyti informacijos vientisumą bei nuoseklumą duomenų bazėje.

Išorinis raktas yra vieno santykio atributų rinkinys, kuris yra galimas kito santykio raktas.

Dėl sąsajų tarp galimų ir pašalinių raktų yra užtikrinamas tam tikrų santykių eilučių tarpusavio ryšys, o tai padeda išlaikyti duomenų bazę tokios būklės, kad ją būtų galima laikyti viena visuma. Ryšys, kuriame yra išorinis raktas, vadinamas antruoju, o ryšys, kuriame yra kandidato raktas, susietas su išoriniu raktu, vadinamas pirminiu. Atitinkamų išorinių ir pirminių raktų atributų duomenų tipai (o kai kuriose DBVS – matmenys) turi atitikti.

Reliacinio duomenų modelio elementai ir jų pateikimo forma

Reliacinio modelio elementas

Pristatymo forma

Požiūris

Santykių diagrama

Lentelės stulpelio antraštės eilutė (lentelės antraštė)

Lentelės eilutė

Esmė

Objekto savybių aprašymas

Lentelės stulpelio antraštė

Tinkamų atributų reikšmių rinkinys

Atributo vertė

Lauko reikšmė įraše

Pirminis raktas

Vienas ar daugiau atributų

Duomenų tipas

Lentelės elemento vertės tipas

Duomenų bazė (DB) – Tai pavadintas struktūrizuotų duomenų rinkinys, susijęs su konkrečia tematika ir skirtas saugoti, kaupti ir apdoroti naudojant kompiuterį.

Reliacinė duomenų bazė (RDB) yra aibė ryšių, kurių pavadinimai sutampa su schemų santykių pavadinimais duomenų bazės schemoje.

Pagrindinės sąvokos reliacinės duomenų bazės:

· Duomenų tipas– konkretaus stulpelio verčių tipas.

· Domenas(domenas) – visų galiojančių atributų reikšmių rinkinys.

· Atributas(atributas) – lentelės stulpelio antraštė, apibūdinanti įvardytą objekto savybę, pavyzdžiui, studento pavardę, užsakymo datą, darbuotojo lytį ir kt.

· Kortežas– lentelės eilutė, vaizduojanti logiškai susijusių atributų reikšmių rinkinį.

· Požiūris(ryšys) – lentelė, atspindinti informaciją apie realaus pasaulio objektus, pavyzdžiui, apie studentus, užsakymus, darbuotojus, gyventojus ir kt.

· Pirminis raktas(pirminis raktas) – lentelės laukas (arba laukų rinkinys), unikaliai identifikuojantis kiekvieną jos įrašą.

· Alternatyvus raktas yra laukas (arba laukų rinkinys), kuris neatitinka pirminio rakto ir vienareikšmiškai identifikuoja įrašo egzempliorių.

· Išorinis raktas yra laukas (arba laukų rinkinys), kurio reikšmės atitinka esamas kitos lentelės pirminio rakto reikšmes. Kai susiejate dvi lenteles, pirmosios lentelės pirminis raktas susiejamas su antrosios lentelės išoriniu raktu.

· Reliacinių duomenų modelis (RDM)- duomenų tvarkymas dvimačių lentelių pavidalu.

Kiekviena reliacinė lentelė turi turėti šias savybes:

1. Kiekvienas lentelės įrašas yra unikalus, t.y. reikšmių rinkinys laukuose nesikartoja.

2. Kiekviena eilutės ir stulpelio sankirtoje įrašyta reikšmė yra atominė (neatskiriama).

3. Kiekvieno lauko reikšmės turi būti to paties tipo.

4. Kiekvienas laukas turi unikalų pavadinimą.

5. Įrašų eiliškumas nėra reikšmingas.

Pagrindiniai duomenų bazės elementai:

Laukas- elementarus loginio duomenų organizavimo vienetas. Laukui apibūdinti naudojamos šios charakteristikos:

· vardas, pavyzdžiui, Pavardė, Vardas, Patronimas, Gimimo data;

· įveskite, pavyzdžiui, eilutę, simbolį, skaičių, datą;

· ilgis, pavyzdžiui, baitais;

· skaitinių duomenų tikslumas, pvz., du skaičiai po kablelio, norint parodyti trupmeninę skaičiaus dalį.

Įrašas- logiškai susijusių laukų reikšmių rinkinys.

Indeksas– įrašų paieškos operaciją pagreitinanti priemonė, naudojama ryšiams tarp lentelių nustatyti. Lentelė, kuriai naudojamas indeksas, vadinama indeksuota. Dirbdami su indeksais, turite atkreipti dėmesį į indeksų organizavimą, kuris yra klasifikavimo pagrindas. Paprastas indeksas vaizduojamas vienu lauku arba Būlio išraiška, apdorojančia vieną lauką. Sudėtinį indeksą sudaro keli laukai su galimybe naudoti įvairias funkcijas. Lentelių indeksai saugomi rodyklės faile.


Duomenų vientisumas– tai ryšio laukų duomenų apsaugos priemonė, leidžianti išlaikyti lenteles nuoseklioje (nuoseklioje) būsenoje (ty neleidžia antrinėje lentelėje egzistuoti įrašų, neturinčių atitinkamų įrašų pirminėje lentelėje lentelė).

Prašymas– suformuluotas klausimas vienai ar daugiau tarpusavyje susijusių lentelių su duomenų atrankos kriterijais. Užklausa atliekama naudojant struktūrinės užklausos kalbą SQL (Structured Query Language). Gavus duomenis iš vienos ar kelių lentelių, gali būti gautas įrašų rinkinys, vadinamas rodiniu.

Duomenų pateikimas– duomenų bazėje saugoma vardinė užklausa duomenims gauti (iš vienos ar kelių lentelių).

Rodinys iš esmės yra laikina lentelė, sukurta kaip užklausos rezultatas. Pati užklausa gali būti siunčiama į atskirą failą, ataskaitą, laikiną lentelę, lentelę diske ir kt.

Pranešimas– sistemos komponentas, kurio pagrindinis tikslas – aprašyti ir spausdinti dokumentus remiantis informacija iš duomenų bazės.

Bendrosios darbo su RDB charakteristikos:

Atrodo, kad labiausiai paplitęs reliacinių duomenų modelio aiškinimas yra Data, kuris jį (įvairiais patobulinimais) atkuria beveik visose savo knygose. Pasak Date, reliacinis modelis susideda iš trijų dalių, apibūdinančių skirtingus reliacinio požiūrio aspektus: struktūrinės dalies, manipuliavimo dalies ir holistinės dalies.

Struktūrinėje modelio dalyje teigiama, kad vienintelė duomenų struktūra, naudojama reliacinėse duomenų bazėse, yra normalizuotas n-arinis ryšys.

Modelio manipuliavimo dalis patvirtina du pagrindinius manipuliavimo reliacinėmis duomenų bazėmis mechanizmus – reliacinę algebrą ir reliacinį skaičiavimą. Pirmasis mechanizmas daugiausia pagrįstas klasikine aibių teorija (su tam tikrais patobulinimais), o antrasis – klasikiniu loginiu pirmosios eilės predikatinių skaičiavimų aparatu. Atkreipkite dėmesį, kad pagrindinė reliacinio modelio manipuliavimo dalies funkcija yra pateikti bet kurios konkrečios reliacinės duomenų bazės kalbos santykio matą: kalba vadinama reliacine, jei ji turi ne mažiau išraiškingumo ir galios nei reliacinė algebra ar reliacinis skaičiavimas.


28. ALGORITMINĖS KALBOS. VERTĖJAI (VERTĖJAI IR SUDĖTĖJAI). ALGORITMINĖS KALBOS PAGRINDAS. PROGRAMOS STRUKTŪRA. IDENTIFIKAVAI. KINTAMAI. OPERATORIAI. VIENMATINIŲ IR DVIMAČIŲ MASTELIŲ APDOROJIMAS. VARTOTOJO FUNKCIJOS. PAPROGRAMOS. DARBAS SU DUOMENŲ FAILAIS.

Aukšto lygio kalba- programavimo kalba, kurios sąvokos ir struktūra yra patogi žmogaus suvokimui.

Algoritminė kalba(Algoritminė kalba) – programavimo kalba – dirbtinė (formali) kalba, skirta rašyti algoritmus. Programavimo kalba apibrėžiama pagal jos aprašymą ir įgyvendinama specialios programos pavidalu: kompiliatorius arba interpretatorius. Algoritminių kalbų pavyzdžiai yra Borland Pascal, C++, Basic ir kt.

Pagrindinės algoritminės kalbos sąvokos:

Kalbos kompozicija:

Įprasta šnekamoji kalba susideda iš keturių pagrindinių elementų: simbolių, žodžių, frazių ir sakinių. Algoritminėje kalboje yra panašių elementų, tik žodžiai vadinami elementariomis konstrukcijomis, frazės – išraiškomis, o sakiniai – operatoriais.

Simboliai, elementarios konstrukcijos, išraiškos ir operatoriai sudaro hierarchinę struktūrą, nes elementarios konstrukcijos sudaromos iš simbolių sekos.

Išraiškos yra elementariųjų struktūrų ir simbolių seka,

operatorius- posakių, elementariųjų struktūrų ir simbolių seka.

Kalbos aprašymas:

Simbolių aprašą sudaro galiojančių kalbos simbolių sąrašas. Elementariųjų struktūrų aprašymas reiškia jų formavimo taisykles. Posakių aprašymas yra bet kokių posakių, turinčių reikšmę tam tikra kalba, formavimo taisyklės. Operatorių aprašymas susideda iš visų toje kalboje leidžiamų operatorių tipų svarstymo. Kiekvieno kalbos elemento aprašymą pateikia jo SINTAKSĖ ir SEMANTIKAS.

Sintaksė apibrėžimai nustato kalbos elementų konstravimo taisykles.

Semantika apibrėžia tų kalbos elementų, kuriems pateikti sintaksiniai apibrėžimai, reikšmę ir vartojimo taisykles.

Kalbos simboliai- tai pagrindiniai nedalomi ženklai, pagal kuriuos rašomi visi tekstai kalba.

Elementariosios struktūros- tai yra minimalūs kalbos vienetai, turintys savarankišką reikšmę. Jie susidaro iš pagrindinių kalbos simbolių.

Išraiška algoritminėje kalboje jis susideda iš elementarių struktūrų ir simbolių, nurodo tam tikros reikšmės apskaičiavimo taisyklę.

operatorius nurodo išsamų tam tikro veiksmo, kurį reikia atlikti, aprašymą. Norint apibūdinti sudėtingą veiksmą, gali prireikti teiginių grupės.

Šiuo atveju operatoriai sujungiami į Sudėtinis operatorius arba Blokuoti. Veiksmai, kuriuos nurodo operatoriai, yra vykdomi ant duomenų. Algoritminės kalbos teiginiai, teikiantys informaciją apie duomenų tipus, vadinami deklaracijomis arba nevykdomais sakiniais. Aprašymų ir operatorių rinkinys, sujungtas vienu algoritmu, sudaro programą algoritmine kalba. Tiriant algoritminę kalbą būtina atskirti algoritminę kalbą nuo kalbos, su kuria atliekamas tiriamos algoritminės kalbos aprašymas. Paprastai mokoma kalba vadinama tiesiog kalba, o kalba, kurios atžvilgiu pateikiamas studijuojamos kalbos aprašymas - Metakalba.

Vertėjai - (anglų k. vertėjas – vertėjas) yra vertėjų programa. Jis konvertuoja programą, parašytą viena iš aukšto lygio kalbų, į programą, kurią sudaro mašinos instrukcijos.

Programa, parašyta bet kuria aukšto lygio algoritmine kalba, negali būti tiesiogiai vykdoma kompiuteryje. Kompiuteris supranta tik mašinos komandų kalbą. Vadinasi, programa algoritmine kalba turi būti išversta (išversta) į konkretaus kompiuterio komandų kalbą. Tokį vertimą automatiškai atlieka specialios vertėjų programos, sukurtos kiekvienai algoritminei kalbai ir kiekvienam kompiuterio tipui.

Yra du pagrindiniai transliavimo būdai – kompiliavimas ir interpretavimas.

1. Kompiliacija: Kompiliatorius(angl. kompiliatorius – kompiliatorius, kolekcionierius) perskaito visą programą, ją išverčia ir sukuria pilną programos versiją mašinine kalba, kuri vėliau paleidžiama.

At kompiliacija visa pradinė programa iš karto paverčiama mašinos instrukcijų seka. Po to gautą programą vykdo kompiuteris su turimais šaltinio duomenimis. Šio metodo pranašumas yra tas, kad vertimas atliekamas vieną kartą, o gautos programos (daugkartinis) vykdymas gali būti vykdomas dideliu greičiu. Tuo pačiu metu sukurta programa gali užimti daug vietos kompiuterio atmintyje, nes vieną kalbos operatorių vertimo metu pakeičia šimtai ar net tūkstančiai komandų. Be to, labai sunku derinti ir modifikuoti transliuojamą programą.

2. Vertimas žodžiu: vertėjas(anglų kalbos vertėjas – vertėjas, vertėjas) verčia ir vykdo programą eilutė po eilutės.

At interpretacijos pradinė programa kompiuterio atmintyje saugoma beveik nepakitusi. Interpretatoriaus programa po vieną dekoduoja šaltinio programos teiginius ir iš karto užtikrina jų vykdymą turimais duomenimis. Interpretuojama programa užima mažai vietos kompiuterio atmintyje, ją lengva derinti ir modifikuoti. Tačiau programos vykdymas yra gana lėtas, nes su kiekvienu vykdymu visų operatorių interpretacija atliekama iš naujo.

Sukompiliuotos programos veikia greičiau, tačiau interpretuotas lengviau pataisyti ir pakeisti.

Kiekviena konkreti kalba yra orientuota į kompiliavimą arba interpretavimą – priklausomai nuo to, kokiu tikslu ji buvo sukurta. Pavyzdžiui, Pascal paprastai naudojamas gana sudėtingoms problemoms spręsti, kuriose svarbus programos greitis. Todėl ši kalba dažniausiai įgyvendinama naudojant kompiliatorių.

Kita vertus, BASIC buvo sukurta kaip kalba pradedantiesiems programuotojams, kuriems programos vykdymas eilutė po eilutės turi neabejotinų pranašumų.

Kartais tai pačiai kalbai yra ir kompiliatorius, ir vertėjas. Tokiu atveju galite naudoti vertėją, kad sukurtumėte ir išbandytumėte programą, o tada sukompiliuokite derinimo programą, kad pagerintumėte jos vykdymo greitį.

Reliacinio duomenų modelio pagrindai pirmą kartą buvo išdėstyti E. Coddo straipsnyje 1970 m. Šis darbas buvo postūmis daugeliui straipsnių ir knygų, kuriose reliacinis modelis buvo toliau plėtojamas. Labiausiai paplitęs reliacinių duomenų modelio aiškinimas priklauso K. Datei. Pagal datą santykinis modelis susideda iš trijų dalių:

  • Struktūrinė dalis
  • Neatsiejama dalis
  • Manipuliavimo dalis

Struktūrinė dalis aprašo, kokie objektai yra laikomi reliaciniu modeliu. Teigiama, kad vienintelė reliaciniame modelyje naudojama duomenų struktūra yra normalizuoti n-arūs santykiai.

Neatsiejama dalis aprašo specialų apribojimą, kuris turi būti įvykdytas bet kokiam ryšiui bet kurioje reliacinėje duomenų bazėje. Tai subjektų vientisumas Ir užsienio rakto vientisumas.

Manipuliavimo dalis aprašomi du lygiaverčiai būdai manipuliuoti reliaciniais duomenimis - reliacinė algebra Ir reliacinis skaičiavimas.

Šiame skyriuje nagrinėjama struktūrinė reliacinio modelio dalis.

Duomenų tipai

Bet kokie programuojant naudojami duomenys turi savo duomenų tipus.

Svarbu! Reliacinis modelis reikalauja, kad naudojami duomenų tipai būtų paprasti.

Norėdami paaiškinti šį teiginį, panagrinėkime, į kokius duomenų tipus dažniausiai atsižvelgiama programuojant. Paprastai duomenų tipai skirstomi į tris grupes:

  • Paprasti duomenų tipai
  • Struktūrinių duomenų tipai
  • Nuorodų duomenų tipai

Paprasti duomenų tipai

Paprasti arba atominiai duomenų tipai neturi vidinės struktūros. Šio tipo duomenys vadinami skaliarai. Paprasti duomenų tipai apima šiuos tipus:

  • Logiška
  • Styga
  • Skaitmeninis

Įvairios programavimo kalbos gali išplėsti ir patikslinti šį sąrašą įtraukdamos tipus, pvz.:

  • Visas
  • Tikras
  • Laikas
  • Piniginis
  • Išvardijamas
  • Intervalas
  • ir tt…

Žinoma, atomiškumo sąvoka yra gana reliatyvi. Taigi, eilutės duomenų tipas gali būti suvokiamas kaip vienmatis simbolių masyvas, o visas duomenų tipas gali būti laikomas bitų rinkiniu. Svarbu tik tai, kad pereinant į tokį žemą lygį, duomenų semantika (prasmė).. Jei eilutė, išreiškianti, pavyzdžiui, darbuotojo pavardę, suskaidoma į simbolių masyvą, prarandama tokios eilutės kaip vienos visumos reikšmė.

Struktūrinių duomenų tipai

Struktūrinių duomenų tipai yra skirti sudėtingoms duomenų struktūroms nurodyti. Struktūrizuoti duomenų tipai sudaromi iš sudedamųjų elementų, vadinamų komponentais, kurie savo ruožtu gali turėti struktūrą. Struktūriniais duomenų tipais gali būti laikomi šie duomenų tipai:

  • Masyvai
  • Įrašai (struktūros)

Matematiniu požiūriu masyvas yra funkcija su baigtiniu domenu. Pavyzdžiui, apsvarstykite baigtinę natūraliųjų skaičių aibę

vadinama indeksų rinkiniu. Ekranas

iš aibės į realiųjų skaičių aibę nurodo vienmatį realųjį masyvą. Šios funkcijos reikšmė tam tikrai indekso reikšmei vadinama masyvo elementu, atitinkančiu . Daugiamačiai masyvai gali būti apibrėžti panašiai.

Įrašas (arba struktūra) yra kai kurių Dekarto aibių sandauga. Iš tiesų, įrašas yra pavadintas, sutvarkytas elementų rinkinys, kurių kiekvienas priklauso tam tikram tipui. Taigi įrašas yra rinkinio elementas . Deklaruodamas naujus įrašų tipus pagal esamus tipus, vartotojas gali sukurti savavališkai sudėtingus duomenų tipus.

Struktūrinių duomenų tipai yra bendra tai, kad jie turi vidinę struktūrą, kuri naudojama tame pačiame abstrakcijos lygyje kaip ir patys duomenų tipai.

Paaiškinkime tai taip. Dirbdami su masyvais arba įrašais galite manipuliuoti masyvu arba įrašyti kaip vieną visumą (kurti, ištrinti, kopijuoti visus masyvus ar įrašus), ir elementą po elemento. Struktūriniams duomenų tipams yra specialios funkcijos – tipo konstruktoriai, leidžiantys kurti masyvus ar įrašus iš paprastesnių tipų elementų.

Dirbdami su paprastais duomenų tipais, pavyzdžiui, skaitiniais, jais manipuliuojame kaip nedalomais visuminiais objektais. Norėdami „pamatyti“, kad skaitmeninių duomenų tipas iš tikrųjų yra sudėtingas (bitų rinkinys), turime pereiti prie žemesnio abstrakcijos lygio. Programos kodo lygiu tai atrodys kaip surinkimo įterpimai į aukšto lygio kalbos kodą arba specialių bitų operacijų naudojimas.

Nuorodų duomenų tipai

Nuorodos duomenų tipas(rodyklės) skirtas suteikti galimybę nurodyti kitus duomenis. Rodyklės yra būdingos procedūrinėms kalboms, kurios turi atminties srities duomenims saugoti sąvoką. Nuorodų duomenų tipas skirtas apdoroti sudėtingas besikeičiančias struktūras, tokias kaip medžiai, grafikai ir rekursinės struktūros.

Reliaciniame modelyje naudojami duomenų tipai

Tiesą sakant, reliaciniam duomenų modeliui naudojamų duomenų tipas nėra svarbus. Reikalavimas, kad duomenų tipas būtų paprastas, turėtų būti suprantamas kaip reiškiantis, kad reliacinės operacijos neturėtų atsižvelgti į vidinę duomenų struktūrą. Žinoma, turi būti aprašyti veiksmai, kuriuos galima atlikti su duomenimis kaip vientisa visuma, pavyzdžiui, galima pridėti skaitinio tipo duomenis, galima eilučių sujungimo operacija ir pan.

Šiuo požiūriu, jei laikysime, pavyzdžiui, masyvą kaip vieną visumą ir nenaudojame operacijų po elementą, masyvas gali būti laikomas paprastu duomenų tipu. Be to, galite susikurti savo duomenų tipą, kad ir koks sudėtingas būtų, aprašyti galimus veiksmus su šiuo duomenų tipu, o jei operacijoms atlikti nereikia žinių apie vidinę duomenų struktūrą, tada šis duomenų tipas taip pat bus paprastas. santykių teorijos. Pavyzdžiui, galite sukurti naujo tipo kompleksinius skaičius kaip formos įrašą, kur . Galite aprašyti sudėties, daugybos, atimties ir dalybos funkcijas bei visas operacijas su komponentais ir atlikti jas tik šiose operacijose. Tada, jei atliekant veiksmus su šiuo tipu naudojamos tik aprašytos operacijos, vidinė struktūra nevaidina vaidmens, o duomenų tipas iš išorės atrodo kaip atominis.

Būtent taip kai kurios postrelacinės DBVS įgyvendina darbą su savavališkai sudėtingais vartotojų sukurtais duomenų tipais.

Domenai

Reliaciniame duomenų modelyje duomenų tipo sąvoka yra glaudžiai susijusi su srities sąvoka, kurią galima laikyti duomenų tipo patikslinimu.

Domenas yra semantinė sąvoka. Domenas gali būti laikomas tam tikro tipo duomenų reikšmių pogrupiu, turinčiu konkrečią reikšmę. Domenui būdingos šios savybės:

  • Domenas turi unikalų pavadinimą (duomenų bazėje)
  • Domenas apibrėžiamas naudojant kokį nors paprastą duomenų tipą arba kitą domeną
  • Domenas gali turėti tam tikrą loginę sąlygą, leidžiančią aprašyti duomenų poaibį, kuris galioja tam tikram domenui
  • Domenas turi tam tikrą reikšmę

Pavyzdžiui, domenas, reiškiantis „darbuotojo amžių“, gali būti apibūdintas kaip toks natūraliųjų skaičių rinkinio poaibis:

Skirtumas tarp domeno ir poaibio sąvokos yra būtent tas, kad domenas atspindi dalykinės srities apibrėžtą semantiką. Gali būti keletas sričių, kurios sutampa kaip poaibiai, bet turi skirtingas reikšmes. Pavyzdžiui, domenai „Dalies svoris“ ir „Turimas kiekis“ gali būti apibūdinti kaip neneigiamų sveikųjų skaičių rinkinys, tačiau šių domenų reikšmė bus skirtinga ir jie bus skirtingi domenai.

Pagrindinė domenų reikšmė ta, kad domenai riboja palyginimus. Logiškai neteisinga lyginti reikšmes iš skirtingų domenų, net jei jos yra to paties tipo. Tai atskleidžia semantinį domenų apribojimą. Sintaksiškai teisingas reikalavimas „duoti sąrašą visų dalių, kurių dalių svoris didesnis už turimą kiekį“ neatitinka sąvokų „kiekis“ ir „svoris“ reikšmės.

komentuoti. Domeno sąvoka padeda teisingai modeliuoti dalykinę sritį. Dirbant su realia sistema, iš esmės galima situacija, kai reikia atsakyti į aukščiau pateiktą užklausą. Sistema duos atsakymą, bet greičiausiai jis bus beprasmis.

komentuoti. Ne visi domenai turi loginę sąlygą, kuri riboja galimas domeno reikšmes. Šiuo atveju galimų domeno reikšmių rinkinys yra toks pat kaip galimų duomenų tipo reikšmių rinkinys.

komentuoti. Ne visada aišku, kaip nustatyti Būlio sąlygą, kuri riboja galimas domeno reikšmes. Būsiu dėkingas visiems, galintiems pateikti sąlygą dėl duomenų tipo eilutės, kurioje būtų nurodytas domenas „Darbuotojo pavardė“. Akivaizdu, kad eilutės, kurios yra pavardės, neturėtų prasidėti skaičiais, paslaugų ženklais, minkštu ženklu ir pan. Bet ar pavardė „Ggggggyyyyy“ priimtina? Kodėl gi ne? Akivaizdu, kad ne! O gal kas nors pasivadins taip iš nepaisymo. Tokio pobūdžio sunkumų kyla todėl, kad realių reiškinių prasmė ne visada gali būti formaliai aprašyta. Tiesiog mes, kaip ir visi žmonės, intuityviai suprantame, kas yra pavardė, bet niekas negali pateikti tokio formalaus apibrėžimo, kuris atskirtų pavardes nuo eilučių, kurios nėra pavardės. Išeitis iš šios situacijos paprasta – pasikliaukite darbuotojo, įvedančio vardus į kompiuterį, sumanumu.

Ryšiai, atributai, santykio eilutės

Apibrėžimai ir pavyzdžiai

Pagrindinė reliacinio duomenų modelio koncepcija yra sąvoka santykiai. Apibrėždami santykių sampratą, vadovausimės K. Data knyga.

1 apibrėžimas. Santykių atributas yra pora tokių<Имя_атрибута: Имя_домена>.
Atributų pavadinimai turi būti unikalūs santykiuose. Dažnai santykio atributų pavadinimai yra tokie patys kaip atitinkamų domenų pavadinimai.

2 apibrėžimas. Požiūris, apibrėžtą keliuose domenuose (nebūtinai skirtinguose), susideda iš dviejų dalių: antraštės ir turinio.
Santykių antraštė yra fiksuotas santykio atributų skaičius:

Kūno santykis yra daug santykių eilučių. kas kortelių santykis reiškia formos porų rinkinį<Имя_атрибута: Значение_атрибута>:

kad atributo reikšmė priklausytų domenui

Santykiai paprastai rašomi taip:

arba trumpesnis

,

arba tiesiog

Santykio atributų skaičius vadinamas laipsnį(arba -ariškumas) santykiai.
Santykio eilučių aibės kardinalumas vadinamas galia santykiai.

Grįžtant prie ankstesniame skyriuje pateiktos matematinės santykio sampratos, galime padaryti tokias išvadas:

1 išvada: Santykio galvutė apibūdina sričių, kuriose yra apibrėžtas ryšys, Dekarto sandaugą. Antraštė yra statinė, ji nesikeičia dirbant su duomenų baze. Jei santykio atributai pakeičiami, pridedami arba ištrinami, rezultatas bus kitoks ryšys (net ir tuo pačiu pavadinimu).

2 išvada: Santykio kūnas yra kortelių rinkinys, t.y. Dekarto domenų sandaugos poaibis. Taigi santykio kūnas iš tikrųjų yra santykis matematine šio žodžio prasme. Ryšio turinys gali keistis dirbant su duomenų baze – eilutes galima keisti, pridėti ir ištrinti.

1 pavyzdys. Panagrinėkime santykį „Darbuotojai“, apibrėžtą domenuose „Darbuotojo_numeris“, „Pavardė“, „Atlyginimas“, „Skyriaus_numeris“. Nes Kadangi visi domenai yra skirtingi, patogu santykio atributus pavadinti taip pat, kaip ir atitinkamus domenus. Santykio antraštė atrodo taip:

Darbuotojai (Darbuotojo_numeris, Pavardė, Atlyginimas, Skyriaus_numeris)

Tegul santykis šiuo metu turi tris eilutes:

(1, Ivanovas, 1000, 1)
(2, Petrovas, 2000, 2)
(3, Sidorovas, 3000, 1)

Toks ryšys natūraliai vaizduojamas lentelės pavidalu:

1 lentelė Santykiai "Darbuotojai"

3 apibrėžimas. Reliacinė duomenų bazė vadinama santykių visuma.

4 apibrėžimas. Reliacinės duomenų bazės schema

Nors bet kokį ryšį galima pavaizduoti kaip lentelę, reikia aiškiai suprasti, kad santykiai nėra lentelės. Tai artimos, bet ne tos pačios sąvokos. Santykių ir lentelių skirtumai bus aptarti toliau.

Terminai, pagal kuriuos veikia reliacinių duomenų modelis, turi atitinkamus „lentelės“ sinonimus:

Santykinis terminas

Atitinkamas „lentelės“ terminas

Duomenų bazė Stalų komplektas
Duomenų bazės schema Lentelių antraščių rinkinys
Požiūris Lentelė
Santykių antraštė Lentelės pavadinimas
Kūno santykis Stalo korpusas
Santykių atributas Lentelės stulpelio pavadinimas
Santykių eilė Lentelės eilutė
Santykių laipsnis (ariškumas). Lentelės stulpelių skaičius
Galios santykis Lentelės eilučių skaičius
Domenai ir duomenų tipai Duomenų tipai lentelės langeliuose

Santykių savybės

Santykių savybės tiesiogiai išplaukia iš aukščiau pateikto santykio apibrėžimo. Šios savybės yra pagrindiniai ryšių ir lentelių skirtumai.

  1. Santykyje nėra identiškų eilučių. Iš tiesų, santykio kūnas yra eilučių rinkinys ir, kaip ir bet kurioje aibėje, negali turėti neatskiriamų elementų (žr. aibės sąvoką 1 skyriuje). Lentelėse, skirtingai nei santykiuose, gali būti identiškų eilučių.
  2. Kortelės nerūšiuojamos (iš viršaus į apačią). Iš tiesų, nepaisant to, kad „Darbuotojų“ santykį pavaizdavome lentelės pavidalu, negalima teigti, kad darbuotojas Ivanovas „lenkia“ darbuotoją Petrovą. Priežastis ta pati – santykio kūnas yra aibė, o aibė nėra sutvarkyta. Tai antroji priežastis, kodėl negalima identifikuoti ryšių ir lentelių – lentelėse eilutės yra sutvarkytos. Tas pats ryšys gali būti pavaizduotas skirtingomis lentelėmis, kuriose eilutės yra skirtinga tvarka.
  3. Atributai nesurikiuoti (iš kairės į dešinę). Nes Kiekvienas atributas turi unikalų pavadinimą santykyje, tada atributų tvarka neturi reikšmės. Ši savybė kažkiek išskiria santykį nuo matematinio santykio apibrėžimo (žr. 1 skyrių – kortelių komponentai ten sutvarkyti). Tai taip pat trečioji priežastis, kodėl negalima sutapatinti ryšių ir lentelių – lentelės stulpeliai yra sutvarkyti. Tas pats ryšys gali būti pavaizduotas skirtingomis lentelėmis, kuriose stulpeliai yra skirtinga tvarka.
  4. Visos atributų reikšmės yra atominės. Tai išplaukia iš to, kad pagrindiniai požymiai turi atomines vertes. Tai ketvirtas skirtumas tarp santykių ir lentelių – į lentelės langelius galite įdėti bet ką – masyvus, struktūras ir net kitas lenteles.

komentuoti. Iš santykio savybių matyti, kad ne kiekviena lentelė gali apibrėžti ryšį. Kad lentelė apibrėžtų ryšį, lentelė turi būti paprastos struktūros (sudėtyje turi būti tik eilutės ir stulpeliai, kiekvienoje eilutėje turi būti vienodas laukelių skaičius), lentelėje negali būti identiškų eilučių, bet kuriame lentelės stulpelyje turi būti duomenys tik vieno tipo, visi naudojami duomenų tipai turi būti paprasti.

komentuoti. Kiekvienas santykis gali būti svarstomas lentelės ekvivalentiškumo klasė, kuriai įvykdytos šios sąlygos:

  • Lentelėse yra tiek pat stulpelių.
  • Lentelėse yra stulpelių vienodais pavadinimais.
  • Stulpeliuose su tais pačiais pavadinimais yra duomenys iš tų pačių domenų.
  • Lentelėse yra tos pačios eilutės, tačiau stulpelių tvarka gali skirtis.

Visos tokios lentelės yra skirtingi to paties ryšio atvaizdai.

Pirma normali forma

Sunkiausia yra apibrėžti dalykus, kuriuos visi supranta. Jei nepateiksite griežto, aprašomojo apibrėžimo, visada yra galimybė jį neteisingai interpretuoti. Jei pateikiame griežtą formalų apibrėžimą, tai, kaip taisyklė, yra arba trivialus, arba pernelyg sudėtingas. Būtent tokia situacija yra apibrėžiant santykius Pirmoji normali forma(1NF). Neįmanoma apie tai visiškai nekalbėti, nes... Remiantis 1NF, sudaromos aukštesnės normalios formos, kurios toliau aptariamos skyriuje. 6 ir 7. Sunku apibrėžti 1NF dėl jo trivialumo. Todėl pateikime tik keletą paaiškinimų.

1 paaiškinimas. Sakoma, kad ryšys yra 1NF, jei jis atitinka 2 apibrėžimą.

Tiesą sakant, tai yra tautologija, nes iš 2 apibrėžimo matyti, kad nėra kitų santykių. Iš tiesų, 2 apibrėžimas apibūdina, kas yra santykis, o kas ne, todėl tiesiog nėra santykių ne pirmąja normalia forma.

2 paaiškinimas. Sakoma, kad ryšys yra 1NF, jei jo atributuose yra tik skaliarinės (atominės) reikšmės.

Vėlgi, 2 apibrėžimas remiasi domeno sąvoka, o domenai apibrėžiami naudojant paprastus duomenų tipus.

Nepirmąją normaliąją formą galima gauti darant prielaidą, kad santykio atributai gali būti apibrėžti sudėtinguose duomenų tipuose – masyvuose, struktūrose ar net kituose santykiuose. Nesunku įsivaizduoti lentelę, kurioje kai kuriose ląstelėse yra masyvai, kitose yra sudėtingos vartotojo apibrėžtos struktūros, o dar kitose yra ištisos reliacinės lentelės, kuriose gali būti tie patys sudėtingi objektai. Tai yra kai kurių šiuolaikinių postrelacinių ir objektinių DBVS teikiamos galimybės.

Reikalavimas, kad santykiuose turi būti tik paprastų tipų duomenys, paaiškina, kodėl santykiai kartais vadinami plokšti stalai(paprastas stalas). Iš tiesų, lentelės, apibrėžiančios ryšius, yra dvimatės. Vienas matmuo nurodomas stulpelių sąrašu, antrasis – eilučių sąrašas. Koordinačių pora (eilės numeris, stulpelio numeris) vienareikšmiškai identifikuoja lentelės langelį ir jame esančią reikšmę. Jei darysime prielaidą, kad lentelės langelyje gali būti sudėtingų tipų duomenų (masyvai, struktūros, kitos lentelės), tada tokia lentelė nebebus plokščia. Pavyzdžiui, jei lentelės langelyje yra masyvas, norėdami pasiekti masyvo elementą, turite žinoti tris parametrus (eilutės numerį, stulpelio numerį, elemento numerį masyve).

Taigi atsiranda trečiasis pirmosios normalios formos paaiškinimas:

3 paaiškinimas. Ryšys yra 1NF, jei jis yra plokščias stalas.

Mes sąmoningai apsiribojame tik klasikine santykių teorija, kurioje visi santykiai turi tik atominius požymius ir akivaizdžiai yra 1NF.

išvadas

Reliacinių duomenų modelis susideda iš trijų dalių:

  • Struktūrinė dalis
  • Neatsiejama dalis
  • Manipuliavimo dalis

Tik klasikiniame reliaciniame modelyje paprasti (atominiai) duomenų tipai. Paprasti duomenų tipai neturi vidinės struktūros.

Domenai– Tai duomenų tipai, kurie turi tam tikrą reikšmę (semantiką). Domenai riboja palyginimus – neteisinga, nors įmanoma, lyginti reikšmes iš skirtingų domenų.

Požiūris susideda iš dviejų dalių - santykio antraštė Ir kūno santykiai. Santykių antraštė yra analogiška lentelės antraštei. Santykio galvutė susideda iš atributų. Atributų skaičius vadinamas santykių laipsnis. Santykio kūnas yra analogiškas lentelės turiniui. Santykių kūnas susideda iš korteles. Santykių eilutė yra analogiška lentelės eilutei. Santykio eilučių skaičius vadinamas galios santykis.

Ryšys turi šias savybes:

  • Santykyje nėra identiškų eilučių.
  • Kortelės nerūšiuojamos (iš viršaus į apačią).
  • Atributai nesurikiuoti (iš kairės į dešinę).
  • Visos atributų reikšmės yra atominės.

Reliacinė duomenų bazė vadinama santykių visuma.

Reliacinės duomenų bazės schema duomenys yra ryšių antraščių rinkinys, įtrauktas į duomenų bazę.

Santykiai yra Pirmoji normali forma(1NF), jei jame yra tik skaliarinės (atominės) reikšmės.