Database Management Systemsetc.unitbv.ro/~galmeanu/dbms/cap6/cap6.pdf · UML Modelarea datelor...

Preview:

Citation preview

Database Management SystemsCap 6. UML

April 3, 2016

Database Management Systems April 3, 2016 1 / 36

1 UML

2 Exercitii

Database Management Systems April 3, 2016 2 / 36

UML

1 UML

2 Exercitii

Database Management Systems April 3, 2016 3 / 36

UML

Modelarea datelor

realizeaza reprezentarea datelor necesare aplicatiei

model de nivel ınalt, translatat automat ın relatii

high-level models:

entity-relationship model (E/R)Unified Modelling Language (UML)model destinat proiectarii aplicatiilor

ambele sunt modele grafice

ne va interesa un subset al UML-ului

Database Management Systems April 3, 2016 4 / 36

UML

Concepte ale modelarii UML

Clase

Asocieri

Clase pentru asocieri

Subclase

Composition si Aggregation

Database Management Systems April 3, 2016 5 / 36

UML

UML: Clase

Name, attributes, methods

* adaugarea PK

* renuntarea la metode

Database Management Systems April 3, 2016 6 / 36

UML

UML: Asocieri

Relatiile dintre obiectele a doua clase

Database Management Systems April 3, 2016 7 / 36

UML

UML: Multiplicitatea asocierilor

Relatiile dintre obiectele a doua clase

* fiecare obiect de tipul C1 este asociat cu cel putin m si cel mult nobiecte de tip C2

m .. *

0 .. n

0 .. * (abreviat cu *)

1 .. 1 (default, abreviat cu 1)

Database Management Systems April 3, 2016 8 / 36

UML

UML: Multiplicitatea asocierilor (exemplu)

Un student aplica la cel putin un colegiu si la cel mult 5

Un colegiu nu poate sa aiba mai mult de 5000 de ınscrieri, dar poatesa nu aiba nici un student ınscris

Database Management Systems April 3, 2016 9 / 36

UML

UML: Tipuri de asocieri

Multiplicitatea asocierilor

one-to-one: 0..1 - 0..1 (A)

many-to-one: * - 0..1 (B)

many-to-many * - * (C)

completa: elementele din ambele relatii trebuie sa fie asociate (nuexista element neasociat)

oricare din cele anterioare, cu cel putin un element: 1 - 1, 1..* - 1,1..* - 1..*

Database Management Systems April 3, 2016 10 / 36

UML

UML: Clase de asocieri

Legatura dintre obiectele a doua clase, cu atributele legaturii

Database Management Systems April 3, 2016 11 / 36

UML

UML: Migrarea atributelor asocierii

pentru cazul many-to-one, de exemplu, atributele asocierii pot migraın relatia Student

chiar si pentru * - 0..1, daca studentul nu se ınscrie nicaieri, cele douaatribute A1 si A2 vor fi NULL

Database Management Systems April 3, 2016 12 / 36

UML

UML: Auto-asocieri

asocierea unei clase cu ea ınsasi

un student poate fi ınrudit cu 0 sau mai multi alti studenti

Database Management Systems April 3, 2016 13 / 36

UML

UML: Subclase

subclasele mostenesc atributele din clasa de baza

un student urmeaza cel putin 10 cursuri iar un curs e luat de min. 1student

Database Management Systems April 3, 2016 14 / 36

UML

UML: Subclase - terminologie

superclasa: generalizare

subclasa: specializare

mostenire completa: orice obiect din superclasa este ın cel putin osubclasa / incompleta (sau partiala)

mostenire disjuncta (sau exclusiva): orice obiect din superclasa esteın cel mult o subclasa / overlapping

* exemplu1: orice Student este fie un ForeignStudent ori unDomesticStudent (complete) si vom avea studenti care sunt atatDomesticStudent cat si AppStudent (overlapping)

* exemplu2: daca nu am fi avut relatia AppStudent, relatia ar fi fostdisjuncta (doar ForeignStudent sau DomesticStudent)

