Database Design - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bdd-infuma/b.conceptual... ·...

26
Database Design Anna Monreale

Transcript of Database Design - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bdd-infuma/b.conceptual... ·...

Page 1: Database Design - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bdd-infuma/b.conceptual... · Database Design Anna Monreale Need to design • Database are oen born designless,from

DatabaseDesign

AnnaMonreale

Page 2: Database Design - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bdd-infuma/b.conceptual... · Database Design Anna Monreale Need to design • Database are oen born designless,from

Needtodesign

•  Databaseareo.enborndesignless,fromahugespreadsheet

•  Anomaliesarise,becauseofredundancy

•  Redundancygenerateerrors

•  Designmustinvolvetheuser

Page 3: Database Design - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bdd-infuma/b.conceptual... · Database Design Anna Monreale Need to design • Database are oen born designless,from

Anomalies

Page 4: Database Design - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bdd-infuma/b.conceptual... · Database Design Anna Monreale Need to design • Database are oen born designless,from

PhasesforDBrealiza7on•  Userrequirementsanalysis&specifica7on

–  collec<nguserneedsandnormalizingthemaccordingtostandards

•  Conceptualdesign–  isthephaseinwhichrequirementsareformalizedandintegratedinto

aglobalconceptualschema–  usingaDBMS-independentconceptuallanguage

•  Logicaldesign–  theconceptualschemaismappedintoalogicalschemausingthedata

modelsupportedbytheDBMSchosenfortheimplementa<on

•  Physicaldesign–  concernstheselec<onofthedatastructuresusedtostoreand

retrievethedata.

Page 5: Database Design - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bdd-infuma/b.conceptual... · Database Design Anna Monreale Need to design • Database are oen born designless,from

5

UserRequirementsAnalysis

•  Hardac<vitybecausehardtostandardize•  Sugges<ons

–  Involvetheusersmany<mesforcon<nuouschecks–  Considerthepointofviewoftheapplica<onsusers–  Tobesurethatyouareusingacommonlanguage–  Iden<fycasestudiesthatyoucandiscussindetailstoiden<fytheproper<estobecapturedbythemodel

Mod. Concettuale >> Concetti Fondamentali >> Introduzione

Page 6: Database Design - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bdd-infuma/b.conceptual... · Database Design Anna Monreale Need to design • Database are oen born designless,from

6

AnObjectOrientedLanguagefordatadesign

•  Realiza<onofadiagramrepresen<ngtheconceptualmodelofthedatabase

•  Components:–  Classes(collec<ons)

–  Rela7onshipsamongclasses

–  Sub-collec7onslinks

Page 7: Database Design - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bdd-infuma/b.conceptual... · Database Design Anna Monreale Need to design • Database are oen born designless,from

7

ClassDiagram

•  PhaseofAnalasys– Needtoadopttherightlevelofabstrac<on

•  Inpar<cular– Wedon’tneedallaPributes– TypeofaPributesisnotnecessary

Mod. Concettuale >> Concetti Fondamentali >> Il Diagramma delle Classi

Page 8: Database Design - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bdd-infuma/b.conceptual... · Database Design Anna Monreale Need to design • Database are oen born designless,from

8

Example:UniversityDB•  Weneedtodesignthedatabaseformanagingdataaboutcoursesof

computersciencedegreeattheUniversityofPisa

•  Thesystemmustmanagedataaboutstudentsofthemasterprogramandbachelorprogram.Foreachoneweneedtomaintaindatarelatedtothestudentsexams.

•  Weneedtorecorddataaboutcoursesandthestudentsexamsforeachcourse.

•  Foreachcoursewewanttorecordteachers,whomaybemorethanone.Moreoverateachermaybeinternalorexternal.

•  Foreachteacherwehaveoneormorephonenumbers.

•  Foreachstudentweneedtorecordthesupervisor(ateacher).BachelorstudentsmayaskasupervisoronlywhentheyareaPendingthethirdyear.

•  Lastlythesystemmustmaintaininforma<onaboutthetutoringac<vi<esofmasterstudents,thathelpbachelorstudents.

Mod. Concettuale >> Concetti Fondamentali >> Il Diagramma delle Classi

Page 9: Database Design - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bdd-infuma/b.conceptual... · Database Design Anna Monreale Need to design • Database are oen born designless,from

9

Classes

•  “Concepts”oftherealitytobemodelled–  facts,people,things,–  examples:student,course,exam,teacher

•  Instancesofaclass–  en<<es,objectsoftherealitytobemodelled

•  ClasseshaveaNributes–  Proper<esrelevantfortheapplica<on

Page 10: Database Design - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bdd-infuma/b.conceptual... · Database Design Anna Monreale Need to design • Database are oen born designless,from

ClasswithaNributes

•  Apersonclass,withaPributes:– Name– SSN(key)– Address

Page 11: Database Design - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bdd-infuma/b.conceptual... · Database Design Anna Monreale Need to design • Database are oen born designless,from

11

Classes

•  Instancesoftheclasses

Students

studentID

surname

name

year

{77777, Bruno Pasquale, 1}

{444, Pinco, Palla, 3} {88888,

Pinco, Pietro, 1}

Page 12: Database Design - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bdd-infuma/b.conceptual... · Database Design Anna Monreale Need to design • Database are oen born designless,from

12

Rela7onship

