SlideShare una empresa de Scribd logo
1 de 57
Descargar para leer sin conexión
Miquel Boada Artigas
Model Relacional
Miquel Boada Artigas
Database design
What do we need? / Specifications
Conceptual model
Entity-Relationship(ER)
Relational model
Data definition language
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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)
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
MODEL ER a MODEL RELACIONAL
TRANSFORMACIÓ
Miquel Boada Artigas
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).
Miquel Boada Artigas
Conjunt entitats - Exemple
Feina {Nom, Descripció}
Projectes {Nom, Pressupost}
Treballador {DNI, NSS (CC), Nom, DataNaixement}
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
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 }
Miquel Boada Artigas
Relacions N:M - Exemple
UF { CodiModul, CodiUF, Nom, Hores }
Alumnes { DNI, Nom }
Cursen { CodiModul, CodiUF, DNI, Data, Nota }
Miquel Boada Artigas
Relacions N:M - Exemple
Feina {Nom, Descripció}
Projectes {Nom, Pressupost}
Treballador {DNI, NSS (CC), Nom, DataNaixement}
FTP {Projecte, Feina, DNI, Cost }
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
Miquel Boada Artigas
Relacions 1:N - Exemple
Provincia { Codi, Nom(CC) }
Comarca { Nom, CodiProv }
Miquel Boada Artigas
Relacions 1:N - Exemple
Modul { Codi, Nom(CC) }
UF { Codi,Mòdul, Nom(CC) }
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
Miquel Boada Artigas
Relacions 1:1 - Exemple
Dept { NomDept, Pressup., Ubic., NSS (CC), DNI (CC), NomTreb }
Miquel Boada Artigas
Relacions 1:1 - Exemple
Persona { DNI, Nom, Genere }
Casat { DNI1, DNI2 }
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
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
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
Jeràrquia - Exemple (Opció 1)
Vehicle {Matricula, Bastidor (CC), Preu, Seient, Tones, Mat. Per.}
Utilitzem valors NULL
Miquel Boada Artigas
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
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

Más contenido relacionado

Destacado

Evaluating Current Laparoscopic Applications In Surgery
Evaluating Current Laparoscopic Applications In SurgeryEvaluating Current Laparoscopic Applications In Surgery
Evaluating Current Laparoscopic Applications In SurgeryGeorge S. Ferzli
 
Molecular Profiling of Cholangiocarcinoma - Milind Javle, MD
Molecular Profiling of Cholangiocarcinoma - Milind Javle, MDMolecular Profiling of Cholangiocarcinoma - Milind Javle, MD
Molecular Profiling of Cholangiocarcinoma - Milind Javle, MDrick435
 
Gold Medal Teamwork with Mary Whipple
Gold Medal Teamwork with Mary WhippleGold Medal Teamwork with Mary Whipple
Gold Medal Teamwork with Mary WhippleSpoken Communications
 
Cholangiocarcinoma
CholangiocarcinomaCholangiocarcinoma
Cholangiocarcinomaspa718
 
Determining resectability in pancreatic cancer
Determining resectability in pancreatic cancer Determining resectability in pancreatic cancer
Determining resectability in pancreatic cancer harish Ys
 
Advances in cholangiocarcinoma
Advances in cholangiocarcinomaAdvances in cholangiocarcinoma
Advances in cholangiocarcinomaspa718
 
Git Endoscopic Ultrasound.
Git Endoscopic Ultrasound.Git Endoscopic Ultrasound.
Git Endoscopic Ultrasound.Shaikhani.
 
Presentation1.pptx, radiological imaging of cholangiocarcinoma.
Presentation1.pptx, radiological imaging of cholangiocarcinoma.Presentation1.pptx, radiological imaging of cholangiocarcinoma.
Presentation1.pptx, radiological imaging of cholangiocarcinoma.Abdellah Nazeer
 
Diagnostic Imaging of Cholangiocarcinoma
Diagnostic Imaging of CholangiocarcinomaDiagnostic Imaging of Cholangiocarcinoma
Diagnostic Imaging of CholangiocarcinomaMohamed M.A. Zaitoun
 
Colangiocarcinoma
ColangiocarcinomaColangiocarcinoma
ColangiocarcinomaNH Hdz
 
Imaging of Bile Duct - Columbia Asia Workshop
Imaging of Bile Duct - Columbia Asia WorkshopImaging of Bile Duct - Columbia Asia Workshop
Imaging of Bile Duct - Columbia Asia Workshopinjoosweb
 
Artery first approaches to Pancreatoduodenectomy
Artery first approaches to Pancreatoduodenectomy Artery first approaches to Pancreatoduodenectomy
Artery first approaches to Pancreatoduodenectomy Sanjay Pandanaboyana
 
