Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.

Model relacional i formes normals

291 visualizaciones

Publicado el

Model relacional i comprovació de la 1era , 2ona, 3era forma normal i la fòrmula normal Boyce-Codd. Transformació del model entitat relació al model relacional.

Publicado en: Tecnología
  • Sé el primero en comentar

Model relacional i formes normals

  1. 1. Miquel Boada Artigas Model Relacional
  2. 2. Miquel Boada Artigas Database design What do we need? / Specifications Conceptual model Entity-Relationship(ER) Relational model Data definition language
  3. 3. Model relacional - Objectius ● Emmagatzemar la informació minimitzant la redundància de dades. ● Poder recuperar la informació fàcilment. ● Es basa en l'aplicació de les 3 formes normals Miquel Boada Artigas
  4. 4. Model relacional - Terminologia ● Atribut o camps: informació concreta sobre una base de dades. Equivalent a atribut en el model ER. ● Taules: conjunt d'atributs. ● Files o registres: conjunt de valors d'una taula. Treballador DNI NOM 40958733 Anna 45937451 Maria 45967321 Joan Taula Nom taula Atributs/camps Valors Registre o fila Representació: Treballador (DNI,Nom) Miquel Boada Artigas
  5. 5. Dependència funcional ● Una dependència funcional (DF) es produeix quan el valor d'un atribut queda determinat pel valor d'un altre atribut. ● Donats dos atributs A i B d’una relació R, direm que B depèn funcionalment d'A (A->B) si per cada valor de A existeix un, i només un, valor de B associat amb ell. Miquel Boada Artigas
  6. 6. Anomalies NO Normalització ● Modificació – Si un estudiant canvia de població és necessari canviar la Població i el codi postal de tots els registres associats a l'estudiant. ● Eliminació – Si l'estudiant 76543123 deixa de fer UF2 perdem la seva informació personal. Estudiant UFs DNI NOM TELF. POB CP ADREÇA UF Nom UF 40958733 Anna 623903212 Granollers 08402 C/Girona,23,7è 1era UF1 BD Intro 40958733 Anna 934232775 Granollers 08402 C/Girona,23,7è 1era UF2 SQL 76543123 Anna 934232775 Granollers 08403 C/Girona,23,7è 1era UF2 SQL Miquel Boada Artigas
  7. 7. Anomalies NO Normalització ● Inserció – Només puc introduir un estudiant si sé quines UFs fa. L'atribut identificador UF no pot ser NULL. Estudiant UFs DNI NOM TELF. POB CP ADREÇA UF Nom UF 40958733 Anna 623903212 Granollers 08402 C/Girona,23,7è 1era UF1 BD Intro 40958733 Anna 934232775 Granollers 08402 C/Girona,23,7è 1era UF2 SQL 76543123 Anna 934232775 Granollers 08403 C/Girona,23,7è 1era UF2 SQL 84736211 Maria NULL Granollers 08401 C/Girona,23,7è 1era NULL NULL Miquel Boada Artigas
  8. 8. DF Exemple Unitats Formatives Modul UF Nom UF M1 UF1 Instal·lació, configuració i explotació S.I. M2 UF1 Introd. a les base de dades M2 UF2 Llenguatges SQL Modul → UF : NO M2 ~ {UF1, UF2} Modul → Nom UF: NO M2 ~ {Introd. a les base de dades, Llenguatges SQL} UF → Modul : NO UF1 ~ {M1, M2} UF → Nom UF : NO UF1 ~ {Instal·lació, configuració i explotació S.I. , Introd. a les base de dades} Nom UF → Modul: SI Instal·lació, configuració i explotació S.I. ~ {M1} Introd. a les base de dades ~ {M2} Llenguatges SQL ~ {M2} Nom UF → UF : SI Instal·lació, configuració i explotació S.I. ~ {UF1} Introd. a les base de dades ~ {UF2} Llenguatges SQL ~ {UF2} Miquel Boada Artigas
  9. 9. DF Exercici Operacions Metge Pilot Operació Data Responsable Anna Hamilton Canell dret 11/10/2012 Montse Maria Rosberg Esquena 11/10/2014 Núria Anna Hamilton Canell esq. 11/10/2012 Marta Anna Alonso Canell dret 11/10/2014 Montse Anna Alonso Canell dret 05/05/2015 Montse Busca totes les dependències funcionals fins a trovar l'atribut identificador Miquel Boada Artigas
  10. 10. DF Exercici - Solució Operacions Metge Pilot Operació Data Responsable Anna Hamilton Canell 11/10/2012 Montse Maria Rosberg Esquena 11/10/2014 Núria Nuria Hamilton Genoll 11/10/2012 Marta Eva Alonso Canell 11/10/2014 Montse Eva Alonso Genoll 05/05/2015 Anna Metge → { } , Pilot → { } , Operació → { } , Data → { }, Responsable → { Operacio } Haig de fer claus identificadores compostes a partir dels atributs que determinen més atributs. La clau composta l'haig de fer amb els atributs que no es determinen. {Responsable, metge } → { Operacio, Pilot, Data } => Clau candidata {Responsable, Pilot } → { Operacio, Mege, Data } => Clau candidata {Responsable, Data} → { Operacio, metge, pilot } => Clau candidata Miquel Boada Artigas
  11. 11. DF Exercici Estudiant UFs DNI NOM TELF. POB CP ADREÇA UF Nom UF 40958733 Anna 623903212 Granollers 08402 C/Girona,23,7è 1era UF1 BD Intro 40958733 Anna 934232775 Granollers 08402 C/Girona,23,7è 1era UF2 SQL 45937451 Maria 623764432 Granollers 08403 C/Girona,68 UF1 BD Intro 45937451 Maria 934433847 Granollers 08403 C/Girona,68 UF2 SQL 45967321 Anna 659007847 Les Franqueses del Vallès 08520 C/Menorca, 10 UF1 BD Intro 76543123 Anna 668549321 Granollers 08403 C/Girona, 70 UF2 SQL Indica totes les dependències funcionals de la taula anterior. Miquel Boada Artigas
  12. 12. DF Exercici - Solució Estudiant UFs DNI NOM TELF. POB CP ADREÇA UF Nom UF 40958733 Anna 623903212 Granollers 08402 C/Girona,23,7è 1era UF1 BD Intro 40958733 Anna 934232775 Granollers 08402 C/Girona,23,7è 1era UF2 SQL 45937451 Maria 623764432 Granollers 08403 C/Girona,68 UF1 BD Intro 45937451 Maria 934433847 Granollers 08403 C/Girona,68 UF2 SQL 45967321 Anna 659007847 Les Franqueses del Vallès 08520 C/Menorca, 10 UF1 BD Intro 76543123 Anna 668549321 Granollers 08403 C/Girona, 70 UF2 SQL DNI → {Nom, Pob, CP, Adreça} NOM → {} TELF → {DNI, NOM, POB, CP, ADREÇA, UF, Nom UF} Identificador POB →{} CP → {POB} ADREÇA → {DNI, NOM, POB, CP} UF → {Nom UF} Nom UF → { UF } Miquel Boada Artigas
  13. 13. DF Exercici Estudiant UFs DNI NOM TELF. POB CP ADREÇA UF Nom UF 40958733 Anna 623903212 Granollers 08402 C/Girona,23,7è 1era UF1 BD Intro 40958733 Anna 934232775 Granollers 08402 C/Girona,23,7è 1era UF2 SQL 45937451 Maria 623764432 Granollers 08403 C/Girona,68 UF1 BD Intro 45937451 Maria 934232775 Granollers 08403 C/Girona,68 UF2 SQL 45967321 Anna 934232775 Les Franqueses del Vallès 08520 C/Menorca, 10 UF1 BD Intro 76543123 Anna 668549321 Granollers 08403 C/Girona, 70 UF2 SQL Indica totes les dependències funcionals de la taula anterior. Miquel Boada Artigas
  14. 14. DF Exercici - Solució Estudiant UFs DNI NOM TELF. POB CP ADREÇA UF Nom UF 40958733 Anna 623903212 Granollers 08402 C/Girona,23,7è 1era UF1 BD Intro 40958733 Anna 934232775 Granollers 08402 C/Girona,23,7è 1era UF2 SQL 45937451 Maria 623764432 Granollers 08403 C/Girona,68 UF1 BD Intro 45937451 Maria 934232775 Granollers 08403 C/Girona,68 UF2 SQL 45967321 Anna 934232775 Les Franqueses del Vallès 08520 C/Menorca, 10 UF1 BD Intro 76543123 Anna 668549321 Granollers 08403 C/Girona, 70 UF2 SQL DNI → {Nom, Pob, CP, Adreça} NOM → {} TELF → {} No identificador!!! POB →{} CP → {POB} ADREÇA → {DNI, NOM, POB, CP} UF → {Nom UF} Nom UF → { UF } Necessitem un atribut identificador { DNI, Nom } → { POB, CP, Adreça} { DNI, Pob } → { Nom, CP, Adreça} { DNI, CP } → { POB, Adreça} { DNI, Adreça } → { POB, CP} { DNI,Telf } → { Nom, POB, CP, ADREÇA, UF, Nom UF} Candidat { DNI, UF } → { Nom, POB, CP, ADREÇA, UF, Nom UF} Candidat { DNI, Nom UF } → { Nom, POB, CP, ADREÇA, UF, Nom UF} Candidat Miquel Boada Artigas
  15. 15. Normalitzar ● Dividir una «supertaula» en taules més petites sense perdre informació. TAULA AT1 AT2 AT3 ATN TAULA 1 AT1 AT2 …. ATA TAULA 2 ATA+1 ….. ATB …. TAULA M ATM+1 ….. ATN Miquel Boada Artigas
  16. 16. 1era forma normal (FN) ● Tots els valors de cada atribut són atòmics. ● No hi ha atributs compostos. ● No hi ha atributs derivats. ● Tots els valors d'un atribut són del mateix tipus (domini). ● No hi ha dues files iguals en una mateixa taula. ● Cada columna té un nom únic. Miquel Boada Artigas
  17. 17. Normalització 1era FN Estudiant UFs DNI NOM TELF. POB, CP, ADREÇA UF Nom UF 40958733 Anna 623903212, 934232775 Granollers, 08402, C/Girona,23,7è 1era UF1,UF2 BD Intro, SQL 45937451 Maria 623764432, 934433847 Granollers, 08403, C/Girona,68 UF1,UF2 BD Intro, SQL 45967321 Joan 659007847 Les Franqueses del Vallès, 08520, C/Menorca, 10 UF1 BD Intro Estudiant UFs DNI NOM TELF. POB CP ADREÇA UF Nom UF 40958733 Anna 623903212 Granollers 08402 C/Girona,23,7è 1era UF1 BD Intro 40958733 Anna 934232775 Granollers 08402 C/Girona,23,7è 1era UF2 SQL 45937451 Maria 623764432 Granollers 08403 C/Girona,68 UF1 BD Intro 45937451 Maria 934433847 Granollers 08403 C/Girona,68 UF2 SQL 45967321 Joan 659007847 Les Franqueses del Vallès 08520 C/Menorca, 10 UF1 BD Intro 1era Forma Normal Miquel Boada Artigas
  18. 18. 2ona FN ● Ha de complir la 1era FN. ● Tots els atributs NO identificadors depenen de la totalitat de l'atribut identificador o clau. ● Una taula en 1era FN amb un atribut identificador simple, sempre està en 2ona FN. Miquel Boada Artigas
  19. 19. 2ona FN Estudiant Cursos DNI UFs NOM POB Nom UF CP 40958733 UF1 Anna Granollers BD Intro 08402 40958733 UF2 Anna Granollers SQL 08402 45937451 UF1 Maria Granollers BD Intro 08403 45937451 UF2 Maria Granollers SQL 08403 45967321 UF1 Anna Les Franqueses del Vallès BD Intro 08520 76543123 UF2 Anna Granollers SQL 08403 Miquel Boada Artigas Atributs identificadors : DNI, UF, Nom UF Atributs no identificadors : Nom, POB, CP { DNI, UF } → { Nom, POB, CP, Nom UF} Identificador { DNI, Nom UF } → { Nom, POB, CP, UF} Candidat Busquem dependències funcionals dels atributs no identificadors. Ens hem de fixar NOMÉS amb els atributs identificadors. DNI → Nom ? , UF → Nom ? , Nom UF → Nom ? (SI, NO , NO) DNI → Pob ? , UF → Pob ? , Nom UF → Pob ? (SI, NO, NO) DNI → CP ? , UF → CP ? , Nom UF → CP ? (SI, NO, NO)
  20. 20. Normalització 2ona FN Estudiant Cursos DNI UFs NOM POB Nom UF CP 40958733 UF1 Anna Granollers BD Intro 08402 40958733 UF2 Anna Granollers SQL 08402 45937451 UF1 Maria Granollers BD Intro 08403 45937451 UF2 Maria Granollers SQL 08403 45967321 UF1 Anna Les Franqueses del Vallès BD Intro 08520 76543123 UF2 Anna Granollers SQL 08403 Miquel Boada Artigas DNI → {Nom ,Pob, CP} { DNI, UF } → { Nom UF } Estudiant DNI NOM POB CP 40958733 Anna Granollers 08402 45937451 Maria Granollers 08403 45967321 Anna Les Franqueses del Vallès 08520 76543123 Anna Granollers 08403 Estudiant cursos DNI UFs Nom UF 40958733 UF1 BD Intro 40958733 UF2 SQL 45937451 UF1 BD Intro 45937451 UF2 SQL 45967321 UF1 BD Intro 76543123 UF2 SQL
  21. 21. Exercici Operacions Metge Pilot Operació Data Responsable Anna Hamilton Canell 11/10/2012 Montse Maria Rosberg Esquena 11/10/2014 Núria Nuria Hamilton Genoll 11/10/2012 Marta Eva Alonso Canell 11/10/2014 Montse Eva Alonso Genoll 05/05/2015 Anna Si no està en 1era FN , transforma-la a 1era FN Si no està en 2ona FN , transforma-la a 2ona FN Miquel Boada Artigas
  22. 22. Exercici – Solucio (2ona FN) Operacions Metge Pilot Operació Data Responsable Anna Hamilton Canell 11/10/2012 Montse Maria Rosberg Esquena 11/10/2014 Núria Nuria Hamilton Genoll 11/10/2012 Marta Eva Alonso Canell 11/10/2014 Montse Eva Alonso Genoll 05/05/2015 Anna Metge → { Pilot } , Pilot → { } , Operació → { } , Data → { }, Responsable → { Operacio } Haig de fer claus identificadores compostes a partir dels atributs que determinen més atributs. La clau composta l'haig de fer amb els atributs que no es determinen. {Responsable, metge } → { Operacio, Pilot, Data } => Clau candidata {Responsable, Pilot } → { Operacio, Mege, Data } => Clau candidata {Responsable, Data} → { Operacio, metge, pilot } => Clau candidata {Metge, Operacio} → { Pilot, Data, Responsable } => Clau candidata Atributs identificadors: Responsable, metge, pilot, data, operacio Miquel Boada Artigas
  23. 23. Exercici Carreres Circuit Pilot Pos. Assistència Data Montmeló Hamilton 1 27486 2014 Montmeló Rosberg 2 27486 2014 Jérez Hamilton 2 19083 2014 Jérez Rosberg 1 19083 2014 Montmeló Rosberg 1 19083 2015 Montmeló Hamilton 2 19083 2015 PHILLIP ISLAND Rosberg 1 27486 2014 PHILLIP ISLAND Hamilton 2 27486 2014 Si no està en 1era FN , transforma-la a 1era FN Si no està en 2ona FN , transforma-la a 2ona FN Miquel Boada Artigas
  24. 24. Exercici – Solució (2ona FN) Carreres Circuit Pilot Pos. Assistència Data Montmeló Hamilton 1 27486 2014 Montmeló Rosberg 2 27486 2014 Jérez Hamilton 2 19083 2014 Jérez Rosberg 1 19083 2014 Montmeló Rosberg 1 19083 2015 Montmeló Hamilton 2 19083 2015 PHILLIP ISLAND Rosberg 1 27486 2014 PHILLIP ISLAND Hamilton 2 27486 2014 Montmeló Hamilton 1 19083 2013 Montmeló Rosberg 2 19083 2013 Circuit → { } , Pilot → { } , Pos → { } , Assistè ncia → { }, Data → { } { Circuit, Pilot } → { } , { Circuit, Pos } → { } , { Circuit, Assistencia } → { } , { Circuit, data } → { Assistencia } {Circuit, Pilot, Pos} → { }, {Circuit, Pilot, Data} → {Assistència, Pos} Atributs identificadors: circuit, pilot, data Atributs no identificadors : Assistència, pos No està en 2FN per la dependència: { Circuit, data } → { Assistencia } i assistència és un atribut no identificador. Miquel Boada Artigas
  25. 25. Exercici – Solució (2ona FN) Carreres Circuit Pilot Pos. Assistència Data Montmeló Hamilton 1 27486 2014 Montmeló Rosberg 2 27486 2014 Jérez Hamilton 2 19083 2014 Jérez Rosberg 1 19083 2014 Montmeló Rosberg 1 19083 2015 Montmeló Hamilton 2 19083 2015 PHILLIP ISLAND Rosberg 1 27486 2014 PHILLIP ISLAND Hamilton 2 27486 2014 Montmeló Hamilton 1 19083 2013 Montmeló Rosberg 2 19083 2013 { Circuit, data } → { Assistencia } Assistència Circuit Assistència Data Montmeló 27486 2014 Jérez 19083 2014 Montmeló 19083 2015 PHILLIP ISLAND 27486 2014 Montmeló 19083 2013 Carreres Circuit Pilot Pos. Data Montmeló Hamilton 1 2014 Montmeló Rosberg 2 2014 Jérez Hamilton 2 2014 Jérez Rosberg 1 2014 Montmeló Rosberg 1 2015 Montmeló Hamilton 2 2015 PHILLIP ISLAND Rosberg 1 2014 PHILLIP ISLAND Hamilton 2 2014 Montmeló Hamilton 1 2013 Montmeló Rosberg 2 2013 Miquel Boada Artigas
  26. 26. Exercici Carreres Circuit Pilot Pos. Aforament Assistència Data Récord Pilot Montmeló Hamilton 1 30000 27486 2014 121.583 Marquez Montmeló Rosberg 2 30000 27486 2014 121.583 Marquez Jérez Hamilton 2 25000 19083 2014 91.259 Rossi Jérez Rosberg 1 25000 19083 2014 91.259 Rossi Montmeló Rosberg 1 30000 28900 2015 121.583 Marquez Montmeló Hamilton 2 30000 28900 2015 121.583 Marquez PHILLIP ISLAND Rosberg 1 25000 19083 2015 90.059 Rosssi PHILLIP ISLAND Hamilton 2 25000 19083 2015 90.059 Rossi Si no està en 1era FN , transforma-la a 1era FN Si no està en 2ona FN , transforma-la a 2ona FN Miquel Boada Artigas
  27. 27. DF Exercici – Solució (1era FN) Carreres Circuit Pilot Pos. Aforament Assistència Data Record. Pilot Record Montmeló Hamilton 1 30000 27486 2014 121.583 Marquez Montmeló Rosberg 2 30000 27486 2014 121.583 Marquez Jérez Hamilton 2 29000 19083 2014 91.259 Rossi Jérez Rosberg 1 29000 19083 2014 91.259 Rossi Montmeló Rosberg 1 30000 19083 2015 121.583 Marquez Montmeló Hamilton 2 30000 19083 2015 121.583 Marquez PHILLIP ISLAND Rosberg 1 29000 27486 2015 90.059 Rosssi PHILLIP ISLAND Hamilton 2 29000 27486 2015 90.059 Rossi No està en 1era FN 1. Hi ha 2 atributs amb el nom PILOT 2.Récord és un atribut compost Miquel Boada Artigas
  28. 28. DF Exercici – Solució (2ona FN) Carreres Circuit Pilot Pos. Aforament Assistència Data Record Pilot Record Montmeló Hamilton 1 30000 27486 2014 121.58 3 Marquez Montmeló Rosberg 2 30000 27486 2014 121.58 3 Marquez Jérez Hamilton 2 29000 19083 2014 91.259 Rossi Jérez Rosberg 1 29000 19083 2014 91.259 Rossi Montmeló Rosberg 1 30000 19083 2015 121.58 3 Marquez Montmeló Hamilton 2 30000 19083 2015 121.58 3 Marquez PHILLIP ISLAND Rosberg 1 29000 27486 2015 90.059 Rosssi PHILLIP ISLAND Hamilton 2 29000 27486 2015 90.059 Rossi Busquem DF amb atributs simples Circuit → { Aforament, Record, pilot Record} Pilot → { }, Pos → { }, Aforament → { }, Assistència →{ }, Data → { } Record → { Circuit, Aforament, Pilot Record } Pilot Record → { Aforament } No hi ha cap atribut identificador Miquel Boada Artigas
  29. 29. DF Exercici – Solució (2ona FN) Carreres Circuit Pilot Pos. Aforament Assistència Data Record Pilot Record Montmeló Hamilton 1 30000 27486 2014 121.583 Marquez Montmeló Rosberg 2 30000 27486 2014 121.583 Marquez Jérez Hamilton 2 29000 19083 2014 91.259 Rossi Jérez Rosberg 1 29000 19083 2014 91.259 Rossi Montmeló Rosberg 1 30000 19083 2015 121.583 Marquez Montmeló Hamilton 2 30000 19083 2015 121.583 Marquez PHILLIP ISLAND Rosberg 1 29000 27486 2015 90.059 Rosssi PHILLIP ISLAND Hamilton 2 29000 27486 2015 90.059 Rossi Busquem DF amb atributs compostos (2) Circuit → { Aforament, record, pilot Record} (Només haig de composar els no determinats) {Circuit, Pilot }, { Circuit, Pos } → { Aforament, record, pilot Record} {Circuit, Assistencia} → { Aforament, record, pilot Record } {Circuit, Data} → { Aforament, record, pilot Record } No hi ha cap identificador de 2 atributs Miquel Boada Artigas
  30. 30. DF Exercici – Solució (2ona FN) Carreres Circuit Pilot Pos. Aforament Assistència Data Record Pilot Record Montmeló Hamilton 1 30000 27486 2014 121.583 Marquez Montmeló Rosberg 2 30000 27486 2014 121.583 Marquez Jérez Hamilton 2 29000 19083 2014 91.259 Rossi Jérez Rosberg 1 29000 19083 2014 91.259 Rossi Montmeló Rosberg 1 30000 19083 2015 121.583 Marquez Montmeló Hamilton 2 30000 19083 2015 121.583 Marquez PHILLIP ISLAND Rosberg 1 29000 27486 2015 90.059 Rosssi PHILLIP ISLAND Hamilton 2 29000 27486 2015 90.059 Rossi Busquem DF amb atributs compostos (3) Circuit → { Aforament, record, pilot Record} (Només haig de composar els no determinats) {Circuit, Pilot, Pos } → { Aforament, Assistència, data, record, pilot Record} Identificador / candidat {Circuit, Pilot, Assistència } → { Pos, Aforament, data, record, pilot Record} Identificador / candidat {Circuit, Pilot, Data } → { Pos, Aforament, assistència, record, pilot Record} Identificador / candidat Atributs identificadors: Circuit, pilot, pos , assistència, data Atributs no identificadors: Aforament, record, pilot record Comprovem si hi ha alguna dependència d'algun atribut no identificador respecte algun atribut identificador. De les dependències anteriors observem com Aforament, record i pilot record tenen una dependència funcional de Circuit Circuit →{ Aforament, record, pilot Record} => No està en 2FN Miquel Boada Artigas
  31. 31. DF Exercici – Solució (2ona FN) Circuits Circuit Aforament Record Pilot Montmeló 30000 121.583 Marquez Jérez 29000 91.259 Rossi PHILLIP ISLAND 29000 90.059 Rossi Carreres Circuit Pilot Pos. Assistència Data Montmeló Hamilton 1 27486 2014 Montmeló Rosberg 2 27486 2014 Jérez Hamilton 2 19083 2014 Jérez Rosberg 1 19083 2014 Montmeló Rosberg 1 19083 2015 Montmeló Hamilton 2 19083 2015 PHILLIP ISLAND Rosberg 1 27486 2015 PHILLIP ISLAND Hamilton 2 27486 2015 Circuits està en 2ona FN Carreres hi ha redundància de dades => Comprovem que estigui en 2FN Miquel Boada Artigas
  32. 32. DF Exercici – Solució (2ona FN) Carreres Circuit Pilot Pos. Assistència Data Montmeló Hamilton 1 27486 2014 Montmeló Rosberg 2 27486 2014 Jérez Hamilton 2 19083 2014 Jérez Rosberg 1 19083 2014 Montmeló Rosberg 1 19083 2015 Montmeló Hamilton 2 19083 2015 PHILLIP ISLAND Rosberg 1 27486 2015 PHILLIP ISLAND Hamilton 2 27486 2015 Busquem DF amb atributs compostos (3) {Circuit, Pilot, Pos } → { Assistència, Data } Identificador / candidat {Circuit, Pilot, Assistència } → { Pos, data } Identificador / candidat {Circuit, Pilot, Data } → { Assistència, pos } Identificador / candidat Atributs identificadors: Circuit, pilot, pos , assistència, data Atributs no identificadors: {} Està en 2ona FN : tots els atributs no identificadors depenen de la totalitat dels atributs identificadors. Miquel Boada Artigas
  33. 33. 3era FN ● Compleix la 2ona FN. ● No hi ha cap DF entre atributs no identificadors o candidats. – 1er. Buscar atributs identificadors que no formin part de l'atribut identificador ni candidats. – 2on. Buscar atributs de tipus, categoria ... i comprovar si hi ha atributs associats als mateixos. Per exemple: codiCat i nomCat. – 3er. Buscar atributs que no tenen relació directa amb la taula. Per exemple: cotxe i població del propietari. Miquel Boada Artigas
  34. 34. 3era FN Miquel Boada Artigas DNI → {Nom ,Pob, CP} Identificador Atributs no identificadors: { Nom ,Pob, CP } Hi ha alguna DF entre atributs no identificadors? Nom → Pob ? , Nom → CP ( NO, NO ) Pob → Nom ? , Pob → CP ( NO, NO ) CP → Nom ? , CP → POB ( NO, SI ) CP → POB => No està en 3era FN { DNI, UF } → { Nom UF } Identificador/Candidat { DNI, Nom UF } → { UF } Identificador/Candidat Atributs no identificadors: { } Està en 3era FN Estudiant DNI NOM POB CP 40958733 Anna Granollers 08402 45937451 Maria Granollers 08403 45967321 Anna Les Franqueses del Vallès 08520 76543123 Anna Granollers 08403 Estudiant cursos DNI UFs Nom UF 40958733 UF1 BD Intro 40958733 UF2 SQL 45937451 UF1 BD Intro 45937451 UF2 SQL 45967321 UF1 BD Intro 76543123 UF2 SQL
  35. 35. Normalització 3era FN Miquel Boada Artigas Estudiant DNI NOM POB CP 40958733 Anna Granollers 08402 45937451 Maria Granollers 08403 45967321 Anna Les Franqueses del Vallès 08520 76543123 Anna Granollers 08403 Població POB CP Granollers 08402 Granollers 08403 Les Franqueses del Vallès 08520 CP → POB DNI → {Nom ,CP} Estudiant DNI NOM CP 40958733 Anna 08402 45937451 Maria 08403 45967321 Anna 08520 76543123 Anna 08403
  36. 36. 3era FN Boyce-Codd (BCNF) ● Està en 3era FN. ● L'atribut identificador és simple. ● Si l'atribut identificador és compost: – No hi ha cap atribut que formi part d'una clau candidata de la taula que depengui d'una part de l'atribut identificador o candidat. Miquel Boada Artigas
  37. 37. 3era FNBC Miquel Boada Artigas Població POB CP Granollers 08402 Granollers 08403 Les Franqueses del Vallès 08520 CP → { POB } DNI → { Nom, CP } Atribut identificador simple => 3era FNBC Estudiant DNI NOM CP 40958733 Anna 08402 45937451 Maria 08403 45967321 Anna 08520 76543123 Anna 08403 { DNI, UF } → { Nom UF } Identificador/Candidat { DNI, Nom UF } → { UF } Identificador/Candidat UF → DNI ? , UF → Nom UF? (NO , SI) Nom UF → DNI?, Nom UF → UF (NO , SI) UF → { Nom UF } Nom UF → { UF } Estudiant cursos DNI UFs Nom UF 40958733 UF1 BD Intro 40958733 UF2 SQL 45937451 UF1 BD Intro 45937451 UF2 SQL 45967321 UF1 BD Intro 76543123 UF2 SQL
  38. 38. Normalització 3era FNBC Miquel Boada Artigas Estudiant cursos DNI UFs Nom UF 40958733 UF1 BD Intro 40958733 UF2 SQL 45937451 UF1 BD Intro 45937451 UF2 SQL 45967321 UF1 BD Intro 76543123 UF2 SQL UF → { Nom UF } Estudiant cursos UFs Nom UF UF1 BD Intro UF2 SQL Estudiant cursos DNI UFs 40958733 UF1 40958733 UF2 45937451 UF1 45937451 UF2 45967321 UF1 76543123 UF2
  39. 39. MODEL ER a MODEL RELACIONAL TRANSFORMACIÓ Miquel Boada Artigas
  40. 40. Miquel Boada Artigas Conjunt entitats ● Cada conjunt d'entitats es transforma amb una taula. ● Els atributs derivats del conjunt d'entitats s'eliminen. La resta d'atributs es mantenen. ● Els atributs identificadors es mantenen (subratllat continu). ● Els atributs candidats es mantenen (subratllat discontinu). Utilitzarem CC (clau candidata).
  41. 41. Miquel Boada Artigas Conjunt entitats - Exemple Feina {Nom, Descripció} Projectes {Nom, Pressupost} Treballador {DNI, NSS (CC), Nom, DataNaixement}
  42. 42. Relacions N:M ● Una relació N:M sempre es converteix en una taula. ● La taula tindrà com a clau primària la clau primària dels conjunts d'entitats que intervenen en la relació. ● La taula tindrà els atributs propis de la relació (sempre i quan no siguin derivats). Miquel Boada Artigas
  43. 43. Miquel Boada Artigas Relacions N:M - Exemple Cotxe {Nom, Pes, Força, Vel.Max.} Circuit {Nom, Codi, Longitud, Dificultat} Incompatible {Cotxe, Circuit} Circulat {Cotxe, Circuit, Data,Temps }
  44. 44. Miquel Boada Artigas Relacions N:M - Exemple UF { CodiModul, CodiUF, Nom, Hores } Alumnes { DNI, Nom } Cursen { CodiModul, CodiUF, DNI, Data, Nota }
  45. 45. Miquel Boada Artigas Relacions N:M - Exemple Feina {Nom, Descripció} Projectes {Nom, Pressupost} Treballador {DNI, NSS (CC), Nom, DataNaixement} FTP {Projecte, Feina, DNI, Cost }
  46. 46. Relacions 1:N ● Quan la relació és 1:N , l'identificador del conjunt d'entitats amb tipus de relació 1 es converteix en un atribut de la taula associada al conjunt d'entitats amb relació de tipus N. Miquel Boada Artigas
  47. 47. Miquel Boada Artigas Relacions 1:N - Exemple Provincia { Codi, Nom(CC) } Comarca { Nom, CodiProv }
  48. 48. Miquel Boada Artigas Relacions 1:N - Exemple Modul { Codi, Nom(CC) } UF { Codi,Mòdul, Nom(CC) }
  49. 49. Relacions 1:1 ● Podem optar per a 2 solucions. – Participació total ambdós conjunts entitats: ● 1 única taula ● Atribut clau: 1 atribut identificador de qualsevol dels dos conjunts d'entitats. – Participació parcial ● Creació d'una nova taula per a representar les relacions sobretot si es preveuen que moltes entitats no tindran relació. Miquel Boada Artigas
  50. 50. Miquel Boada Artigas Relacions 1:1 - Exemple Dept { NomDept, Pressup., Ubic., NSS (CC), DNI (CC), NomTreb }
  51. 51. Miquel Boada Artigas Relacions 1:1 - Exemple Persona { DNI, Nom, Genere } Casat { DNI1, DNI2 }
  52. 52. Atributs multivalor ● Es genera una nova taula per l'atribut multivalor. ● La clau primària de la nova taula serà la combinació de l'atribut identificador pel conjunt d'entitats i l'atribut multivalor. Persona {DNI,Nom , Gènere} Telf {DNI, NumTel } Miquel Boada Artigas
  53. 53. Atributs compostos ● Es guarden els atributs en la pròpia taula associada al conjunt d'entitats. Persona {DNI,Nom , Gènere, Poblacio, Adreça, CodiPostal} Miquel Boada Artigas
  54. 54. Jerarquia ● Una única taula. ● Una taula per a cada conjunt d'entitats. ● Una taula per a cada conjunt d'entitats excepte per la superior. Miquel Boada Artigas
  55. 55. Jeràrquia - Exemple (Opció 1) Vehicle {Matricula, Bastidor (CC), Preu, Seient, Tones, Mat. Per.} Utilitzem valors NULL Miquel Boada Artigas
  56. 56. Jeràrquia - Exemple (Opció 2) Vehicle {Matricula, Bastidor (CC), Preu} Camio {Matricula, Bastidor (CC), Preu, Tones, Mat. Per.} Bus {Matricula, Bastidor (CC), Preu, Seient } No hi ha valors NULLS. Hi ha més taules a gestionar. Miquel Boada Artigas
  57. 57. Jeràrquia - Exemple (Opció 3) Camio {Matricula, Bastidor (CC), Preu, Tones, Mat. Per.} Bus {Matricula, Bastidor (CC), Preu, Seient } No hi ha valors NULLS. Si hi ha relacions per vehicle, s'haurà de fer la relació per Camió i Bus. Miquel Boada Artigas

×