630 likes | 1.11k Views
DUOMENŲ BAZĖS. Telekomunikacijų informacinės technologijos ( 1 dalis). Kas tai yra DUOMENŲ BAZĖ?. Duomenys – realų pasaulį atspindintys skaičiai, faktai, ... Duomenų bazė siaurąja prasme - tai darbui reikalingas duomenų rinkinys.
E N D
DUOMENŲ BAZĖS Telekomunikacijų informacinės technologijos (1 dalis)
Kas tai yra DUOMENŲ BAZĖ? Duomenys – realų pasaulį atspindintys skaičiai, faktai, ... Duomenų bazė siaurąja prasme - tai darbui reikalingas duomenų rinkinys. Tradicinėje duomenų bazių terminologijoje realaus pasaulio objektai, apie kuriuos informacija laikoma DB, vadinami esybėmis (entities), o juos apibūdinantys požymiai - atributais. Duomenų bazė plačiąja prasme - visuma realaus pasaulio objektų ir jų tarpusavio ryšių aprašų, kurie yra svarbūs konkrečiai taikymo sričiai. S.Maciulevičius
Kas tai yra DUOMENŲ BAZĖ? Duomenims, saugomiems DB, būdingos šios savybės: • integruotumas; • nepertekliškumas; • nepriklausomumas. Duomenų integruotumasreiškia, kad visi duomenys kaupiami ir saugomi kartu nustačius jų tarpusavio ryšius. S.Maciulevičius
Kas tai yra DUOMENŲ BAZĖ? Duomenų nepertekliškumas reiškia, jog duomenys saugomi vengiant jų dubliavimo. Kai yra pertekliškumas, t.y. kelios duomenų kopijos, joms veltui eikvojama atmintis, o modifikuojant duomenis tenka kelis kartus naudoti tas pačias atnaujinimo operacijas. Duomenų nepriklausomumas reiškia, kad duomenų apdorojimo programos nesikeičia modifikuojant duomenis. S.Maciulevičius
DB ir DBVS Jei kokia nors pagalbinė duomenų valdymo sistema leidžia dirbti su keliais susijusiais failais, užtikrindama informacijos suderinamumą, ją galima vadinti DBVS- duomenų bazių valdymo sistema. Čia vien bibliotekinių funkcijų nepakanka: tokia sistema privalo turėti savo papildomą vidinę informaciją (metaduomenis)ir netgi žinias, kurios nusako informacijos suderinamumą. S.Maciulevičius
Ką užtikrina DBVS? • Galimybę kurti naujas duomenų bazes ir apibrėžti jų schemą (duomenų loginę struktūrą) naudojant specialią kalbą. • Palaiko labai didelę duomenų apimtį (gigabaitus, dešimtis gigabaitų) ilgą laiko periodą, užtikrina jų apsaugą nuo atsitiktinio sugadinimo ar neautorizuotos kreipties, leidžia modifikuoti DB ir prieigą naudojant specialius kreipinius – užklausas. • Leidžia formuoti užklausas naudojant specialią kalbą. • Kontroliuoja vienalaikius kreipinius į DB, užtikrinant jų nepriklausomą vykdymą ir korektišką informacijos pateikimą. S.Maciulevičius
Informacijos “ištraukimas” Tarkime, norime sužinoti, kiek studentų mokosi toje grupėje, kurioje yra Jonas Petraitis. Kaip tokią informaciją rasti minėtuose failuose? Būtų gerai, kad DBVS leistų formuluotų užklausą kalba, artima natūraliai. SQL tai skamba taip: SELECT gr_vardas, gr_dydis FROM STUDENTAI, STUDGRUP WHERE stud_pav=“Jonas Petraitis” AND stud_gr=gr_vardas S.Maciulevičius
Informacijos “ištraukimas” Arba norime sužinoti, kurie studentai gauna padidintas stipendijas. Kaip tokią informaciją rasti minėtuose failuose? SQL tai galima formuluoti tokią užklausą: SELECT stud_pav FROM STUDENTAI WHERE stipend =“padid” S.Maciulevičius
DBVS atsiradimas Pirmosios komercinės DBVS pasirodė šeštojo dešimtmečio pabaigoje. Tai buvo: • aviabilietų rezervavimo sistemos: • bilietų broniravimas pagal pageidavimą, • informacija apie skrydžius, • informacija apie laisvas vietas, bilietų kainas; • bankininkystės sistemos: • informacija apie klientus, • informacija apie sąskaitas, paskolas, • Įmokos, grynųjų išdavimas ; • prekybos apskaitos sistemos: • informacija apie sąskaitas, • informacija apie darbuotojus, • ... S.Maciulevičius
DBVS vystymasis DBVS vystymesi galima išskirti tris etapus: 1. Pirmosios kartos DBVS pagrindas - duomenų hierarchinis ir tinklinis modeliai; tai buvo tie laikai, kai dominavo didieji kompiuteriai (mainframes).Išorinė sąsaja nebuvo standartizuota, programų pernešamumas - taip pat. 2. Antrosios kartos DBVS pagrindas - duomenų reliacinis modelis ir SQL; modelio lankstumas ir paprastumas patraukė daugumos DB projektuotojų dėmesį. šios DB populiarios ir dabar, tačiau daugelis jų išsivystė į trečiosios kartos DBVS. S.Maciulevičius
DBVS vystymasis 3. Trečiosios kartos DBVS - sudėtingos daugia-funkcijinės programinės sistemos, funkcionuo-jančios atviroje terpėje; joms būdingas objektiškai orientuotas programavimas, DB paskirstymas, lygiagretus užklausų apdorojimas, daugelio srautų architektūra. S.Maciulevičius
Hierarchinis duomenų modelis Hierarchiniam duomenų modeliui yra būdingas žemesnio lygmens objektų pavaldumas aukštesniojo lygmens objektams. Vienasįrašas yra pagrindinis, kiti - pavaldūs. Aukštesnio ir žemesnio lygmens objektus sieja ryšys “vienas su daugeliu”. Be įprastinių operatorių, tokiose DB naudojami ir perėjimo iš vieno hierarchijos lygio į kitą operatoriai S.Maciulevičius
DĖSTYTOJAS Tab.Nr. Pavardė Vardas MODULIS Mod.kodas Pavadinimas STUDENTAS Paž.Nr. Pavardė Vardas Įvertinimas Hierarchinis duomenų modelis Čia įrašas DĖSTYTOJAS yra šakninis, o įrašas MODULIS – pavaldus DĖSTYTOJAS atžvilgiu ir pagrindinis įrašui STUDENTAS S.Maciulevičius
Hierarchinio modelio privalumai • modelio įsisavinimo (supratimo) paprastumas – vartotojai dažniausiai gerai susipažinę su hierarchinėmis (medžio tipo) duomenų struktūromis • DB charakteristikų, įvertinančių laiko ir atminties sąnaudas, įvertinimo paprastumas dėl iš anksto apibrėžtų ryšių tarp duomenų. S.Maciulevičius
Hierarchinio modelio trūkumai • Priėjimas prie bet kokio pavaldaus įrašo galimas tik per pagrindinį įrašą, todėl gali išaugti kreipties į žemesniųjų lygių įrašus laikas • Negali būti tiesiogiai realizuojami abipusiai sudėtingi ryšiai (“daugelis su daugeliu”) • Sudėtingos duomenų įvedimo ir šalinimo operacijos, nes modelio objektai griežtai sutvarkyti. S.Maciulevičius
Tinklinis duomenų modelis Tinkliniuose duomenų modeliuose leidžiama didesnė ryšių tarp įrašų įvairovė. Įrašas gali būti susietas su kitu įrašu nepriklausomai nuo jo lygio. Tinklinių DB pagrindinis sandaros elementas yra rinkinys.Rinkinys sujungia kelių tipų įrašus ir skirtas pastoviems įrašų ryšiams vaizduoti. Tinklinis modelis aprašomas kaip apibrėžtų tipų rinkinių kompozicija. S.Maciulevičius
DĖSTYTOJAS Tab.Nr. Pavardė Vardas MODULIS R1 Mod.kodas Pavadinimas R2 STUDENTAS Paž.Nr. Pavardė Vardas Įvertinimas Tinklinis duomenų modelis Tą pačią studijų DB galima pavaizduoti taip: S.Maciulevičius
Tinklinio modelio privalumai ir trūkumai • Tinklinio modelio pagrindinis privalumas – dažnai egzistuojančių realiame pasaulyje ryšių “daugelis su daugeliu” realizacijos paprastumas. • Pagrindinis trūkumas – jo sudėtingumas: vartotojas turi gerai išmanyti loginę DB struktūrą, nes jam reikia atlikti navigaciją tarp įvairių rinkinių ir įrašų egzempliorių. S.Maciulevičius
Objektinis duomenų modelis • Objektinio modelio DB kuriamos naudojant objektines technologijas. • Šiuose modeliuose naudojami objektai, kuriems būdingi ne tik jų savybes aprašantys atributai, bet ir jiems taikomų veiksmų rinkiniai. S.Maciulevičius
Objektinis duomenų modelis Objektinio modelio sandaros elementai artimi objektinio programavimo sąvokoms: • objektai – visi duomenys vaizduojami objektais; • klasės – kiekvienas objektas priklauso konkrečiai klasei; • paveldimumas – objektai paveldi savo klasės ir visų aukštesnių klasių savybes; • atributai – tai klasės objektų charakteristikos; • pranešimai – objektai tarpusavyje bendrauja pranešimais; S.Maciulevičius
Objektinis duomenų modelis • metodai – gavęs pranešimą, objektas imasi atitinkamo metodo, t.y. vidinės programos, kuri realizuoja pranešimo apdorojimą (objekto veiksmų visuma aprašoma metodų aibe); • inkapsuliacija (įslaptinimas) – vidinė objekto sandara ir duomenys yra paslėpti; • informacija apie objekto būseną – ją galima gauti ir šią būseną keisti galima tik atitinkamais metodais; • objektų tapatumo požymiai – jie naudojami atskirti vieniems objektams nuo kitų bei sąryšiuose tarp objektų S.Maciulevičius
Reliacinis duomenų modelis 1970 m. buvo išleista E.Kodo (Codd E.F.) knyga“A relational model for large shared data banks”, smarkiai pakeitusi duomenų bazes. Kodas pasiūlė duomenis organizuoti lentelių pavidalu, nurodant jų sąryšius. Jau nagrinėjome tokį pavyzdį: stud_kodstud_pav stud_ vardstud_gr kurs stip … grupe gr_dydis specializ gr_kurs stip_sk... S.Maciulevičius
Reliacinis duomenų modelis Reliacinė duomenų bazė – tai tokia duomenų visuma kurioje informacija saugoma dvimatėse lentelėse. Kiekviena lentelė susideda iš eilučių (dar vadinamų įrašais arba kortežais (record)) ir stulpelių (dar vadinamų laukais arba atributais (field)). Naudosime įvairias šių terminų poras. Eilutėse yra duomenys apie pateiktus lentelėje faktus (dokumentus, žmones, vienu žodžiu, – vieno tipo objektus). Stulpelių ir eilučių susikirtimuose yra konkrečios saugomų lentelėje duomenų reikšmės (laukų reikšmės). S.Maciulevičius
Reliacinis duomenų modelis Čia naudojamas gana paprastos ir nesunkiai įsisavinamos duomenų tvarkymo operacijos. Modelio pavadinimas kilęs iš anglų kalbos žodžio “relation” – sąsaja. Tai reiškia, kad bet kurias duomenų rinkinių priklausomybes galima apibrėžti lentelėmis aprašomomis sąsajomis. Vartotojai reliacinę duomenų bazę gali įsivaizduoti kaip lentelių sistemą ir iš jose laikomų duomenų paprastomis operacijomis formuoti naujus darinius ir įvairias ataskaitas. S.Maciulevičius
Reliacinis duomenų modelis S.Maciulevičius
Reliacinių duomenų bazių lentelės Reliacinėse DB kiekviena lentelė pasižymi tokiomis savybėmis: • Visi įrašai yra vienodai organizuoti, turi tą pačią struktūrą. Visuose įrašuose yra tiek pat laukų, o laukai yra vienarūšiai, t. y. kiekvieno lauko reikšmės yra vieno tipo. Tačiau skirtinguose laukuose gali būti įvairių tipų duomenys; • Lentelėje negali būti tuščių įrašų, taip pat identiškų įrašų, t. y. įrašų su pilnai pasikartojančiais duomenimis, nors atskiri duomenų elementai gali būti tušti arba pasikartojantys; • Įrašų ir laukų išdėstymo tvarka lentelėje nėra svarbi. Atliekant duomenų apdorojimo operacijas lentelės eilutės ir stulpeliai gali būti peržiūrimi bei tvarkomi bet kuria tvarka, nepriklausomai nuo jų informacinio turinio. S.Maciulevičius
Reliacinis modelis Vystydamas reliacinį modelį, K.Deitas pasiūlė jį sudaryti iš 3 dalių: • duomenų laikymo struktūrų aprašo, • integralumo sąlygų aprašymo, • manipuliavimo priemonių aprašymo. Duomenų laikymo struktūrų aprašuose nurodoma, kaip sąsajomis aprašomi modeliuojamos dalykinės srities objektai, o integralumo sąlygomis nurodoma, kokius apribojimus šie aprašymai turi tenkinti. Manipuliavimo priemonių aprašyme pateikiamos modelio duomenų tvarkymo priemonės. S.Maciulevičius
Reliacinių duomenų bazių privalumai • Pakanka nedidelio skaičiaus abstrakcijų, kurios leistų palyginus paprastai modeliuoti didžiąją dalykinių sričių dalį ir, būdamos intuityviai paprastos, būtų tiksliai apibrėžtos. • Yra paprastas ir kartu galingas matematinis aparatas, besiremiantis aibių teorija ir matematine logika, užtikrinantis reliacinio požiūrio į DB organizaciją teorinius pagrindus. • Galimybė manipuliuotui duomenimis nenaudojant navigacinių principų ir nežinant duomenų fizinio išdėstymo išorinėje atmintyje ypatumų. S.Maciulevičius
Reliacinės duomenų bazės Nors teoriniai reliacinių DB pagrindai buvo padėti dar 1970 metais, buvo sukurti pirmieji jų prototipai, kurį laiką buvo manoma, kad tokias DB neįmanoma realizuoti efektyviai. Praėjus pusantro dešimtmečio, sukaupus DB realizacijos metodus ir algoritmus, reliacinės DB praktiškai išstūmė kitų tipų DBVS. S.Maciulevičius
Reliacinės DB: pagrindinės sąvokos Pagrindinės reliacinių DB sąvokosyra tokios: • duomenų tipai, • domenai, • kortežai, • atributai, • laukai, • įrašai, • pirminis raktas, • sąryšiai arba sąsajos. Grįžkime prie jau matytos lentelės: stud_kod stud_pav stud_vardstud_gr kurs stip S.Maciulevičius
Sveikieji skaičiai Simbolių eilutės Pinigai Studento kodas Pavardė Vardas Grupė Kursas Stipendija Reliacinės DB: pagrindinės sąvokos Duomenų tipai Domenai Pirminis raktas Atributai Santykis STUDENTAI Kortežai S.Maciulevičius
Reliacinės DB: duomenų tipai Reliacinių DB modelyje duomenų tipų sąvoka atitinka programavimo kalbose sutinkamą duomenų tipų sąvoką. Paprastai sutinkami duomenų tipai - simbolių eilutės, skaitinės reikšmės (sveikieji, dešimtainiai ir slankaus kablelio skaičiai), bitų eilutės, specialios skaitinės reikšmės (pinigai), specialios laiko reikšmės (data, laikas). S.Maciulevičius
Reliacinės DB: domenai Domenu laikomas duomenų tipas, kuriam priklauso to domeno elementai. Intuityviai tai reiškia, kad domenas – tai duotojo duomenų tipo reikšmių, kurias gali įgyti domeno elementai, aibė. Pavyzdžiui, domenas “studento kodas” mūsų atveju – tai šešiaženkliai skaičiai – studentų pažymėjimų numeriai. S.Maciulevičius
Reliacinės DB: domenai Domenas tenkina tokius reikalavimus: • turi unikalų vardą; • sudaromas elementaraus duomenų tipo bazėje; • gali būti apibrėžtos loginės sąlygos, kurias privalo tenkinti visos jo reikšmės; • turi tam tikra su modeliuojama dalykine sritimi susijusią prasmę. S.Maciulevičius
Reliacinės DB: DB schema, kortežai Domenų bazės schema laikoma aibė porų “atributo vardas” – “duomenų tipas” (domenas). Kortežu vadinama aibė porų “atributo vardas” – “reikšmė” . Atributu laikoma viena objekto savybė (pvz., studento pavardė) arba kelių savybių (pvz., studento vardas ir pavardė) aprašymo struktūra. S.Maciulevičius
Reliacinės DB: sąsajos Pagrindinė reliacinių modelių duomenų aprašymo priemonė yra sąsaja. Domenų D1, D2, ..., Dn bazėje sąsają apibrėžia antraštė ir duomenys. Antraštė – tai griežtai fiksuota atributų Ai (i=1,2,…,n) aibė, kurioje kiekvieno atributo reikšmes apibrėžia jo domenasDi: (< A1:D1>, <A2:D2>, <An:Dn>). Visi atributų aibės elementai privalo būti skirtingi. S.Maciulevičius
Reliacinės DB: sąsajos Kortežų aprašymo sintaksė yra tokia: (< A1:V1>, <A2:V2>, <An:Vn>). Čia Vi žymi atributo Ai reikšmę, priklausančią domenui Di. S.Maciulevičius
Reliacinės DB: sąsajos Sąsajos sudėtingumą apibūdina jos laipsnis ir galia. Sąsajos laipsniu vadinamas sąsajos antraštę sudarančių atributų skaičius. Sąsajos galia vadinamas sąsajos kortežų skaičius. Reliacinių modelių sąsajose unikalios gali būti ne tik kortežų, bet ir atskirų atributų arba jų grupių reikšmės. S.Maciulevičius
Reliacinės DB: raktai Tokie atributai arba jų grupės vadinami raktais. Raktus patogu naudoti kortežams atskirti (identifikuoti). Atributų poaibis K vadinamas sąsajos potencialiu raktu, kai jam būdingos tokios savybės: • sąsajoje nėra nei vienos kortežų poros su vienodomis poaibio K reikšmėmis (unikalumo reikalavimas), • poaibyje K negalima išskirti kito poaibio, kuris tenkintų unikalumo reikalavimą (nepertekliškumo reikalavimas). Kiekviena sąsaja visuomet turi bent vieną potencialų raktą. Iš vieno atributo sudarytas raktas vadinamas paprastu arba elementariu, jei raktą sudaro keli atributai – sudėtiniu. S.Maciulevičius
Reliaciniųmodelių ir lentelių atitikmenys S.Maciulevičius
Reliacinės algebros pagrindai Reliacinėje algebroje apibrėžti sąsajoms taikomi operatoriai, kurių rezultatai taip pat yra sąsajos. Jie skirstomi į dvi grupes, kurios skirtos tokiems tikslams: • aibėms taikomiems veiksmams aprašyti (sujungimui, sankirtai, skirtumui, Dekarto sandaugai), • specialiems sąsajų tvarkymo veiksmams aprašyti (atrinkimui, projekcijai, sujungimui, dalybai). Kai kurie operatoriai (pavyzdžiui, sujungimo) reikalauja argumentų sąsajų suderinamumo. Sąsajos suderinamos, kai būna vienodos jų antraštės. S.Maciulevičius
Reliacinės algebros pagrindai Tarkime, turime dvi tokias sąsajas: Sąsaja A: Sąsaja B: S.Maciulevičius
Reliacinės algebros pagrindai Tuomet sąsajų A ir B sujungimas (A UNION B) gaunamas paimant abiejų sąsajų kortežus: Sujungimo rezultate negali būti pasikartojančių kortežų, o sąsajos turi būti suderinamos (jų antraštės vienodos). S.Maciulevičius
Reliacinės algebros pagrindai Sąsajų A ir B sankirta (A INTERSECT B) gaunama paimant abiejų sąsajų bendrus kortežus: S.Maciulevičius
Reliacinės algebros pagrindai Sąsajų A ir B skirtumu (A MINUS B) vadinama su argumentais suderinama sąsaja, kurios duomenų dalyje yra tik tie sąsajos A kortežai, kurių nėra atėminyje B: S.Maciulevičius
Reliacinės algebros pagrindai Imkime dar vieną sąsaja C: S.Maciulevičius
Reliacinės algebros pagrindai Tuomet sąsajų A ir C Dekarto sandauga (A TIMES C) duoda naują sąsają, kurios antraštę sudaro sąsajų A ir C antraščių junginys, o kortežus sudaro A ir C kortežų kombinacijos: S.Maciulevičius
Kitos reliacinės algebros operacijos Apribojimo pagal duotąją sąlygą operacija duoda sąsają, į kurią įeina tik tie kortežai, kurie tenkina duotąją sąlygą. Vykdant projekcijos į duotąjį argumentų rinkinį operaciją gaunama sąsaja, kurios kortežus sudaro sąsajos-operando kortežų dalys, paimtos iš nurodytų stulpelių. Sujungiant dvi sąsajas pagal duotąją sąlygą gaunama sąsaja, kurios kortežai gaunami sukabinus abiejų sąsajų kortežus, kurie tenkina duotąją sąlygą. S.Maciulevičius
Duomenų bazės valdymo sistema Svarbiausios DBVS funkcijos yra šios: • DB struktūros projektavimas; • DB pildymas, kaupimas, redagavimas; • navigacija DB; • duomenų peržiūra, paieška, rikiavimas ir kitas tvarkymas; • taikomųjų vartotojo programų kūrimas; • ataskaitų kūrimas. S.Maciulevičius
Pagrindinės DBVS funkcijos 1. Betarpiškas išorinėje atmintyje saugomos informacijos valdymas: • būtinos struktūros pačių DB duomenų saugojimui; • specialios priemonės darbui pagreitinti (indeksavimas); • turimų failų sistemų galimybių panaudojimas; • išorinės atminties valdymas įrenginių lygiu. 2. Pagrindinės informacijos buferių valdymas: • DB duomenų buferizavimo pagrindinėje atmintyje svarba; • visos DB buferizavimas. S.Maciulevičius