Paimkime dalykinės srities pavyzdį. 6.1 paveikslėlyje pavaizduotas gaminio (GAMINYS) technologinis maršrutas ir to gaminio sandėliavimas: gaminys G1 apdoro-jamas technologinėmis (OPERACIJA) operacijomis O1 ir O2, o po to, kai jau jis yra pagamintas, sandėliuojamas arba sandėlyje (SANDĖLIS) S1 arba sandėlyje (SANDĖLIS) S2. Gaminio G1 sandėlyje S1 likutis (KIEKIS) yra K1, o sandėlyje S2 to pačio gaminio likutis (KIEKIS) yra K2. Paimkime duomenų, kurie charakterizuoja šią dalykinę sritį, reliacinę schemą R = (GAMINYS, OPERACIJA, SANDĖLIS, KIEKIS) ir duomenų santykį, pavaizduotą 6.1 lentelėje. Pažymėsime tokią svarbią šios dalykinės srities savybę, kad informacija apie tai, kokiomis operacijomis gaminys yra apdorojamas, yra nepriklausoma nuo informacijos apie to gaminio sandėliavimo vietas ir to gaminio likučius sandėliuose. Analogiškai, gaminio sandėliavimo vietos ir likučiai sandėliuose yra nepriklausomi nuo gaminio technologinio maršruto. Kitais žodžiais tariant, tarp gaminio technologinių duomenų ir duomenų apie gaminio sandėliavimą nėra tiesioginių asociatyvinių ryšių, nėra kokių nors duomenų priklausomybių, pavyzdžiui, žinomų iš anksčiau, funkcinių priklausomybių. Netiesioginiai asociatyviniai ryšiai tarp nagrinėjamos probleminės srities sandėliavimo ir technologinių duomenų yra. Tačiau šie ryšiai egzistuoja per duomenų atributą GAMINYS, kadangi tas pats gaminys apdorojamas tam tikromis operacijomis, o po apdorojimo tas pats gaminys yra sandėliuojamas tam tikrose sandėliavimo vietose ir tose vietose yra tam tikri gaminio kiekiai. Netiesioginių asociatyvinių ryšių egzistavimas sudaro prielaidas įvesti daugiareikšmes priklausomybes, kurias toliau apibrėšime formaliai.
6.3. Pagrindinis duomenų bazių projektavimo kriterijus
Praeitame skyrelyje buvo parodyta, kaip galima patikrinti, ar schemos R egzemp¬liorius r tenkina užsiduotą jungimo-projekcijos priklausomybę *[R1; R2; …; Rp]. Jeigu duomenų santykis r tenkina užsiduotą JP priklausomybę, tai jį galima suprojektuoti į santykių schemas R1, R2, …,Rp , o antruoju veiksmu gautas projekcijas natūraliosios jungties operacija atstatydavome egzempliorių r. Jeigu tai padaryti pavyksta bet kokio teisingo egzemplioriaus atveju, tai tada galima teigti, kad JP priklausomybė yra užsiduota teisingai. Natūralu šią situaciją charakterizuoti tokiu būdu. Egzemplioriai r charakterizuoja dalykinės srities būsenas įvairiais laiko momentais. Visus duomenys, kurie charakterizuoja leistiną būseną tam tikru laiko momentu galima saugoti reliacinėje DB, kurios schema yra R = {R1, R2, …,Rp}. Saugojamas lenteles r1, r2, …, rp galima apjungti į vieną universalų santykį r = r1 r2 … rp , kuris pilnai charakterizuoja dalykinės srities būseną duotam laiko momentui. Sakysime, kad DB schema R neduoda informacijos nuostolių, kadangi iš jos duomenų visada galima atstatyti dalykinės srities būseną. Jeigu DB schema šį kriterijų tenkina, tai tada lenteles ri; i = 1, 2, …, p; galima eksploatuoti nepriklausomai, jos yra mažesnės ir lengviau palaikomos.
Reliacinių schemų projektavimo dekompozicijos metodas
Šio metodo idėja yra ta, kad universaliajai santykių schemai R užduodamos duomenų priklausomybės, kurių pagrindu schema R dekomponuoja¬ma, gaunant keletą santykių schemų, kurių visuma DB schemą. Visoms santykių schemoms – pradinei, tarpinėms ir rezultatyvinėms – apibrėžiamos taip vadinamos santykių schemų normalinės formos. Pati primytiviausia santykių schemos normalinė forma yra pirmoji normalinė forma (1NF). iai normalinei formai taikomi minimalūs reikalavi¬mai
Pirmoji normalinė forma. Schema R yra pirmojoje normalinėje formoje, jeigu kiekvienas jos egzempliorius sudaro plokščią lentelę. Lentelė yra plokščia, jeigu
• shemos atributai yra nepriklausomi (be hierarchinių ryšių) ir
• atributų reikšmės yra atomarinės
Schemos R santykio r(R) atributo reikšmė yra atomarinė, jeigu ji neskaidoma į dalis tam, kad asocijuoti jas su kitos ar tos pačios lentelės duomenimis. Paimkime dvi duomenų lenteles 6.15 ir 6.16 .
Papildomos universaliojo struktūrinio tipo įvedimas reikalingas, kad patenkinti pagrindinį DB projektavimo kriterijų. Dekompozicijos metode, kaip žinome iš 6.4 skyrelio, taikant normalizavimo algoritmą NA3 sudarytoje DB schemoje visada gausime vieną santykių schemą su universaliuoju raktu, o tai garantuoja, kad DB schema užtikrins pagrindinį informacijos išsaugojimo kriterijų. Šio kriterijaus užtikrinimui sintezės metode vietoj santykių schemos su universaliuoju raktu įvedėme papildomą universalųjį struktūrinį tipą. Skirtumas čia yra tik toks, kad panaudojant universalųjį struktūrinį tipą papildomos santykių schemos, kurią algoritme SINTEZĖ buvome pažymėję R, raktas gali gautis mažesnis, lyginant jį su universaliuoju raktu. Toliau parodysime, kaip galima “supjaustyti” papildomą schemą R, panaudojant JP priklausomybes, užduodamas schemoje R.
Paimkime i ankstesnio pavyzdžio papildomai įvestą universalųjį struktūrinį tipą Q ir jame panaudotų atributų aibėje užduokime JP priklausomybę. Suprantama, kad čia mes paimame iš jo sudarytą santykių schemą R, kurios visi atributai yra raktiniai.
6.28pav . Universaliojo struktūrinio tipo reliacinė schema R dekomponuota į dvi santykių schemas S1 ir S2
Schemą R panaudojant normalizavimo algoritmą NA5 (žr. 6.4 sk.) dekomponuosime be informacijos nuostolių (žr.6.3 sk.) į dvi schemas S1 ir S2. Kadangi schemų R1 (žr. 6.27 pav.) ir S1 raktai sutampa, tai pagal algoritmą NA5 šias schemas galima apjungti, ir DB schemoje {R1, R} vietoj R panaudosime S2. Rezultatyvinė DB schema bus {R1, S2}.
Sintezės metodas užtikrina pilnųjų RDB reikalavimus:
1) aibę F pilnai charakterizuoja schema R;
2) kiekviena santykių schema Ri yra 3NF;
3) aibės F ažvilgiu negalime sudaryti kitą RDB schemą su mažesniu santykių schemų skaičiumi tokią, kad tenkintų pirmuosius du reikalavimus;
4) schema R tenkina pagrindinį DB projektavimo kriterijų.
Iš šių keturių reikalavimų ketvirtąjį užtikriname panaudojant DB schemoje papildomą universalųjį struktūrinį tipą, kuris, kaip buvo ką tik parodyta, gali būti dekomponuojamas. Charakterizuosime sintezės metodą pirmaisiais trimis požiūriais.
Atsisiųsti pilną 6SK2000