* exemplu3: daca nu am fi avut decat AppStudent, ar fi fostincompleta, deoarece unii studenti n-ar fi fost AppStudent

Database Management Systems April 3, 2016 15 / 36

UML

UML: Composition si Aggregation

obiectele unei clase apartin obiectelor altei clase

caz special al asocierii

Database Management Systems April 3, 2016 16 / 36

UML

Generarea relatiei pentru asociere

relatiile se realizeaza direct; pentru asociere, relatia ia cheile dinambele parti

Student(sID, sName, GPA)

College(cName, state)

AppInfo(sId, cName, date, decision)

Database Management Systems April 3, 2016 17 / 36

UML

Generarea relatiei - exemplu

un student se poate ınscrie la un singur colegiu

regula: cheia relatiei ’many’ devine cheie ın relatia AppInfo

Student(sID, sName, GPA)

College(cName, state)

AppInfo(sId, cName, date, decision)

Database Management Systems April 3, 2016 18 / 36

UML

Generarea relatiei si multiplicitatea

un student se poate ınscrie la un singur colegiu

ın functie de multiplicitate; sID determina direct cName, relatiile sepot scrie mai compact

Student(sID, sName, GPA, cName, date, decision)

College(cName, state)

ce facem daca un student nu se ınscrie nicaieri?

NULL

Database Management Systems April 3, 2016 19 / 36

UML

Generarea relatiei si multiplicitatea

un student se poate ınscrie la un singur colegiu

ın functie de multiplicitate; sID determina direct cName, relatiile sepot scrie mai compact

Student(sID, sName, GPA, cName, date, decision)

College(cName, state)

ce facem daca un student nu se ınscrie nicaieri?

NULL

Database Management Systems April 3, 2016 19 / 36

UML

Generarea relatiei si multiplicitatea

un student se poate ınscrie la un singur colegiu

ın functie de multiplicitate; sID determina direct cName, relatiile sepot scrie mai compact

Student(sID, sName, GPA, cName, date, decision)

College(cName, state)

ce facem daca un student nu se ınscrie nicaieri?

NULL

Database Management Systems April 3, 2016 19 / 36

UML

Generarea asocierii

generarea relatiei pentru asociere presupune ca fiecare din cele douaclase asociate sa aiba cheie

Database Management Systems April 3, 2016 20 / 36

UML

Generarea auto-asocierii

Student(sID, sName, GPA)

Sibling(sID1, sID2)

cheia este {sID1, sID2}

Database Management Systems April 3, 2016 21 / 36

UML

Generarea auto-asocierii (2)

un colegiu poate fi filiala altui colegiu; cel mult 10 colegii filiale

College(cName, state, enroll)

Branch(home, satellite)

home, satellite sunt atribute sinonime pentru cName

cheia este {satellite} (vezi regula anterioara)

Database Management Systems April 3, 2016 22 / 36

UML

Subclase: modalitati de generare

1 se genereaza o relatie pentru fiecare clasa, relatia subclasa continecheia superclasei + atributele specializate

2 se genereaza o relatie pentru fiecare clasa, dar relatia subclasa continetoate atributele

3 se genereaza o singura relatie continınd toate atributele, atat dinsubclase cat si din superclasa

Database Management Systems April 3, 2016 23 / 36

UML

Subclase: modalitati de generare (2)

1 S(K, A), S1(K, B), S2(K, C)

necesita join, obiectele stocate partial ın S, partial ın S1

2 S(K, A), S1(K, A, B), S2(K, A, C)

obiectele subclase sunt stocate complet ın S1 (respectiv S2)

preferat pentru clase disjuncte si complete

3 S(K, A, B, C)

vom avea niste valori NULL

preferat pentru overlapping majorDatabase Management Systems April 3, 2016 24 / 36

UML

Exercitiu

Avem o superclasa cu un oarecare numar de subclase. Presupunem camostenirea este incompleta (putem avea obiecte instante alesuperclasei) si overlapping (avem obiecte instante a mai multorsubclase). Fie size1, size2 si size3 numarul de tuple care se genereazafolosind cele trei scheme de translatare anterioare. Care sunt relatiileıntre aceste trei valori?