Obstructive jaundice 19_9_2014
Obstructive jaundice 19_9_2014Obstructive jaundice 19_9_2014
Obstructive jaundice 19_9_2014DrAnum Ammad
 
Biliary tract imaging final...........
Biliary tract imaging  final...........Biliary tract imaging  final...........
Biliary tract imaging final...........Ram Jharpula
 
Cholangiocarcinoma: Pathology, diagnosis and treatment.
Cholangiocarcinoma: Pathology, diagnosis and treatment.Cholangiocarcinoma: Pathology, diagnosis and treatment.
Cholangiocarcinoma: Pathology, diagnosis and treatment.Marco Castillo
 

Destacado (19)

Evaluating Current Laparoscopic Applications In Surgery
Evaluating Current Laparoscopic Applications In SurgeryEvaluating Current Laparoscopic Applications In Surgery
Evaluating Current Laparoscopic Applications In Surgery
 
Molecular Profiling of Cholangiocarcinoma - Milind Javle, MD
Molecular Profiling of Cholangiocarcinoma - Milind Javle, MDMolecular Profiling of Cholangiocarcinoma - Milind Javle, MD
Molecular Profiling of Cholangiocarcinoma - Milind Javle, MD
 
Hepatic & pancreatic tumors
Hepatic & pancreatic tumorsHepatic & pancreatic tumors
Hepatic & pancreatic tumors
 
Gold Medal Teamwork with Mary Whipple
Gold Medal Teamwork with Mary WhippleGold Medal Teamwork with Mary Whipple
Gold Medal Teamwork with Mary Whipple
 
LAPAROSCOPIC SURGERY- PAST, PRESENT AND FUTURE
 LAPAROSCOPIC SURGERY- PAST, PRESENT AND FUTURE LAPAROSCOPIC SURGERY- PAST, PRESENT AND FUTURE
LAPAROSCOPIC SURGERY- PAST, PRESENT AND FUTURE
 
Cholangiocarcinoma
CholangiocarcinomaCholangiocarcinoma
Cholangiocarcinoma
 
Determining resectability in pancreatic cancer
Determining resectability in pancreatic cancer Determining resectability in pancreatic cancer
Determining resectability in pancreatic cancer
 
Advances in cholangiocarcinoma
Advances in cholangiocarcinomaAdvances in cholangiocarcinoma
Advances in cholangiocarcinoma
 
Git Endoscopic Ultrasound.
Git Endoscopic Ultrasound.Git Endoscopic Ultrasound.
Git Endoscopic Ultrasound.
 
Focal liver lesion
Focal liver lesionFocal liver lesion
Focal liver lesion
 
Presentation1.pptx, radiological imaging of cholangiocarcinoma.
Presentation1.pptx, radiological imaging of cholangiocarcinoma.Presentation1.pptx, radiological imaging of cholangiocarcinoma.
Presentation1.pptx, radiological imaging of cholangiocarcinoma.
 
Diagnostic Imaging of Cholangiocarcinoma
Diagnostic Imaging of CholangiocarcinomaDiagnostic Imaging of Cholangiocarcinoma
Diagnostic Imaging of Cholangiocarcinoma
 
Colangiocarcinoma
ColangiocarcinomaColangiocarcinoma
Colangiocarcinoma
 
Imaging of Bile Duct - Columbia Asia Workshop
Imaging of Bile Duct - Columbia Asia WorkshopImaging of Bile Duct - Columbia Asia Workshop
Imaging of Bile Duct - Columbia Asia Workshop
 
Artery first approaches to Pancreatoduodenectomy
Artery first approaches to Pancreatoduodenectomy Artery first approaches to Pancreatoduodenectomy
Artery first approaches to Pancreatoduodenectomy
 
Cholangiocarcinoma
CholangiocarcinomaCholangiocarcinoma
Cholangiocarcinoma
 
Obstructive jaundice 19_9_2014
Obstructive jaundice 19_9_2014Obstructive jaundice 19_9_2014
Obstructive jaundice 19_9_2014
 
Biliary tract imaging final...........
Biliary tract imaging  final...........Biliary tract imaging  final...........
Biliary tract imaging final...........
 
Cholangiocarcinoma: Pathology, diagnosis and treatment.
Cholangiocarcinoma: Pathology, diagnosis and treatment.Cholangiocarcinoma: Pathology, diagnosis and treatment.
Cholangiocarcinoma: Pathology, diagnosis and treatment.
 

Más de Miquel Boada Artigas

