2. Modelare EA

download 2. Modelare EA

of 42

Transcript of 2. Modelare EA

  • 8/16/2019 2. Modelare EA

    1/42

    Proiectarea bazelor de date relaţionale

    Modelul entitate-asociere

    BAZE DE DATE

    Mihaela Elena Breab ăn © FII 2015-2016

  • 8/16/2019 2. Modelare EA

    2/42

    Modelul entitate-asociere ( Entity/Relationship )Obiective

    2

    Concepte E/Ade bază Modelarea constrângerilorCapcane de conectareModelarea E/A înUMLDe la diagrame E/A (UML) la schema relaţională

    15:34

  • 8/16/2019 2. Modelare EA

    3/42

    Proiectarea unei BDMetodologie

    1. Analiza cerinţelor Fişa cerinţelor

    2. Modelarea conceptuală

    4. Modelarea fizică Faza de tuning

    Diagrame E/A (UML)

    3. Modelarea logică Normalizare

    Schema relaţională

    3

  • 8/16/2019 2. Modelare EA

    4/42

    Concepte E/A clasice(Chen 1976)

    4

    EntitateObiect ce trebuie reprezentat în baza de date

    Mulțime-entitate -corespunde unui grup de obiecte de acelaşi tip, deci unei mulțimiomogene de entitățiO instanţă- entitate

    O instanţă unic identificabilă

    Asociere (Relationship)Conexiune/asociere între două sau mai multe entităţi (sau chiar a unei entităţi cu ea îns Gradul asocierii = nr. de entităţi participante

    unare/recursive,binare, ternare… Mulțime-asociere – corespunde unei mulțimi omogene de asocieri

    AtributProprietate a unei entităţi Pentru asociere

    Atribute ale entităţilor referenţiate Noi atribute

    15:34

  • 8/16/2019 2. Modelare EA

    5/42

    Diagrame E/A

    5

    Reprezentare grafică a conceptelor E/AExistă mai multe standarde grafice, aici varianta Chen

    Un grafMulțimile-entitate, mulțimile-asociere şi atributele sunt noduri Există muchii doar între

    noduri-entitate şi noduri-asocierenoduri-entitateşi noduri-atributenoduri-asociere şi noduri-atribute

    Mulțime Entitate

    Atribut

    Mulțime

    Asociere

    15:34

  • 8/16/2019 2. Modelare EA

    6/42

    Exemplu

    6

    O bază de date ce conţine informaţii despre:Studenţi ProfesoriCursuriNote

    Mentori

    Cerinţe:Putem determina notele obţinute, cursurile pe care le-a finalizat sicreditele obţinute de orice student Putem determina mentorul oricărui student

    STUDENŢI

    PROFESORI

    CURSURI

    NOTE

    MENTORI

    Asociere binară

    Asociere ternară

    PRE

    Asociere unară

    15:34

  • 8/16/2019 2. Modelare EA

    7/42

    Alte concepte E/A

    7

    RolExplică semnificaţia entităţilor în asocieri

    Cheieprimară Un atribut sau o submulţimeminimalăde atribute ce identifică unic oinstanţă-entitate sau o instanță-asociereObligatorie pentru entităţi, pentru a indica care instanţe participă înasocieri

    Cheie străină pentru o asociere Un atribut sau o mulţime de atribute care constituie cheieprimară pentru entităţile implicate

    rol

    Cheie primară

    15:34

  • 8/16/2019 2. Modelare EA

    8/42

    Exemplu

    8

    STUDENŢI

    PROFESORI

    CURSURI

    NOTE

    MENTORI

    CNP nume prenume localitate

    CNP nume prenume birou

    sem

    an

    nota

    cod denumire credite

    îndrumător

    evaluator

    evaluat

    subiect

    îndrumat

    Care sunt cheile străine pentru cele trei mulțimi de asocieri?

    PREnecesită

    este necesar

    15:34

  • 8/16/2019 2. Modelare EA

    9/42

    Constrângeri de conectivitate/participare

    9

    Modelul E/A permite declararea de constrângeri asupranumărului de instanţe-asociere în care o instanţă-entitateparticipă

    Fie R o mulțime-asociere între n mulțimi-entitate Ei, i=1..n. Bazade date satisface constrângerea (Ei, u,v,R) dacă fiecare instanţă-entitate din Ei participă în cel puţin u şi cel mult v instanţe-asociere din R.

    u:v

    15:34

  • 8/16/2019 2. Modelare EA

    10/42

    Exemplu

    10

    (Studenţi,1,1Mentori) (Profesori,0,7,Mentori)Fiecare student are un singur profesor drept mentor iar unprofesor poate fi mentor pentru cel mult 7studenti

    STUDENŢI

    PROFESORI

    MENTORI

    CNP nume prenume localitate

    CNP nume prenume birou

    îndrumător

    0:7

    îndrumat1:1

    15:34

  • 8/16/2019 2. Modelare EA

    11/42

    Constrângeri de conectivitate pentruasocieri binare (1)

    11

    a) Asociere unu la unu(A,0,1,R) (B,0,1,R)

    b) Asociere unu la mulţi(A,0,n,R) (B,0,1,R), n>1

    A BR0:1 0:1 A BR0:n 0:1

    15:34

  • 8/16/2019 2. Modelare EA

    12/42

    Constrângeri de conectivitate pentruasocieri binare (2)

    12

    a) Asociere mulţi la unu(A,0,1,R) (B,0,n,R)

    b) Asocieremulţi la mulţi(A,0,m,R) (B,0,n,R), m,n>1

    A BR0:1 0:n A BR0:m 0:n

    15:34

  • 8/16/2019 2. Modelare EA

    13/42

    Entitate slabă

    13

    O mulțime-

    entitate este slabă dacă existenţa instanţelorsale depinde de existenţa instanţelor altei mulțimi-entităţi(dependenţă existenţială)

    Nu are cheieSatisface constrângerea de conectivitate(Entitate_slaba,1,1,R), deci participă într-o asociere de tipunu la mulţi relativ la entitatea tare

    Entitate tare

    Entitate slabă

    R

    1:1

    0:n

    15:34

  • 8/16/2019 2. Modelare EA

    14/42

    Exemplu

    14

    STUDENTI

    ÎMPRUMUTURI

    IMPRUMUTĂ

    1:1

    0:10

    15:34

  • 8/16/2019 2. Modelare EA

    15/42

    Capcane de conectare(Fan traps)

    15

    compoziţie (tip special de asociere)

    UNIVERSITATE

    FACULTATE

    PROFESOR

    SALARIAT

    STRUCTURA

    angajat

    angajator

    compus

    componentă

    Problema:La ce departament aparţine profesorul X?

    FACULTATE

    UNIVERSITATE

    PROFESOR

    SALARIAT

    STRUCTURA

    angajat

    angajator

    componentă

    compus

    Soluţia:Model restructurat

    15:34

  • 8/16/2019 2. Modelare EA

    16/42

    Capcane de conectare(Chasm traps)

    16

    CURS

    SALĂ

    FACULTATE

    CURICULA

    ORAR

    oferă

    oferit de

    activitate

    locaţie

    CURS

    SALĂ

    FACULTATE

    CURICULA

    ORAR

    oferă

    oferit de

    activitate

    locaţie

    RESURSĂ

    proprietar

    proprietate

    Problema:Care sunt toate sălile ce aparţin unei facultăţi?

    Soluţia:Noi asocieri

    15:34

  • 8/16/2019 2. Modelare EA

    17/42

    Modelul E/A extinsSpecializare

    17

    Subgrupuri distinctive de instanţe-entităţi Au în plus anumite atributeParticipă în asocieri la care nu participă toate instanţele-entităţi Corespund unei mulțimi de entităţi specializate care se află înt-o asociere de tip IS-A cu mulțimea de entități de bază

    STUDENTI

    STUDENŢISTRĂINI

    IS A

    15:34

  • 8/16/2019 2. Modelare EA

    18/42

    Instanţele specializării moştenesc toate atributele şiasocierile mulțimii de entităţi de bază, inclusiv cheia

    O instanţă a unei mulțimi-entitate poate aparţine la unasau la mai multe specializări

    Specializări disjuncte (exclusive) Specializări cu suprapunere

    O instanţă a unei mulțimi-entitate trebuie sau nu săaparţină la cel puţin o specializare

    CompletIncomplet (parţial)

    Constrângeri specifice specializării

    18

    {disjunct/suprapus}

    {complet/parţial}IS A

    IS A

    15:34

  • 8/16/2019 2. Modelare EA

    19/42

    Unified Modeling LanguageUtilizat în ingineria softwareBazat pe concepte orientate obiectInstrumentde comunicare cu clientul în termenii utilizaţi în

    companieUn limbaj foarte mare, utilizăm un set restrâns de elemente(diagrama de clase) pentru a modela o bază de date.

    Modelare UML

    19 15:34

  • 8/16/2019 2. Modelare EA

    20/42

    Mapare E/A – UML

    20

    E/R UML

    Mulțime-entitate cu atribute Clasă Mulțime-asocierefără atributeproprii

    Asociere

    Mulțime-asociere cu atributeproprii

    Clasă de asociere

    Specializare Subclasă Compoziţie şi agregare

    15:34

  • 8/16/2019 2. Modelare EA

    21/42

    Clase

    21

    Componente: nume, atribute, metodeBD: nume, atribute (cheia primară)

    STUDENŢI

    CNP nume prenume localitate

    15:34

  • 8/16/2019 2. Modelare EA

    22/42

    Exprimă asociereadintre obiectele aparţinând la2 claseBD: asocierea dintre instanţele a două entităţi

    Obs: constrângerile de cardinalitate se specifică invers decât îndiagramele E/A

    Asocieri

    22

    STUDENŢI PROFESORIMENTORI

    CNP nume prenume localitate CNP nume prenume birou

    îndrumător 0:7

    îndrumat1:1

    15:34

  • 8/16/2019 2. Modelare EA

    23/42

    Restricţii (C1,u,v,A)(C2,x,y,A)

    Fiecare obiectdin (instanţă a entităţii) C1 este asociat cu cel puţin u şi cel mult vobiecte din(instanţe ale entităţii)C2Fiecare obiect din (instanţă a entităţii) C2 este asociat cu cel puţin x şi cel mulobiecte din (instanţe ale entităţii) C2

    AsocieriConstrângeri de conectivitate/multiplicitate

    23

    C1 C2Au:v x:y

    x..y u..v Tip asociere0..1 0..1 unu la unu incompletă 1..1 (1) 1..1 (1) unu la unu completă (implicită) 0..1 0..* (*) unu la multi incompletă … … …

    15:34

  • 8/16/2019 2. Modelare EA

    24/42

    ???

    24

    Modelaţi asocierea dintre STUDENTI şi UNIVERSITĂŢI. Un studenstudia la cel mult 2universităţi si e necesarsăstudieze la cel putin una. Ouniversitate primeşte cel mult 10.000studenti.

    Fie asocierea

    Care e numărul minim de instanţe pentru entitatea C1 şi pentru C2?

    2..4 12..14

    15:34

  • 8/16/2019 2. Modelare EA

    25/42

    Asocieri recursive

    25

    CURSURI

    cod denumire credite

    PREnecesită

    este necesar

    15:34

  • 8/16/2019 2. Modelare EA

    26/42

    Asocieri n-are

    26 15:34

  • 8/16/2019 2. Modelare EA

    27/42

    Clase de asociere

    27

    STUDENTI PROFESORILICENTA

    titlu sesiune

    15:34

  • 8/16/2019 2. Modelare EA

    28/42

    Clase de asociere

    28

    PROFESORICURSURI NOTE

    CNP nume prenume birou

    sem an nota

    cod denumire credite

    evaluatorsubiect

    STUDENŢI

    CNP nume prenume localitate

    evaluat

    15:34

  • 8/16/2019 2. Modelare EA

    29/42

    Eliminarea claselor de asociere

    29

    Atunci când avem multiplicitate 0..1 sau 1..1

    15:34

  • 8/16/2019 2. Modelare EA

    30/42

    Subclasă (1)

    30

    STUDENTI

    STUDENŢI ROMÂNI

    IS A

    ID nume prenume

    CNP

    STUDENŢI STRĂINI

    IS A

    tara

    Specializare completă, disjunctă

    superclasă

    15:34

  • 8/16/2019 2. Modelare EA

    31/42

    Subclasă (2)

    31

    Specializare completă, cu suprapunere

    (pk)1..*0..*

    15:34

  • 8/16/2019 2. Modelare EA

    32/42

    Obiecte dintr-o clasă aparţin obiectelor din altă clasă Tipuri speciale de asociere

    Compoziţia: toate obiectele unei clasepărţi aparţin obiectelordintr-o clasăcompusă; claseipărţi îi corespunde de obicei oentitate slabă (multiplicitate 1..1; f ără cheie primară);Agregarea:unele obiecte dintr-oclasăaparţin obiectelor dinaltă clasă (multiplicitate 0..1)

    Compoziţie şi agregare

    32 15:34

  • 8/16/2019 2. Modelare EA

    33/42

    Mapare E/A, UML ->schema BD rela ţională

    33

    E/A UML Schema relaţională Mulțime-entitate cu atribute Clasă Relaţie cu cheie primară Mulțime-asocierefără atributeproprii

    Asociere Relaţie cu chei străine

    Mulțime-asociere cu atribute propriiClasă de asociere Relaţie cu chei străine şialte atribute

    Specializare Subclasă Relaţie cu cheie primară(cea a superclasei) şiatributeparticulare/specializate

    Compoziţie şiagregare

    Relaţie cu cheie străinăşi atribute particulare

    15:34

  • 8/16/2019 2. Modelare EA

    34/42

    Cheia primară pentru asociere depinde de multiplicitate

    Mul țimi-entitate/ clase şi asocieri

    34

    {C1(K1, X1), C2(K2, X2), A(K1,K2)}

    x..y u..v Cheia primar ă pt A Observa ţii 0..11..1

    * K2 Nu enecesară relaţia A {C1(K1, X1), C2(K2, X2,K1)}

    * 0..11..1

    K1 Nu enecesară relaţia A {C1(K1, X1,K2), C2(K2, X2)}

    * * (K1,K2)

    15:34

  • 8/16/2019 2. Modelare EA

    35/42

    ???

    35

    Fie diagrama

    Mai este posibilă renuntareala relaţia corespunzătoareasocierii?

    15:34

  • 8/16/2019 2. Modelare EA

    36/42

    Asocieri recursive

    36

    {CURSURI (cod, denumire, credite)PRE (cod1, cod2)}

    {UNIVERSITATI (cod, numeU,oras)RAMURI (codFiliala, codParinte)}

    15:34

  • 8/16/2019 2. Modelare EA

    37/42

    Clase de asociere

    37

    {STUDENTI (ID, nume, prenume)UNIVERSITATI (cod, numeU, oras)

    APLICATII (ID, cod, data, rezultatul)}

    15:34

  • 8/16/2019 2. Modelare EA

    38/42

    Specializare/Subclase

    38

    Posibilităţi Relaţii subclasă ce conţin cheia superclasei şi atributele specializate C1(K1,X1), C2(K1,X2), C3(K1,X3)

    Relaţii subclasă ce conţinatributele superclasei (inclusiv atributul cheie)si atributele specializate; superclasa conţine doar tuple nespecializateC1(K1,X1), C2(K2,X1,X2), C3(K2,X1,X3)O singură relaţie ce conţine atributele din superclasă şi subclasă C(K1,X1,X2,X3)

    15:34

  • 8/16/2019 2. Modelare EA

    39/42

    ???

    39

    Fie superclasa S cu un număr de subclase. Considerăm cărelaţia de specializare este incompletă şi cu suprapunere. Dn1,n2 şi n3 reprezintă numărul total detuplenecesare fiecăreischeme de decodificare din cele 3 date anterior (în ordineadată), care este relaţia dintre cele 3 valori?

    o n1

  • 8/16/2019 2. Modelare EA

    40/42

    Compozi ţie şi agregare

    40

    { UNIVERSITATI(cod, numeU, oras)DEPARTAMENTE(codU, numeD, cladire)BIROURI (codU, adresa)}

    acceptă NULL

    15:34

    NU acceptă NULL

  • 8/16/2019 2. Modelare EA

    41/42

    Modelare EA/UMLSumar

    41

    PROSTehnică populară de modelare conceptuală Construcţii expresive, descriu punctul de vedere personalasupra aplicaţiei Permite exprimarea unor tipuri de constrângeri (chei primare,străine, multiplicitate, exclusivitate…)

    CONSTehnică subiectivă (entitate sau atribut, entitate sau asocieresubclasaresau nu, compoziţie sau nu) Nu permite modelarea tuturor dependentelorNecesită utilizarea ulterioară a normalizării

    15:34

  • 8/16/2019 2. Modelare EA

    42/42

    Bibliografie

    Hector Garcia-Molina, Jeff Ullman, Jennifer Widom:Database Systems:The Complete Book (2nd edition), Prentice Hall; (June 15, 2008) Thomas Connolly, Carolyn Begg:Database Systems: A Practical

    Approach to Design, Implementation and Management, (5 th edition)Addison Wesley, 2009

    Unelte:https://creately.com (diagrame EA, diagrame UML de clasă)http://diagramo.com/ (diagrame EA)http://argouml-downloads.tigris.org/nonav/argouml-0.32.2/ArgoUML-0.32.2.zip (diagrame UML de clasă)

    https://creately.com/http://diagramo.com/http://argouml-downloads.tigris.org/nonav/argouml-0.32.2/ArgoUML-0.32.2.ziphttp://argouml-downloads.tigris.org/nonav/argouml-0.32.2/ArgoUML-0.32.2.ziphttp://argouml-downloads.tigris.org/nonav/argouml-0.32.2/ArgoUML-0.32.2.ziphttp://argouml-downloads.tigris.org/nonav/argouml-0.32.2/ArgoUML-0.32.2.ziphttp://argouml-downloads.tigris.org/nonav/argouml-0.32.2/ArgoUML-0.32.2.ziphttp://argouml-downloads.tigris.org/nonav/argouml-0.32.2/ArgoUML-0.32.2.ziphttp://argouml-downloads.tigris.org/nonav/argouml-0.32.2/ArgoUML-0.32.2.ziphttp://argouml-downloads.tigris.org/nonav/argouml-0.32.2/ArgoUML-0.32.2.ziphttp://argouml-downloads.tigris.org/nonav/argouml-0.32.2/ArgoUML-0.32.2.ziphttp://diagramo.com/https://creately.com/