database management systemsetc.unitbv.ro/~galmeanu/dbms/cap6/cap6.pdf · uml modelarea datelor...
TRANSCRIPT
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