Biologie | Chimie | Didactica | Fizica | Geografie | Informatica | |
Istorie | Literatura | Matematica | Psihologie |
In aceasta lectie vei invata sa:
redactezi si sa aplici tabelul, coloana, identificatorii, relatia si regulile de constrangere integrale pentru maparea implementarilor supertipului
redactezi si sa aplici tabelul, coloana, identificatorii, relatia si regulile de constrangere integrale pentru maparea implementarilor subtipului
redactezi si sa aplici tabelul, coloana, identificatorii, relatia si regulile de constrangere integrale pentru maparea implementarilor arcelor supertipurilor si subtipurilor
De ce sa inveti?
Un tamplar care iti construieste casa pe care ai visat-o poate presupune ca tu vei
folosi becuri diferite peste tot in casa. Oricum, daca tu nu ii oferi informatii despre locul unde ar trebui instalate anumite becuri, ai putea sa descoperi ca ai un dormitor prea luminat si o bucatarie prost luminata.
Maparea supertipurilor si a subtipurilor asigura ca informatia potrivita sa fie stocata cu fiecare tip.
Spune-mi/Arata-mi
Implementarea supertipurilor: Tabelul singular
Aceasta alegere realizeaza un singur tabel pentru implementarea entitatii supertip si subtipurile sale. Aceasta se mai numeste "implementarea tabelului singular".
Reguli
Tabele: Un singur tabel este creat, independent de numarul subtipurilor.
Coloane: Tabelului singular I se atribuie o coloana pentru toate atributele supertipului, cu optionalitatea originala.
Tabelul primeste de asemenea o coloana pentru fiecare atribut ce apartine
Subtipului, dar toate coloanele devin optionale.
In plus, ar trebui creata o coloana obligatorie cu rol de coloana de separare ca sa se faca diferenta intre diferitele subtipuri ale entitatii. Valoarea pe care o poate lua este din setul prescurtarilor de subtipuri (FTE, PTE, OTR). Aceasta coloana de separare este de obicei denumita <table_short_name>_type, in exemplul epe_type.
Identificatori: Identificatorii unici se transforma in chei primare si unice.
Relatii: Relatiile la nivelul supertipului se transforma ca de obicei. Relatiile la nivelul subtipului sunt implementate ca si coloane optionale de chei straine.
Constrangeri de integralitate: O constrangere de verificare este necesara pentru a asigura faptul ca pentru fiecare subtip toate coloanele care provin sin atribute obligatorii nu sunt nule.
In modelul entitatii relationale (ER), salariul este obligatoriu pentru angajatii cu norma deplina si rata pe ora este obligatorie pentru angajatii cu jumatate de norma. Cand supertipul ANGAJAT este implementat ca tabel singular in modelul relational, aceste atribute devin optionale. O constrangere de verificare este necesara pentru a impune regulile afacerii modelate in ERD.
In exemplu, codul pentru constrangerea de verificare ar arata asa:
CHECK(epe_type='FTE' si salariul nu este nul si hourly_rate este nul si agy_id este nul)
OR (epe_type='PTE' si salariul este nul si hourly_rate nu este nul si agy_id nu este nul)
Codul verifica daca este un angajat cu norma intreaga (epe_type='FTE'), atunci trebuie sa existe o valoare in coloana salariului si coloanele hourly_rate si agy_id trebuie sa fie goale. In schimb, daca este un angajat cu jumatate de norma(epe_type='PTE'), atunci trebuie sa existe o valoare in hourly_rate si un agy_id, dar la salariu trebuie sa ramana gol.
Selectie de date pentru ANGAJATI
Cand sa alegi tabelul singular/implementarea supertipului?
Impplementarea tabelului singular este o implementare comuna si flexibila. Este aceea pe care ai considera-o prima si este relevanta acolo unde:
Majoritatea atributelor sunt la nivel de supertip
Majoritatea relatiilor sunt la nivel de supertip
Regulile afacerii sunt aceleasi pentru subtipuri, la nivel global
Implementarea subtipului: Tabel dublu
Acesta se mai numeste si "implementare a tabelului dublu". Creezi un tabel
pentru fiecare subtip. Deci, in realitate, ai putea avea mai mult de 2 tabele, daca ai avea mai mult de 2 subtipuri.
Reguli
Tabele: Un tabel pentru subtipul de nivel unu.
Coloane: Fiecare tabel primeste o coloana pentru toate atributele supertipului cu optionalitatea originala.
Fiecare tabel primeste de asemenea o coloana pentru fiecare atribut care apartine subtipului, cu optionalitatea originala.
Identificatori: UID-ul primar la nivel de supertip creeaza o cheie primara pentru fiecare tabel. Identificatorii unici secundari ai supertipului devin chei unice in fiecare tabel.
Relatii: Toate tabelele primesc o cheie straina pentru o relatie la nivel de supertip, cu optionalitatea originala. Pentru relatiile la nivele de subtip, cheia straina este implementata in tabelul in care a fost mapata. Optionalitatea originala este pastrata.
In exemplu, un tabel
separat ar fi creat pentru TRICOURI si PANTOFI.
Cand sa iei in considerare implementarea subtipului
Subtipurile au foarte putine in comun. Exista cateva atribute la nivel de supertip si cateva la nivel de subtip.
Majoritatea relatiilor sunt la nivel de subtip.
Regulile afacerii si functionalitatea sunt diferite intre subtipuri
Tabelele sunt folosite in mod diferit - de exemplu, un tabel este folosit pentru interogatii, in timp ce altul este reinnoit.
O entitate supertip si subtipurile sale pot fi
modelate ca o relatie
intre arce.
In aceasta diagrama, am redesenat supertipul
IMBRÃCÃMINTE si subtipurile sale TRICOU si PANTOF ca entitati
se sine statatoare, fiecare avand relatii obligatorii 1:1 cu supertipul.
Relatiile sunt intr-un arc
Implementarea supertipului si subtipului (Arc)
Aceasta alegere realizeaza un tabel pentru fiecare entitate. Tabelul supertip are o cheie straina pentru fiecare tabel de subtip. Aceste chei straine reprezinta relatii exclusive. Ele sunt optionale pentru ca doar una dintre ele poate avea o valoare pentru fiecare rand din tabel.
Reguli
Tabele: Se creeaza atatea tabele pentru cate subtipuri sunt, precum si unul pentru supertip.
Coloane: Fiecare tabel primeste o coloana pentru toate atributele entitatii pe care se bazeaza, cu optionalitatea originala.
Identificatori: UID-ul primar al nivelului de supertip creeaza o cheie primara pentru fiecare dintre tabele. Toti ceilalti identificatori unici devin chei unice in tabelele lor corespunzatoare.
Relatii: Toate tabelele primesc o cheie straina pentru o relatie relevanta la nivelul entitatii, cu optionalitatea originala.
Constrangeri de integralitate: Doua coloane aditionale sunt create in tabel, bazate pe supertip. Sunt coloane ale cheilor straine ce se refera la tabelele care implementeaza subtipurile. Coloanele sunt optionale deoarece cheile straine sunt intr-un arc. O constrangere de verificare aditionala este necesara pentru a implementa arcul. Coloanele cu chei straine sunt de asemenea chei unice pntru ca elee implementeaza o relatie obligatorie
Copyright © 2024 - Toate drepturile rezervate