Configuració d'un sistema d'auditoria amb Windows Server
Configuració d'un sistema d'auditoria amb Windows ServerConfiguració d'un sistema d'auditoria amb Windows Server
Configuració d'un sistema d'auditoria amb Windows ServerMiquel Boada Artigas
 
Monitorització en sistemes informàtics. Windows i Linux.
Monitorització en sistemes informàtics. Windows i Linux.Monitorització en sistemes informàtics. Windows i Linux.
Monitorització en sistemes informàtics. Windows i Linux.Miquel Boada Artigas
 
LLenguatge SQL. Consultes utilitzant having
LLenguatge SQL. Consultes utilitzant havingLLenguatge SQL. Consultes utilitzant having
LLenguatge SQL. Consultes utilitzant havingMiquel Boada Artigas
 
LLenguatge SQL. Consultes amb agrupació de files.
LLenguatge SQL. Consultes amb agrupació de files. LLenguatge SQL. Consultes amb agrupació de files.
LLenguatge SQL. Consultes amb agrupació de files. Miquel Boada Artigas
 
Consultes amb múltiples taules utilitzant left, right i inner join. Funcionam...
Consultes amb múltiples taules utilitzant left, right i inner join. Funcionam...Consultes amb múltiples taules utilitzant left, right i inner join. Funcionam...
Consultes amb múltiples taules utilitzant left, right i inner join. Funcionam...Miquel Boada Artigas
 
Consultes simples mitjançant llenguatge SQL. Filtres, ordenació i aplicació d...
Consultes simples mitjançant llenguatge SQL. Filtres, ordenació i aplicació d...Consultes simples mitjançant llenguatge SQL. Filtres, ordenació i aplicació d...
Consultes simples mitjançant llenguatge SQL. Filtres, ordenació i aplicació d...Miquel Boada Artigas
 
Creació de taules amb integritat referencial.
Creació de taules amb integritat referencial.Creació de taules amb integritat referencial.
Creació de taules amb integritat referencial.Miquel Boada Artigas
 
Creació de base de dades utilitzant llenguatge SQL.
Creació de base de dades utilitzant llenguatge SQL.Creació de base de dades utilitzant llenguatge SQL.
Creació de base de dades utilitzant llenguatge SQL.Miquel Boada Artigas
 
Tema 01 - Creació de taules amb SQL.
Tema 01 - Creació de taules amb SQL.Tema 01 - Creació de taules amb SQL.
Tema 01 - Creació de taules amb SQL.Miquel Boada Artigas
 
Instal·lació MySQL Server i Workbench. Creació de base de dades. Tipus de dad...
Instal·lació MySQL Server i Workbench. Creació de base de dades. Tipus de dad...Instal·lació MySQL Server i Workbench. Creació de base de dades. Tipus de dad...
Instal·lació MySQL Server i Workbench. Creació de base de dades. Tipus de dad...Miquel Boada Artigas
 
Transformació model entitat-relació al model relacional
Transformació model entitat-relació al model relacionalTransformació model entitat-relació al model relacional
Transformació model entitat-relació al model relacionalMiquel Boada Artigas
 
Model entitat relació extès (Extended Entity Relationship)
Model entitat relació extès (Extended Entity Relationship)Model entitat relació extès (Extended Entity Relationship)
Model entitat relació extès (Extended Entity Relationship)Miquel Boada Artigas
 
Introducció bases de dades distribuides
Introducció bases de dades distribuidesIntroducció bases de dades distribuides
Introducció bases de dades distribuidesMiquel Boada Artigas
 
Introducció bases de dades centralitzades
Introducció bases de dades centralitzadesIntroducció bases de dades centralitzades
Introducció bases de dades centralitzadesMiquel Boada Artigas
 
Sistemes gestors de bases de dades
Sistemes gestors de bases de dadesSistemes gestors de bases de dades
Sistemes gestors de bases de dadesMiquel Boada Artigas
 

Más de Miquel Boada Artigas (20)

Configuracio servei dns_linux
Configuracio servei dns_linuxConfiguracio servei dns_linux
Configuracio servei dns_linux
 
Configuracio servei dns Windows
Configuracio servei dns WindowsConfiguracio servei dns Windows
Configuracio servei dns Windows
 
Configuració d'un sistema d'auditoria amb Windows Server
Configuració d'un sistema d'auditoria amb Windows ServerConfiguració d'un sistema d'auditoria amb Windows Server
Configuració d'un sistema d'auditoria amb Windows Server
 
Monitorització en sistemes informàtics. Windows i Linux.
Monitorització en sistemes informàtics. Windows i Linux.Monitorització en sistemes informàtics. Windows i Linux.
Monitorització en sistemes informàtics. Windows i Linux.
 
