Sunteți pe pagina 1din 25

Universitatea Al.I.

Cuza Iai Facultatea de Economie i Administrarea Afacerilor Catedra de Informatic Economic

PROIECTAREA BAZELOR DE DATE


Modelare, diagrame, (un pic de) normalizare

Tipuri de modelri n analiza/proiectarea SI


Modelarea datelor: abstractizri (descrieri) ale coninutului BD (Diagrame E-R, ORM, EER, IDEF1X, UML (diagrama de clase)) Modelarea proceselor: abstractizri (descrieri) ale activiilor i funciunilor dintr-un SI (Diagrame Use Case, Diagrame de Activiti, Diagrame de Fluxuri de Date Metamodelare: abstractizri (descrieri) ale modelelor nsei

Modelarea datelor
Un set de metode i instrumente pentru descrierea cerinelor informaionale dintr-o organizaie Destinatari:

Utilizatorii aplicaiei (sistemului): formuleaz cerinele i verific modul de implementare a cerinelor Dezvoltatorii aplicaiei (informaticieni) care proiecteaz i implementeaz BD i celelalte module

Modelarea datelor este parte integrant din modelarea sistemelor informaionale

Ciclul de via al datelor ntr-o organizaie

Sursa: Ponniah 2007

Metodologii i instrumente de modelare a datelor


Entity-Relationship (E-R) - P. Chen - 1976 Enhanced Entity-Relationship (EER) T.Teorey s.a. - 1986 IDEF1X (1981) Object-Role Modeling (ORM) Falkenberg (1976), Nijssen, Halpin Object Oriented Modeling

Unified Modeling Language (UML): 1997

Diagram E-R clasic (P.Chen)

Sursa: Ponniah 2007

Diagram (E-R) IDEF1X

Sursa: Ponniah 2007

Diagram (E-R) Barker

Sursa: Ponniah 2007

Diagrama Barker a BD VNZRI (Oracle Data Modeler)

Diagrama Information Engineering a BD VNZRI (Oracle Data Modeler)

Diagrama Bachman a BD VNZRI (Oracle Data Modeler)

Diagram Object-Role Modeling

Sursa: Ponniah 2007

Diagram UML

Sursa: Ponniah 2007

Cum se proiecteaz o BD
Dup ureche (lutrete) este cea mai ndrgit metodologie i uneori chiar funcioneaz! Folosind metodologii/instrumente ale analizei i proiectrii de sisteme informaionale (APSI) mai ales pentru aplicaii complexe (vezi APSI, SIFC) Prin normalizare subiectul nostru de discuie Combinnd o metodologie APSI cu normalizarea (demers mixt)

Proiectarea bazelor de date


A proiecta o baz de date este echivalent cu a stabili ce tabele vor alctui baza de date, ce atribute vor intra n componena fiecrei tabele i care sunt restriciile (atomicitate, nenulitate, unicitate, refereniale, de comportament) la care vor fi supuse valorile atributelor.

Cine proiecteaz BD? Analiti-proiectani de sisteme informaionale Proiectani de baze de date Dezvoltatori de aplicaii Simpli utilizatori (mai rar)

De ce folosim (la acest curs) exclusiv normalizarea ?

Se bazeaz exclusiv pe noiuni ale (sau vecine cu) modelului relaional (prin comparaie, celelalte metodologii folosesc concepte
precum: clase de entiti (puternice/independente sau slabe/dependente), clase de asociaii (relaii), cardinalitate, obligativitate, agregare, specializare (complet, sau disjunct), motenire, auto-referin, rol etc.)

Este relativ simpl (afirmaie dificil de demonstrat) Este riguroas Minimizeaz spaiul ocupat pe disc Elimin o serie de anomalii manifestate la inserarea, modificarea, tergerea n/de nregistrri n tabelele BD Simplific modelarea temporalitii tranzaciilor, proceselor etc.

Dezavantajele normalizrii - 1

Nu dispune de un formalism grafic echivalent diagramelor E-R, ORM, UML Nu exist de instrumente software de modelare bazate pe normalizare (care s genereze comenzile DDL) Este intimidant, datorit multor lucrri teoretice (matematizate) Nu permite declararea de restricii i cardinaliti Nu permite reprezentarea utilizatorilor/grupurilor i (implicit) nici a rolurilor acestora Nu se cupleaz natural cu analiza/proiectarea ce sunt impregnate astzi de orientarea pe obiecte

Dezavantajele normalizrii - 2

Nu permite declararea comportamentului (operaiuni, procese) entitilor n baza de date Intuitiv, asociem entiti i nu atribute: de ex., este mai natural s spunem:
un student X este nscris pentru un an universitar AnUnivY n anul de studii AnStudii al specializrii Spec, forma de nvmnt FStudii

dect
matricolul Mx care identific un student X se afl, mpreun cu anul universitar AnUnivY n dependen funcional cu specializarea Spec, anul de studii AnStudii, forma FStudii

Normalizarea este btrn (din 1970...)

Cliee privind normalizarea


Normalizarea este teoretic Normalizarea nu poate fi utilizat la proiectarea BD, ci numai la validarea schemei relaionale obinut folosind o alt metodologie de proiectare Normalizarea nu poate fi aplicat la proiectarea unei BD complexe Normalizarea nu permite reprezentarea unor situaii reale ceva mai dificile (ex. workflow)

O analiz (incomplet) a dezavantajelor i clieelor normalizrii

Why Normalization Failed to Become the Ultimate Guide for Database Designers?, Social Science Research Network (SSRN), INFORMATION TECHNOLOGY & SYSTEMS, Working Paper Series,Vol.2,No.9:June 08, 2006

http://papers.ssrn.com/sol3/papers.cfm?abstract_id=905060

Dou tipuri de normalizare


Normalizarea prin descompunere (fundamentat de E.F. Codd): UR 1NF 2NF 3NF BCNF 4NF 5NF DKNF 6NF Autori importani: Codd, Boyce, Heath, Fagin, Ullman, Kent Normalizarea prin sintez (fundamentat de Bernstein), pe baza setului de DF dintre atributele BD

Fundamentul normalizrii
Dependenele dintre atributele BD Categorii de dependene:

Funcionale (DF), dintre care:


DF totale/pariale DF directe/tranzitive

De incluziune Multivaloare (DMV) De jonciune (DJ) - nu le discutm la acest obiect, i nici la altele

Formele normale ale unei BD


Sunt numite i forme normalizate Eu fost enumerate la prezentarea normalizrii prin descompunere (slide-ul 5) Cele mai importante sunt: 1NF, 2NF, 3NF, BCNF i 4NF Cele mai folosite (i necesare n practic): 1NF, 2NF, 3NF BCNF i 4NF sunt rar aplicate n practic 5NF, DKNF i 6NF sunt (mai mult) teoretice

Cerine ale formelor normalizate


Pentru 1NF: atributele s fie atomice Pentru 2NF: eliminarea DF pariale Pentru 3NF: eliminarea DF tranzitive Pentru BCNF: eliminarea DF n care sursele sunt atribute ne-cheie, iar destinaii atribute cheie Pentru 4NF: eliminarea dependenelor multivaloare Pentru 5NF: eliminarea dependenelor de jonciune

Cteva tutoriale video

Introduction to Data Modeling Lecture -1a Conceptual Designs

http://www.youtube.com/watch?v=-VlxBdc7tTc&feature=related

http://www.youtube.com/watch?v=EuSBAOpXjU0&feature=related

Lecture - 12 Data Modelling - ER Diagrams, Mapping

http://www.youtube.com/watch?v=fJaPlsVIzio&feature=related

what is database normalization? http://www.youtube.com/watch?v=FZs-Qdf-Sxg&feature=related