BAZE DE DATE CURS 4 Modelul Entitate Relatie (continuare) M. Danubianu - Baze de date 2 Entiti slabe Sunt tipuri de entiti ale cror chei sunt compuse din atribute care provin parial sau n totalitate din alte tipuri de entiti dou surse de tipuri de entiti slabe: ierarhii pe baz de clasificare (fr legturi cu ierarhiile isa)- pentru anumite subuniti ale unor tipuri de entiti, este posibil ca numele s nu fie unice atta timp ct nu se ia n considerare i numele entitilor crora le sunt subordonate tipurile de entiti de conectare care elimin tipurile de legturi de grad superior - de regul nu au propriile lor atribute, iar cheile lor sunt formate din atributele care sunt chei n tipurile de entiti legate M. Danubianu - Baze de date 3 Entiti slabe O entitate slab poate fi identificat unic numai dac se ia n considerare cheia primar a altei entiti (entitate proprietar -owner) Tipurile de entitile slabe i tipurile de entiti proprietar trebuie s fie pri ale unei legturi 1:N (partea unu - entitatea proprietar,partea N- mai multe entiti slabe) Tipul de entitate slab trebuie s aib o participare total n tipul de legtur care o asociaz cu tipul de entitate proprietar - tip de legtur de identificare sau de susinere participarea total a unui tip de entitate ntr-o legtura => existena unei entiti necesit existena unei entiti asociate n diagrame ER constrngerile de participare total sunt simbolizate prin linii duble (sau ngroate) sex nume ddn nume Pers_intret Angajati cnp Intrein valoare M. Danubianu - Baze de date 4 Principii de proiectare Corectitudinea Evitarea redundanei Evitarea introducerii n proiect a mai multor elemente dect sunt strict necesare Stabilirea corect a legturilor Alegerea tipurilor corecte de elemente M. Danubianu - Baze de date 5 Corectitudinea Cumpr Produs Persoan Care sunt erorile din diagramele de mai jos? Preedinte Persoan ar Concluzii: tipurile de entiti i atributele trebuie s reflecte realitatea. legturile trebuie stabilite a.. s aib un sens dat de ceea ce se cunoate despre realitatea modelat. cnp nume Nr_locuitori M. Danubianu - Baze de date 6 Corectitudinea Cumpr Produs Magazin data Nume_pers Adresa_pers Concluzia: folosii tipurile adecvate de entiti. M. Danubianu - Baze de date 7 Evitarea introducerii n proiect a mai multor elemente dect sunt strict necesare Cumpr Produs Persoan Magazin data Date Concluzia: nu v complicai viaa mai mult dect este deja!!! M. Danubianu - Baze de date 8 Tipurile de entiti pot fi asociate ntre ele n diverse moduri prin legturi nu este necesar adugarea la un proiect a tuturor legturilor posibile redundan incoeren spaiu suplimentar de stocare Stabilirea corect a legturilor M. Danubianu - Baze de date 9 Alegerea tipurilor corecte de elemente Entitate vs. atribut Entitate vs. legtur Legturi binare vs. legturi ternare M. Danubianu - Baze de date 10 Entitate vs. Atribut Este posibil ca adresa s fie un atribut asociat entitii Angajai sau o entitate conectat la Angajai printr-o legtur? Soluia depinde de modul de utilizare a informaiilor despre adres i de semnificaia datelor: dac exist mai multe adrese pentru un angajat, adresa trebuie s fie o entitate (deoarece atributele nu pot avea valori multiple) dac structura (ora, strad, etc.) este important (ex. se dorete regsirea angajailor dintr-un ora), adresa trebuie modelat ca o entitate (chiar dac valorile atributelor sunt atomice) M. Danubianu - Baze de date 11 Entitate vs. Atribut (II) Lucr_n_1 nu permite ca un angajat s lucreze ntr-un departament dou sau mai multe perioade Similar cazului n care se dorete nregistrarea mai multor adrese pentru un angajat: se dorete nregistrarea mai multor valori ale atributelor descriptive pentru fiecare instan a acestei legturi nume Angajai cnp sex Lucr_n_1 De_la pn dnume buget did Departament dnume buget did nume Departament cnp sex Angajai Lucr_n Durata De_la pn M. Danubianu - Baze de date 12 Entitate vs. Legtur Corect dac fiecare manager primete cte un buget separat pentru departamentul pe care l administreaz. Ce se ntmpl dac se obine un buget care acoper toate departamentele administrate? Redundan: dbudget este memorat pentru fiecare departament administrat de un manager Semnificaie greit: Sugereaz c dbudget este asociat cu combinaia departament-angajat Administr nume dnume buget did Angajai Departament cnp sex dbuget Din M. Danubianu - Baze de date 13 Entitate vs. Legtur dname budget did Departament Administreaz Angajai nume cnp sex din Manageri dbuget ISA Este un mod de rezolvare a problemelor!!! M. Danubianu - Baze de date 14 Legturi binare vs.legturi ternare Se presupune c fiecare pensie este asigurat exact de un angajat: Proiectare gresita ddn cnume Asigur nume Angajai cnp sex Pensie pid valoare Pensionar O eventual constrngere de cheie pentru tipul de entitate Pensii, ar putea avea ca semnificaie faptul c o pensie poate asigura cel mult un pensionar! M. Danubianu - Baze de date 15 Legturi binare vs.legturi ternare (II) Care sunt constrngerile adiionale n diagrama din imagine? Beneficiaz ddn pnume Pensionar pid valoare Pensie Furnizeaz nume Angajai cnp sex M. Danubianu - Baze de date 16 Legturi binare vs.legturi ternare(IV) Exemplul dat anterior ilustreaz un caz n care dou legturi binare au fost mai indicate dect o legtur ternar. Fie legtura ternar Contracte care asociaz tipurile de entiti Piese, Departamente i Furnizori, i care are atributul descriptiv cantitate. Aceasta nu poate fi substituit corespunztor de nici o combinaie de legturi binare: F pot furniza P, D au nevoie de P, i D lucreaza cu F nu implic faptul c D au agreat s cumpere P de la F. Cum poate fi nregistrat atributul cantitate? M. Danubianu - Baze de date 17 Proiectarea conceptual utiliznd modelul ER Decizii n proiectare: Poate fi un concept modelat printr-o entitate sau prin atribute? Poate fi un concept modelat printr-o entitate sau printr-o legtur? Identificarea legturilor: Binare sau ternare? Agregarea? Constrngeri n modelul ER: Permit specificarea nelesului datelor Anumite constrngeri nu pot fi surprinse prin diagramele ER Necesitatea rafinrii ulterioare a schemei: Schema relaional obinut din diagrama ER este un prim pas important dar proiectarea conceptul este subiectiv i nu poate exprima anumite constrngeri; astfel nct schema relaional trebuie rafinat M. Danubianu - Baze de date 18 Constrngeri dincolo de modelul ER Dependene funcionale: ex. Un departament nu poate comanda dou piese diferite de la acelai furnizor. Nu poate fi exprimat prin legruri ternare Normalizarea rafineaz proiectarea conceptual prin luarea n considerare a dependenelor funcionale Dependene de incluziune: Cazuri speciale: cheile strine ex. , Cel puin o persoan trebuie s se subordoneze fiecrui manager. (Mulimea valorilor cnp din tabelul Administreaz trebuie s fie o submulime a valorilor cnp_supervizor din tabelul Subordonat) Constrngeri generale: ex. Bugetul la dispoziia managerului mai mic de 10% din bugetul total al departamentului pe care l administreaz M. Danubianu - Baze de date 19 Concluzii Proiectarea conceptual urmeaz fazei de analiz a cererilor, furnizeaz o descriere la nivel nalt a datelor ce vor fi stocate modelul ER este cel mai popular pentru proiectarea conceptual Constructiile sunt expresive, apropiate de modul n are oamenii i gndesc aplicaiile Elementele de baz: entiti, legturi i atribute (corespunztoare entitilor i legturilor) Elemente adiionale: entiti slabe, ierarhii ISA , i agregri. Not: Exist mai multe variante de model ER. Modelul ER poate exprima o serie de constrngeri de integritate, printre care:constrngeri de chei, constrngeri de participare i constrngeri de acoperire sau constrngeri de suprapunere, pentru ierarhiile ISA. Anumite constrngeri de chei strine sunt de asemenea implicite n definirea unui tip de legtur. O parte a acestor constrngeri pot fi exprimate n SQL Anumitre constngeri ( dependene functionale) nu pot fi exprimate n modeul ER. Constrngerile joac un rol important n determinarea celui mai bun proiect de baze de date pentru o ntreprindere. M. Danubianu - Baze de date 20 Concluzii Modelul ER este subiectiv. Adesea exist mai multe metode de a furniza un scenariu: entitate vs. atribute, entitate vs. legtur, legtur binar sau n-ar,dac sau nu se vor folosi ierarhiile isa,i cnd se va utiliza agregarea. Pentru a asigura o proiectare corect pentru baza de date, schema referitoare la schema relaional va fi analizat i rafinat. Tehnicile de normalizare sunt utilizate pe scar larg. M. Danubianu - Baze de date 21 Studiu de caz 1.Descrierea problemei Casa ta agenie imobiliar specializat n administrarea proprietilor de nchiriat n contul proprietarilor Serviciile oferite includ: Campanii de reclam a proprietii n presa local i central Interviuri cu chiriaii poteniali Organizarea de vizite pentru potenialii chiriai Negocierea contractului de nchiriere Dup nchiriere agenia i asum responsabilitatea privind proprietatea nchiriat inspecii regulate efectuate de personalul companiei M. Danubianu - Baze de date 22 2.Cerine privind datele Filialele agenia are filiale pe tot cuprinsul rii fiecare filial este identificat printr-un cod unic are: o adresa un numr de telefon i unul de fax un numr de membri de personal Personalul Fiecare filial are un manager Sunt reinute datele de la care persoana ocup funcia respectiv Fiecare manager primete lunar o prim funcie de realizrile filialei i o alocaie pentru main Fiecare filial are un numr de supervizori Rspund de activitile zilnice ale unui grup de angajai min. 5 i max. 10 Nu toi membrii de personal sunt repartizai unui supervizor Informaiile despre fiecare membru al personalului cuprind: Un cod unic pentru toate filialele Nume (prenume i nume), adresa, numr de telefon, sex, DDN, cnp Funcia ocupat, salariul, data angajrii M. Danubianu - Baze de date 23 Cerine privind datele(continuare) Proprietatea de nchiriat Identificat printr-un cod unic pentru toate filialele Detalii: Adresa complet (strada, numar, zon, oras, cod postal) Tipul proprietii Numrul de camere Chiria lunar este revizuit anual Fiecrei proprieti i se atribuie un anumit membru al personalului - responsabil cu administrarea sa Un membru al personalului poate administra maxim 10 proprieti de nchiriat La retragerea unei proprieti din companie se vor pstra informaiile referitoare la aceasta pe o durat de 3 ani Deintorii de proprieti Pot fi persoane fizice sau juridice Identificai prin coduri unice pentru toate filialele Detalii despre: persoanele fizice: nume, adresa, numr de telefon persoane juridice: denumirea companiei, tipul acesteia, numrul de telefon, numele persoanei de contact M. Danubianu - Baze de date 24 Cerine privind datele(continuare) Clienii Identificai prin coduri unice pentru toate filialele Detalii: Nume client, adresa, numr telefon, tip de locuin preferat i chiria maxim pe care este dispus s o plteasc Politica ageniei este de a susine un interviu cu toi potenialii clieni: Data interviului, persoana care a realizat interviul Orice comentarii despre potenialul chiria Vizitarea proprietii Data fiecrei vizite Orice comentariu al potenialului chiria privind caracterul convenabil sau nu al proprietii de nchiriat Reclama proprietii Detalii privind anunuri: Proprietatea creia i se face reclam Data anunului i costul acestuia Detalii privind ziarele n care se face reclama: Denumirea, adresa, numrul de telefon i numrul de fax Numele persoanei de contact M. Danubianu - Baze de date 25 Cerine privind datele(cont) Contractele de nchiriere Identificate printr-un numr Detalii privind: Chiriaul, proprietatea nchiriat Chiria lunar, metoda de plat Data de incepere i de ncheiere a nchirierii, durata acesteia (min. 3 luni, respectiv max. 1 an) Detalii despre membrul de personal care a incheiat tranzacia Orice client, poate nchiria n orice moment una sau mai multe proprieti dup expirarea unui contract se vor pstra informaiile corespunztoare minim 3 ani Inspectarea proprietii Se face cel puin o dat la 6 luni Detalii privind: Proprietatea Data inspeciei Comentarii referitoare la starea proprietii Date despre persoana care a efectuat inspecia M. Danubianu - Baze de date 26 3.Cerine privind tranzaciile Responsabilitatea membrilor personalului din diferite poziii Crearea i ntreinerea datelor referitoare la membrii de personal (manager) Realizarea de rapoarte care conin detalii referitoare la membrii personalului, la fiecare filial (manager) Realizarea de liste cu personalul controlat de un anumit supervizor (manager i supervizor) Realizarea unei liste de supervizori la fiecare filial (manager i supervizor) Intreinerea datelor despre proprietile de nchiriat i proprietarii acestora, din fiecare filiala (supervizor) Lista cu proprietile de nchiriat administrate de ctre un anumit mambru al personalului (supervizor) Intreinerea datelor privind potenialii chiriai la fiecare filial (supervizor) Lista tuturor reclamelor pentru o anumita proprietate (supervizor) Lista tuturor reclamelor dintr-un anumit ziar (supervizor) ntreinerea datelor referitoare la detaliile contractelor de nchiriere dintre un chiria i o proprietate (manager i supervizor) Evidena tuturor inspeciilor unei anumite proprieti (supervizor) M. Danubianu - Baze de date 27 Cerine privind tranzaciile Sarcini ale ntregului personal Raport cu detaliile privind proprietile de nchiriat de la fiecare filial Lista potenialilor chiriai nregistrai la fiecare filial Cutarea proprietii care s satisfac cerinele unui potenial chiria Intreinerea datelor referitoare la vizitele potenialilor chiriai la proprietile de nchiriat Raport cu comentariile potenialilor chiriai despre o proprietate vizitat Intreinerea datelor privind reclamele plasate n ziare Intreinerea datelor referitoare la inspeciile proprietilor de nchiriat M. Danubianu - Baze de date 28 Construirea modelului ER pentru agenia imobiliar Casa ta Identificarea tipurilor de entiti- reprezentate prin substantive Filiala Personal Manager Supervizor Personal_alocat se refera la membrii de personal alocai unui supervizor Proprietate_de_inchiriat Prop_pers_fizic Prop_pers_juridica Client Vizitare Contract_nchiriere Reclama Ziar M. Danubianu - Baze de date 29 Identificarea tipurilor de relaii (legturi) de regul se exprim prin verbe sau locuiuni verbale Proprietate_de_inchiriat La Vizita Ziar Plasata In Reclama reclama Afieaz ziar Proprietate_de_inchiriat Pentru Contract_inchiriere Filiala Vizitare Contract_inchiriere Apeleaz la Cere Tine Client Proprietate_de_inchiriat Detine Prop_pers_juridica Proprietate_de_inchiriat Detine Prop_pers_fizic Reclama Plasat In Proprietate_de_inchiriat Personal_alocat Supervizeaz supervizor Filiala Administreaz manager Proprietate_de_inchiriat Personal_alocat Supravegheaz RepartizatLa Personal Personal Proprietate_de _nchiriat Lucreaz in Are Filiala Tip de entitate Tip de legatur Tip de entitate M. Danubianu - Baze de date 30 Construirea modelului ER pentru agenia imobiliar Casa ta Determinarea cardinalitii i constrngerilor de participare pentru tipurile de relaii Exemple: Proprietar Deine Proprietate de nchiriat cardinalitate 1:M deoarece fiecare Proprietar detine cel puin o Proprietate_de_nchiriat, participarea entitii proprietar n relaia Deine este total Invers, fiecare proprietate trebuie s aib un proprietar, deci participarea entitii Proprietate_de_nchiriat n relaia DeinutaDe este total Proprietar Proprietate_de_inchiriat Deine 1 M Manager Administreaz Filiala - cardinalitate 1:1 -deoarece fiecare Manager administreaz cel puin o Filial, participarea entitii Manager n relaia Administreaz este total -fiecare Filial este administrat de cel puin un Manager, ca urmare participarea entitii Filial n relaia Administreaz este total Manager Filiala Admin 1 1 M. Danubianu - Baze de date 31 Construirea modelului ER pentru agenia imobiliar Casa ta Ziar Contract_inchiriere Vizita Client Prop_pers_jurid Prop_pers_fiz Proprietate_de_inchiriat Supervizor Manager Personal Filiala Tip de entitate Afieaz Pentru La Apeleaz la Cere Tine Detine Detine Plasat In Supervizeaz Administreaz Supravegheaz RepartizatLa Lucreaz in Are Tip de legatur reclama Proprietate_de_inchiriat Proprietate_de_inchiriat Filiala Vizitare Contract_inchiriere Proprietate_de_inchiriat Proprietate_de_inchiriat Reclama Personal_alocat Filiala Proprietate_de_inchiriat Personal_alocat Personal Proprietate_de _nchiriat Tip de entitate 1:M M:1 M:1 M:1 1:M 1:M 1:M 1:M 1:M 1:M 1:1 1:M 1:1 1:M 1:M Cardinalitatea M. Danubianu - Baze de date 32 Construirea modelului ER pentru agenia imobiliar Casa ta Identificarea i asociarea atributelor cu tipurile de entiti sau relaii Cod_pers Nume_pren (aceleai ca la tipul Personal)... Data_inceput_mgr Alocatie_masina Plata_prima Manager Cod_pers Nume_pren Adresa Telefon Sex DDN Cnp Functie Salariu Data_angajare Personal Cod_fil Adresa Telefon Fax Filiala Atributul Tipul de entitate Cod_p Numa_prenume Adresa Telefon Proprietar_p_f Cod_propr Adresa Tip Nr_camere Chirie Proprietate Cod_pers Nume_pren Adresa Telefon Sex DDN Cnp Functie Salariu Data_angajare Supervizor Atributul Tipul de entitate M. Danubianu - Baze de date 33 Construirea modelului ER pentru agenia imobiliar Casa ta Identificarea i asociarea atributelor cu tipurile de entiti sau relaii - continuare Data vizit Comentarii Vizit Nr_contract Data_inceput Data_sfarsit Contract_inchiriere Data_reclama Nume_ziar Pre Reclama Cod_client Nume_prenume Adresa Telefon Tip_preferat Chirie_maxima Client Cod_p Nume Adresa Telefon Persoana_contact Proprietar_p_j Atributul Tipul de entitate Cod_ziar Nume_ziar Adresa Telefon Fax Nume_contact Ziar Atributul Tipul de entitate M. Danubianu - Baze de date 34 Construirea modelului ER pentru agenia imobiliar Casa ta Determinarea cheilor candidat i a celor primare Se examineaz atributele corespunztoare fiecrui tip de entitate i se gsesc acele combinaii care determin n mod unic entitile (nregistrrile) Nume, prenume, DDN sau Cnp Nume, prenume, DDN sau Cnp Nume, prenume, DDN sau Cnp Chei alternative Entitate slaba Reclama Entitate slaba Vizit Nr_contract Contract_nchiriere Cod_ziar Ziar Cod_cli Client Cod_pers Proprietar_pers_juridi ca Cod_pers Proprietar_pers_fizic Cod_prop Proprietate de nchiriat Entitate slaba Personal alocat Cod_pers Supervizor Cod_pers Manager Cod_pers Personal Cod_filial Filiala Observaii Cheie primar Tipul de entitate M. Danubianu - Baze de date 35 Reprezentarea tipurilor de entiti Filiala Cod_fil Adresa Fax Telefon Personal Cod_pers Telefon DDN Cnp Adresa Sex Funcie Nume_pr Data_ang Salariu Plata_prima Aloc_maina Data_inc_mgr Supervizor Cod_pers Telefon DDN Cnp Adresa Sex Funcie Nume_pr Data_ang Salariu Manager Cod_pers Telefon DDN Cnp Adresa Sex Funcie Nume_pr Data_ang Salariu M. Danubianu - Baze de date 36 Reprezentarea tipurilor de entiti Proprietate_de_nchiriat Cod_prop Adresa Tip Chirie Proprietar_p_f Cod_p Telefon Adresa Nume_pr Client Cod_cli Telefon Adresa Chirie_max Nume_pr Tip_pref Nr_camere Proprietar_p_j Cod_p Telefon Adresa Nume Pers_contact Reclama Data_recl Pret Numa_ziar Vizita Data_viz Comantarii Contract_inch Nr_contr Data_sf Data_inc Ziar Cod_ziar Telefon Adresa Nume_contact Nume_ziar Fax M. Danubianu - Baze de date 37 Construirea modelului ER pentru agenia imobiliar Casa ta Ierarhii isa Reprezint o decizie subiectiv Entitaile Manager i Supervizor sunt evident legate de entitatea Personal Ambele sunt asociate unor relaii distincte : Manager Administreaz Filiala respectiv Supervizor Supervizeaz Personal Supervizor nu are nici un atribut adiional specific isa isa Personal Manager Supervizor Cod_pers Telefon DDN Cnp Adresa Sex Funcie Nume_pr Data_ang Salariu Plata_prima Aloc_maina Data_inc_mgr M. Danubianu - Baze de date 38 Construirea modelului ER pentru agenia imobiliar Casa ta Ierarhii isa Specificaiile datelor descriu dou tipuri de proprietari: persoane fizice i persoane juridice Ambele categorii partajeaz o serie de atribute, dar au i atribute diferite Ambele au acelai tip de relaie - Deine Se va crea o superclasa Proprietar care are ca subclase : Proprietar_p_f respectiv Proprietar_p_j isa isa Proprietar Proprietar_p_f Proprietar_p_j Cod_pers Telefon Adresa Nume Nume_prenume Persoana_contact M. Danubianu - Baze de date 39 Tine Este alocat Afiaz Plasat n Administr. Cere Supervizeaz Ziar Reclama Pers_alocat Client Filiala Gestioneaz Deine isa isa Personal Manager Supervizor isa isa Proprietar Prop_p_j Prop_p_f Proprietate Are La Pentru Contr_inch Vizita Cod_pers Cod_prop Cod_cli Nr_contr Cod_fil Cod_pers 1 1 1 1 1 1 M M M M M M M M M M M 1 1 1 1 1 1