LLenguatge SQL. Consultes utilitzant having
LLenguatge SQL. Consultes utilitzant havingLLenguatge SQL. Consultes utilitzant having
LLenguatge SQL. Consultes utilitzant having
 
LLenguatge SQL. Consultes amb agrupació de files.
LLenguatge SQL. Consultes amb agrupació de files. LLenguatge SQL. Consultes amb agrupació de files.
LLenguatge SQL. Consultes amb agrupació de files.
 
Consultes amb múltiples taules utilitzant left, right i inner join. Funcionam...
Consultes amb múltiples taules utilitzant left, right i inner join. Funcionam...Consultes amb múltiples taules utilitzant left, right i inner join. Funcionam...
Consultes amb múltiples taules utilitzant left, right i inner join. Funcionam...
 
Consultes simples mitjançant llenguatge SQL. Filtres, ordenació i aplicació d...
Consultes simples mitjançant llenguatge SQL. Filtres, ordenació i aplicació d...Consultes simples mitjançant llenguatge SQL. Filtres, ordenació i aplicació d...
Consultes simples mitjançant llenguatge SQL. Filtres, ordenació i aplicació d...
 
Creació de taules amb integritat referencial.
Creació de taules amb integritat referencial.Creació de taules amb integritat referencial.
Creació de taules amb integritat referencial.
 
Creació de base de dades utilitzant llenguatge SQL.
Creació de base de dades utilitzant llenguatge SQL.Creació de base de dades utilitzant llenguatge SQL.
Creació de base de dades utilitzant llenguatge SQL.
 
Tema 01 - Creació de taules amb SQL.
Tema 01 - Creació de taules amb SQL.Tema 01 - Creació de taules amb SQL.
Tema 01 - Creació de taules amb SQL.
 
Instal·lació MySQL Server i Workbench. Creació de base de dades. Tipus de dad...
Instal·lació MySQL Server i Workbench. Creació de base de dades. Tipus de dad...Instal·lació MySQL Server i Workbench. Creació de base de dades. Tipus de dad...
Instal·lació MySQL Server i Workbench. Creació de base de dades. Tipus de dad...
 
Model relacional i normalització
Model relacional i normalitzacióModel relacional i normalització
Model relacional i normalització
 
Transformació model entitat-relació al model relacional
Transformació model entitat-relació al model relacionalTransformació model entitat-relació al model relacional
Transformació model entitat-relació al model relacional
 
Model entitat relació extès (Extended Entity Relationship)
Model entitat relació extès (Extended Entity Relationship)Model entitat relació extès (Extended Entity Relationship)
Model entitat relació extès (Extended Entity Relationship)
 
Model entitat relació (ER)
Model entitat relació (ER)Model entitat relació (ER)
Model entitat relació (ER)
 
Introducció bases de dades distribuides
Introducció bases de dades distribuidesIntroducció bases de dades distribuides
Introducció bases de dades distribuides
 
Introducció bases de dades centralitzades
Introducció bases de dades centralitzadesIntroducció bases de dades centralitzades
Introducció bases de dades centralitzades
 
Sistemes gestors de bases de dades
Sistemes gestors de bases de dadesSistemes gestors de bases de dades
Sistemes gestors de bases de dades
 
Emmagatzematge de la informació
Emmagatzematge de la informacióEmmagatzematge de la informació
Emmagatzematge de la informació
 

Model relacional i formes normals

  • 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
  • 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. 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).
  • 41. Miquel Boada Artigas Conjunt entitats - Exemple Feina {Nom, Descripció} Projectes {Nom, Pressupost} Treballador {DNI, NSS (CC), Nom, DataNaixement}
  • 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. 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. Miquel Boada Artigas Relacions N:M - Exemple UF { CodiModul, CodiUF, Nom, Hores } Alumnes { DNI, Nom } Cursen { CodiModul, CodiUF, DNI, Data, Nota }
  • 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. 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. Miquel Boada Artigas Relacions 1:N - Exemple Provincia { Codi, Nom(CC) } Comarca { Nom, CodiProv }
  • 48. Miquel Boada Artigas Relacions 1:N - Exemple Modul { Codi, Nom(CC) } UF { Codi,Mòdul, Nom(CC) }
  • 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. Miquel Boada Artigas Relacions 1:1 - Exemple Dept { NomDept, Pressup., Ubic., NSS (CC), DNI (CC), NomTreb }
  • 51. Miquel Boada Artigas Relacions 1:1 - Exemple Persona { DNI, Nom, Genere } Casat { DNI1, DNI2 }
  • 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
  • 55. Jeràrquia - Exemple (Opció 1) Vehicle {Matricula, Bastidor (CC), Preu, Seient, Tones, Mat. Per.} Utilitzem valors NULL 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