1 size1 < size2 < size32 size1 ≤ size2 ≤ size33 size3 < size2 < size14 size3 ≤ size2 ≤ size1

raspuns: 4 (nu excludem dataset-ul empty, deci includem relatia deegalitate. Schema 3 asociaza cate o tupla pentru fiecare obiect.Schema 2 are o tupla pentru fiecare obiect, plus ınca una pentru fiecarecaz ın care obiectul este instanta a mai multe subclase. Schema 1 lafel, dar cu si mai multe tuple.)

Database Management Systems April 3, 2016 25 / 36

UML

Exercitiu

Avem o superclasa cu un oarecare numar de subclase. Presupunem camostenirea este incompleta (putem avea obiecte instante alesuperclasei) si overlapping (avem obiecte instante a mai multorsubclase). Fie size1, size2 si size3 numarul de tuple care se genereazafolosind cele trei scheme de translatare anterioare. Care sunt relatiileıntre aceste trei valori?

1 size1 < size2 < size32 size1 ≤ size2 ≤ size33 size3 < size2 < size14 size3 ≤ size2 ≤ size1

raspuns: 4 (nu excludem dataset-ul empty, deci includem relatia deegalitate. Schema 3 asociaza cate o tupla pentru fiecare obiect.Schema 2 are o tupla pentru fiecare obiect, plus ınca una pentru fiecarecaz ın care obiectul este instanta a mai multe subclase. Schema 1 lafel, dar cu si mai multe tuple.)

Database Management Systems April 3, 2016 25 / 36

UML

Subclase: exemplu

* Student(sID, sName)

* ForeignS(sID, country)

* DomestS(sID, state, SSN)

* AppStudent(sID)

