420 likes | 1.16k Views
Duomenų bazės (DB). Reliacinės DB . Duomen ų baz ė s samprata ; Duomenų organizavimo (DB) modeliai; Reliacinės duomenų bazės ir jų savybės; Duomenų normalizavimas ir normalinės formos. Duomen ų baz ė s samprata. Sutvarkyti duomenys. Duomenys ir programinė įranga.
E N D
Duomenų bazės (DB). Reliacinės DB • Duomenų bazės samprata; • Duomenų organizavimo (DB) modeliai; • Reliacinės duomenų bazės ir jų savybės; • Duomenų normalizavimas ir normalinės formos.
Duomenų bazės samprata Sutvarkyti duomenys Duomenys ir programinė įranga Duomenų bazė- tai kartu saugomų ir susijusių duomenų, skirtų apdoroti kompiuteriu, visuma. Duomenų bazė – tai tarpusavyje susietų struktūrizuotų duomenų visuma, skirta tam tikrai tematikai ar tikslams. Duomenų bazė – taiduomenys + programinė įranga (DBVS), skirta duomenų struktūroms kurti ir įvairiais būdais juos apdoroti.
Duomenų bazės samprata (2) Reikiaatskirti fizinį ir loginį duomenų organizavimą. Pirmasis nurodo duomenų fizinio išdėstymo būdus kompiuterio atmintyje, o antrasis - duomenų struktūros vaizdavimą - modelį, reikalingą ir suprantamą vartotojams. Loginėms duomenų struktūroms aprašyti naudojami šie terminai: Duomenų elementas (laukas) – mažiausias aprašytų duomenų vienetas; Įrašas – įvardytas DE ar agregatų rinkinys, kurį taikomoji programa (DBVS) traktuoja kaip nedalomą vienetą; Duomenų agregatas (grupė) – įvardyta DE visuma, kuri įrašo viduje traktuojama kaip nedaloma grupė; Failas – įvardyta visų duoto tipo įrašų visuma; Duomenų bazė – įvairių tipų įrašų ir santykių tarp įrašų, duomenų agregatų ir elementų visuma.
DB duomenų savybės Duomenims, saugomiems duomenų bazėje, būdingos šios savybės: • vientisumas( integralumas); • nepertekliškumas; • neprieštaringumas; • saugumas; • nepriklausomumas.
Duomenų organizavimo modeliai • Pagal tai, kokiu būdu duomenys jungiami į visumą, išskiriami šie duomenų organizavimo modeliai (DB tipai): • hierarchinis modelis; • tinklinis modelis; • reliacinismodelis; • objektinis modelis. • Pastaruoju metu populiariausios duomenų bazės, kuriose duomenys organizuojami pagal reliacinį modelį, - tai reliacinės duomenų bazės.
Direktorius Pirkimų vadovas Pardavimų vadovas Vadybininkas Vadybininkas Vadybininkas Hierarchinis modelis (vienas-su-daugeliu ryšių) Hierarchiniam duomenų modeliui yra būdingas žemesnio lygmens objektų pavaldumas aukštesniojo lygmens objektams. 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. Pavyzdžiui,
Hierarchinis modelis (2) Kiekvienas įrašas: • sudaromas iš dviejų elementų: raktu vadinamo pagrindinio laukoir jam pavaldžių laukų rinkinio; • hierarchinėje struktūroje gali turėti daug nuorodų į jam pavaldžius įrašus ir tik vieną nuorodą į valdantį (esantį aukštesniame hierarchijos lygyje) įrašą; • Privalumai: • žemesnio lygio objektai „tiesiogiai pavaldūs“ aukštesnio lygio objektams; • pavaldumo ryšiai yra natūrali daugumos mūsų aplinkos objektų savybė. • Trūkumai: • labai dažnas duomenų dubliavimas, kuris užima daugiau atminties ir pristabdo greitą reikiamos informacijos paiešką; • galima naudoti tik mažai ir nesudėtingai duomenų bazei kurti.
Klientas nr. 1 Klientas nr. 2 Klientas nr. 3 Maisto prekių parduotuvė Drabužių parduotuvė Batų parduotuvė Tinklinis modelis (daugelis-su-daugeliu ryšių) Tinklinę duomenų struktūrą galima pateikti, pavyzdžiui, tokia schema: • Privalumai: • aprašo ryšius tarp nepriklausomų duomenų elementų; • plačiai naudojama prekyba užsiimančiose įmonėse; • išvengiama duomenų dubliavimo, o tai savo ruoštu paspartina paiešką ir sutaupoma vietos atmintyje; • galima naudoti ir didelių bazių kūrimui.
Reliacinis duomenų modelis Reliacinį duomenų modelį 1969 metais pasiūlė firmos IBM darbuotojas E.F.Kodas (E.F.Codd). 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).
Dvimatė lentelė Lauko sąvoka atitinka DE sąvoką anksčiau nagrinėtuose duomenų vaizdavimuose. Į lentelės įrašus įtraukiamos duomenų porcijos, kurias sudaro DE reikšmės, dar vadinamos laukų reikšmėmis (pvz., «A2599», «98 01 26» ir pan.). Bet kurios eilutės ir bet kurio stulpelio susikirtime turi būti tik viena DE reikšmė, o ne tų reikšmių rinkinys. 6.1 pav.
Reliacinės duomenų bazės savybė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. atskiro lauko reikšmės yra vieno tipo. Tačiau skirtinguose laukuose gali būti skirtingų tipų duomenys; • Lentelėje negali būti tuščių įrašų, taip pat identiškų įrašų, t.y. įrašų su 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. • Kiekvienai lentelei suteikiamas vardas. Lentelės vardas turėtų atspindėti atitinkamo realaus informacinio objekto pavadinimą, o laukų vardai – to objekto atributų pavadinimus.
Lentelių raktai Lentelėms nustatomi raktai, t. y. laukai ar laukų grupės, kurių įgyjamos reikšmės yra nepasikartojančios, taigi šios reikšmės vienareikšmiškai identifikuoja tų lentelių įrašus. Lentelės gali turėti po kelis raktus, iš kurių konkrečiu momentu faktiškai naudojamas tik vienas - pirminis raktas (primary key). Jei pirminį raktą sudaro keli laukai, jis vadinamas sudėtiniu pirminiu raktu (composite primary key).
Užsakymai UŽSAKYMO NUMERIS PIRKĖJO KODAS PREKĖS KODAS UŽSAKYMO DATA UŽSAKYTAS KIEKIS CUSTOMERS CustomerID CompanyName City Country …. Lentelių pateikimo formos Sutrumpinta lentelių pateikimo forma, kai iš pradžių užrašomas lentelės vardas, o po to tarp skliaustelių išvardijami lentelės laukų vardai pabraukiant raktinius laukus, vadinama lentelės schema. 6.1 pav. pateiktos lentelės schema atrodo taip: UŽSAKYMAI (UŽSAKYMO NUMERIS, PIRKĖJO KODAS, PREKĖS KODAS, UŽSAKYMO DATA, UŽSAKYTAS KIEKIS). Didesniam vaizdumui gauti nustatant ryšius tarp lentelių taip pat dažnai naudojama stačiakampė lentelės schema:
Ryšiai tarp lentelių Į reliacinių DB sudėtį įeinančios lentelės tarpusavyje susiejamos. Ryšį tarp atskirų lentelių nustato bendri, sutampantys tų lentelių laukai, kurie dar vadinami siejančiais laukais (išoriniu raktu). Taip susietų lentelių visuma ir apibrėžia reliacinį modelį. Galima pastebėti reliacinio modelio tam tikro laipsnio pertekliškumą. Pertekliniai laukai įvedami dažniausiai dėl dviejų priežasčių: a) daliai lentelių reikalingi laukai, skirti suformuoti pirminius raktus, t.y. vienareikšmius lentelių įrašų identifikatorius; b) kai kurioms lentelėms reikalingi laukai, kurie nėra pirminiai raktai (ar jų dalis), bet naudojami nustatyti ryšiams.
Išvykimo punktas Reiso Nr. Atvykimo punktas Lėktuvo tipas Reiso Nr. + Data Laisvos vietos Reliacinis DB modelis Ankstesnėje temoje suformuotą rodyklinį bilietų rezervavimo DB modelį: pervesime į reliacinį DB modelį: REISAS(REISO_NR., IŠVYKIMO PUNKTAS, ATVYKIMO PUNKTAS, LĖKTUVO TIPAS); LAISVOS VIETOS(REISO_NR., DATA, LAISVOS VIETOS). Arba:
REISAS REISO_NR. IŠVYKIMO PUNKTAS ATVYKIMO PUNKTAS LĖKTUVO TIPAS LAISVOS VIETOS REISO_NR. DATA LAISVOS VIETOS OrderID (PK) CustomerID (FK) OrderDate Freight Ship Address …. CustomerID (PK) CompanyName City Country …. Reliacinis DB modelis (2) PK – Primary Key (pirminis raktas) FK – Foreign Key (išorinis raktas)
Reliacinis DB modelis (3) Pirmoje schemoje sąryšį (relationchip) tarp lentelių sukuria raktinis atributas „Reiso Nr.”. Čia lentelė „REISAS” vadinama pagrindine (master) lentele lentelės „LAISVOS VIETOS” atžvilgiu, o lentelė „LAISVOS VIETOS” - antrine (detail) lentele lentelės „REISAS” atžvilgiu. Antroje schemoje raktiniai atributai CustomerID išskirti į pirminį (PK) ir išorinį (FK) raktus. Laukas, nurodantis įrašą kitoje lentelėje, kuris susijęs su duotu įrašu, vadinamas išoriniu raktu (foreign key). Mūsų atveju lentelės Orders išorinis raktas yra laukas CustomerID. Kitaip tariant, išorinis raktas – tai laukas ar jų rinkinys, kurio reikšmės sutampa su kitos lentelės pirminio rakto reikšmėmis. Ryšys tarp lentelių nustatomas (sudaromas) priskiriant vienos lentelės išorinio rakto reikšmes kitos lentelės pirminio rakto reikšmėms.
Įstaigos darbinės veiklos reliacinės DB modelis SKYRIUS (SKYRIAUS_NR, PAVADINIMAS, VADOVAS, BIUDŽETAS); DARBAS (DARBO_NR, SKYRIAUS_NR, DARBO_APRAŠYMAS); DARBUOTOJAI (DARBUOTOJO_NR, DARBO_NR, PAVARDĖ, SKYRIAUS_NR, ALGA); DARBINĖ_VEIKLA (PASKYRIMO_DATA, DARBUOTOJO_NR, PAREIGOS); ALGOS_KEITIMAI (KEITIMO_DATA, DARBUOTOJO_NR, ALGA). Čia atsižvelgiama į tai, jog požymis „DARBO_NR” nėra visuotinai priimtas identifikatorius įstaigoje, o kiekviename skyriuje yra savi darbų numeriai. Todėl pilnai darbų identifikacijai į lentelės „DARBAS” schemą įvedamas papildomas laukas „SKYRIAUS_NR”, kuris kartu su lauku „DARBO_NR” sudaro pirminį raktą. Laukas „DARBUOTOJO_NR” įvedamas į lentelių „DARBINĖ_VEIKLA” ir „ALGOS_KEITIMAI” schemas taip pat kaip pirminio rakto dalis. Į lentelę „DARBUOTOJAI” įvestas papildomas laukas („DARBO_NR”), neįeinantis į pirminio rakto sudėtį, bet naudojamas ryšiui užtikrinti.
Reliacinė DB lentelių schema DARBUOTOJAI DARBUOTOJO_NR DARBO_NR PAVARDĖ SKYRIAUS_NR ALGA ALGOS_KEITIMAI KEITIMO_DATA DARBUOTOJO_NR ALGA DARBAS DARBO_NR SKYRIAUS_NR DARBO_APRAŠYMAS DARBINĖ_VEIKLA PASKYRIMO_DATA DARBUOTOJO_NR PAREIGOS SKYRIUS SKYRIAUS_NR. PAVADINIMAS VADOVAS BIUDŽETAS
Duomenų normalizavimas ir normalinės formos Normalizavimas yra dalykinės srities (DS) objektų ir jų ryšių apibrėžimas, naudojant reliacinį modelį. Tai formalus metodas, leidžiantis identifikuoti lenteles pagal pirminius raktus ir jų laukų funkcines priklausomybes. Jis susideda iš aibės taisyklių, kurios leidžia normalizuoti DB iki norimo lygio. Jei lentelė netenkina jos laukų funkcinių priklausomybių reikalavimų, ji turi būti suskaidyta į paprastesnės struktūros lenteles. Šis procesas vadinamas normalizavimu. Jo metu sprendžiamos tokios problemos: • kaip sugrupuoti duomenų elementus, t. y. kokius laukus surinkti į vieną lentelę (kad išvengti nepageidaujamų funkcinių priklausomybių tarp lentelių laukų); • kaip parinkti raktus; • kaip tarp lentelių nustatyti ryšius. Normalizuojama keliais žingsniais (etapais), kurių metu lentelės įgyja atitinkamas pateikimo formas, vadinamas normalinėmis formomis (NF). Normalizuojamos lentelės pervedamos iš vienos NF į kitą.
Lentelės laukų funkcinės priklausomybės Pirmiausia apibrėšime terminą „funkcinė priklausomybė”. Sakoma, kad lentelės laukas B funkcionaliai priklauso nuo tos pačios lentelės lauko A, jei bet kuriuo momentu kiekvieną A reikšmę atitinka ne daugiau kaip viena B reikšmė. Kitaip tariant, A lauko reikšmės identifikuoja B lauko reikšmes. Trumpai tai užrašoma naudojant rodyklę: A B. Jei keli laukai priklauso nuo vieno lauko A, pateikiamas jų sąrašas, pvz., A B, C, D. Pvz.: lentelėje DARBUOTOJAI (DARBUOTOJO_NR, DARBO_NR, PAVARDĖ, SKYRIAUS_NR, ALGA); DARBUOTOJO_NRPAVARDĖ
Laukų funkcinės priklausomybės • Jei neraktinis laukas funkcionaliai priklauso nuo sudėtinio rakto atskiros dalies, tai suprantama kaip šio lauko dalinė funkcinė priklausomybėnuo rakto. • Jei neraktinis laukas priklauso tik nuo viso sudėtinio rakto, o ne nuo atskirų dalių, tai sakoma, kad yra pilna funkcinė šio lauko priklausomybė nuo rakto. • Jei A, B ir C laukams egzistuoja priklausomybės A B bei B C, bet atvirkštinių priklausomybių nėra, tai sakoma, kad C tranzityviai priklauso nuo A. Funkcinės priklausomybės atspindi duomenų vidinius, prasminius ryšius, tuo tarpu laukai - duomenų struktūrą.
Normalinės formos (NF) • Yra trys pagrindinės NF. • Lentelė yra pirmosios normalinės formos (1NF), jeigu kiekvienas neraktinis laukas yra pilnoje arba dalinėje funkcinėje priklausomybėje nuo bet kokio galimo tos lentelės rakto.Visi laukai yra atomariniai, t.y. mažiausios įmanomos komponentės. T.y. kiekvienos lentelės lauke yra tik viena reikšmė, o ne jų rinkinys. • Lentelė yra antrosios normalinės formos (2NF), jeigu ji yra 1NF ir kiekvienas jos neraktinis laukas yra pilnoje funkcinėje priklausomybėje nuo bet kokio galimo tos lentelės rakto. • Lentelė yra trečiosios normalinės formos (3NF), jeigu ji yra 2NF ir kiekvienas jos neraktinis laukas yra tiesioginėje pilnoje, bet ne tranzityvioje priklausomybėje nuo bet kokio galimo tos lentelės rakto. T.y. reikia užtikrinti, kad visi neraktiniai laukai būtų vienas nuo kito nepriklausomi. Jei taip nėra, reikia sukurti naują lentelę (sąryšį), kuri neturėtų neraktinių lakų tarpusavio priklausomybės.
1 NF 1NF lentelės pavyzdys. Informacija apie gaminių tiekimą. Lentelės schema yra tokia: TIEKIMAS(TIEKĖJO_NR(TN),GAMINIO_NR(GN), TIEKĖJO_PAVARDĖ(TP), DUOMENYS_APIE_TIEKĖJĄ(TD), TIEKIMO_KAINA(TK)). Funkcinės priklausomybės tarp šios lentelės laukų: TN+GN TP, TD, TK TN TP, TD . Čia pirmoje eilutėje parodytos pilnos funkcinės priklausomybės nuo pirminio rakto, o antroje - dalinės funkcinės priklausomybės nuo sudėtinio rakto dalies TN. Kaip matome, laukai TP ir TD, būdami neraktiniais laukais, funkcionaliai priklauso nuo vienintelio galimo rakto TN+GN dalies TN. Taigi ši lentelė nėra 2NF, tai reiškia, kad ji yra 1NF.
1 NF anomalijos Pirmos NF lentelių apdorojimui būdinga nemaža keblumų, vadinamų anomalijomis: • Įvedimo anomalija. Negalima įvesti tam tikrų duomenų tol, kol neįvesta pilna rakto reikšmė (pvz., pateiktoje lentelėje TIEKIMAS negalima įvesti jokių duomenų apie tiekėją iki to laiko, kol jis nepristatęs kokio nors gaminio). • Atnaujinimo (keitimo) anomalija. Reikia didelių papildomų laiko, atminties resursų, atnaujinant lentelėje dažnai pasikartojančias reikšmes bei įterpiant lentelėje naujus laukus (pvz., norint įvesti papildomus duomenis apie tiekėją, reikės juos daug kartų kartoti, jei tiekėjo pristatomų gaminiųįvairovė didelė). • Šalinimo anomalija. Šalinant tam tikrus duomenis, gali būti prarasta naudinga informacija, netiesiogiai susijusi su šalinamais duomenimis (pvz., šalinant konkretų tiekėją, atsiranda pavojus prarasti informaciją apie gaminius, jei juos tiekė tik šis tiekėjas).
TIEKĖJAI TIEKIMAS *TIEKĖJO_NR, TIEKĖJO_PAVARDĖ DUOMENYS_APIE_TIEKĖJĄ *TIEKĖJO_NR *GAMINIO_NR TIEKIMO_KAINA 1 NF anomalijų šalinimas Tokio tipo anomalijas galima panaikinti išskaidžius lentelę, t. y. išskyrus į atskiras lenteles sudėtinio rakto dalis ir nuo jų priklausančius laukus. Pavyzdžiui, lentelėTIEKIMAS *TIEKĖJO_NR*GAMINIO_NRTIEKĖJO_PAVARDĖ DUOMENYS_APIE_TIEKĖJĄ TIEKIMO_KAINA gali būti išskaidyta į tokias dvi lenteles:
2 NF Tegul lentelėje yra informacija apie projektavimo įstaigos darbuotojus, o lentelės schema atrodo taip: DARBUOTOJAI(DARBUOTOJO_NR(DN), DARBUOTOJO_ASM_KOD(DAK), ALGA(AL), PROJEKTO_NR(PN), BAIGIMO_DATA(BD)). Funkcinės priklausomybės tarp šios lentelės laukų: DN DAK, AL, PN DAK DN, AL, PN PN BD Lentelė DARBUOTOJAI, būdama 1NF, yra ir 2NF, nes jos abu galimi raktai (DN ir DAK) turi tik po vieną lauką. Tačiau ši lentelė nėra 3NF, nes jos neraktinis laukas BD tranzityviai priklauso nuo galimų raktų (tai aišku iš priklausomybių: DN PN arba DAK PN, PN BD).
3 NF 2NF lentelėms irgi būdingos įvedimo, atnaujinimo ir šalinimo anomalijos. Pavyzdžiui, negalima įvesti projekto baigimo datos tol, kol nepaskirti šio projekto vykdytojai (įvedimo anomalija). Projekto datos keitimas reikalauja visų turinčių šią datąįrašų - o jų gali būti labai daug - paieškos ir modifikavimo (atnaujinimo anomalija). Atleidus iš darbo visus kurio nors projekto vykdytojus, t.y. pašalinus šiuos darbuotojus atitinkančius įrašus, bus prarasta ir to projekto baigimo data (šalinimo anomalija). Šios anomalijos išnyksta, panaikinus lentelėje esančiątranzityvią funkcinę priklausomybę. Tai galima padaryti išskaidžius lentelęį atitinkamas atskiras lenteles. Pavyzdžiui, lentelę DARBUOTOJAI galima išskaidyti į tokias lenteles: DARBUOTOJAI (DARBUOTOJO_NR, PROJEKTO_NR, DARBUOTOJO_ASM_KOD, ALGA); PROJEKTAI (PROJEKTO_NR, BAIGIMO_DATA). Gautos lentelės DARBUOTOJAI ir PROJEKTAI yra trečiosios normalinės formos.
Tipinis duomenų normalizavimo pavyzdys Tarkime, kad reikia sukurti DB, kurioje turi būti saugoma informacija apie studentų mokymosi rezultatus. Į DB pradinės lentelės sudėtį įtraukiami šie laukai: STUDENTO_BILIETO_NR(SB), STUDENTO_PAVARDĖ(SP), AKADEMINĖ_GRUPĖ(AG), FAKULTETAS(FA), GIMIMO_METAI(GM), GYVENAMOS_VIETOS_ADRESAS(GA) DISCIPLINOS_KODAS(DK), DISCIPLINOS_PAVADINIMAS(DP), KREDITŲ_SKAIČIUS(KS), EGZAMINO_ĮVERTINIMAS(EĮ), EGZAMINO_DATA(ED), EGZAMINATORIAUS_PAVARDĖ(EP) Šioje didelėje lentelėje norint surasti kurio nors studento laikyto egzamino įvertinimą,datą ir egzaminatoriaus pavardę, reiktų parinkti pirminį raktą, sudarytą iš dviejų laukų (SB+DK)
Tipinis duomenų normalizavimo pavyzdys (2) Pradinė DB lentelė aprašoma štai tokia schema: STUDIJOS (SB, SP, AG, FA, GM, GA, DK, DP, KS, EĮ, ED, EP). Funkcinės priklausomybės, egzistuojančios tarp lentelės (duomenų bazės) STUDIJOS laukų: SB+DK EĮ, ED, EP SB SP, AG, FA, GM, GA DK DP, KS AG FA Tai reiškia, kad turime 1NF lentelę.
Normalizavimas iki 2NF Lentelėje STUDIJOS yra laukų, iš dalies priklausančių nuo sudėtinio rakto SB+DK. SB+DK EĮ, ED, EP. Čia ED ir EP priklauso tik nuo DK Normalizavę, t. y. išskaidę iš dalies priklausančius laukus į atskiras lenteles, gausime šias lenteles: STUDENTAI (SB, SP, AG, FA, GM, GA); STUDIJOS (SB, DK, EĮ, ED, EP); DISCIPLINOS (DK, DP, KS). Dabar jau turime 2NF lenteles.
Normalizavimas iki 3NF Lentelėje STUDENTAI egzistuoja lauko FA tranzityvi priklausomybė nuo rakto SB. Jos galima išvengti sudarius dar vieną lentelę GRUPĖS(AG, FA) ir pašalinus lauką FA lentelėje STUDENTAI. Po šių pakeitimų turime 3NF lenteles: GRUPĖS (AG, FA); STUDENTAI (SB, SP, AG, GM, GA); STUDIJOS (SB, DK, EĮ, ED, EP); DISCIPLINOS (DK, DP, KS).
Dar vienas normalizavimo pavyzdys [3] a) KURSŲ_INFORMACIJA (pradinė nenormalizuota lentelė)
1NF b) KURSŲ_INFORMACIJA (pirma normalinė forma)
KURSAI_MODULIAI Žingsnis link 2NF Ankstesnėje 1NF lentelėje pirminį raktą sudaro atributai ‘kursas’ ir ‘moduliai’. Atributai ‘m_pavadinimas’, ‘statusas’ ir ‘kreditai’ priklauso tik nuo rakto dalies ‘moduliai’, taigi, turime dalinę priklausomybę, kurios 2NF neturi būti. Tam skaidome lentelę į dvi. Bet lentelė KURSAI_MODULIAI dar nėra 2NF, nes ‘k_pavadinims’ ir ‘lygis’ priklauso nuo rakto dalies ‘kursas’. Taigi, šią lentelę reikia dar skaldyti. b) MODULIAI
c) MODULIAI 2 NF a) KURSAI_MODULIAI b) KURSAI
3 NF c) MODULIAI a) KURSAI_MODULIAI b) KURSAI d) STATUSAS
Parengta pagal: • J.Adomaitis ir kt. Informatika I dalis Vadovėlis, L-kla “Technolgija”, Kaunas, 1999, p.p. 161 – 173. • Informacijos ir komunikacijos technologijos / Rimvydas Skyrius, Audronė Mikalauskienė, Laima Zalieckaitė. Vilnius: VU, 2005, 32-44. • V. Sekliuckis, S.Gudas, G.Garšva INFORMACIJOS SISTEMOS IR DUOMENŲ BAZĖS, Vadovėlis. Kaunas: Technologija, 2003, 64-85. • A.Saulis, O.Vasilecas INFORMACINIŲ SISTEMŲ PAGRINDAI, mokomoji knyga, Technika, Vilnius, 1998, 82 – 98. Dar apie tai rasite: • ИНФОРМАТИКА базовый курс. Учебник для ВУЗОВ / СПб., Питер, 2001, c.c. 328-355. • http://distance.ktu.lt/kursai/informatika1/8/ • http://www.citforum.ru/database/dbguide/index.shtml • http://www.citforum.ru/database/dblearn/index.shtml