IES GONZALO NAZARENO Bases de Datos Relacionales UNIDAD DIDACTICA 2: BASES DE DATOS RELACIONALES ndice de contenido 1. El modelo Entidad-Relacin (ER....................................................................................................! 1.1.- Elemento" del modelo E-R......................................................................................................! 1.1.1.- Entidade"..........................................................................................................................! 1.1.1.1.- Ti#o" de Entidade"...................................................................................................! 1.1.1.2.- Com#onente" de la" entidade".................................................................................$ 1.1.2.- Relacione"........................................................................................................................% 1.1.2.1.- &'ado de la" 'elacione"............................................................................................% 1.1.2.2.- Ca'dinalidad de la" 'elacione".................................................................................( 1.2.- &ene'ali)acin * +e'a',-.a" de /ene'ali)acin........................................................................0 1.2.1.- 1a'cial2Total * E3cl-"i4a2Sola#ada.................................................................................0 2. El modelo Relacional.......................................................................................................................5 2.1.- E"t'-ct-'a del modelo 'elacional...........................................................................................16 2.1.1.- Dominio" * At'i7-to".....................................................................................................16 2.1.2.- Relacione"......................................................................................................................11 2.1.!.- Cla4e"............................................................................................................................12 2.2.- Re"t'iccione" del modelo 'elacional......................................................................................1! 2.2.1.- In8e'ente" al modelo......................................................................................................1! 2.2.2.- Sem9ntica" o de -"-a'io.................................................................................................1! 2.!.- T'an":o'macin de -n e",-ema E-R a -n e",-ema 'elacional..............................................1; 2.!.1.- T'an":o'macin de 'elacione" N-<...............................................................................1; 2.!.2.- T'an":o'macin de 'elacione" 1-N.................................................................................1( 2.!.!.- T'an":o'macin de 'elacione" 1-1..................................................................................26 2.!.$.- T'an":o'macin de 'elacione" 'e:le3i4a" o 'ec-'"i4a"...................................................22 2.!.%.- T'an":o'macin de +e'a',-.a" al modelo 'elacional.......................................................2$ 19/ina 2 de 2$ Bases de Datos Relacionales UD02: Bases de Datos Relacionales. 1. El modelo Entidad-Relacin (ER). El modelo entidad-'elacin (E-R :-e #'o#-e"to #o' 1ete' C8en= en 15(; #a'a la 'e#'e"entacin conce#t-al de lo" #'o7lema" del m-ndo 'eal. E" -n modelo m-* e3tendido * #otente #a'a la 'e#'e"entacin de lo" dato"> e" la 'e:e'encia ,-e "e -tili)a #a'a el di"e?o de modelo" 'elacionale". Se "im7oli)a 8aciendo -"o de /'9:ico" en lo ,-e "e 'e#'e"enta la" entidade" * la" 'elacione" ent'e ella". 1.1.- Elementos del modelo E-R.
1.1.1.- Entidades. Son o7+eto" del m-ndo 'eal ,-e tienen inte'@" #a'a la em#'e"a. Cada entidad "e identi:ica #o' "- nom7'e. Se 'e#'e"enta -tili)ando 'ect9n/-lo". Un e+em#lo "e'ia la entidad 7anco= donde "e 'eco/e'.an lo" dato" 'elati4o" a e"e 7anco= como #-ede "e' el nom7'e= el nAme'o de "-c-'"al= la di'eccin= etc. 1.1.1.1.- Tipos de Entidades. Ba* do" ti#o" de entidade": - Entidad fuerte: E" a,-ella ,-e no de#ende de ot'a #a'a "- e3i"tencia. E+em#lo: la entidad ALUMNOS #e'teneciente a -n cent'o e"cola'= o la entidad CLIENES de -n 7anco. - Entidad d!"il: E" a,-ella ,-e nece"ita de ot'a entidad #a'a e3i"ti'. Se 'e#'e"enta mediante -n 'ect9n/-lo do7le. E+em#lo: la entidad NOAS nece"ita a la entidad ALUMNOS= #o',-e "in al-mno" no 8a* nota". E+em#lo: en el "i/-iente /'9:ico #odemo" 4e' 4a'ia" entidade" :-e'te"= 'e#'e"entada" #o' 'ect9n/-lo" (a't.c-lo= a-to'= in"tit-cin. Tam7i@n #odemo" 4e' -na entidad d@7il= 'e#'e"entada #o' -n 'ect9n/-lo do7le (e3#e'imento. 19/ina ! de 2$ Bases de Datos Relacionales 1.1.1.2.- Componentes de las entidades. 1. Atri"utos: Son la" -nidade" de in:o'macin ,-e de"c'i7e #'o#iedade" de entidade". El con+-nto de 4alo'e" #e'mitido" #a'a cada at'i7-to "e llama dominio. Lo" at'i7-to" "e 'e#'e"entan mediante -na eli#"e con el nom7'e dent'o. 1o' e+em#lo: en la "i/-iente ima/en= la entidad CLIENTE tiene lo" "i/-iente" at'i7-to": id- cliente= nom7'e-cliente= calle-cliente= ci-dad-cliente. La entidad 1RCSTA<O tiene lo" "i/-iente" at'i7-to": nAme'o-#'@"tamo= im#o'te. E+em#lo: el dominio del cam#o calle-cliente "e'9 el :o'mado #o' toda" la" cadena" de lon/it-d 26 ca'acte'e". 19/ina $ de 2$ Bases de Datos Relacionales 2. Cla#e $ri%aria o $rinci$al &'ri%ar( )e(*: E" el con+-nto de at'i7-to" ,-e identi:ica de :o'ma Anica -na entidad. No #-ede contene' 4alo'e" n-lo". La cla4e #'ima'ia 8a de "e' "encilla de c'ea'= * no 8a de 4a'ia' en el tiem#o. Se 'e#'e"enta "-7'a*ando el at'i7-to o at'i7-to" ,-e :o'man la cla4e. 1o' e+em#lo: en la ima/en ante'io'= la cla4e #'ima'ia de la entidad CLIENTE e" id-cliente. La cla4e #'ima'ia de la entidad 1RCSTA<OS e" nAme'o-#'@"tamo. Tened en c-enta ,-e la cla4e #'ima'ia #-ede e"ta' :o'mada #o' m9" de -n at'i7-to. !. Cla#e a+ena o for,nea &-orei.n )e(*: Es el atri"uto o con+unto de atri"utos de una entidad /ue for%an la cla#e $ri%aria de otra entidad. La" cla4e" a+ena" 4an a 'e#'e"enta' la" 'elacione" ent'e ta7la". 1.1.2.- Relaciones. Una 'elacin e" la a"ociacin ent'e do" o m9" entidade". Tienen nom7'e de 4e'7o * "e 'e#'e"enta mediante -n 'om7o. 1.1.2.1.- Grado de las relaciones. Se de:ine el /'ado de -na 'elacin como el nAme'o de entidade" ,-e #a'tici#an en la mi"ma. Las relaciones en las /ue $artici$an dos entidades se deno%inan "inarias o de .rado dos> si $artici$an tres0 ser,n ternarias o de .rado tres. Lo" con+-nto" de 'elacione" #-eden tene' c-al,-ie' /'ado. Lo ideal es tener relaciones "inarias. 19/ina % de 2$ Bases de Datos Relacionales La "i/-iente ima/en m-e"t'a -na 'elacin 7ina'ia= de nom7'e CO<1RA (ent'e la" entidade" CLIENTE * 1RODUCTO: La "i/-iente ima/en m-e"t'a -na 'elacin te'na'ia de nom7'e TRABADA-EN (entidade" E<1LEADO= TRABADO * SUCURSAL: La" 'elacione" en la" ,-e "olo #a'tici#an -na entidad "e llama de /'ado -no o anillo: -na entidad "e 'elaciona con"i/o mi"ma> "e le" llama 'elacione" 'e:le3i4a" o 'ec-'"i4a". En la "i/-iente ima/en "e m-e"t'a -na 'elacin -na'ia= de nom7'e CASADO (en la ,-e #a'tici#a -na Anica entidad de nom7'e E<1LEADO. 19/ina ; de 2$ Bases de Datos Relacionales 1.1.2.2.- Cardinalidad de las relaciones. La" 'elacione"= en #'inci#io 7ina'ia"= #-eden in4ol-c'a' a -n nAme'o di"tinto de in"tancia" de cada entidad. A".= "on #o"i7le" t'e" ti#o" de ca'dinalidade": Relacione" de uno a uno: -na in"tancia de la entidad A "e 'elaciona con -na * "olamente -na de la entidad B 1 . Relacione" de uno a %uc1os: cada in"tancia de la entidad A "e 'elaciona con 4a'ia" in"tancia" de la entidad B 2
! . Relacione" de %uc1os a %uc1os: c-al,-ie' in"tancia de la entidad A "e 'elaciona con c-al,-ie' in"tancia de la entidad B $ . La ca'dinalidad de -na entidad "i'4e #a'a conoce' "- /'ado de #a'tici#acin en la 'elacin. La 'e#'e"entamo" ent'e #a'@nte"i" indicando lo" 4alo'e" m.nimo * m93imo. Lo" 4alo'e" #a'a la ca'dinalidad "on: (6=1= (1=1= (6= n= (1= n * (n= m. E+em#lo: 7a"9ndono" en el "i/-iente dia/'ama E-R. A -n cliente le co''e"#onden 1 o n #'od-cto". E" deci'= -n cliente com#'a -no o m-c8o" #'od-cto" (en #'inci#io no tiene "entido ,-e -n cliente com#'e 6 #'od-cto". Al mi"mo tiem#o= -n #'od-cto #-ede "e' com#'ado #o' 6 a n cliente". E" deci'= -n mi"mo #'od-cto (-n lit'o de aceite de oli4a 4i'/en e3t'a ELa E"#a?olaF #-ede "e' com#'ado #o' nin/An 1 E" deci'= a cada elemento de la #'ime'a entidad le co''e"#onde "lo -no de la "e/-nda entidad= * 4ice4e'"a. 1o' e+em#lo= -n cliente de 8otel oc-#a -na 8a7itacin= o -n /'-#o de al-mno" #e'tenece a -n a-la= * a e"a a-la "lo a"i"te e"e /'-#o de al-mno". 2 E" deci'= a cada elemento de la #'ime'a entidad le co''e"#onde -no o m9" elemento" de la "e/-nda entidad= * a cada elemento de la "e/-nda entidad le co''e"#onde -no "olo de la #'ime'a entidad. 1o' e+em#lo= -n #'o4eedo' "-mini"t'a m-c8o" a't.c-lo". G -n a't.c-lo e" "-mini"t'ado #o' "olo -n #'o4eedo'. ! Tam7i@n "e #'e"enta el ca"o cont'a'io: N:1. E" deci'= 'elacione" de m-c8o" a -no. E" el mi"mo ca"o ,-e la" de -no a m-c8o". $ E" deci'= a cada elemento de la #'ime'a entidad le co''e"#onde -no o m9" elemento" de la "e/-nda entidad= * a cada elemento de la "e/-nda entidad le co''e"#onden -no o m9" elemento" de la #'ime'a entidad. 1o' e+em#lo= -n 4endedo' 4ende m-c8o" a't.c-lo"= * -n a't.c-lo e" 4endido #o' m-c8o" 4endedo'e". 19/ina ( de 2$ Bases de Datos Relacionales cliente o #o' m-c8o" cliente". 1.2.- Generalizacin y jerarquas de generalizacin. La" /ene'ali)acione" #'o#o'cionan -n mecani"mo de a7"t'accin ,-e #e'mite e"#eciali)a' -na entidad ,-e "e denomina'9 "-#e'ti#o en "-7ti#o"= o lo ,-e e" lo mi"mo= /ene'ali)a' lo" "-7ti#o" en el "-#e'ti#o. Una /ene'ali)acin "e identi:ica "i encont'amo" -na "e'ie de at'i7-to" com-ne" a -n con+-nto de entidade"= * -no" at'i7-to" e"#ec.:ico" ,-e identi:ica'an -na" ca'acte'."tica". Lo" at'i7-to" com-ne" de"c'i7i'9n el "-#e'ti#o * lo" #a'tic-la'e" lo" "-7ti#o". Una de la" ca'acte'."tica" m9" im#o'tante de la +e'a',-.a e" la 8e'encia= #o' la ,-e lo" at'i7-to" de -n "-#e'ti#o "on 8e'edado" #o' "-" "-7ti#o". 1.2.1.- Parcial/Total y Exclusiva/Solaada. La /ene'ali)acin e" total "i no 8a* oc-''encia en el "-#e'ti#o ,-e no #e'tene)ca a nin/-no de lo" "-7ti#o". En ot'o ca"o la /ene'ali)acin "e'.a #a'cial. 19/ina 0 de 2$ Bases de Datos Relacionales La /ene'ali)acin "e'9 e3cl-"i4a "i -na oc-''encia no #-ede a#a'ece' en 4a'io" "-7ti#o" a la 4e). E+em#lo ("ola#ada * #a'cial: 2. El modelo Relacional. El modelo de dato" 'elacional :-e de"a''ollado #o' Codd % . El modelo de Codd #e'"i/-e al i/-al ,-e la ma*o'.a de lo" modelo" de dato" lo" "i/-iente" o7+eti4o": %1a'a "a7e' m9" "o7'e Ed/a' H'anI Codd: 8tt#:22e".JiIi#edia.o'/2JiIi2Ed/a'KH'anIKCodd 19/ina 5 de 2$ Bases de Datos Relacionales 1. Inde$endencia f2sica de los datos= e"to e"= el modo de almacenamiento de lo" dato" no de7e in:l-i' en "- mani#-lacin l/ica. 2. Inde$endencia l3.ica de los datos= e" deci'= lo" cam7io" ,-e "e 'ealicen en lo" o7+eto" de la 7a"e de dato" no de7en 'e#e'c-ti' en lo" #'o/'ama" * -"-a'io" ,-e acceden a ella. !. -le4i"ilidad0 #a'a #'e"enta' a lo" -"-a'io" lo" dato" de la :o'ma m9" adec-ada. $. Unifor%idad0 en la #'e"entacin de la l/ica de lo" dato"= ,-e "on ta7la"= lo ,-e :acilita la mani#-lacin de la 7a"e de dato" #o' #a'te de lo" -"-a'io". %. Sencille50 e"te modelo e" :9cil de com#'ende' * -tili)a' #o' el -"-a'io. 1a'a con"e/-i' e"to" o7+eti4o" Codd int'od-ce el conce#to de relaci3n &ta"las* como e"t'-ct-'a 79"ica del modelo= todo" lo" dato" de -na 7a"e de dato" "e 'e#'e"enta en :o'ma de 'elacione" c-*o contenido 4a'.a en el tiem#o. 2.1.- Estructura del modelo relacional. La 'elacin e" el elemento 79"ico del modelo 'elacional * "e 'e#'e"enta como -na ta7la= en la ,-e "e #-ede di"tin/-i': el nom7'e de la ta7la. el con+-nto de col-mna" ,-e 'e#'e"entan la" #'o#iedade" de la ta7la * ,-e "e denominan at'i7-to"= * el con+-nto de :ila"= llamada" t-#la" ,-e contienen lo" 4alo'e" ,-e toman cada -no de lo" at'i7-to" #a'a cada elemento de la 'elacin. Una 'elacin tiene -na "e'ie de elemento" ca'acte'."tico" ,-e la di"tin/-en de -na ta7la: No admiten :ila" d-#licada". La" :ila" * la" col-mna" no e"t9n o'denada". La ta7la e" #lana. En el c'-ce de -na :ila * -na col-mna "olo #-ede 8a7e' -n 4alo'. Lo" elemento" ,-e con"tit-*e el modelo 'elacional "on: 2.1.1.- !ominios y "tri#utos. DOMINIO Se de:ine DOMINIO como el con+-nto :inito de 4alo'e" 8omo/@neo" (todo" del mi"mo ti#o * atmico" ("on indi4i"i7le" ,-e #-ede toma' cada at'i7-to. Lo" 4alo'e" 19/ina 16 de 2$ Bases de Datos Relacionales contenido" en -na col-mna #e'tenecen a -n dominio ,-e #'e4iamente "e 8a de:inido. Todo" lo" dominio" tienen -n nom7'e * -n ti#o de dato" a"ociado". E3i"ten do" ti#o" de dominio": a. Dominio" /ene'ale": "on a,-ello" c-*o" 4alo'e" e"t9n com#'endido ent'e -n m93imo * -n m.nimo. 1o' e+em#lo: cdi/oK#o"tal= :o'mado #o' todo" lo" nAme'o" ente'o" #o"iti4o" de cinco ci:'a". 7. Dominio" 'e"t'in/ido": Son lo" ,-e #e'tenece a -n con+-nto de 4alo'e" e"#ec.:ico. 1o' e+em#lo: "e3o. Solamente #-ede toma' lo" 4alo'e" B * <. ARIBUO Se de:ine ARIBUO como el #a#el o 'ol ,-e de"em#e?a -n dominio en -na 'elacin. Re#'e"enta el -"o de -n dominio #a'a -na dete'minada 'elacin. El at'i7-to a#o'ta -n "i/ni:icado "em9ntico a -n dominio. 1o' e+em#lo= en la 'elacin ALU<NOS #odemo" con"ide'a' lo" "i/-iente" at'i7-to" * dominio": At'i7-to NU<K<AT. Dominio: con+-nto de ente'o" :o'mado" #o' $ d./ito". At'i7-to NO<BRE. Dominio: con+-nto de 1% ca'acte'e". At'i7-to A1ELLIDOS. Dominio: con+-nto de 26 ca'acte'e". At'i7-to CURSO. Dominio: con+-nto de ( ca'acte'e". 2.1.2.- Relaciones. Las relaciones se re$resentan %ediante una ta"la con filas ( colu%nas. Un S&BD "olo nece"ita ,-e el -"-a'io #-eda #e'ci7i' la BD como -n con+-nto de ta7la". En el modelo 'elacional la" 'elacione" "e -tili)an #a'a almacena' in:o'macin "o7'e lo" o7+eto" ,-e "e 'e#'e"entan en la BD. Se 'e#'e"enta como -na ta7la 7idimen"ional en la ,-e la" :ila" co''e"#onden a 'e/i"t'o" indi4id-ale" * la" col-mna" a lo" cam#o" o at'i7-to" de e"o" 'e/i"t'o". La 'elacin e"t9 :o'mada #o': Atri"utos &colu%nas*. Se t'ata de cada -na de la" col-mna" de la ta7la. La" col-mna" tienen -n nom7'e * #-eden /-a'da' -n con+-nto de 4alo'e". Una col-mna "e identi:ica "iem#'e #o' "- nom7'e= n-nca #o' "- #o"icin. El o'den de la" col-mna" en -na ta7la e" i''ele4ante. u$las &filas*. Cada t-#la 'e#'e"enta -na :ila de la ta7la. En la "i/-iente ta7la 4emo" ,-e a#a'ecen t'e" t-#la" o :ila"= * c-at'o at'i7-to" (n-mKmat= nom7'e= a#ellido"= c-'"o. 19/ina 11 de 2$ Bases de Datos Relacionales De la" ta7la" "e de'i4an lo" "i/-iente" conce#to": Cardinalidad. E" el nAme'o de :ila" de la ta7la. En el e+em#lo ante'io'= e" TRES. 6rado. E" el nAme'o de col-mna" de la ta7la. En el e+em#lo ante'io'= e" CUATRO. 7alor. E"ta 'e#'e"entado #o' la inte'"eccin ent'e -na :ila * col-mna. 1o' e+em#lo= en la ta7la ante'io'= "on 4alo'e" ECABELLOF EDUANF= (;22... 7alor null. Re#'e"enta la a-"encia de in:o'macin. La" 'elacione" tienen la" "i/-iente" ca'acte'."tica": - Cada 'elacin tiene -n nom7'e * e"te e" di"tinto de lo" dem9". - Lo" 4alo'e" de lo" at'i7-to" "on atmico": en cada t-#la= cada at'i7-to toma -n "olo 4alo'. - No 8a* do" at'i7-to" ,-e "e llamen i/-al. - El o'den de lo" at'i7-to" e" i''ele4ante> no e"t9n o'denado". - Cada t-#la e" di"tinta de la" dem9"> no 8a* t-#la" d-#licada". - Al i/-al ,-e lo" at'i7-to"= el o'den de la" t-#la" e" i''ele4ante> la" t-#la" no e"t9n o'denada". 2.1.$.- %laves. En -na 'elacin no 8a* t-#la" 'e#etida"> "e identi:ica de -n modo Anico mediante lo" 4alo'e" de "-" at'i7-to". Toda :ila de7e e"ta' a"ociada con -na cla4e ,-e #e'mite identi:ica'la. A 4ece" la" :ila" "e #-eden identi:ica' con -n mi"mo at'i7-to= #e'o ot'a" 4ece" e" nece"a'io 'ec-''i' a m9" de -n at'i7-to. La cla#e candidata de -na 'elacin e" el con+-nto de at'i7-to" ,-e identifica de for%a 8nica ( %2ni%a cada t-#la de la 'elacin. Sie%$re 1a( una cla#e candidata. Una 'elacin #-ede tene' m9" de -na cla4e candidata ent'e la" c-ale" "e di"tin/-en: Cla#e $ri%aria o $rinci$al: a,-ella cla4e candidata ,-e el -"-a'io e"co/e #a'a identi:ica' la" t-#la" de la 'elacin. No #-ede tene' 4alo'e" n-lo". Cla#e alternati#a: a,-ella" cla4e" candidata" ,-e no 8an "ido e"co/ida" 19/ina 12 de 2$ Bases de Datos Relacionales como cla4e #'ima'ia. La cla#e a+ena de -na 'elacin R1 e" el con+-nto de at'i7-to" c-*o" 4alo'e" 8an de coincidi' con lo" 4alo'e" de la cla4e #'ima'ia de ot'a 'elacin R2. E+em#lo: ABLA DE'ARAMENOS CLALE 1RI<ARIA CLALE CANDIDATA NM DE1ARTA<ENTO NO<BRE DE1ARTA<ENTO 1RESU1UESTO D1 <ARNUETIN& 1666 D2 DESARROLLO 1266 D! INLESTI&ACION %666 ABLA EM'LEADOS CLALE 1RI<ARIA CLALE ADENA NM E<1LEADO A1ELLIDOS NM DE1ARTA<ENTO SALARIO E1 LO1EP D1 %66 E2 HERNANDEP D! 1666 E! &ARCQA D2 1266 2.2.- Restricciones del modelo relacional. En todo" lo" modelo" de dato" e3i"ten 'e"t'iccione" ,-e a la 8o'a de di"e?a' -na 7a"e de dato" "e 8an de tene' en c-enta. Lo" dato" almacenado" en la 7a"e de dato" 8an de ada#ta'"e a la" e"t'-ct-'a" im#-e"ta" #o' el modelo * de7en c-m#li' -na "e'ie de 'e/la" #a'a /a'anti)a' ,-e "on co''ecta". Lo" ti#o" de 'e"t'iccione" "on: 2.2.1.- &n'erentes al modelo. Indican la" ca'acte'."tica" #'o#ia" de -na 'elacin ,-e 8a de c-m#li'"e o7li/ato'iamente= * ,-e di:e'encian -na 'elacin de -na ta7la: No 8a* do" t-#la" i/-ale"= El o'den de la t-#la" * lo" at'i7-to" no e" 'ele4ante= Cada at'i7-to "lo #-ede toma' -n Anico 4alo' del dominio al ,-e #e'tenece *= Nin/An at'i7-to ,-e :o'me #a'te de la cla4e #'ima'ia de -na 'elacin #-ede toma' -n 4alo' n-lo. 2.2.2.- Sem(nticas o de usuario. Re#'e"entan la "em9ntica del m-ndo 'eal. C"ta" 8acen ,-e la" oc-''encia" de lo" e",-ema" de la 7a"e de dato" "ean 49lido". Lo" mecani"mo" ,-e #'o#o'cionan el modelo #a'a e"te ti#o de 'e"t'icione" "on lo" "i/-iente": o Restriccin de clave primaria (PRIMARY KEY)= #e'mite decla'a' -no o 4a'io" 19/ina 1! de 2$ Bases de Datos Relacionales at'i7-to" como cla4e #'ima'ia de -na 'elacin. o Restriccin de unicidad (UNIQUE)= #e'mite de:ini' cla4e" alte'nati4a". Lo" 4alo'e" de lo" at'i7-to" no #-eden 'e#eti'"e. o Restriccin de obliatoriedad (N!" NU##)0 #e'mite decla'a' "i -no o 4a'io" at'i7-to" no #-eden toma' 4alo'e" n-lo". (1o' e+em#lo: #od'.amo" decla'a' ,-e el at'i7-to EA#ellido"F de la ta7la ante'io' EEm#leado"F= no #-eda de+a'"e en 7lanco. o Interidad re$erencial o restriccin de clave a%ena= la inte/'idad 'e:e'encial indica ,-e lo" 4alo'e" de cla4e a+ena en la 'elacin 8i+o "e co''e"#onden con lo" de cla4e" #'ima'ia" en la 'elacin #ad'e. (1o' e+em#lo: ,-e no #-eda a#a'ece' en la ta7la ELenta"F el cdi/o de -n #'od-cto "i dic8o #'od-cto no "e enc-ent'a en la ta7la E1'od-cto"F. Adem9" de de:ini' la" cla4e" a+ena" 8a* ,-e tene' en c-enta la" o#e'acione" de 7o''ado * act-ali)acin ,-e "e 'eali)an "o7'e la" t-#la" de la 'elacin 'e:e'encial. La" $osi"ilidades "on la" "i/-iente": Borrado (9o %odificaci3n en cascada. &Cascade*. El 7o''ado o modi:icacin de -na t-#la en la 'elacin #ad'e ('elacin con la cla4e #'ima'ia oca"iona -n 7o''ado o modi:icacin de la" t-#la" 'elacionada" con la 'elacin 8i+a ('elacin ,-e contiene la cla4e a+ena. EDE<1LO: En el ca"o de em#leado" * de#a'tamento"= "i "e 7o''a -n de#a'tamento de la ta7la TDE1ART "e 7o''a'9n lo" em#leado" ,-e #e'tenecen a e"e de#a'tamento. I/-almente oc-''i'9 "i "e modi:ica el NU<DE1T de la ta7la TDE1ART: e"a modi:icacin "e a''a"t'a a lo" em#leado" ,-e #e'tene)can a e"e de#a'tamento. Borrado (9o %odificaci3n restrin.ido. &Restrict*. En e"te ca"o no e" #o"i7le 'eali)a' el 7o''ado o la modi:icacin de la" t-#la" de la 'elacin #ad'e "i e3i"ten t-#la" 'elacionada" en la 'elacin 8i+a. E" deci'= no #od'.a 7o''a' -n de#a'tamento ,-e tiene em#leado". Borrado (9o %odificaci3n con $uesta o nulos &Set null*. E"ta 'e"t'iccin #e'mite #one' la cla4e a+ena en la ta7la 'e:e'enciada a NULL "i "e #'od-ce el 7o''ado o modi:icacin en la ta7la #'ima'ia o #ad'e. A". #-e"= "i "e 7o''a -n de#a'tamento= a lo" em#leado" de e"e de#a'tamento "e a"i/na'9 NULL en el at'i7-to NU<DE1T. Borrado (9o %odificaci3n con $uesta o #alor $or defecto &Set default*. En e"te ca"o= el 4alo' ,-e "e #one en la cla4e" a+ena" de la ta7la 'e:e'enciada e" -n 4alo' #o' de:ecto ,-e "e 8a7'9 e"#eci:icado en la c'eacin de la ta7la. 19/ina 1$ de 2$ Bases de Datos Relacionales o Restricci3n de #erificaci3n &c1ec)* E"ta 'e"t'iccin #e'mite e"#eci:ica' condicione" ,-e de7en c-m#li' lo" 4alo'e" de lo" at'i7-to". Cada 4e) ,-e "e 'ealice -na in"e'cin o -na act-ali)acin de dato" "e com#'-e7a "i lo" 4alo'e" c-m#len la condicin. Rec8a)a la o#e'acin "i no "e c-m#le. o E+em#lo: ,-e el cam#o 1RECIOKLENTA "ea ma*o' ,-e 6. o E+em#lo: N-e el cam#o EDAD "ea ma*o' ,-e 6= * (#o' e+em#lo meno' ,-e 126. 2..- Trans!ormacin de un esquema E-R a un esquema relacional. Una 4e) o7tenido el e",-ema conce#t-al mediante el modelo E-R 8a* ,-e de:ini' el modelo l/ico de dato". La" 'e/la" 79"ica" #a'a t'an":o'ma' -n e",-ema conce#t-al E-R a -n e",-ema 'elacional "on la" "i/-iente": Toda entidad "e t'an":o'ma en -na ta7la. Todo at'i7-to "e t'an":o'ma en col-mna" dent'o de -na ta7la. El identi:icado' Anico de la entidad "e con4ie'te en cla4e #'ima'ia. RCmo 8acemo" e"toS. De#endiendo de la" 'elacione" ,-e no" encont'emo": 2.$.1.- Trans)ormacin de relaciones *-+. Toda 'elacin N:< "e t'an":o'ma en -na ta7la ,-e tend'9 como cla4e #'ima'ia la concatenacin de lo" at'i7-to" ,-e a"ocia . 19/ina 1% de 2$ Bases de Datos Relacionales 1a'a e"te modelo de entidad-'elacin el #a"o a ta7la" ,-eda'.a de la "i/-iente :o'ma: Ot'o e+em#lo: S-#on/amo" el "i/-iente %odelo entidad:relaci3n. En e"te ca"o la 'elacin Ecom#'aF "e t'an":o'ma en -na n-e4a ta7la c-*a cla4e #'ima'ia e"ta'9 :o'mada #o' lo" at'i7-to" dni= ,-e e" la cla4e #'ima'ia de cliente= * cdi/o= ,-e e" la cla4e #'ima'ia de #'od-cto. Adem9" tend'9 como cam#o :ec8a com#'a= *a ,-e e"te at'i7-to :o'ma #a'te de la 'elacin. El %odelo relacional ,-eda'.a de la "i/-iente :o'ma (en ne/'ita la" cla4e" #'ima'ia": CLIENTE(dni=nom7'e=a#ellido" 1RODUCTO(c3di.o=de"c'i#cin CO<1RAS(dni;cliente0c3di.o;$roducto=:ec8aKcom#'a 19/ina 1; de 2$ Bases de Datos Relacionales 2.$.2.- Trans)ormacin de relaciones 1-*. E3i"ten do" "ol-cione": ransfor%arla en una ta"la. Se 8ace como "i "e t'ata'a de -na 'elacin N:<. E"ta "ol-cin "e 'eali)a c-ando "e #'e4@ ,-e en -n :-t-'o la 'elacin "e con4e'ti'9 en N:< * c-ando la 'elacin tiene at'i7-to" #'o#io". La cla4e de e"ta ta7la e" la de la identidad del lado m-c8o". Tam7i@n "e a#lica c-ando tenemo" ca'dinalidad (6=1 * (1=N. E+em#lo: En el "i/-iente %odelo entidad:relaci3n -n em#leado #e'tenece a -n Anico de#a'tamento= * -n de#a'tamento tiene 1 o m9" em#leado". Ima/inemo" a8o'a ,-e #-die'a da'"e el ca"o de ,-e 8-7ie'a em#leado" ,-e no #e'tenecie'an a nin/An de#a'tamento. En e"te ca"o la entidad ,-e #a'tici#a con ca'dinalidad m93ima 1= DE1ARTA<ENTO= tam7i@n lo 8ace con ca'dinalidad m.nima 6= *a ,-e #-ede 8a7e' em#leado" ,-e no #e'tene)can a nin/An de#a'tamento. A". #-e"= "e c'ea -na n-e4a ta7la :o'mada #o' dni de E<1LEADO * cdi/o de DE1ARTA<ENTO. En e"ta n-e4a ta7la dni de E<1LEADO "e'9 la cla4e #'ima'ia. El %odelo relacional ,-eda'.a de la "i/-iente :o'ma: E<1LEADO(dni=nom7'e="ala'io DE1ARTA<ENTO(c3di.o=nom7'e=locali)acin 1ERTENECE(dni;e%$leado=cdi/oKde#a'tamento 'ro$a.ar la cla#e. E"te ca"o "e a#lica c-ando la ca'dinalidad e" o7li/ato'ia= 19/ina 1( de 2$ Bases de Datos Relacionales e" deci'= c-ando tenemo" ca'dinalidad (1=1 * (6=n. Se #'o#a/a el at'i7-to #'inci#al de la entidad ,-e tiene de ca'dinalidad m93ima 1 a la ,-e tiene de la ca'dinalidad m93ima N= de"a#a'eciendo el nom7'e de la 'elacin. E+e%$lo<: Lamo" a #a"a' el "i/-iente <odelo E2R al <odelo Relacional. Tenemo" do" entidade" DE1ARTA<ENTO * E<1LEADO. Ta7la DE1ARTA<ENTO: N-mDe#a't= Nom7'e= Localidad. Ta7la E<1LEADO: N-mEm#le= A#ellido= Sala'io= Comi"ion. DE1ARTA<ENTO (N-mDe#a't= Nom7'e= Localidad E<1LEADO (N-mEm#le= A#ellido= Sala'io= Comi"ion Id Ta7la DE1ARTA<ENTO: N-mDe#a't (No #-ede 8a7e' do" de#a'tamento" con la mi"ma identi:icacion. - Id Ta7la E<1LEADOS: N-mEm#le (No #-ede 8a7e' do" em#leado" con la mi"ma identi:icacion DE1ARTA<ENTO (N-mDe#a't= Nom7'e= Localidad E<1LEADO (N-mEm#le= A#ellido= Sala'io= Comi"ion En la 'elacin T1e'teneceU= "e #'o#a/a el at'i7-to de la entidad ,-e tiene 1 como ca'dinalidad m93ima (DE1ARTA<ENTO 8acia la ,-e tiene ca'dinalidad m93ima N (E<1LEADO. Se #'o#a/a N-mDe#a't 19/ina 10 de 2$ Bases de Datos Relacionales (la cla4e. La Ta7la E<1LEADOS tiene a8o'a e"ta e"t'-ct-'a: E<1LEADO (N-mEm#le= A#ellido= Sala'io= Comi"ion= N-mDe#a't Atenci3n: El e+em#lo no e"t9 com#leto. AAn no" ,-eda #o' t'ata' lo ,-e 8acemo" con la 'elacin EDEHEF. de cmo t'atamo" la 'elacin 'ec-'"i4a EDEHEF= 8a7la'emo" en el #-nto 2.!.$. E+em#lo2: Leamo" a8o'a el ca"o de -na 'elacin 1:N. En el "i/-iente %odelo entidad:relaci3n -n em#leado #e'tenece a -n Anico de#a'tamento (de"e $ertenecer a uno o"li.atoria%ente= * -n de#a'tamento tiene 1 o m9" em#leado". En e"te ca"o "e #'o#a/a el at'i7-to cdi/o de de#a'tamento a la ta7la E<1LEADO. El %odelo relacional ,-eda'.a de la "i/-iente mane'a: E<1LEADO(dni=nom7'e="ala'io=cdi/oKde#a'tamento DE1ARTA<ENTO(c3di.o=nom7'e=locali)acin 2.$.$.- Trans)ormacin de relaciones 1,1. Se tienen en c-enta la" ca'dinalidade" de la" entidade" ,-e #a'tici#an. E3i"ten do" "ol-cione": <.: ransfor%arla en una ta"la. Si la" entidade" #o"een ca'dinalidade" (6=1= la 'elacin "e con4ie'te en -na ta7la. 19/ina 15 de 2$ Bases de Datos Relacionales E+e%$lo<: S-#on/amo" ,-e di"#onemo" de -na entidad E<1LEADOS= ,-e contiene at'i7-to" 'elati4o" a lo" em#leado" de -na em#'e"a. S-#on/amo" tam7i@n ,-e= di"#onemo" de -na entidad 1UESTO= ,-e contiene at'i7-to" 'elati4o" a -n dete'minado #-e"to de t'a7a+o. S-#on/amo" tam7i@n ,-e= -n #-e"to e" Anico. E" deci'= -n dete'minado #-e"to "olamente #-ede e"ta' oc-#ado #o' -na Anica #e'"ona. Adem9"= e"te #-e"to #-ede e"ta' o no oc-#ado. Al/-no" em#leado" oc-#a'9n #-e"to"= #e'o ot'o" "on "im#le" em#leado" "in #-e"to a"i/nado. A". tenemo": EM'LEADOS: (codKem#leado= nom7'e= di'eccin= tel@:ono. 'UESO: (codK#-e"to= de"c'i#cin. OCU'A: (codKem#leado= codK#-e"to. E+e%$lo2: 19/ina 26 de 2$ E<1LEADOS 1UESTO OCU1A NO<BRE COD- E<1 TELEHON O DIRECCIO N COD-1UESTO DESCRI1CIO N (6=1 (6=1 1:1 Bases de Datos Relacionales 2.: 'ro$a.ar la cla#e. Si -na de la" entidade" #o"ee ca'dinalidad (6=1 * la ot'a (1=1 con4iene #'o#a/a' la cla4e de la entidad con ca'dinalidad (1=1 a la ta7la 'e"-ltante de la entidad de ca'dinalidad (6=1. Si am7a" entidade" #o"een ca'dinalidade" (1=1 "e #-ede #'o#a/a' la cla4e de c-al,-ie'a de ella a la ta7la 'e"-ltante de la ot'a. En e"te ca"o tam7i@n "e #-ede a?adi' lo" at'i7-to" de -na entidad a ot'a= de donde 'e"-lta -na Anica ta7la con todo" lo" at'i7-to" de la" entidade" * de la 'elacin "i lo" 8-7ie'a= eli/iendo como cla4e #'ima'ia -na de la" do". E+e%$lo: Leamo" a8o'a el ca"o de -na 'elacin 1:1 a t'a4@" del "i/-iente e+em#lo. En el "i/-iente %odelo entidad:relaci3n -n e,-i#o de :At7ol tiene a -n Anico #'e"idente * -n #'e"idente #'e"ide a -n Anico cl-7 de :At7ol. En e"te e+em#lo= tal * como dicen la" 'e/la"= #odemo" #'o#a/a' la cla4e de c-al,-ie' ta7la a la ta7la 'e"-ltante de la ot'a. E" deci'= tenemo" do" o#cione"= o mo4e' la cla4e de 1RESIDENTE a ENUI1O o mo4e' la cla4e de ENUI1O a 1RESIDENTE. El %odelo relacional #od'.a ,-eda' de c-al,-ie'a de la" do" :o'ma" "i/-iente": ENUI1O(c3di.o=nom7'e=a?oK:-ndacin 1RESIDENTE(dni=nom7'e=cdi/oKe,-i#o 19/ina 21 de 2$ Bases de Datos Relacionales ENUI1O(c3di.o=nom7'e=a?oK:-ndacin=dniK#'e"idente 1RESIDENTE(dni=nom7'e 2.$.-.- Trans)ormacin de relaciones re)lexivas o recursivas. En el ca"o de ,-e la 'elacin "ea: Relaci3n <:<. La cla4e de la entidad "e 'e#ite= con lo ,-e la ta7la 'e"-ltante tend'9 do" 4ece" e"e at'i7-to= -na como cla4e #'ima'ia * ot'a como cla4e a+ena de la mi"ma. E+em#lo: ima/inemo" -na ta7la de 1ERSONAS. Tenemo" -na 'elacin Ee" cn*-/eF. E" -na 'elacin 1:1. Cada :ila contend'9 (#o' e+em#lo el DNI * todo" lo" dato" de -na #e'"ona= "iendo el DNI la lla4e #'ima'ia= * adem9"= la lla4e #'ima'ia "e 'e#eti'9. E" deci'= ot'o cam#o DNIKCONGU&E ,-e "e'9 el DNI del cn*-/e. Relaci3n <:N. Tenemo" do" ca"o": o A,-el en el ,-e la entidad m-c8o" e" o7li/ato'io= "e #'ocede como en el ca"o (1=1. E+em#lo: Leamo" el modelo E-R ,-e anali)amo" en el #-nto 2.!.2. ('elacione" 1-N. Lemo" ,-e e3i"te -na 'elacin EDEHEF 1 a N. - La 'elacin TDe:eU= e" -na 'elacin 1:N #e'o no e" o7li/ato'ia. 1o' tanto= la Ta7la E<1LEADOS ,-eda con -n at'i7-to m9"= ,-e e" el nAme'o de em#leado del +e:e del em#leado. Le #onemo" como nom7'e DEHE. E<1LEADO (N-mEm#le= A#ellido= Sala'io= Comi"ion= N-mDe#a't= De:e o Si no e" o7li/ato'ia "e c'ea -na n-e4a ta7la c-*a cla4e "e'9 la 19/ina 22 de 2$ Bases de Datos Relacionales de la entidad * adem9" "e #'o#a/a la cla4e a la n-e4a ta7la como cla4e a+ena. Relacin N:M. Se t'ata i/-al ,-e la" 'elacione" 7ina'ia". E" deci'= "e c'ea -na ta7la n-e4a. 2.$...- Trans)ormacin de /erar0u1as al modelo relacional. El modelo 'elacional no di"#one de mecani"mo #a'a la 'e#'e"entacin de la" 'elacione" +e'9',-ica"> a". #-e"= e"ta" 'elacione" "e tienen ,-e elimina'. 1a'a #a"a' e"ta" 'elacione" al modelo 'elacional "e #-eden a#lica' di"tinta" 'e/la". No"ot'o" 4e'emo" la "i/-iente: Inte.rar todas las entidades en una 8nica eli%inando a los su"ti$os. E"ta n-e4a entidad contend'9 todo" lo" at'i7-to" del "-#e'ti#o= todo" lo de lo" "-7ti#o"= * lo" at'i7-to" di"c'iminati4o" #a'a di"tin/-i' a ,-e "-7entidad #e'tenece cada at'i7-to. E"ta 'e/la #-ede a#lica'"e a c-al,-ie' ti#o de +e'a',-.a. La /'an 4enta+a e" la "im#licidad= #-e" todo "e 'ed-ce a -na entidad. El /'an incon4eniente e" ,-e "e /ene'a dema"iado" 4alo'e" n-lo" en lo" at'i7-to" o#cionale" #'o#io" de cada entidad. E+e%$lo: Con"ide'amo" lo" #'o:e"o'e" ,-e im#a'ten cla"e en do" ti#o" de cent'o ed-cati4o": #A7lico" * #'i4ado". Un #'o:e"o' #-ede im#a'ti' cla"e en 4a'io" cent'o"= "ean #A7lico" o #'i4ado". Con"ide'amo" la a"i/nat-'a como at'i7-to de la 'elacin ent'e #'o:e"o'e" * cent'o #'o:e"o'e" Vim#a'ten - cla"e Lo" cent'o" ed-cati4o" "olo #-eden "e' de e"to" do" ti#o" * -n cent'o #A7lico no #-ede "e' #'i4ado. Lo" at'i7-to" e"#ec.:ico" #a'a lo" #A7lico" "on: el #'e"-#-e"to * lo" "e'4icio"= * #a'a lo" #'i4ado"= la o'/ani)acin * la c-ota. De lo" #'o:e"o'e" "e conoce "- cdi/o= "- nom7'e= "- di'eccin= tel@:ono * localidad. G de lo" cent'o": el cdi/o= el nom7'e= la di'eccin * el nM de al-mno. 19/ina 2! de 2$ Bases de Datos Relacionales <odelo ER ; : 'rofesores: (Cdi/o= nom7'e= di'eccin= tel@:ono= localidad I%$arte: (cdi/o"= a"i/nat-'a Centros: (cdi/o= nom7'e= di'eccin= nAme'o al-mno= o'/ani)acin= c-ota= #'e"-#-e"to= "e'4icio ; E"te modelo E-R no e"t9 com#leto. Haltan lo" at'i7-to"= la ca'dinalidad= etc. Com#l@talo tA como acti4idad. 19/ina 2$ de 2$