* AppCourse(course#, title)

* Takes(sID, course#, year,

grade)

Database Management Systems April 3, 2016 26 / 36

UML

Composition si aggregation

College(cName, state)

Department(dName, building, cName)

Database Management Systems April 3, 2016 27 / 36

Exercitii

1 UML

2 Exercitii

Database Management Systems April 3, 2016 28 / 36

Exercitii

Exercitiul 1

Consideram translatarea diagramei UML ınrelatii. Care dintre relatiile urmatoare NUvor fi generate ?

1 Book(ISBN, edition)2 Edits(name, publisher, ISBN,

pub-title, year, start-date, end-date)3 Collection(ISBN, volume)4 Publication(ISBN, pub-title, year)

raspuns: 2 (relatia Edits va include

PK-urile celor doua relatii pe care le

asociaza, ımpreuna cu atributele sale)

Database Management Systems April 3, 2016 29 / 36

Exercitii

Exercitiul 1

Consideram translatarea diagramei UML ınrelatii. Care dintre relatiile urmatoare NUvor fi generate ?

1 Book(ISBN, edition)2 Edits(name, publisher, ISBN,

pub-title, year, start-date, end-date)3 Collection(ISBN, volume)4 Publication(ISBN, pub-title, year)

raspuns: 2 (relatia Edits va include

PK-urile celor doua relatii pe care le

asociaza, ımpreuna cu atributele sale)

Database Management Systems April 3, 2016 29 / 36

Exercitii

Exercitiul 2

Pe baza diagramei UML, care dinurmatoarele afirmatii despre Authors estecorecta ?

1 un articol poate avea oricati autori;2 fiecare autor a contribuit la cel putin

un articol si cel putin o carte;3 fiecare carte are cel mult un autor;4 o carte poate sa nu aiba nici un autor.

raspuns: 4 (multiplicitatea 0..* din Writes

indica acest lucru)

Database Management Systems April 3, 2016 30 / 36

Exercitii

Exercitiul 2

Pe baza diagramei UML, care dinurmatoarele afirmatii despre Authors estecorecta ?

1 un articol poate avea oricati autori;2 fiecare autor a contribuit la cel putin

un articol si cel putin o carte;3 fiecare carte are cel mult un autor;4 o carte poate sa nu aiba nici un autor.

raspuns: 4 (multiplicitatea 0..* din Writes

indica acest lucru)

Database Management Systems April 3, 2016 30 / 36

Exercitii

Exercitiul 3

Pornind de la diagrama UML, care dintreurmatoarele relatii reprezinta cel mai binearticolele ?

1 Article(title, pages, keywords, ISBN,volume)

2 Article(title, pages, keywords,volume)

3 Article(title, pages, keywords,volume, ISBN, pub-title, year)

4 Article(title, pages, keywords, ISBN)

raspuns: 4 (Article este ıntr-o compozitie.

Relatia sa va contine pe langa atributele

din Article si cheia clasei ce o include,

cheie (ISBN) care de fapt vine din

super-clasa Publication)

Database Management Systems April 3, 2016 31 / 36

Exercitii

Exercitiul 3

Pornind de la diagrama UML, care dintreurmatoarele relatii reprezinta cel mai binearticolele ?

1 Article(title, pages, keywords, ISBN,volume)

2 Article(title, pages, keywords,volume)

3 Article(title, pages, keywords,volume, ISBN, pub-title, year)

4 Article(title, pages, keywords, ISBN)

raspuns: 4 (Article este ıntr-o compozitie.

Relatia sa va contine pe langa atributele

din Article si cheia clasei ce o include,

cheie (ISBN) care de fapt vine din

super-clasa Publication)

Database Management Systems April 3, 2016 31 / 36

Exercitii

Exercitiul 4

Pornim de la diagrama UML. In relatiaEdits generata din aceeasi asociere, caredin urmatoarele seturi de atribute bold-uiteeste o cheie minimala ?

1 Edits(name, ISBN, start-date,end-date)

2 Edits(name, ISBN, start-date,end-date)

3 Edits(name, ISBN, start-date,end-date)

4 Edits(name, ISBN, start-date,end-date)

raspuns: 3 (cheia default a relatiei

generate de o asociere este formata din

cele doua chei ale relatiilor pe care le

asociaza. Daca este o relatie one-to-many,

cheia poate fi redusa la cheia din ’many’)

Database Management Systems April 3, 2016 32 / 36

Exercitii

Exercitiul 4

Pornim de la diagrama UML. In relatiaEdits generata din aceeasi asociere, caredin urmatoarele seturi de atribute bold-uiteeste o cheie minimala ?

1 Edits(name, ISBN, start-date,end-date)

2 Edits(name, ISBN, start-date,end-date)

3 Edits(name, ISBN, start-date,end-date)

4 Edits(name, ISBN, start-date,end-date)

raspuns: 3 (cheia default a relatiei

generate de o asociere este formata din

cele doua chei ale relatiilor pe care le

asociaza. Daca este o relatie one-to-many,

cheia poate fi redusa la cheia din ’many’)Database Management Systems April 3, 2016 32 / 36

Exercitii

Exercitiul 5

Pornind de la diagrama UML, care din urmatoarele afirmatii despreCity si State este corecta ?

1 fiecare stat are cel putin un oras;2 fiecare oras poate fi ın 0 sau 1 state;3 nu exista doua state cu acelasi guvernator;4 nu exista doua state care sa aiba acelasi nume.

raspuns: 4 (numele statului este specificat ca PK)

Database Management Systems April 3, 2016 33 / 36

Exercitii

Exercitiul 5

Pornind de la diagrama UML, care din urmatoarele afirmatii despreCity si State este corecta ?

1 fiecare stat are cel putin un oras;2 fiecare oras poate fi ın 0 sau 1 state;3 nu exista doua state cu acelasi guvernator;4 nu exista doua state care sa aiba acelasi nume.

raspuns: 4 (numele statului este specificat ca PK)

Database Management Systems April 3, 2016 33 / 36

Exercitii

Exercitiul 6

Pornind de la diagrama UML, care din urmatoarele afirmatii despreContinent si Country este corecta ?

1 nu pot exista doua tari cu acelasi nume;2 o tara vorbeste doua limbi;3 o tara poate fi pe doua continente;4 nu pot exista doua continente cu aceeasi marime.

raspuns: 1 (numele tarii este specificat ca PK)

Database Management Systems April 3, 2016 34 / 36

Exercitii

Exercitiul 6

Pornind de la diagrama UML, care din urmatoarele afirmatii despreContinent si Country este corecta ?

1 nu pot exista doua tari cu acelasi nume;2 o tara vorbeste doua limbi;3 o tara poate fi pe doua continente;4 nu pot exista doua continente cu aceeasi marime.

raspuns: 1 (numele tarii este specificat ca PK)

Database Management Systems April 3, 2016 34 / 36

Exercitii

Exercitiul 7

Aceasta diagrama UML impune constrangeri asupra cardinalitatiiclaselor A, B, C. Care din urmatoarele combinatii de cardinalitati estepermisa ?

1 ‖A‖ = 0; ‖B‖ = 0; ‖C‖ = 102 ‖A‖ = 0; ‖B‖ = 20; ‖C‖ = 103 ‖A‖ = 10; ‖B‖ = 0; ‖C‖ = 04 ‖A‖ = 0; ‖B‖ = 1; ‖C‖ = 10

raspuns: 1

Database Management Systems April 3, 2016 35 / 36

Exercitii

Exercitiul 7

Aceasta diagrama UML impune constrangeri asupra cardinalitatiiclaselor A, B, C. Care din urmatoarele combinatii de cardinalitati estepermisa ?

1 ‖A‖ = 0; ‖B‖ = 0; ‖C‖ = 102 ‖A‖ = 0; ‖B‖ = 20; ‖C‖ = 103 ‖A‖ = 10; ‖B‖ = 0; ‖C‖ = 04 ‖A‖ = 0; ‖B‖ = 1; ‖C‖ = 10

raspuns: 1

Database Management Systems April 3, 2016 35 / 36

Exercitii

Exercitiul 8

Presupunem ca exista o super-clasa Movies cu mai multe subclase.Consideram urmatoarele perechi de subclase:

1 {B, NB}: B = filme ın care joaca Marlon Brando; NB = filme ın carenu joaca Marlon Brando

2 {B, P}: B = filme cu Marlon Brando; P = filme cu Al Pacino;3 {B, G}: B = filme cu Marlon Brando; filme cu Hugh Griffith;4 {L, S}: L = filme mai lungi de 100 de minute; S = filme mai scurte de

105 minute.

Considerati cazul ın care fiecare pereche de subclase este completasau incompleta (partiala), si cazul ın care perechea esteoverlapping sau disjuncta (exclusiva). Care din urmatoareleafirmatii este corecta?

1 {B, P} este incompleta si disjuncta;2 {B, P} este incompleta si overlapping;3 {L, S} este completa si disjuncta;4 {B, G} este completa si overlapping.

raspuns: 2

Database Management Systems April 3, 2016 36 / 36

Exercitii

Exercitiul 8

Presupunem ca exista o super-clasa Movies cu mai multe subclase.Consideram urmatoarele perechi de subclase:

1 {B, NB}: B = filme ın care joaca Marlon Brando; NB = filme ın carenu joaca Marlon Brando

2 {B, P}: B = filme cu Marlon Brando; P = filme cu Al Pacino;3 {B, G}: B = filme cu Marlon Brando; filme cu Hugh Griffith;4 {L, S}: L = filme mai lungi de 100 de minute; S = filme mai scurte de

105 minute.

Considerati cazul ın care fiecare pereche de subclase este completasau incompleta (partiala), si cazul ın care perechea esteoverlapping sau disjuncta (exclusiva). Care din urmatoareleafirmatii este corecta?

1 {B, P} este incompleta si disjuncta;2 {B, P} este incompleta si overlapping;3 {L, S} este completa si disjuncta;4 {B, G} este completa si overlapping.

raspuns: 2

Database Management Systems April 3, 2016 36 / 36