Professional Documents
Culture Documents
Modelarea datelor este doar prima parte a procesului de construire al bazei de date.
Modelul conceptual: Modeleaz nevoile informaionale ale afacerii; Se numete Entity Relationship Model; Este prezentat printr-o diagram numit Entity Relationship Diagram.
ENTITATI SI INSTANTE
Entitate = ceva semnificativ pentru afacere, referitor la
care trebuie s cunoatem date.
O instan este o valoare dat entitii. Exemplu: Entitatea FRUCT are instane: cireasa, nuca, pepene, mr, portocal.
Atributul
proprietate a unei entiti sau un detaliu referitor la acesta. Descrie, cuantific, calific, clasific sau specific o entitate. Are un tip care poate fi un numr, un ir de caractere, o dat calendaristic, o imagine, etc. Exemplu: Entitatea FRUCT poate avea atributele: nume, tip, regiune, data_culesului. In acest caz o instanta poate fi: portocal, citrice, Grecia, 10-July-2007.
Alte atribute pot avea informaie necompletat, nul. Acestea se numesc OPIONALE. Exemplu: n multe cazuri numrul de telefon fix este o informaie ce poate lipsi dac apare numrul de telefon mobil.
LEGATURA(relationship)
Reprezint ceva semnificativ pentru afacere; Exprim care sunt relaiile ntre dou entiti (sau ntre una i aceeai entitate); Se citete n ambele sensuri; Are opionalitate; Are o cardinalitate.
Exemple de legaturi
Each EMPLOYEE must hold one and only one JOB Each JOB may be held by one or more EMPLOYEEs
Each PRODUCT must be classified by one and only one PRODUCT TYPE Each PRODUCT TYPE may classify one or more PRODUCTs
Relaiile se termin:
- ntr-o linie, pentru cardinalitate 1; - n trei liniue (picior de cioar), pentru mai multe.
DIAGRAME MATRICIALE
Sunt o alternativ la reprezentarea prin ERD. Sunt folosite atunci cnd avem foarte multe relaii, pentru a ne asigura c nu am uitat vreuna. Diagramele matriciale nu arat opionalitatea i cardinalitatea.
TRANSFERABILITATEA RELATIILOR
O relaie este netransferabil dac nu poate fi mutat la alt instan. Exemplu de relaie transferabil :
Exemplu de relaie netransferabil: O poezie este scris de un autor i nu poate fi transferat altui autor.
TIPURI DE RELATII
Relaia (1:M) One to Many Este relaia cea mai frecvent intlnit.
Relaia (1:1) One to One n practic se ntlnesc doar cteva tipuri de relaie 1:1
REVENIRE
Maparea relaiilor
O relaie creeaz una sau mai multe coloane foreign-key n tabelul dinspre partea cu mai multe a relaiei. Se folosesc prescurtrile numelui tabelului pentru coloana foreign-key. Coloana foreign-key este obligatorie sau opional, depinznd de tipul relaiei.
Maparea relaiilor
Maparea respect opionalitatea pentru relaii 1:M doar la captul M. La captul 1 relaia nu poate fi forat prin DDL s fie obligatorie (nu putem impune ca o formaie s aib cel puin un muzician). Este necesar programare procedural pentru realizarea acestui deziderat.
Maparea relaiilor
Nontransferabilitatea unei relaii nseamn c datele din coloana foreign-key a tabelului nu se pot modifica. Constrngerile foreign-key nu pot asigura acest lucru, fiind necesar programare procedural suplimentar.
Maparea relaiilor
Relaiile barate se mapeaz cu ajutorul unei coloane foreign-key column la captul M, ca orice relaie M:1. n acest caz, coloana foreign-key joac dublu rol, fiind i parte a cheii primare.
Maparea relaiilor
Relaiile barate n cascad se mapeaz asemntor, dar numele coloanelor se limiteaz de regul la 2 tabele distan.
Maparea relaiilor
Relaiile M-M se rezolv printr-un tabel de intersecie ce conine dou coloane foreignkey ce se refer la cheile primare din tabelele iniiale.
Maparea relaiilor
La maparea unei relaii 1:1 se creeaz o coloan foreign key care este i unique key n tabelul din captul obligatoriu al relaiei. La relaiile opionale la ambele capete, coloana se creeaz n funcie de regulile afacerii. La relaiile obligatorii la ambele capete, trebuie scris cod suplimentar.
Maparea relaiilor
Entitatea cu arc va deveni un tabel ce conine coloane foreign key de la tabelele din captul 1 al relaiei. Chiar dac relaia cu arc este obligatorie la captul M, coloanele foreign key rezultate trebuie s fie opionale (excluzndu-se mutual). Trebuie scris cod suplimentar pentru a asigura una din valori nenul, de exemplu:
CHECK (pse_id is not null AND phe_id is null) OR (pse_id is null AND phe_id is not null)