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.
2. Miquel Boada Artigas
Database design
What do we need? / Specifications
Conceptual model
Entity-Relationship(ER)
Relational model
Data definition language
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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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
39. MODEL ER a MODEL RELACIONAL
TRANSFORMACIÓ
Miquel Boada Artigas
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).
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
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
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
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. 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. 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
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. 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