1 / 68

Introducere in BAZE de DATE Modele conceptuale de date

Introducere in BAZE de DATE Modele conceptuale de date. Cosmina Ivan cosmina.ivan@cs.utcluj.ro Departamentul de Calculatoare UNIVERSITATEA TEHNICA CLUJ NAPOCA. Modelare ER. Entitati , tipuri de entitati , seturi de entitati , attribute

Télécharger la présentation

Introducere in BAZE de DATE Modele conceptuale de date

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Introducere in BAZE de DATEModeleconceptuale de date Cosmina Ivan cosmina.ivan@cs.utcluj.ro Departamentul de Calculatoare UNIVERSITATEA TEHNICA CLUJ NAPOCA

  2. Modelare ER • Entitati, tipuri de entitati, seturi de entitati, attribute • Asocieri(relationship), tipuri de asocieri • Entitatislabe, asocieri n-are • Subclase/superclase

  3. Elemente de proiectare a BD • Abilitatea de a proiectaoptimbaza de date siaplicatiileasociate - factor critic in succesul actual al oricareicompaniimoderne • Proiectareabazei de date – necesitaintelegereacerinteloroperationale(activitatecurenta) si de bussines (scopuri/ perspective) ale uneiorganizatii cat siabilitatea de a MODELA si de a realizacerintele respective folosind o baza de date • Dezvoltareabazei de date si a Sistemului informationalesterealizatabazatpe un ciclu de dezvoltare(etape consecutive bine definite, posibilreluate/refinareaanumitorcerinte – metodologii de dezvoltare software)

  4. Exemplu de cerinta de proiectare Firma VideoShopoferaspreimprumutclientilorcasete VHS si DVD, conform cu urmatoarelecerinte: • Fiecaresuport de stocare media esteidentificatunicprintr-un cod , o categorie de pretsilocatiasa in magazin, clasele media sunt VHS si DVD sipentrucasete video esteimportantacalitatea , iarpentru DVD codul de regiune. • Pentru a oferiinformatiiclientilor, fiecare media are asociatainformatie minima desprefilm.Pe un astfel de suport de stocareesteinregistrat un singur film , insaacestapoateexistaatatpecaseta cat sipe DVD. • Un film estedefinitunic de un identificator , are un titlusi se vorstocanumeleactorilorprincipali.Unastfel de suport media poate fi imprumutat de catre un client , pentrufiecareimprumut se vastoca data de inceputsisfarsit. • Clientulesteidentificat de un ID, numelesiadresasa (oras, strada, cod postal), iarpentru a putearealizarezervariprin Internet se vautilizacardul de credit • Un client poaterealizamaimulteimprumuturi, fara a fi necesarainregistrareaunuiistoric al imprumuturilor .

  5. Procesul de proiectare Ciclul de dezvoltare a uneiaplicatii cu BD • Colectareacerintelorsianalizalor • Proiectareaconceptuala • Proiectarealogica • Rafinareaschemei BD • Proiectareafizica- implementarea BD • Proiectareaaplicatieisielemente de securitate • Testaresimentenanta • din ‘Database management systems, R Ramakrishnan’

  6. Modelare ER • Modelarea ER - abordare top down”( catredetaliereafinala) in proiectarea bazei de date ,ce modeleaza datele ca entitati ,atribute si asocieri de entitati (engl.relationships) • rafineaza entitatile si asocierileacestora, prinincludereade proprietati ale entitatilor și ale asocierilor numite atributesiprin definirea de constrangeri asupra acestoraentitatilor, asocierilorsiatributelor. • ER este un model independentde SGBD , poate fi convertit in modelul logic dorit (de ex. Modelul relational) • este potrivit pentru interactiuni cu utilizatori BD nontehnici

  7. ER- notatiaclasica

  8. Notatia UML

  9. Entitati • Tip de entitate-esteun grup de obiecte din lumea reala ce posedaaceleasi proprietati siesteidentificat ca avandexistentaindependenta • Conceptulde baza in modelul ER • poate fi un obiect fizic(persoana), sau un concept abstract(proiect) • Entitati cu aceleasi attribute de baza – tip de entitate • Instanta unei entitati – aparitia particulara a unei entitati (de ex. Popescu Ion – entitatea angajat) • Set de entitati – set de instante de entitati (colectiaentitatilor de acelasi tip din baza de date), de ex. Masini, studenti…

  10. Asocieri • Asocierea – set de corelari logice (relationships) intre entitati, fiecarei asocieri i se confera un nume ce descrie functia/rolul sau. • Instanta asocierii – aparitia particulara a unei asocieri intre instante de entitati • Set de asocieri – grup/ multime/set de instante de asocieri Nota - pot exista mai multe asocieri intre aceleasidoua entitati

  11. Reprezentareasocieri • Many to many -un proiect poate avea mai mult de un angajat si un angajat poate lucra in mai mult de un proiect

  12. Reprezentarea asocierilor • In notatia clasica ER asocierea simpla • In UML- etichetarea /sageata indica corect directia de citire • Numireaunui tip deasociere este un verb

  13. Gradul asocierii • Gradul unei asocieri este determinat de numarul de seturi de entitati participante in asociere • Asocierile de grad 2 sunt binare ,grad 3 – ternare... • ER /UML folosesc un romb pt. reprezentare. • un proiect poate necesita parti de la furnizori diferiti

  14. Asociere recursiva • Asocierea recursiva este acea asociere in care aceeasi entitate participa mai mult de o data, in roluri diferite • De ex asocierea angajat- supervisor.Supervisorul este si angajat • ER • UML - fiecarerol are un nume

  15. Atribute • Atribut – proprietatea unei entitati sau asocieri • Prin conventie- atributele se noteaza distinctiv cu litere mici • Fiecare atribut poseda un domeniu – ce reprezinta setul de valori permise pentru atribut • Atribute diferite pot utiliza acelasi domeniu, insa , un atribut poseda un singur domeniu

  16. Atribute simple si complexe • Un atribut este atribut simplu daca contine o singura componenta cu existenta independenta • Atributele simple sunt numite atribute atomice • Un atribut este compus ,daca se constituie din multiple componente fiecare cu existenta independenta ( de ex. Adresa- strada, oras,judet…)

  17. Atribute uni-multivaloare • Atribut univaloare – daca poseda o valoare unica pentru fiecare instanta a entitatii –ex. salariu • Atribut multivaloare - daca poate avea valori multiple pentru o singura instanta a entitatii • De ex. Nr telefon • Atribute derivat este un atribut a carui valoare este calculatadin alte atribute ,insa nu este stocat fizic (pot fi utilizate in calcul si alte atribute din alte entitati)

  18. Reprezentarea atributelor • ER si UML difera in modul de reprezentare a atributelor, notatia UML este mai compacta- usor de inteles • Modelul ER descrie atributele ca ovaluri cu nume conectate la entitate ( diverse tipuri pentru diverse atribute- atribut cheie, atribut multivaloare, compus) • In UML atribute apar in cadrul entitatii (exista notatii suplimentare) • cheieprimara{PK} , cheieprimarapartiala{PPK} cheiealternativa{AK} ,atributmultivaloarenume[minval… maxVal] • Un atributpoate fi asociatuneiasocieriintredouaentitati

  19. Chei • Cheie candidata- un set minimal de atribute ce identifica unic fiecare instanta a unei entitati • Cheie primara – cheie candidata selectatasa identifice unic fiecare instanta a unei entitati • Este aleasa dintr-un set de de chei candidate • Cheia compusa – o cheie formata din 2 sau mai multe atribute • de ex. Curs identificat unic de cod departament si numar curs( in cedepartamentesteacel curs)

  20. Atribute in ER

  21. Atribute in UML • T

  22. Constrangeristructuralepeasocieri • Limiteazaposibilelecombinatii ale entitatilor in seturi de asocieri • Constrangerea de Cardinalitate – numarul maxim de instante pentru o entitate participanta intr-o asociere • Constrangerea de Participareadetermina daca toate sau doar o parte a instantelor entitatii participa in asociere • participarea poate fi optionala sau obligatorie • Participarea – linie dubla in modelul ER si cardinalitatea minima in UML • Daca participarea unei entitati este obligatorie( = participare totala) – atunci existenta entitatii depinde de asociere

  23. Asocieri one to one • Fiecare instanta a unei clase de entitati E1 poate fi asociata cu cel mult o instanta a unei alte clase de entitati E2 ,si reciproc. Un departament poate ( optional, zero)aveaun singur manager si un manager poate conduce un singur departament.

  24. Exempluasocieri one to one Un departament poate aveaun singur manager si un manager poate conduce un singur departament.

  25. Asocieri one to many • Fiecare instanta a unei clase de entitati E1 poate fi asociata cu mai mult de o instanta a unei clase de entitati E2, insa reciproc entitatea de clasa E2 poate fi asociata cu celmulto instanta a entitatii din clasa E1

  26. Asocieri one to many exemplu • Un proiect poate fi asociat cu cel mult un departament, un departament poate avea mai multe proiecte.

  27. Asocieri many to many • Fiecare instanta a unei clase de entitati E1 poate fi asociata cu mai mult de o instanta a unei alte clase de entitati E2 si reciproc. • Un angajatpoatelucra la maimulteproiectesifiecareproiectpoateaveamai multi angajaticelucreaza in acelproiect.

  28. Asocieri many to many

  29. Constrangeri de participare • Un proiect este asociat cu un departament si un departament poate avea unul sau mai multe proiecte

  30. Participare one to many • Un proiect trebuie asociat cu un departament, un departament poate avea zero sau sau mai multe proiecte

  31. Constrangere de participare • Un proiect trebuie sa aiba unul sau mai multi angajati si un angajat lucreaza in unul sau mai multe proiecte

  32. Participare many to many

  33. Asocierinonbinare • Pentru asocieri complexe , multiplicitatea este numarul deposibile apartitii ale entitatii in asocierea n-ara in condtitiile in care celelalte (n-1) valori sunt fixate. • Ex. Un furnizor poate oferi 0 sau mai multe parti unui proiect, un proiect poate avea 0 sau mai multi furnizori, fiecare furnizor poate oferi proiectului ,zero sau mai multe parti.- ambiguitate(interpretaridiferite) in UML, de evitat=> conversie in asocieribinare

  34. Entitati slabe/puternice • Entitate puternica - acel tip de entitate a carui existenta nu este dependenta de o alta entitate. • entitatea puternica are propria cheie primara ce indentifica unic instantele sale • Entitatea slaba – entitatea a carui existenta este dependenta de o alta entitate • entitatea slaba nu are un set propriu de atribute care sa ii identifice instantele Ex Entitate puternica – angajat – id_angajat Entitate slaba – descendent ( copil)– in BD nu este stocata o cheie, pot fi identificatidoarprin id parinte

  35. Entitati slabe

  36. Probleme in modelul ER • Dificil de ales cand un anumit concept devine in modelul ER entitate, asociere sau atribut... • In general • Entitatile sunt substantive • Trebuie sa poata fi identificate un set de atribute cheie pentru entitate • Atributele sunt proprietati si pot fi substantive sau adjective • Se va utiliza casi atribut daca este corelat unei entitati si nu are propria cheie • Asocierile trebuie in general sa fie binare – asocierile nonbinare – pot fi modelate ca si entitati

  37. Reguli • Evitarea redundantei - nu stocati aceeasi info in mai mult de un loc • Nu utilizati o entitate daca poate fi utilizat un atribut • Limitati utilizarea seturilor de entitati slabe

  38. Elemente de proiectare a BD • Abilitatea de a proiectaoptimbaza de date siaplicatiileasociate - factor critic in succesul actual al oricareicompaniimoderne • Proiectareabazei de date – necesitaintelegereacerinteloroperationale(activitatecurenta) si de bussines (scopuri/ perspective) ale uneiorganizatii cat siabilitatea de a MODELA si de a realizacerintele respective folosind o baza de date • Dezvoltareabazei de date si a Sistemului informationalesterealizatabazatpe un ciclu de dezvoltare(etape consecutive bine definite, posibilreluate/refinareaanumitorcerinte – metodologii de dezvoltare software)

  39. Specificatiaproiectului Scopsiobiective - sintetic Colectareacerintelor– detaliiasupraproceselororganizationalesiaspectelorspecificeutilizatorilorce nu pot fi surprinse la nivel (succint) de Scop/Obiective -colectareadatelor se realizeazaprintehnici de intervievareutilizatori ( machetareformulare) , identificareadocumentelorutilizatesi a rapoartelornecesare ( modul in care datelesunt generate siutilizate) , eventual cerinteviitoareprivitor la date/aplicatiiulterioare, atribute de date unice (chei), dependente de date asocieri , constrangeri, dimensiuneadatelorsi rata de cresterea BD (anumitetabeleoperationalecomportacresterisubstantiale)

  40. Etapeproiectare BD • Analizacerintelor Identificareacerintelorutilizator- ceurmeaza a fitranspuse in BD. • Datelecevorfistocate in baza de date • Procesesireguli de business specifice ( tranzactii, proc.stocate), triggere • Ceclase de aplicatiivorutiliza BD, cetipuri de utilizatori • Frecventaanumitorclase de operatiisicerinte de performantade ex. limite de timp de executie/raspuns Proces informal - nu exista o metodaabsoluta, verificata (solutii diverse : intervievare, studiulsistemelorexistente) => Rezultat : generareaunui document cu specificareacerintelor- punct de pornire in analiza

  41. Elemente de proiectare.. 2. Proiectareconceptuala • - Model de nivelinalt, inglobeazaconcepte, incapsuleazacerintelespecificedatelor. • - ModeleleER (entitate- relatie) /EER, UML • - Oferamodelareaprecisa , relativsimpla a datelorsitranslatarecatremodeleacceptate de SGBD • -Este un procestop down, se specificaentitatilesiapoi se construiestemodelulprindefinirea de noientitati, atributesiasocieri ale acestora • -Existasi o abordarebottom –up – normalizarea, cepresupuneidentificareaatributelor , apoiutilizarea de tehnicibazatepedependenteprin care acestea pot fi grupatepentru a genera relatii.

  42. Elemente de proiectare.. 3.Proiectarea logica • Presupunealegereaunuimodel specific de date ( al unui SGBD) si a unui SGBD (MS SQL, MySQL, Oracle, IBM DB2) necesarimplementarii • Translatareaproiectariiconceptuale la un model de date suportat de SGBD => modelul relational (saunonrelational..existasialtemodele de nivel logic de ex. XML) • Realizeazamodelareainformatieibazatpecaracteristicilemodelului logic ( de ex. specificarea de chei, domenii de atribute, cheistrainesialteconstrangeri)

  43. Elemente de proiectare.. Proiectarealogicapresupunesirafinareaulterioara a schemei BD • Restructurareaschemeirelationalepentru a asiguraanumiteproprietati, pentru a eliminaanomaliilesiredundantele de date , procesce are la bazateorianormalizariloruneibaze de date. • Este un procesnon subiectiv, RIGUROS (comparativ cu analizacerintelorsiproiectareaconceptuala), existaconceptesialgoritmiin acestsens

  44. Elemente de proiectare.. 4.Proiectareafizica • Definireastructuriifizice a bazei de date. • Creareasetului de tabelebazatpemodelul relational • Crearea de indecsipentruacces. Se iau in considerareelemente de incarcare - performantaaccesului la date (anumite date suntmaifrecventaccesate) • Implementareaconstrangerilorsi a restrictiilor de securitate • Utilizatorisigrupuri- schema externa de accesalaturi de privilegiile de acces (proiectare- implementare) • Partitionareasidistributiadatelor( pemaimulteservere) • Dezvoltarea de aplicatii de acces la date • Poatepresupunereproiectarea a anumitorparti din schema bazei de date

  45. Testaresimentananta • Testare- procesul de executie a aplicatieiavanddreptscopdetectarea de erori • Mentenantaoperationala –procesul de monitorizaresimentinere a sistemuluiurmatetapei de instalare • CASE tools – sustinprocesul de dezvoltare • Tooluriceconvertesc automat diagrame ER in SQL –DDL • Examineazainterogarilepentruperformantasisugereazaimbunatatiri.. • oferamedii de dezvoltare a aplicatiilorsofisticateintrumentinereaproductivitatiiechipei de dezvoltare

  46. Recomandari de design • Proiectareafizica-CUM, proiectarealogica - CE • Se vaproiecta schema logica a bazei de date inainte de a incepedezoltareaaplicatiei • Modificariasupraschemeilogice au impact asupraaplicatieisivor reduce eficientaprocesului de dezvoltare • Se vaprototipizaaplicatia– reduce timpul general de dezvoltare a sistemului( structura/reutilizare de cod/documentare) • In etapeintermediare cu confirmare feedback utilizatorasupraformularelor/ecranelor/rapoartelor de date ( unele din acestea pot comportamodificarifrecvente) • Se vaizolacodul de acces la baza de date (clasa/metoda..)

  47. Proiectarea conceptuala-ER, UML • Proiectarea conceptuala a BD presupune modelarea informatiei colectate la un nivel inalt de abstractizare,fara a utiliza un model particular de date,sau un anumitSGBD • necesita un limbaj de nivel inalt specific, astfel cel mai popular limbaj de proiectareconceptuala este modelul ER-EER ( Entity Relationship ,Peter Chen-1976) , utilizat si actual, insa fuzionat cu constructii de modelare UML (Uniform Modeling language)- standard actual de diagramaresisteme software ( inclusiv BD)

  48. Entitate vs atribut Se va utiliza o entitate daca cel putin una din afirmatiile este adevarata 1.Entitatea contine cel putin un atribut noncheie 2.Este partea many intr-o asociere many to one

  49. Practici de proiectare Evitarea entitatilor slabe in modelare – desi aparent exista putine chei naturale ,din multimea proprietatilor obiectelor, exista diverse chei generate uman ( CNP, studentID..) De cate ori este posibil se vor utiliza chei prefabricate in loc de entitati slabe de ex. O BD ce stocheaza studentii de la mai multe universitati – se poate alege o structura globala, astfel studentul devine o entitate slaba in ansamblu , cu cheie partiala Simplificari asocierile many to many – doua asocieri one to many asocierile deordin superior ( ternar) - asocieri binare

  50. Asocieri many to many • Transformare many to many in doua asocieri one to many

More Related