•  Rela7onshipbetweenclasses•  Logiclinkrelevantfortheapplica<on•  ex:teachingbetweenteacherandcourse•  ex:studentpassesanexam

•  Instanceofarela7onship•  Asetofedgesbetweeninstancesbelongingtotheinvolvedclasses

Mod. Concettuale >> Concetti Fondamentali >> Il Diagramma delle Classi

Page 13: Database Design - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bdd-infuma/b.conceptual... · Database Design Anna Monreale Need to design • Database are oen born designless,from

13

Rela7onship:Instances

{Dino, Pedreschi, Full}

{77777, Bruno Pasquale, 1}

{444, Pinco, Palla, 3}

{88888, Pinco, Pietro, 1}

{Anna, Monreale, Associate}

Teachers

Students

{111, Rossi, Mario 1}

{Giannotti, Fosca}

Page 14: Database Design - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bdd-infuma/b.conceptual... · Database Design Anna Monreale Need to design • Database are oen born designless,from

14

Cardinality

•  Constraintsonrela7onships– Constraintsonthenumberofedgesbetweeninstancesofclasses

•  MinimalCardinality– 0or1

•  MaximalCardinality– 1ormany

Students Exams

Students Teachers

Page 15: Database Design - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bdd-infuma/b.conceptual... · Database Design Anna Monreale Need to design • Database are oen born designless,from

15

Cardinality

{Pedreschi, Dino, ordinario}

{77777, Bruno Pasquale, 1}

{444, Pinco, Palla, 3}

{88888, Pinco, Pietro, 1}

{Monreale, Anna, associato}

Teachers

Students

{111, Rossi, Mario 1}

Giannotti Fosca}

Supervisor >

Page 16: Database Design - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bdd-infuma/b.conceptual... · Database Design Anna Monreale Need to design • Database are oen born designless,from

16

Cardinality(upperbound)

•  Classifica<onoftherela<onshipswrtthecardinality– OnetoOne:maximalcardinalityequalto1forbothclasses

•  Manages[Managers,Departments]– OnetoMany:maximalcardinalityequalto1foraclassandmany(N)fortheotherone

•  Owns[Persons,Cars]– ManytoMany:maximalcardinalityequaltoNforbothclasses

•  Teaching[Course,Teacher]

Page 17: Database Design - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bdd-infuma/b.conceptual... · Database Design Anna Monreale Need to design • Database are oen born designless,from

Cardinality(lowerbound)•  Sixteencombin<ons:

– Onetomanytotal/par<al– Onetomanypar<al/par<al

– Onetomanypar<al/total

– Onetomanytotal/total

ExamsStudents

ExamsStudents

ExamsStudents

ExamsStudents

Page 18: Database Design - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bdd-infuma/b.conceptual... · Database Design Anna Monreale Need to design • Database are oen born designless,from

18

ClassHierarchy

•  Asubclass:– asubsetofclasselements,forwhichweplantocollectmoreinforma<on:

– ex:StudentsissubclassofPersons– ex:Internalandexternalteachersaresubclassesofthegenericconcept“teacher”

Mod. Concettuale >> Concetti Fondamentali >> Il Diagramma delle Classi

Page 19: Database Design - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bdd-infuma/b.conceptual... · Database Design Anna Monreale Need to design • Database are oen born designless,from

19

ClassHierarchy

Page 20: Database Design - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bdd-infuma/b.conceptual... · Database Design Anna Monreale Need to design • Database are oen born designless,from

20

Notes

•  Some<meitisnecesarytoaddnotesinthediagramtoexpresssomeconstraints–  Ex:BachelorstudentsmayaskasupervisoronlywhentheyareaPendingthethirdyear.

Students Teachers

Bachelor students may have a supervisor only during the third year

Page 21: Database Design - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bdd-infuma/b.conceptual... · Database Design Anna Monreale Need to design • Database are oen born designless,from

Rela7onshpwithaNributes•  Some<mesarela<onshipmayhavesomeproper<esthat

characterizeeachinstanceoftherela<onship•  “Johnisoccupyingtheroom105atLeMeridien-Houston,ata$145rate”

•  Thisisarela<onshipinstancebetweenpersonsandrooms,witharateaPribute

Page 22: Database Design - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bdd-infuma/b.conceptual... · Database Design Anna Monreale Need to design • Database are oen born designless,from

22

RecursiveRela7onships

{a01, Anna, Monreale}

Persons

{a02, Sofia, Giuliani}

{p01, Dino, Palla }

{p02, Paolo, Palla}

Page 23: Database Design - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bdd-infuma/b.conceptual... · Database Design Anna Monreale Need to design • Database are oen born designless,from

23

TernaryRela7onship

•  Ternaryfactsexistalso•  “JohnbookedflightFK354/13-6-2000withY2fare”

Page 24: Database Design - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bdd-infuma/b.conceptual... · Database Design Anna Monreale Need to design • Database are oen born designless,from

Keepitsimple

•  Wheneveritmakessense,upgradearela7onshipwithaNributes,oraternaryone,toacollec<on

Page 25: Database Design - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bdd-infuma/b.conceptual... · Database Design Anna Monreale Need to design • Database are oen born designless,from

FromANributestoclasses

Page 26: Database Design - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bdd-infuma/b.conceptual... · Database Design Anna Monreale Need to design • Database are oen born designless,from

Fromternarytonewclass