You are on page 1of 45

1

INTRODUCCIN AL ANLISIS, DISEO Y CONSTRUCCIN DE LAS BASES DE DATOS RELACIONALES (Mediante un Ejemp ! u"and! Met!d! !#$a CASE(C!mpute% Aided A""i"ted Aut!mated S!&t'a%e S("tem" En#inee%in#)* In#enie%$a de S!&t'a%e A"i"tid! p!% C!mputad!%a) El desarrollo de Base de Datos es un enfoque top-down es decir, de lo general a lo particular, que transforma los requerimientos de informacin en una Base de Datos operacional.

+I,URA -

Metodologa case:
ESTRATEGIA: Etapa inicial en el desarrollo de un sistema a travs de la cual se conocer el objetivo del negocio, sus unciones ! necesidades, todo con apo!o del usuario" El es#uema en est etapa se le denomina T$%&'$() *general a lo particular+ A)A,ISIS: -eri icar 'iagramas" 'escripci.n ms detallada #ue garantice el conocimiento del mundo real" 'ISE/$: 'ise0o de la 1ase de 'atos, procedimientos ! programas" 2$)STR322I4): 2odi ican ! prueban los programas '$23ME)TA2I4): Manual de operaci.n ! tcnicas #ue sirvan de apo!o para la correcta operaci.n ! aclaraci.n de dudas" TRA)SI2I4): Implantaci.n del sistema, per5odo inicial de soporte del mismo" +I,URA .

2
%R$'322I4): El sistema se utili6a en mundo real" %lan para mantenimiento ! mejoras a uturo"

'esarrollo de la base de datos


El desarrollo de la base de datos es un enfoque top-down es decir de lo general a lo particular, que transforma los requerimientos de informacin en un Sistema Operacional, a partir del lado izquierdo de los requerimientos de la informacin, como el lado derecho de los requerimientos de la aplicacin.

'esarrollo de la aplicaci.n:
Es aqu como se muestra en la imagen, donde hacemos el Diagrama !er"rquico #uncional $ el Diagrama de #lu%o de Datos, dando como resultado el Diagrama Entidad &elacin que empatar" con el Diagrama !er"rquico #uncional $ a su 'ez $ se hace un dise(o de la aplicacin en s . Anlisis de la in ormaci.n para la base de datos ANLISIS de los requerimientos de informacin del usuario $ desarrollar un )odelo Entidad-&elacin para e*presar esos requerimientos. +)odelar, Esquematizar, &E-.E&/)/E01OS Son proporcionados por el .suario2 3Se necesita tener la informacin de 45666 alumnos que se inscriben a las asignaturas de una carrera de una uni'ersidad. Es importante identificar las asignaturas as como tener su nombre, una abre'iacin, en ocasiones pertenecen a un mdulo o est"n seriadas, es decir si no se aprueba una no pueden inscribirse a otra, as como el n7mero de cr8ditos. 9os alumnos se identifican por n7mero de cuenta matricula, $ la informacin importante para los alumnos es nombre, apellidos, fecha de nacimiento, la calificacin se captura al final del curso, $ para el caso de no aprobarse se captura 0:;0o :resento 0<;0o <probado. =abr" que distinguir entre femenino $ masculino3 INTRODUCCIN AL MODELO DE DATOS 3Es el resultado del <n"lisis que define $ modela los aspectos importantes de la informacin que el negocio necesita saber o tener $ las relaciones entre dicha informacin.> DE& sin eliminar la relacin )2)
ALUMNO num_cuenta: NUMBER(9) NOT NULL nombre: VAR !AR"(#$) NOT NULL ap_paterno: VAR !AR"(#$) NOT NULL ap_materno: VAR !AR"(#$) NOT NULL %ec&a_nac'm'ento: (ATE NOT NULL )enero: !AR(*) NOT NULL A+,-NATURA cursando 'd: NUMBER(9) NOT NULL 'd_predecesora: NUMBER(9) NULL (./) nombre: VAR !AR"(#$) NOT NULL num_cred'tos: NUMBER(") NOT NULL Predecesora

cursada por

Antecesora

+I,URA / S/01<?/S DE ES@&/1.&< DE &E9<@/O0ES cada <9.)0O debe estar 0u%"and! .0< )<S <S/A0<1.&<S cada <S/A0<1.&< puede ser 0u%"ada p!% uno o m"s <9.)0OS cada <S/A0<1.&< puede ser p%ede0e"!%a de una $ solo una <S/A0<1.&< cada <S/A0<1.&< puede ser ante0e"!%a de una o mas <S/A0<1.&<S DE& sin eliminar la relacin )2)

3
AL,., A ,ON num_cuenta: NUMBER(9) NOT NULL (./) 'd: NUMBER(9) NOT NULL (./) ca0'%'cac'on_num: NUMBER(") NULL ca0'%'cac'on_no_aprobator'a: c&ar(") NULL para para

Obten'endo ALUMNO num_cuenta: NUMBER(9) NOT NULL nombre: VAR !AR"(#$) NOT NULL ap_paterno: VAR !AR"(#$) NOT NULL ap_materno: VAR !AR"(#$) NOT NULL %ec&a_nac'm'ento: (ATE NOT NULL )enero: !AR(*) NOT NULL

Re)'strando A+,-NATURA 'd: NUMBER(9) NOT NULL 'd_predecesora: NUMBER(9) NULL (./) nombre: VAR !AR"(#$) NOT NULL num_cred'tos: NUMBER(") NOT NULL Predecesora

Antecesora

+I,URA 1 INTRODUCCION AL DISEO DE B2D2 En el Dise(o de B.D. se mapean los requerimientos de informacin refle%ados en un modelo E-&. En tablas El dise(o de la B.D. ES@O9<& se muestra a continuacin2 0ombre de la 1abla2 <9.)0OS @O9.)0< 0umBcuenta 0ombre <pBpaterno <pBmaterno 1ipo lla'e :C 0ulos 00 00 00 00 E%emplos 0ombre de la 1abla2 <S/A0<1.&<S
columna 1ipo lla'e 0ulos E%emplos
/d :C 00 0ombre 00 0umBcreditos 00 /dBpredecesora #C4 0

#echaBnacimiento 00

genero 00

0ombre de la 1abla2 @<9/#/@<@/O0ES


columna 1ipo lla'e 0ulos E%emplos
0umBcuenta :C,#C4 00 /d :C,#C5 00 @alificacinB0umerica 0 @alificacionB0oBaprobatoria 0

INTRODUCCIN A LA CONSTRUCCIN DE LA BASE DE DATOS En la construccin de la B.D. se crean f sicamente las tablas en la B.D. &elacional, implement"ndolas de acuerdo al dise(o de B.D. S-9D @&E<1E 1<B9ES:<@E D<1<B4) datafile EFrutaFarchi'o.dbfG size 466) e*tent management local uniform size 4)H < @O01/0.<@/I0 9< @&E<@/I0 DE 9< :&/)E& 1<B9< @O0 S/01<?/S @O):9E1< DE S1O&<AE S-9D @&E<1E 1<B9E <9.)0OS 5. +0.)B@.E01< 0.)BE&+J, 0O1 0.99 , K. 0O)B&E L<&@=<&5+KM, 0O1 0.99, N. <:B:<1E&0O L<&@=<&5+KM, 0O1 0.99,

4
M. <:B)<1E&0O L<&@=<&5+KM, 0O1 0.99, O. #E@=<B0<@/)/E01O D<1E 0O1 0.99, P. AE0E&O @=<&+4, 0O1 0.99 J. @O0S1&</01 :CB<9. :&/)<&Q CEQ +0.)B@.E01<, 32 .S/0A /0DE? /0DB<9. :@1#&EE 46 (-) -42 S1O&<AE + /0/1/<9 ONC 0E?1 ONC :@1/0@&E<SE 6(5) ,, 66 NE7T DEL -448 --2 :@1#&EE N6 :@1.SED N6 (.) /0/1&<0S 4(/) )<?1&<0S 5MM(1) 45. S1O&<AE + 4K. /0/1/<9 46C 0E?1 46C :@1/0@&E<SE M6 -12 )/0E?1E01S 4(9) )<?E?1E01S 454 , 0O@<@=EH S-9D @&E<1E 1<B9E <S/A0<1.&<S 5 +/D 0.)BE&+N, 0O1 0.99 @O0S1&</01 :CB<S/A :&/)<&Q CEQ, K 0O)B&E L<&@=<&+KM, 0O1 0.99, N /DB:&EDE@ESO&< 0.)BE&+N, 0.99, M 0.)B@&ED/1OS 0.)BE&+5, 0O1 0.99H S-9D @&E<1E 1<B9E @<9/#/@<@/O0ES 5 +0.)B@.E01< 0.)BE&+J, 0O1 0.99 @O0S1&</01 #CB<9.B@<9 #O&E/A0 CEQ +0.)B@.E01<, &E#E&E0@ES <9.)0OS +0.)B@.E01<,, K /D 0.)BE&+N, 0O1 0.99 @O0S1&</01 #CB<S/AB@<9 #O&E/A0 CEQ +/D, &E#E&E0@ES <S/A0<1.&<S +/D,, N @<9/#/@<@/O0B0.)E&/@< 0.)BE&+5, 0.99, M @<9/#/@<@/O0B0OB<:&OB<1O&/< @=<&+5, 0.99, O @O0S1&</01 :CB@<9 :&/)<&Q CEQH O1&< #O&)< DE /0@O&:O&<& @O0S1&</01S S-9D <91E& 1<B9E @<9/#/@<@/O0ES 5 <DD @O0S1&</01 #CB<9.B@<9 #O&E/A0 CEQ +0.)B@.E01<, K &E#E&E0@ES <9.)0OS +0.)B@.E01<, N O0 DE9E1E @<S@<DEH S-9D <91E& 1<B9E @<9/#/@<@/O0ES 5 <DD @O0S1&</01 #CB<S/AB@<9 #O&E/A0 CEQ +/D, K &E#E&E0@ES <S/A0<1.&<S +/D, N O0 DE9E1E @<S@<DEH O:@/O0ES :<&< 9OS @O0S1&</01S DE DE9E1E Q .:D<1E +@<S@<DE, &ES1&/@1ED, 0.99Q#Q, &ecomendacin2 DE9E1E con &ES1&/@1ED .:D<1E con @<S@<DE @uando es 0.9< la relacin se puede utilizar 0.99/#Q :ara borrar un constraint S-9D <91E& 1<B9E @<9/#/@<@/O0ES 5 D&O: @O0S1&</01 #CB<S/AB@<9H @onstraint de dominio S-9D <91E& 1<B9E <9.)0OS <DD @O0S1&</01 @=CBAE0E&O @=E@C 5 +AE0E&O /0 +E#G,G)G,,H

(
ANLISIS DE LA INFORMACIN DEFINICIN DE MODELO DE DATOS Es el resultado del anl s s de la n!or"a# $n % #ons ste en la re&resenta# $n #on#e&tual de esta' (ebe ser 0aro

EL MODELO DE DATOS ENTIDAD:RELACIN Se basa en la percepcin del mundo real, que consiste en un con%unto de ob%etos llamados entidades $ las relaciones entre ellas. &epresenta la estructura lgica general de la Base de datos gr"ficamente. ENTIDAD Es un ob%eto concreto como una persona abstracto como un d a festi'o. Es una persona, cosa, e'ento de inter8s a la comunidad usuaria. Siempre son sustanti'os tangibles intangibles :or e%emplo2 !uan 9pez .na E01/D<D est" formada por un con%unto de <1&/B.1OS +caracter sticas propias,. :ara cada ATRIBUTO e*iste un rango de 'alores permitidos llamado Dominio del atributo. :or e%emplo2 El dominio del atributo 0ombre podr a ser el con%unto de todas las letras del abecedario o El dominio del atributo 07mero de @uenta podr an ser el con%unto de todos los enteros positi'os. Definicin de atributos2 describen una entidad para calificar, identificar, clasificar, cuantificar o e*presar el estado de una entidad. R@u"les son algunos de los atributos de la entidad E):9E<DOS El n7mero de nmina que identifica a un E):9E<DO El nombre $ apellidos califican a un E):9E<DO El tipo de nmina +e%emplo semanal, clasifica a un E):9E<DO 9a edad cuantifica a un E):9E<DO El estatus de empleo +<cti'o, %ubilado, e*presa el estatus de un E):9E<DO CON;UNTO DE ENTIDADES Es un grupo de entidades del mismo tipo. :or e%emplo2 :ersonas que tienen cuenta en un banco. E%emplos de @on%untos de Entidades de <plicacin Bancaria @on%unto de todas las sucursales de un Banco Sucursal +@la'e, 0ombre, @iudadBSucursal, acti'o, @on%unto de todas las personas que tienen una cuenta @liente +SeguroBSocial, 0ombre, @alle, @iudad, @on%unto de todas las cuentas que se mantienen en un Banco @uenta +07mero, Saldo, @on%unto de todos los empleados que laboran en un Banco Empleado +/d, 0ombre, 1el8fono, @on%unto de transacciones para una @uenta determinada 1ransaccin +07mero, #echa, /mporte, RELACIN <sociacin entre entidades. :or e%emplo2 <sociacin del @liente !uan 9opez con 07mero de @uenta 566 CON;UNTO DE RELACIONES Es un grupo de relaciones del mismo tipo. :or e%emplo2 9as relaciones @liente-@uenta para denotar la &elacin entre @liente $ @uenta.

@on%unto de Entidades @liente +I,URA 9 Re a0i!ne" Bina%ia" Slo implica dos con%untos de Entidades TI<OS DE RELACIONES 9as relaciones entre entidades pueden ser2

@on%unto de Entidades @uenta @on%unto de &elaciones

+I,URA = LLA>E CANDIDATO? @on%unto de uno o m"s atributos que %untos identifican a una Entidad como 7nica. :or e%emplo2 El atributo SeguroBSocial e" una lla'e candidato porque es suficiente para distinguir una entidad @liente de otra. El atributo SeguroBSocial T 0ombre tambi8n e" una lla'e candidato. El apellido n! e" una lla'e candidato porque 'arios clientes pueden tener el mismo apellido. LLA>E <RIMARIA Es la lla'e candidato elegida para identificar una entidad como 7nica. +la lla'e candidato m"s peque(a posible, DE<ENDENCIA <OR E7ISTENCIA @uando la e*istencia de la Entidad ? depende de la e*istencia de la Entidad Q. ? es subordinada $ Q es Dominante. :or e%emplo2 @uenta +Dominante, $ 1ransaccin +Subordinada, En a %e a0i@n %eAuie%e Ba%%a UID #utbolista +Dominante, $ Aol +Subordinada,

*
MAR A(OR 'd: NUMBER(9) NOT NULL (./) 'd_e1u'po: NUMBER(2) NOT NULL (./) %ec&a: (ATE NOT NULL (./) m'n_)o0: (ATE NOT NULL PART,(O_E4U,PO 'd_e1u'po: NUMBER(2) NOT NULL (./) %ec&a: (ATE NOT NULL (./)

.UTBOL,+TA 'd: NUMBER(9) NOT NULL 'd_e1u'po: NUMBER(2) NOT NULL (./) nombre: VAR !AR"(3$) NOT NULL %ec&a_nac'm'ento: (ATE NOT NULL

PART,(O %ec&a: (ATE NOT NULL 'd_estad'o: NUMBER(3) NOT NULL (./)

E4U,PO 'd: NUMBER(2) NOT NULL nombre: VAR !AR"(3$) NOT NULL %ec&a_%undac'on: (ATE NULL

E+TA(,O 'd: NUMBER(3) NOT NULL nombre: VAR !AR"(3$) NOT NULL ub'cac'on: VAR !AR"(3$) NOT NULL capac'dad: NUMBER(3) NOT NULL

+I,URA C 0ota2 :ara no redundar en el equipo, se puede solucionar agregando un n7mero 7nico de %ugador $ renombrar id del futbolista por n7mero de camiseta, $ as $a no ser a necesario que forme parte de la lla'e primaria, sino slo lla'e foranea. ENTIDAD +UERTE @ DOMINANTE2 E01/D<D que tiene suficientes atributos para formar una lla'e primaria. ENTIDAD DEBIL @ SUBORDINADA ("e u"a Ba%%a UID)2 E01/D<D que no tiene suficientes atributos para formar una lla'e primaria. :or e%emplo2 1ransaccin +5 transacciones pueden ser iguales con diferentes cuentas, +0ota2 :ara tener un identificador 7nico necesita a$uda de la entidad #uerte dominante, Est" formada por la lla'e primaria de la entidad dominante $ el discriminador de la d8bil +@on%unto de atributos que permiten hacer est" distincin,, :or e%emplo la lla'e primaria de 1ransaccin2 +0umeroB@uenta, 0umeroB1ransaccin, <D LLA>E +ORANEA Es lla'e primaria en una E01/D<D $ es la que nos sir'e para relacionar a otra E01/D<D :or e%emplo2 0umeroB@uenta en 1&<0S<@@/O0 +D 0ota2 < 'eces tambi8n forma parte de la lla'e primaria en la Entidad Destino +llamada lla'e primaria compuesta, <ASOS <ARA ANLISIS RELACIONAL -2: IDENTI+ICAR ENTIDADES )ediante los siguientes pasos se puede llegar a identificar $ modelar las entidades de las notas de entre'istas a los usuarios $ de formatos, etc. 4. E*aminar los sustanti'os +Son aspectos importantes, 5. :oner un nombre a cada entidad K. RE*iste informacin de inter8s para la compa( a acerca de la entidadS N. R@ada entidad es identificable de manera 7nicaS R@u"l o cu"les atributos sir'en como ./DS E!E):9O /dentificar las Entidades de los siguientes requerimientos. 3So$ el due(o de unas tiendas $ me interesa tener un control de pro'eedores $ productos que 'endo, tambi8n por supuesto su costo, porque 'ar an. @ada pro'eedor tiene su &#@, nombre, domicilio $ tel8fono. 9os productos tienen cdigo, nombre $ presentacin. < tra'es de los a(os los productos de los pro'eedores tienden a subir, nos interesa conocer los precios histricos3

+
PROVEE(OR r%c: VAR !AR"(*#) NOT NULL nombre: VAR !AR"(3$) NOT NULL dom'c'0'o: VAR !AR"(5$) NOT NULL te0e%ono: VAR !AR"(*") NOT NULL PRO(U TO cod')o: NUMBER(") NOT NULL nombre: VAR !AR"("$) NOT NULL presentac'on: VAR !AR"("$) NOT NULL

+I,URA 3 N!ta? Cuand! eEi"ten "in@nim!" de a" entidade", Fan ent%e pa%Gnte"i", 0!m! <RO>EEDOR (EM<RESA) @ (MARCA) .2: DESCRI<CIN DE ENTIDADES Escribir la descripcin de la entidad. E%emplos U .n :&OLEEDO& tiene como significado ser responsable de 'ender los productos a las tiendas. U .n :&OD.@1O es la mercanc a que las tiendas ofrecen a los clientes. :or e%emplo, !abn DOLE U .n :&OLEEDO&B:&OD.@1OB=/S1O&/< es el registro histrico de precios de cada pro'eedor $ sus respecti'os productos. /2: ESTABLECER LAS RELACIONES ENTRE ENTIDADES

+I,URA -4 @ada direccin de una relacin tiene2 4.- Un n!mB%e -:or e%emplo. registrado en o para 5.- Una !p0i@n Debe serFestar puede serFestar K.- Un #%ad! (0a%dina idad) .nV $ solamente unV , o unV o m"s :rimero se debe leer la relacin en una direccin, $ despu8s leer la relacin en la otra direccin. @ada :&OLEEDO& puede ser %e#i"t%ad! en uno o m"s :&OLEEDO&B:&OD.@1OB=/S1O&/< @ada :&OD.@1O puede ser %e#i"t%ad! en uno o m"s :&OLEEDO&B:&OD.@1OB=/S1O&/< @ada :&OLEEDO&B:&OD.@1OB=/S1O&/< debe ser para uno $ solo un :&OD.@1O @ada :&OLEEDO&B:&OD.@1OB=/S1O&/< debe ser para uno $ solo un :&OLEEDO&

,
.na relacin muchos a uno +) a 4 )24, tiene el grado de unV m"s en una direccin $ el grado de unV $ solamente unV en la otra direccin. E"ta" Re a0i!ne" "!n a" mH" 0!mune"2 9as &elaciones )24 obligatorias de ambas direcciones son poco comunes. 0ota2 utilizar constraints diferidos .na relacin )uchos a )uchos +) a ) )2), tiene el grado de unV o m"s en ambas direcciones.

+I,URA -@ada :&OLEEDO& puede estar Fendiend! uno o m"s :&OD.@1OS @ada :&OD.@1O puede ser Fendid! p!% uno o m"s :&OLEEDO&ES 0otas U 9as relaciones muchos a4 muchos son mu$ comunes .na relacin uno a uno +4 a 424, tiene un grado uno $ solamente uno en ambas direcciones. U 9as relaciones muchos a muchos son obligatorias en la cardinalidad muchos $ generalmente opcionales E%emplo2 en la cardinalidad unV. U 9as relaciones muchos a muchos siempre se modifican para el Diagrama +)odelo, final, creando una entidad de interseccin, $ relacionando con las entidades originales. U En ocasiones puede surgir otra nue'a relacin )2) entre la de interseccin $ alguna entidad original

RELACIONES -?-

+I,URA -. @ada E):9E<DO SOB&ES<9/E01E debe ser originado por uno $ slo un E):9E<DO @ada E):9E<DO puede estar destacando como uno $ slo un ES1.D/<01E SOB&ES<9/E01E Otros e%emplos2 Esposo-Esposa +Otra solucin mu$ fle*ible es hacer una entidad :E&SO0< $ relacionar consigo misma, esto se conoce como relacin recursi'a, su fle*ibilidad es que pueden tener 'arios matrimonios, 0otas U 9as relaciones 424 Son mu$ escasas. U .na relacin 424 que es obligatoria en ambas direcciones es mu$ dif cil de encontrar. U 9as entidades que tienen una relacin 424 pueden ser en realidad la misma entidad. U El 4 W solo son sobresalientes, por tanto E):9E<DOS tendr a mucha recepcin de 0.9OS, en los atributos 'alesBdespensa, 'acionesBe*tra $ bono que se otorgan a los que son sobresalientes. U .na relacin 424 tien un grado uno $ solamente uno en ambas direcciones

1-

;USTI+ICAR LAS SI,UIENTES RELACIONES -?- (Re"! Fe% en 0a"! de n! ju"ti&i0a%"e -?-) !ustificar es 'erificar que realmente si es correcto la relacin 4 a 4 entre 5 entidades, sino resol'er de diferente manera, es mu$ importante tomar en cuenta los porcenta%es de informacin en las entidades, en caso de ser menor a un 56W en una de ellas, porque siempre una tendr" el 466W. Se respetar a la relacin 424. El caso siguiente no se %ustifica $ la solucin est" a continuacin.
BA,LAR,N 'd_ba'0ar'n: NUMBER(7) NOT NULL nombre: VAR !AR"(3$) NOT NULL BA,LAR,NA 'd_ba'0ar'na: NUMBER(7) NOT NULL nombre: VAR !AR"(3$) NOT NULL 'd_ba'0ar'n: NUMBER(7) NULL (./) *$$6

*$$6

BA,LAR,N 'd: NUMBER(7) NOT NULL 'd_pare8a: NUMBER(7) NULL (./) nombre: VAR !AR"(3$) NOT NULL )enero: !AR(*) NOT NULL

+I,URA -/ En el siguiente caso tampoco se %ustifica, no e*iste un porcenta%e menor a 56W en alguna de las siguientes entidades.
PLANETA num_p0aneta: NUMBER("$) NOT NULL nombre: VAR !AR"(3$) NOT NULL masa: NUMBER(9) NOT NULL super%'c'e: NUMBER(9) NOT NULL num_orb'ta: NUMBER(9) NOT NULL (./) ORB,TA num_orb'ta: NUMBER(9) NOT NULL nombre: VAR !AR"("$) NOT NULL rad'o: NUMBER(9) NOT NULL

*$$6

*$$6

:rimera solucin es una sola entidad $ todos los atributos obligatorios

11
PLANETA num_p0aneta: NUMBER("$) NOT NULL nombre: VAR !AR"(3$) NOT NULL masa: NUMBER(9) NOT NULL super%'c'e: NUMBER(9) NOT NULL num_orb'ta: NUMBER(9) NOT NULL orb'ta_rad'o: NUMBER(9) NOT NULL nombre_orb'ta: VAR !AR"("$) NOT NULL *$$6

*$$6

Segunda solucin relacin )2) +que habr a que resol'er, con una entidad de interseccin,
PLANETA num_p0aneta: NUMBER("$) NOT NULL nombre: VAR !AR"(3$) NOT NULL masa: NUMBER(9) NOT NULL super%'c'e: NUMBER(9) NOT NULL ORB,TA num_orb'ta: NUMBER(9) NOT NULL nombre: VAR !AR"("$) NOT NULL rad'o: NUMBER(9) NOT NULL

1ercera solucin, considerar no slo planetas, en las rbitas


UERPO_ ELE+TE num_cuerpo: NUMBER("$) NOT NULL nombre: VAR !AR"(3$) NOT NULL masa: NUMBER(9) NOT NULL super%'c'e: NUMBER(9) NOT NULL num_orb'ta: NUMBER(9) NOT NULL (./) s')u'endo recorr'da por ORB,TA num_orb'ta: NUMBER(9) NOT NULL nombre: VAR !AR"(#$) NOT NULL rad'o: NUMBER(9) NOT NULL

N!ta? Re0!%da% Aue !" 8 "@ ! !" e"taB e0em!" en %e a0i!ne" -?+I,URA -1 :ara el siguiente caso, tampoco se %ustifica, porque del 466W de asientos, generalmente se ocupan, en un autobus, a'in, restaurante, auditorio, etc, $ adem"s a tra'es del tiempo no slo unica 'ez, porque sino hablar amos de silla de ruedas, $ en ese caso puede ser que se 'enda o la use otro asistente.
A+,+TENT E bo0eto: NUMBER(9) NOT NULL %ec&a: (ATE NOT NULL nombre: VAR !AR"(*$$) NOT NULL numero_as'ento: NUMBER(7) NOT NULL (./) 5$6 A+,ENTO numero_as'ento: NUMBER(7) NOT NULL secc'on: VAR !AR"(*$) NOT NULL %'0a: ,NTE-ER NOT NULL

*$$6

:rimera solucin

12
A+,+TENTE bo0eto: NUMBER(9) NOT NULL %ec&a: (ATE NOT NULL nombre: VAR !AR"(*$$) NOT NULL A+,ENTO numero: NUMBER(9) NOT NULL secc'on: VAR !AR"(*$) NOT NULL %'0a: ,NTE-ER NOT NULL

A+,ENTO_A+,+TENTE numero: NUMBER(9) NOT NULL (./) bo0eto: NUMBER(9) NOT NULL (./) %ec&a: (ATE NOT NULL (./)

A+,ENTO numero: NUMBER(9) NOT NULL secc'on: VAR !AR"(*$) NOT NULL %'0a: ,NTE-ER NOT NULL

A+,+TENTE bo0eto: NUMBER(9) NOT NULL %ec&a: (ATE NOT NULL nombre: VAR !AR"(*$$) NOT NULL

+I,URA -5

:ara el siguiente caso, tampoco se %ustifica, porque no ha$ un W menor o igual a 56W en alguna de las entidades.
AP,TAL 'd_cap'ta0: NUMBER(9) NOT NULL 'd_pa's: NUMBER(9) NULL (./) nombre: VAR !AR"(*$$) NOT NULL %ec&a_%undac'on: (ATE NOT NULL PA,+ 'd_pa's: NUMBER(9) NOT NULL nombre: VAR !AR"(*$$) NOT NULL pob0ac'on: NUMBER(9) NOT NULL %orma_)ob'erno: VAR !AR"("$) NOT NULL super%'c'e: NUMBER(9) NOT NULL

*$$6

*$$6

Solucin2 una sola entidad $ atributos obligatorios por ser 466W


PA,+ 'd_pa's: NUMBER(9) NOT NULL nombre: VAR !AR"(*$$) NOT NULL pob0ac'on: NUMBER(9) NOT NULL %orma_)ob'erno: VAR !AR"("$) NOT NULL super%'c'e: NUMBER(9) NOT NULL nombre_cap'ta0: VAR !AR"(*$$) NOT NULL %ec&a_%undac'on_cap: (ATE NOT NULL

13
+I,URA -9

El siguiente e%emplo, tampoco se %ustifica

:rimer solucin, con algunos atributos nulos al no ser el 466W AUTOMOV,L


p0aca: VAR !AR"(*$) NOT NULL mode0o: VAR !AR"(#$) NOT NULL co0or: VAR !AR"(*$) NOT NULL marca: VAR !AR"("$) NOT NULL a9o: NUMBER(7) NOT NULL num_motor: !AR("$) NOT NULL num_ser'e: !AR("$) NOT NULL %o0'o_tar8eta: NUMBER(9) NULL prop'etar'o: VAR !AR"(3$) NULL

*$$6

926

Segunda solucin +:or si ha$ alg7n e*tra' o, o cambio de due(o,


AUTOMOV,L TAR:ETA_ ,R ULA ,ON %o0'o_tar8eta: NUMBER(9) NOT NULL p0aca: VAR !AR"(*$) NOT NULL (./) prop'etar'o: VAR !AR"(3$) NOT NULL p0aca: VAR !AR"(*$) NOT NULL mode0o: VAR !AR"(#$) NOT NULL co0or: VAR !AR"(*$) NOT NULL marca: VAR !AR"("$) NOT NULL a9o: NUMBER(7) NOT NULL num_motor: !AR("$) NOT NULL

+I,URA -= El siguiente e%emplo tampoco se %ustifica

14
Solucin2 con atributos nulos, por no ser el 466W
,NMUEBLE num_'nmueb0e: NUMBER(9) NOT NULL metros_cuadrados: NUMBER(2) NOT NULL ub'cac'on: VAR !AR"(*$$) NOT NULL %o0'o_escr'tura: NUMBER(9) NULL %ec&a: (ATE NULL *$$6 9$6

+I,URA -C :ara el caso de credencial de elector, depende el entorno, es decir, si hablamos del /#E, o si de todo el pa s, los porcenta%es 'ar an

Solucin 42 @onsiderando que ha$ adultos que cumplir"n los 4J a(os cuando son las 'otaciones $ les entregan su credencial antes. PER+ONA ,nc0u;endo menores 'd_persona: NUMBER(9) NOT NULL a *5 a9os de edad nombre: VAR !AR"(*$$) NOT NULL *$$6 d'recc'on: VAR !AR"(*$$) NOT NULL %ec&a_nac'm'ento: (ATE NOT NULL 'd_'%e: NUMBER(9) NULL 5$6 ent'dad: VAR !AR"(#$) NOT NULL <')enc'a: (ATE NULL %ec&a_e=ped'c'on: (ATE NULL Segunda solucin2 @uando la informacin es del /#E, e*clusi'amente 'otantes RE(EN ,AL_,.E
'd_'%e: NUMBER(9) NOT NULL %ec&a_e=ped'c'on: (ATE NOT NULL nombre: VAR !AR"(*$$) NOT NULL ent'dad: VAR !AR"(#$) NOT NULL d'recc'on: VAR !AR"(*$$) NOT NULL %ec&a_nac'm'ento: (ATE NOT NULL *$$6

*$$6

1ercera solucin cuando inclu$e e*tra' os

1(
En ,.E> pero con &'st?r'co RE(EN ,AL_(E_ELE TOR curp: !AR(*5) NOT NULL (./) 'd_'%e: NUMBER(9) NOT NULL %ec&a_e=ped'c'on: (ATE NOT NULL <')enc'a: (ATE NOT NULL PER+ONA curp: !AR(*5) NOT NULL nombre: VAR !AR"(*$$) NOT NULL ent'dad: VAR !AR"(#$) NOT NULL d'recc'on: VAR !AR"(*$$) NOT NULL %ec&a_nac'm'ento: (ATE NOT NULL

+I,URA -3 Este e%emplo, no se %ustifica R-u8 porcenta%es le pondr as $ cmo se solucionaS


AUTO_(,PLOMAT, O p0aca: VAR !AR"(*$) NOT NULL mode0o: VAR !AR"(#$) NOT NULL co0or: VAR !AR"(*$) NOT NULL marca: VAR !AR"("$) NULL a9o: NUMBER(7) NULL num_)uaruras: NUMBER(*) NULL r%c: VAR !AR"(*#) NOT NULL (./) (,PLOMAT, O r%c: VAR !AR"(*#) NOT NULL nombre: VAR !AR"(3$) NOT NULL %ec&a_nac'm'ento: (ATE NOT NULL %ec&a_'n)reso: (ATE NOT NULL te0e%ono: VAR !AR"(*") NOT NULL d'recc'on: VAR !AR"(5$) NOT NULL

+I,URA .4

En el siguiente caso agregar porcenta%es e indicar si se %ustifica. +similar a Empleado sobresaliente,


UENTA_!AB,ENTE UENTA_!AB,ENTE_PREM,ER num_cuenta: NUMBER(5) NOT NULL (./) descuento_ad'c'ona0: NUMBER(7) NULL atenc'on_pre%erenc'a0: VAR !AR"(*2) NULL c&e1uera_oro: !AR(*) NULL or')'nado por num_cuenta: NUMBER(5) NOT NULL destacado como nombre: VAR !AR"(3$) NOT NULL %ec&a_nac'm'ento: (ATE NOT NULL %ec&a_'n)reso: (ATE NOT NULL te0e%ono: VAR !AR"(*") NULL d'recc'on: VAR !AR"(5$) NOT NULL

+I,URA .-

1)
DI+ERENCIAS ENTRE ATRIBUTOS Y ENTIDADES Si un at%iBut! tiene at%iBut!" p%!pi!", ent!n0e" e" una entidad2 E%emplo Determinar si todos los atributos de la entidad <.1O)OL/9 son atributos.
AUTOMOV,L p0aca: VAR !AR"(*$) NOT NULL mode0o: VAR !AR"(#$) NOT NULL co0or: VAR !AR"(*$) NOT NULL marca: VAR !AR"("$) NULL a9o: NUMBER(7) NOT NULL tab0ero: VAR !AR"(3$) NOT NULL num_puertas: NUMBER(*) NOT NULL

+I,URA .. /nicialmente el usuario identifica el tablero como un atributo del <.1O)IL/9. Despu8s el usuario define los requerimientos para el tablero como2 indicador ca%uela, relo%, indicador de luz. <dem"s estas caracter sticas las compartir"n 'arios <.1O)IL/9ES, la solucin hace que un atributo se con'ierta en una entidad. Q la relacionamos.
AUTOMOV,L p0aca: VAR !AR"(*$) NOT NULL mode0o: VAR !AR"(#$) NOT NULL co0or: VAR !AR"(*$) NOT NULL marca: VAR !AR"("$) NULL a9o: NUMBER(7) NOT NULL tab0ero: VAR !AR"(*$) NULL 'd_tab0ero: NUMBER(9) NOT NULL (./) num_puertas: NUMBER(*) NOT NULL TABLERO 'd_tab0ero: NUMBER(9) NOT NULL nombre: VAR !AR"(*2) NOT NULL re0o8: !AR(*) NULL 'nd'cador_ca8ue0a: !AR(*) NULL 'nd'cador_puerta_ab'erta: !AR(*) NULL 'nd'cado_0uces: !AR(*) NULL

+I,URA ./ O<CIONALIDAD DE ATRIBUTOS Opcionalidad de los atributos de la entidad :E&SO0< +peso $ estatura, unos lo tienen registrado, otros lo desconocen,
PER+ONA 'd_persona: NUMBER(9) NOT NULL nombre: VAR !AR"(*$$) NOT NULL se=o: !AR(*) NOT NULL peso: NUMBER(#>") NULL estatura: NUMBER(#>") NULL

+I,URA .1 El Mapa de in"tan0ia" S/&LE para 'alidar que sean correctas las marcas para atributos +opcionales $ obligatorios, se utiliza para almacenar e%emplos de datos de atributos.

1*
E%emplo 0ombre de la tabla2 :E&SO0<S
0ombre del <tributo Etiqueta E%emplo de Datos @odigo U 4 K64 4KN <pB:at U !uarez 9opez Aarc a <pB)at U Aarc a )8ndez 9ara 0ombre U !orge Octa'io @elia Se*o U ) ) # :eso o null PM X6 Estatura O 0ull 0ull 0ull

IDENTI+ICADORES INICOS En una carrera cada ocurrencia de <S/A0<1.&< se identifica de manera 7nica por el n7mero de asignatura +materia,
A+,-NATURA 'd: NUMBER(9) NOT NULL nombre: VAR !AR"(#$) NOT NULL num_cred'tos: NUMBER(") NOT NULL

+I,URA .5

IDENTI+ICADORES INICOS COM<UESTOS (mH" de un at%iBut! 0!n J) :ara un teatro, cada boleto es identificado como 7nico con la fecha de presentacin +tipo de dato date en el &DB)S oracle inclu$e hora para ese caso slo con fecha es suficiente,. :ero en caso de no incluir hora se compone por fecha $ el n7mero de asiento.
BOLETO_TEATRO numero_as'ento: NUMBER(9) NOT NULL %ec&a_espectacu0o: (ATE NOT NULL descr'pc'on_espectacu0o: VAR !AR"(*"$) NOT NULL costo: NUMBER(7>") NOT NULL

+I,URA .9 N!ta2 Si tu'iera un n7mero de folio 7nico ese ser a el ./D. Una entidad deBe tene% un UID, ! G"ta n! e" una entidad2 1odos los componentes de un ./D deben ser )arcados con YU con Y 7nicamente
UNA ENTIDAD <UEDE SER IDENTI+ICADA DE MANERA INICA A TRA>KS DE UNA RELACIN

.sar una barra ./D del lado de la cardinalidad ) para indicar que la relacin es parte del identificador 7nico de la entidad. E%emplo2 En el "mbito deporti'o cada equipo se le asigna un n7mero 7nico. Dentro de cada equipo cada %ugador tiene un n7mero generalmente secuencial. :or tanto para distinguirse el n7mero de pla$era en la Base de datos, requiere a$uda del n7mero de equipo, as de manera compuesta si podr" distinguirse. R@u"l es el ./D de la entidad !.A<DO&S

1+
:U-A(OR 'd: NUMBER(9) NOT NULL 'd_e1u'po: NUMBER(9) NOT NULL (./) nombre: VAR !AR"(3$) NOT NULL %ec&a_nac'm'ento: (ATE NOT NULL E4U,PO 'd: NUMBER(9) NOT NULL nombre: VAR !AR"(3$) NOT NULL %ec&a_%undac'on: (ATE NULL

+I,URA .= El !.A<DO& es identificado como 7nico por su atributo n7mero $ el E-./:O espec fico al que est" relacionado.
UNA ENTIDAD <UEDE SER IDENTI+ICADA DE MANERA INICA A TRA>KS DE MILTI<LES ELACIONES

U"a% una Ba%%a UID en 0ada %e a0i@n pa%a indi0a% Aue e" pa%te de identi&i0ad!% Lni0! de a entidad2 N!ta U .na relacin incluida dentro de un ./D debe de ser obligatoria del lado de la entidad d8bil $ una $ solamente una del lado de la entidad dominante.

E%emplo 3So$ el due(o de unas tiendas $ me interesa tener un control de pro'eedores $ productos que 'endo, tambi8n por supuesto su costo, porque 'ar an. @ada pro'eedor tiene su &#@, nombre, domicilio $ tel8fono. 9os productos tienen cdigo, nombre $ presentacin. < tra'es de los a(os los productos de los pro'eedores tienden a subir, nos interesa conocer los precios histricos3
PROVEE(OR_PRO(U T O_!,+T OR,A co d') o : NUMBER(2) NOT NULL (./) r%c: VAR !AR"(*#) NOT NULL (./) %e c&a _'n': (AT E NOT NULL p re c'o : NUMBER(9>") NOT NULL %e c&a _%'n: (AT E NULL pa ra para

re) 'strad o en PRO(U TO

re) 'strad o e n PROVEE(OR r%c: VAR !AR"(*#) NOT NULL

co d') o : NUMBER(2) NOT NULL no mb re: VAR !AR"(#$) NOT NULL p re se nta c'on: VAR !AR"(#$) NOT NULL

no mbre: VAR !AR"(3$) NOT NULL d om'c'0'o : VAR !AR"(5$) NOT NULL te0e%o no: VAR !AR"(*") NOT NULL

+I,URA .C R@u"l es el ./D de la entidad :&OLEEDO&B:&OD.@1OB=/S1O&/<S Una <RO>EEDORM<RODUCTOMNISTORIA e" identi&i0ad! de manera 7nica para el :&OLEEDO& quien 'endio el :&OD.@1O, con el cdigo del :&OD.@1O $ el rfc del :&OLEEDO&, as como la fecha en la que inicia el precio, porque por la inflacin cambia el precio. 0ota2 9a entidad nue'a de interseccin generalmente lle'a atributos cantidades o atributos fecha U<mbas relaciones son obligatorias $ una $ slo una en la direccin incluida en el ./D.

1,
IDENTI+ICADORES UNICOS SECUNDARIOS E%emplo2 EMPLEA(O
num: NUMBER(3) NOT NULL num_nom'na: NUMBER(3) NOT NULL nombre: VAR !AR"(3$) NOT NULL ape00'do: VAR !AR"(3$) NOT NULL %ec&a_nac'm'ento: (ATE NOT NULL

+I,URA .3 - @ada ./D secundario se marca con +Y, E%emplo2 @uando 5 bancos se fusionan $ tienen al inicio 5 cuentas de los clientes, como en el caso de @itibanZ $ Baname*, una cuenta se decide para lla'e primaria, la otra cuenta para .0/-.E. :ara nue'os clientes despu8s de la fusin, no requieren 'alor en la cuenta cu$o constraint es .0/-.E. 0o ol'idar que la lla'e primaria, es la que se relaciona con las lla'es for"neas +#C, @digo correspondiente al uso de constraint .0/-.E, que permite que un atributo a pesar de no ser lla'e, no se repita, adem"s la columna puede permitir nulos.

@&E<1E 1<B9E E):9E<DO + 0.)E&OB@9<LE 0.)BE& +M, 0O1 0.99, 0.)E&OB0O)/0< 0.)BE& +46, 0O1 0.99, 0O)B&E L<&@=<&+M6, 0O1 0.99, <:B:<1E&0O L<&@=<&5+M6, 0O1 0.99, #=B0<@/)/E01O D<1E 0O1 0.99, @O0S1&</01 UNICMEM< UNIOUE +NUMEROMNOMINA,, @O0S1&</01 EM<M<D <RIMARY DEY +0.)E&OB@9<LE, .S/0A /0DE? :@1#&EE 46 S1O&<AE +/0/1/<9 4OKJN 0E?1 J4X5 :@1/0@&E<SE 6, 1<B9ES:<@E E):B0D?, 1<B9ES:<@E E):BD<1 :@1.SED N6 :@1#&EE 46 S1O&<AE +/0/1/<9 4OKJN6 0E?1 4KX5ON :@1/0@&E<SE 6, :<&<99E9 +DEA&EE 4 /0S1<0@ES 4, 0O@<@=EH

ATRIBUTOS ADICIONALES <ARA IDENTI+ICAR UNA ENTIDAD2 =a$ casos en los que es necesario crear un atributo adicional para a$udar a identificar a una entidad en caso de no e*istir. R@u"l es el identificador 7nico de la entidad B<0@OS
BAN O

nombre: VAR !AR"(3$) NOT NULL ca00e_num: VAR !AR"(3$) NOT NULL co0on'a: VAR !AR"(3$) NOT NULL cp: !AR(2) NOT NULL

2+I,URA /4 @rear un at%iBut! adi0i!na llamado cdigo, el cual sea 7nico para cada instancia del B<0@O
BAN O cod')o: NUMBER(9) NOT NULL nombre: VAR !AR"(3$) NOT NULL ca00e_num: VAR !AR"(3$) NOT NULL co0on'a: VAR !AR"(3$) NOT NULL cp: !AR(2) NOT NULL

+I,URA /CONSTRAINTS DIFERIDOS .Se /al dan des&u0s del #o"" t1


PLANETA num_p0aneta: NUMBER("$) NOT NULL nombre: VAR !AR"(3$) NOT NULL masa: NUMBER(9) NOT NULL super%'c'e: NUMBER(9) NOT NULL num_orb'ta: NUMBER(9) NOT NULL (./) ORB,TA num_orb'ta: NUMBER(9) NOT NULL nombre: VAR !AR"("$) NOT NULL rad'o: NUMBER(9) NOT NULL

*$$6

*$$6

+I,URA 5 @ada O&B/1< puede estar orbitando uno $ solo un :9<0E1< @ada :9<0E1< puede estar orbitando en una $ solo una O&B/1< @uando se ingresan los datos la primera 'ez la informacin se realizan 5 inserts, uno para O&B/1< $ otro para :9<0E1<, enseguida se dar" commit, $ es ah donde se 'alidan las restricciones, en este caso :9<0E1< depender" de la e*istencia de la O&B/1<.
+4L@ ALTER TABLE ORB,TA " A(( ON+TRA,NT P/_ORB,TA PR,MARA /EA (num_orb'ta) # ,N,T,ALLA (E.ERE( (E.ERREABLEB +4L@ ALTER TABLE PLANETA " A(( ON+TRA,NT ./_PLAN_ORB .ORE,N- /EA # RE.EREN E+ ORB,TA (num_orb'ta) 7 ,N,T,ALLA (E.ERE( (E.ERREABLEB

El siguiente comando establece en una sesin los constraints diferidos


+4L@ ALTER +E++,ON +ET ON+TRA,NT+ C (E.ERRE(B Opc'ones: +ET ON+TRA,NTD+E Fconstra'nt D> constra'nt E GALLHF,MME(,ATEG(E.ERRE(H

NORMALIPACIN (M!de ! De Dat!" AFanQad!) E" Fa ida% !" at%iBut!" de 0ada entidad ( en 0a"! de n! en0!nt%a%"e en e u#a% 0!%%e0t!, %euBi0a% !" Se usan las siguientes reglas de normalizacin. &EA9< DE #O&)< 0O&)<9 DES@&/:@/O0

21
4#0 5#0 K#0 1odos los atributos deben tener un slo 'alor .n atributo debe ser dependiente del identificador 7nico completo 0ing7n atributo no-./D puede ser dependiente de otro atributo no-./D +Su ob%eti'o es eliminar redundancia,

.n modelo de datos entidad-relacin normalizado se traslada autom"ticamente en un dise(o de B.D. Despu8s de la K#0 n! e" 0!mLnmente utilizadas la N[ $ M[ #0. -+N Lalor 7nico para cada ocurrencia R9a entidad #<@1.&< cumplen todos sus atributos con 4#0S 0o S/ .0 <1&/B.1O 1/E0E )\91/:9ES L<9O&ES, SE @&E< .0< E01/D<D <D/@/O0<9 Q SE &E9<@/O0< @O0 9< E01/D<D O&/A/0<9 )ED/<01E .0< &E9<@/O0 )24 )2) E%emplo2
%actura num: NUMBER(9) NOT NULL c0'ente: VAR !AR"(3$) NOT NULL %ec&a_compra: (ATE NOT NULL art'cu0o: VAR !AR"(#$) NOT NULL

+I,URA /. N!ta? A%t$0u ! en &a0tu%a, puede "e% 0!m! taB e%! de aut!m@Fi , de a pH#ina -9, e" de0i% tend%H at%iBut!" adi0i!na e"2

.+N .n atributo debe ser dependiente del identificador 7nico completo E%emplo 4
E+TU(,ANTE num_cuenta: NUMBER(9) NOT NULL nombre: VAR !AR"(#$) NOT NULL ap_paterno: VAR !AR"(#$) NOT NULL ap_materno: VAR !AR"(#$) NOT NULL %ec&a_nac'm'ento: (ATE NOT NULL

+I,URA //

22
@ada instancia del n7mero de cuenta determina un 'alor espec fico para nombre, apellido paterno, apellido materno $ fecha de nacimiento.

E%emplo 52 Lalidar la ubicacin de los siguientes atributos.


VA UNA 'd_<acuna: NUMBER(9) NOT NULL nombre: VAR !AR"(3$) NULL en%ermedad: VAR !AR"(3$) NULL

:ara el atributo enfermedad 'iola la 5[. #orma 0ormal $ tambi8nla 4[. #orma 0ormal. EN.ERME(A( VA UNA
num: NUMBER(9) NOT NULL 'd_<acuna: NUMBER(9) NOT NULL (./) nombre: VAR !AR"(3$) NULL 'd_<acuna: NUMBER(9) NOT NULL nombre: VAR !AR"(3$) NULL

+I,URA /1 S$ un at%iBut! n! e" dependiente de UID 0!mp et!, deBe%H "e% %euBi0ad! /+N 0ing7n atributo no-./D puede ser dependiente de otro atributo no-./D E%emplo R<lg7n atributo no-./D de la siguiente entidad depende de otro atributo no-./DS EMPLEA(O
'd: NUMBER(9) NOT NULL nombre: VAR !AR"(3$) NOT NULL puesto: NUMBER(*) NOT NULL sa0ar'o: NUMBER(3>") NOT NULL nombre_puesto: VAR !AR"(#$) NULL

+I,URA /5 9os 7ltimos 5 atributos dependen de id puesto. SO9.@/I0

+I,URA /9

23
0O1< Se 1rasladan ambos atributos dependientes del ./D, puesto 'iola la 4[ $ 5[ #orma 0ormal, salario $ nombre del puesto 'iolan la 4[ 5[ $ K[ #orma 0ormal <l resol'er la relacin )2) surge otra entidad @ompa( a para fortalecer los datos.
URR, ULUM r%c: VAR !AR"(*#) NOT NULL (./) 'd_emp0eado: NUMBER(9) NOT NULL (./) 'd_puesto: NUMBER(9) NOT NULL (./) %ec&a_'n'c'o: (ATE NOT NULL %ec&a_%'n: (AT E NULL

OMPAI,A r%c: VAR !AR"(*#) NOT NULL nombre: VAR !AR"(3$) NOT NULL dom'c'0'o: VAR !AR"(5$) NOT NULL te0e%ono: VAR !AR"(*") NOT NULL

EMPLEA(O 'd_emp0eado: NUMBER(9) NOT NULL nombre: VAR !AR"(3$) NOT NULL dom'c'0'o: VAR !AR"(5$) NOT NULL se=o: !AR(*) NOT NULL

PUE+TO 'd_puesto: NUMBER(9) NOT NULL descr'pc'on: VAR !AR"(9$) NULL sue0do: NUMBER(3>") NULL

+I,URA /= E%emplo 5
PE(,(O 'd: NUMBER(#) NOT NULL %ec&a_ped'do: (ATE NOT NULL 'd_c0'ente: NUMBER(#) NOT NULL nombre: VAR !AR"(3$) NULL estado: VAR !AR"(3$) NULL

+I,URA /C 9os atributos nombre $ estado dependen del idBcliente, que se trasladan a la entidad @9/E01E
PE(,(O 'd: NUMBER(#) NOT NULL %ec&a_ped'do: (ATE NOT NULL 'd_c0'ente: NUMBER(#) NOT NULL (./) L,ENTE 'd: NUMBER(#) NOT NULL nombre: VAR !AR"(3$) NULL estado: VAR !AR"(3$) NULL

+I,URA /3

24

RESOLUCIN DE RELACIONES M?M Se debe <gregar una entidad interseccin con los atributos que identifican a cada una de las entidades con relaciones dependientes. R@u"l es el periodo actual de un D/&E@1O& espec fico para una ES1<0@/< espec ficaS
E+TAN ,A num: NUMBER(9) NOT NULL dom'c'0'o: VAR !AR"(3$) NOT NULL d'rector: VAR !AR"(3$) NOT NULL

+I,URA 14 :ara la entidad ES1<0@/< infantil, a tra'es del tiempo e*isten 'arios directores, los cuales pueden dirigir 'arias ES1<0@/<S a lo largo del tiempo.
(,RE TOR num: NUMBER(9) NOT NULL nombre: VAR !AR"(3$) NOT NULL E+TAN ,A num: NUMBER(9) NOT NULL dom'c'0'o: VAR !AR"(3$) NOT NULL

+I,URA 19a fecha inicio $ fecha fin nos da el periodo que labora o labor un director, obser'en que la fecha fin es nula por si el director continua laborando ah . @uando se crea una Entidad /nterseccin nue'a se crean 5 relaciones )24

+I,URA 1. El ./D del D/&E@1O&BES1<0@/< 8sta compuesto de estas 5 relaciones, Obser'en las 5 barras, 9as relaciones desde una entidad interseccin son siempre obligatorias. Estas entidades de /01E&SE@@/I0 generalmente tienen atributos adicionales como cantidades $ fechas. Estas tienden a ser entidades 'ol"tiles $ de 'olumen alto.

2(
0ota2 Una entidad inte%"e00i@n "in at%iBut!" e" una i"ta de %e&e%en0ia 0%uQada2 :ara todo tipo de empleado, inclusi'e el director, cambiar a el nombre por E):9E<DO $ se agregar a un cat"logo de :.ES1O, relacionado con E):9E<DO. E%emplo 3@ada :&OLEEDO& tiene un precio diferente a cada :&OD.@1O>
PROVEE(OR r%c: VAR !AR"(*#) NOT NULL nombre: VAR !AR"(#$) NOT NULL dom'c'0'o: VAR !AR"(2$) NOT NULL te0e%ono: VAR !AR"(*$) NOT NULL <end'endo PRO(U TO cod')o: NUMBER(") NOT NULL <end'do por nombre: VAR !AR"("$) NOT NULL presentac'on: VAR !AR"("$) NOT NULL

+I,URA 1/ Solucin
AT ALO-O 'd: NUMBER(2) NOT NULL (./) cod ')o: NUMBER(2) NOT NULL (./) prec'o_actua0: NUMBER(2>") NOT NULL cant'dad_de 0_pa1uete: NUMBER(") NOT NULL un'dad_de_med'da: VAR !AR"(#$) NOT NULL para para VEN(E(OR cod')o: NUMBER(2) NOT NULL determ'nado con nombre: VAR !AR"(3$) NOT NULL

as')nado a PRO(U TO

'd : NUMBER(2) NOT NULL nombre: VAR !AR"(#$) NOT NULL descr'pc'on: VAR !AR"(#$) NOT NULL

+I,URA 11 0ota2 Se agregan cantidad $ unidad de medida, para ma$or informacin de los productos. RELACIONES RECURSI>AS M?M &esolucin de la relacin recursi'a )2) con una entidad interseccin $ 5 relaciones )24 hacia diferentes instancias de la entidad original. E%emplo2 .na organizacin de manufactura de autom'iles necesita guardar informacin de partes, subensambles, ensambles $ productos, por e%emplo partes que componen un 'entilador.
OMPONENT E 'd: NUMBER(#) NOT NULL descr'pc'on: VAR !AR"(*$$) NOT NULL

2)
RE-LA_(E_EN+AMBLA(O 'd_compo nente*: NUMBER(#) NOT NULL (./) 'd_compo nente": NUMBER(#) NOT NULL (./) ca nt'dad : NUMBER(7) NULL para para

compuesto de OMPONENTE 'd: NUMBER(#) NOT NULL descr'pc'on: VAR

una pa rte de

!AR"(*$$) NOT NULL

+I,URA 15 &EA9<SBDEBE0S<)B9<DOS
id:C, #C4 4 4 id. :C, #C5 5 K 0antidad K N

@O):O0E01ES
id 4 5 K de"0%ip0i@n 'entilador rondana tornillo

VE+T,MENTA 'd: NUMBER(#) NOT NULL descr'pc'on: VAR !AR"(*$$) NOT NULL

OMPLEMENTO 'd_<est'menta*: NUMBER(#) NOT NULL (./) 'd_<est'menta": NUMBER(#) NOT NULL (./) cant'dad: NUMBER(*) NULL para para

ut'0'Jado en VE+T,MENTA 'd: NUMBER(#) NOT NULL

parte de

descr'pc'on: VAR !AR"(*$$) NOT NULL

+I,URA 19 LES1/)E01<S
/d 4 5 K descripcion Blusa @haleco 1ra%e

@O):9E)E01OS
/dB'est 4 K M /dBcomp 5 N N cantidad 4 4 4

2*
N M O P J X 46 44 @orbata @amisa formal )ascada 'erde Bufanda Lestido <retes rosas 1ra%e sastre mu%er :rendedor 46 4 46 O 4 X O 44 4 5 4 4

,N-RE(,ENTE 'd: NUMBER(#) NOT NULL nombre: VAR !AR"(*$$) NOT NULL

RE-LA_(E_ O ,NA 'd_'n)red'ente*: NUMBER(#) NOT NULL (./) 'd_'n)red'ente": NUMBER(#) NOT NULL (./) cant'dad: NUMBER(*) NULL para para

ut'0'Jado en ,N-RE(,ENTE 'd: NUMBER(#) NOT NULL

parte de

nombre: VAR !AR"(*$$) NOT NULL

+I,URA 1=

/0A&ED/E01ES /d 0ombre 4 @aldillo de %itomate 5 Sopa K @rema espinaca N Aalletas para cremas M @hiles rellenos O @ebolla

&EA9<S DE @O@/0< /dBing /dBing5 5 4 K N M 4 4 O

@antidadBporcion M66 O M66 M6

2+
ANALISIS ;ERROUICO DE DATOS .na &epresentacin %er"rquica de datos es un con%unto de relaciones d8biles )24 9os ./D]s para un con%unto de entidades %er"rquicas pueden ser propagados a tra'8s de relaciones m7ltiples. E4U,PO
'd_'nst'tuc'on: NUMBER(#) NOT NULL (./) 'd_d'<'s'on: NUMBER(#) NOT NULL (./) 'd_departamento: NUMBER(#) NOT NULL (./) num_ser'e: NUMBER(#) NOT NULL descr'pc'on: VAR !AR"(9$) NOT NULL t'po_e1u'po: VAR !AR"(#$) NOT NULL

(EPARTAMENTO 'd_'nst'tuc'on: NUMBER(#) NOT NULL (./) 'd_d'<'s'on: NUMBER(#) NOT NULL (./) 'd_departamento: NUMBER(#) NOT NULL nombre: VAR !AR"(3$) NOT NULL te0e%ono: VAR !AR"(*#) NOT NULL

(,V,+,ON 'd_'nst'tuc'on: NUMBER(#) NOT NULL (./) 'd_d'<'s'on: NUMBER(#) NOT NULL nombre: VAR !AR"(3$) NOT NULL c0as'%'cac'on: VAR !AR"(#$) NOT NULL

,N+T,TU ,ON 'd_'nst'tuc'on: NUMBER(#) NOT NULL nombre: VAR !AR"(3$) NOT NULL

+I,URA 1C E%emplo2 )odelar la estructura de organizacin %er"rquica de una /nstitucin como un con%unto de relaciones )24 9os ./DGs para un con%unto de entidades %er"rquicas pueden ser propagados a tra'8s de m7ltiples relaciones.

2,
. / Unam U> ITAM . / 1 . . -

DIE DCB DIMEI DCT . . -

COM<UTACIN MECATRONICA TERMODINMICA AL,EBRA . /

MONITOR C<U TECLADO

C C C

0ota2 :ara casos de series secuenciales se resuel'en con propagacin de ./DGs. :ara tipo de equipo2 @;@omputacin, E;Electrnica, );)ec"nica, -;-u mica MODELADO DE RELACIONES COM<LE;AS )odelar una relacin entre tres o m"s entidades como una entidad interseccin con relaciones obligatorias con esas entidades. E%emplo2 En un historial de corridas de toros, e*iste una relacin entre las entidades 1&<!E, 1O&E&O $ :9<^<. .sar una entidad interseccin llamada ES@E0OA&<#_< para modelar estas relaciones.
E+ ENO-RA.,A 'd_p0aJa: NUMBER(7) NOT NULL (./) 'd_torero: NUMBER(3) NOT NULL (./) 'd_tra8e: NUMBER(3) NOT NULL (./) num_secuenc'a0: NUMBER(*) NOT NULL nombre_toro: VAR !AR"(3$) NOT NULL peso_toro: NUMBER(#) NOT NULL

TORERO PLAKA 'd: NUMBER(7) NOT NULL nombre: VAR !AR"(3$) NOT NULL 'd: NUMBER(3) NOT NULL nombre: VAR !AR"(*$$) NOT NULL d'recc'on: VAR !AR"(*$$) NOT NULL se=o: !AR(*) NOT NULL

TRA:E 'd: NUMBER(3) NOT NULL co0or: VAR !AR"(*2) NOT NULL t'po: VAR !AR"(*2) NOT NULL adornos: VAR !AR"(*$) NOT NULL

+I,URA 13 .na relacin comple%a es una relacin entre K o m"s entidades. NOTAS .na entidad interseccin para una relacin comple%a siempre tiene relaciones obligatorias de regreso a las entidades con las cuales se relaciona. :ara una representacin de una relacin comple%a de una entidad interseccin, seguir las reglas de )E& b"sicas para nombrar la entidad, para analizar $ modelar sus relaciones, atributos $ sus ./D. @onsiderar sus relaciones necesarias en su ./D. RELACIONES OUE MODELAN ROLES R-u8 pasar a si el :&O#ESO& tambi8n es ES1.D/<01ES

3,N+ R,P ,ON 'd_estud'ante: NUMBER(2) NOT NULL (./) cod')o_ta00er: NUMBER(2) NOT NULL (./) %ec&a_'n'c'o: (ATE NOT NULL %ec&a_term'no: (ATE NULL para para

re)'strado en E+TU(,ANTE 'd: NUMBER(2) NOT NULL ape00'do: VAR !AR"(#$) NOT NULL nombre: VAR !AR"(#$) NOT NULL num_te0e%on'co: VAR !AR"(*2) NULL TALLER

Tomado por PRO.E+OR 'd: NUMBER(2) NOT NULL ape00'do: VAR !AR"(#$) NOT NULL nombre: VAR !AR"(#$) NOT NULL num_te0e%on'co: VAR !AR"(*2) NULL %ec&a_'n)reso: (ATE NOT NULL

cod')o: NUMBER(2) NOT NULL nombre: VAR !AR"(#$) NOT NULL durac'on: NUMBER(#) NOT NULL costo: NUMBER(2>") NOT NULL 'd_pro%esor: NUMBER(2) NOT NULL (./)

Ense9ado por

Pro%esor de

+I,URA 54 9as relaciones permiten que una sola instancia de entidad asuma m7ltiples roles. En este e%emplo :E&SO0< tomar" los roles de profesor $Fo estudiante
,N+ R,P ,ON 'd_persona: NUMBER(2) NOT NULL (./) cod')o_ta00er: NUMBER(2) NOT NULL (./) %ec&a_'n'c'o: (ATE NOT NULL %ec&a_term'no: (ATE NULL para para

tomado por TALLER cod')o: NUMBER(2) NOT NULL 'd_persona: NUMBER(2) NOT NULL (./) nombre: VAR !AR"(#$) NOT NULL durac'on: NUMBER(#) NOT NULL costo: NUMBER(2>") NOT NULL ense9ado por maestro de PER+ONA

re)'strado en

'd: NUMBER(2) NOT NULL ape00'do: VAR !AR"(#$) NOT NULL nombre: VAR !AR"(#$) NOT NULL num_te0e%on'co: VAR !AR"(*2) NULL %ec&a_'n)reso: (ATE NOT NULL

+I,URA 5E%emplo 5 Se muestra como pais toma 5 roles para el estudiante, su nacionalidad $ el lugar donde reside.
E+TU(,ANTE num_cuenta: !AR(*$) NOT NULL nombre: VAR !AR"(3$) NOT NULL num_pa's_or')en: NUMBER(#) NOT NULL (./) num_pa's_estud'o: NUMBER(#) NULL (./) PA,+ num: NUMBER(#) NOT NULL nombre: VAR !AR"(3$) NOT NULL

+I,URA 5.

31
SUBTI<OS O SUBENTIDADES Y SU<ERTI<OS O SU<ERENTIDADES 9os subtipos sir'en para modelar e*clusi'amente tipos de entidad que tienen atributos o relaciones comunes. E%emplo2 .n negocio tiene dos tipos de empleados2 asalariados $ por honorarios. :ara todos los empleados se guarda su n7mero, nombre, apellido $ departamento asignado. :ara los empleados asalariados, se guarda el salario del empleado $ sindicato. :ara los empleados por honorarios, se guarda el costo por hora $ costo por tiempo e*tra.
EMPLEA(O As'stenc'a %ec&a: (ATE NOT NULL c0a<e: NUMBER(2) NOT NULL (./) c0a<e: NUMBER(2) NOT NULL nombre: VAR !AR"(3$) NOT NULL ape00'do: VAR !AR"(3$) NOT NULL c0a<e_departamento: NUMBER(#) NULL (./)

EMPLEA(O_A+ALAR,A(O

EMPLEA(O_POR_!ONORAR,O+

sa0ar'o: NUMBER(2>") NOT NULL c0a<e: NUMBER(#) NOT NULL (./)

costo_&ora: NUMBER(#>") NOT NULL costo_t'empo_e=tra: NUMBER(#>") NULL

M'embro de ompuesto de +,N(, ATO c0a<e: NUMBER(#) NOT NULL descr'pc'on: VAR !AR"(3$) NOT NULL

Aas')nado a ompuesto de (EPARTAMENTO c0a<e: NUMBER(#) NOT NULL descr'pc'on: VAR !AR"(3$) NOT NULL

+I,URA 5/ .n supertipo es una entidad que tiene subtipos. .n supertipo puede ser separado en dos o m"s subtipos mutuamente e*clu$entes. :ara el e%emplo2 .n empleado debe ser E):9E<DO <S<9<&/<DO E):9E<DO :O& =O0O&<&/OS, pero no ambos.

+I,URA 51 (N! ! Fida% Aue e "upe%tip! tiene J ( !" "uBtip!" n! tienen J uni0amente tienen "u" at%iBut!") ESTANDARES DE LECTURA DE SU<ERTI<OS @ada 1&<B<!O )<0.<9 el cual es un 1&<B<!O puede estar generando uno o m"s :&OD.@1OS. @ada :&OD.@1O deber ser realizado por uno $ solo un 1&<B<!O )<0.<9 el cual es un 1&<B<!O @ada S<9<&/O debe ser remuneracin de uno $ solo un 1&<B<!O que puede ser )<0.<9, O#/@/0< u O1&O 1&<B<!O 0O1<2 Siempre se utilizan subtipos otros cuando no se est" seguro.

32
E;EM<LOS DE SUBTI<OS

+I,URA 55
MA+ OTA 'd: NUMBER(#) NOT NULL prec'o: NUMBER(9>") NOT NULL edad: NUMBER(") NOT NULL t'po: NUMBER(*) NOT NULL (./)

-ATO

raJa_)ato: VAR !AR"(3$) NULL ped')ree_)ato: !AR(*) NULL <'das_restantes_)ato: NUMBER(*) NULL

OMPRA(OR 'd: NUMBER(#) NOT NULL nombre: VAR !AR"(3$) NOT NULL

Ad1u'r'endo a

PERRO 0as'%'cando a Ad1u'r'da por entrenam'ento_perro: VAR !AR"(*2) NULL num_)atos_ases'nados_perro: NUMBER(*) NULL 0as'%'cando por T,PO_MA+ OTA t'po: NUMBER(*) NOT NULL nombre: VAR !AR"(3$) NOT NULL

+ERP,ENTE

espec'e: VAR !AR"(3$) NULL <eneno: !AR(*) NULL 0u)ar_de_or')en: VAR !AR"(3$) NULL per'odo_camb'o_p'e0: (ATE NULL %ec&a_u0t'mo_cab'o_p'e0: (ATE NULL

+I,URA 59

33
MODELOS DE RELACIONES E7CLUSI>AS )odelar dos o m"s relaciones mutuamente e*clu$entes de la misma entidad usando un arco. E%emplo2 Se usa un arco para modelar la relacin de una DE@9<&<@/I0 que debe pertenecer a una :E&SO0<B#/S/@< o :E&SO0<B)O&<9.

+I,URA 5= @ada DE@9<&<@/I0 debe estar perteneciendo a una $ slo una :E&SO0<B#/S/@< o estar perteneciendo a una $ slo una :E&SO0<B)O&<9

1/:OS :<&< D/B.!O DE <&@OS .n arco con puntos opcionales &ompimiento de arco.

+I,URA 5C MODELAR DATOS DE TIEM<O @rear una entidad adicional para mantener los 'alores de los atributos en el tiempo. E%emplo2 .na <gencia de colocacin de &ecursos =umanos necesita mantener la informacin acerca de sus colocaciones. @ada colocacin tiene cla'e 7nica, ubicacin, fecha $ un estado +por e%emplo, nue'o ingreso n, reingreso r $ suspensin s,. /nicialmente fue modelada la siguiente entidad
OLO A ,ON c0a<e: NUMBER(3) NOT NULL ub'cac'on: VAR !AR"(2$) NOT NULL estado: !AR(*) NOT NULL %ec&a: (ATE NOT NULL

34
+I,URA 53 :ero la agenciafirma quiere lle'ar el registro de fechas de nue'o ingreso, reingreso o suspensin de cada colocacin.
E+TA(O c0a<e: NUMBER(3) NOT NULL (./) %ec&a: (ATE NOT NULL estado: VAR !AR"(#$) NOT NULL )enerando rentado por OLO A ,ON c0a<e: NUMBER(3) NOT NULL ub'cac'on: VAR !AR"(2$) NOT NULL

+I,URA 94 E%emplo2 El due(o de un 'ideoclub quiere infomar a sus clientes, informacin acerca de las pel culas que renta $ los actores que in'olucra
A TOR num: NUMBER(#) NOT NULL nombre_rea0: VAR !AR"(#$) NOT NULL nombre_art'st'co: VAR !AR"(#$) NOT NULL PEL, ULA 'd: NUMBER(3) NOT NULL nombre: VAR !AR"(#$) NOT NULL %ec&a_prem'er: (ATE NOT NULL

+I,URA 9<gregar la entidad de :&E)/O para me%orar la informacin histrica de las pel culas, como la fecha $ si obtu'o alg7n premio el actor.
PREM,O 'd: NUMBER(3) NOT NULL (./) num: NUMBER(#) NOT NULL (./) %ec&a: (ATE NULL t'po: NUMBER(#) NOT NULL (./) PEL, ULA 'd: NUMBER(3) NOT NULL nombre: VAR !AR"(#$) NOT NULL

T,PO_PREM,O t'po: NUMBER(#) NOT NULL nombre: VAR !AR"(#$) NOT NULL

A TOR num: NUMBER(#) NOT NULL nombre_rea0: VAR !AR"(#$) NOT NULL nombre_art'st'co: VAR !AR"(#$) NOT NULL

+I,URA 9. :ara un hospital se necesita almacenar en una Base de Datos en el e*pediente del paciente las fechas en las que ha sido atendido, incluso los per odos en que requiere hospitalizacin.
PA ,ENTE 'd: NUMBER(9) NOT NULL nombre: VAR !AR"(3$) NULL ME(, O cedu0a: VAR !AR"(*2) NOT NULL nombre: VAR !AR"(2$) NOT NULL

+I,URA 9/

3(
<gregar una Entidad de interseccin, &EA/S1&O E?:ED/E01E, para guardar las consultas
RE-,+TRO_ELPE(,ENTE 'd_pac'ente: NUMBER(9) NOT NULL (./) cedu0a: VAR !AR"(*2) NOT NULL (./) %ec&a_'n'c'o: (ATE NOT NULL %ec&a_%'n: (ATE NULL

PA ,ENTE 'd: NUMBER(9) NOT NULL nombre: VAR !AR"(3$) NOT NULL

ME(, O cedu0a: VAR !AR"(*2) NOT NULL nombre: VAR !AR"(2$) NOT NULL

+I,URA 91

RE2LAS DE CODD E' F' Codd &ro&uso do#e re3las4 la "a%or5a de los "ane6adores #o"er# ales no #u"&len al 1-- &or # ento todas las re3las' Las re3las son7 1' Re3la de la n!or"a# $n Toda la n!or"a# $n de una 8ase de datos rela# onal est re&resentada a n /el l$3 #o' 2' Re3la del a##eso 3arant 9ado Todo dato ./alor at$" #o1 en una 8ase de datos rela# onal es a##es 8le &or7 no"8re de ta8la4 lla/e &r "ar a % no"8re de #olu"na' 3' Re3la del trata" ento s ste"t #o de /alores nulos Los /alores nulos .N:LL1 son d !erentes a la #adena /a#5a % al #ero4 #on el o86et /o de re&resentar la n!or"a# $n des#ono# da o !altante' 4' Re3la del #atlo3o 8asado en el "odelo rela# onal La des#r &# $n de los datos dentro de una 8ase de datos .Metadatos14 s r/e &ara re#u&erar datos del #atlo3o % datos nor"ales de usuar o' (' Re3la del su8;len3ua6e de datos entend 8le :n s ste"a rela# onal de8e so&ortar /ar os t &os de len3ua6es' S n e"8ar3o al "enos un su8; len3ua6e <ue &er" ta e=&resar senten# as' Este su8;len3ua6e so&orta7 (e%'n'c'?n de datos (((L) onsu0ta de datos ((ML) Man'pu0ac'?n de datos ((ML)

3)
Restr'cc'ones de 'nte)r'dad (( L) Mane8o de autor'Jac'ones para 0os datos (( L)

)' Re3la de la a#tual 9a# $n de / stas Todas 0as <'stas 1ue sean te?r'camente actua0'Jab0es deben ser actua0'Jab0es por e0 s'stema de base de datosM <N _ ALL_ (BA_ U+R_
*' Re3la de nser# ones4 a#tual 9a# ones % el " na# ones de alto n /el Mane6a re#u&era# $n4 nser# $n4 a#tual 9a# $n % el " na# $n &ara un #on6unto de ren3lones' +' Inde&enden# a !5s #a de los datos Los &ro3ra"as de a&l #a# $n no su!ren "od ! #a# ones a &esar de los #a"8 os en el n /el de !5s #o de al"a#ena" ento o en los "0todos de a##eso .Des/enta6a de Ar#> /os1' ,' Inde&enden# a l$3 #a de los ar#> /os Los &ro3ra"as de a&l #a# $n no su!ren "od ! #a# ones a &esar de los #a"8 os >e#>os a las ta8las' 1-' Re3la de nde&enden# a de nte3r dad Las restr ## ones de nte3r dad es&e# ! #adas &ara una rela# $n de8en ser de! n das #on el su8;len3ua6e % al"a#enadas en el #talo3o' 11' Inde&enden# a de d str 8u# $n ?uede estar d str 8u do en d st ntos e<u &os o s t os de una red % las ta8las de8en ser / stas #o"o s estu/ eran lo#al"ente' 12' Re3la de la no su8/ers $n N n3@n len3ua6e de 8a6o n /el &uede ser usado &ara / olar las restr ## ones de nte3r dad e=&resadas en el len3ua6e rela# onal de alto n /el'

E M!de ! Entidad Re a0i@n (M!de ! E:R) El modelo entidad %e a0i@n est" formado por un con%unto de conceptos que permiten describir la realidad mediante un con%unto de representaciones gr"ficas. Se basa en una representacin del mundo real en que los datos se describen como entidades, relaciones $ atributos. #ue presentado por @hen en 4XPO. .na Base de datos relacional consiste en una coleccin de tablas. El modelo %e a0i!na fue propuesto originalmente por E.#. @odd en un $a famoso art culo de 4XP6. 9a estructura fundamental del modelo relacional es precisamente esa `relacin>, es decir, una tabla bidimensional constituida por renglones +tupla, $ columnas +atributos,. @ada atributo de una relacin se caracteriza por un nombre $ por un dominio. El dominio indica qu8 'alores pueden ser asumidos por una columna. El Modelo Entidad Relacin se utiliza en la fase de anlisis de un proyecto. Mientras que el Modelo Relacional se emplea en la fase de diseo de un proyecto.

AL,EBRA RELACIONAL
1<B9< S.@.&S<9ES
CLA>E :C 4 5 K N M O NOMBRE 0orte Sur Este Oeste @entro :oniente ACTI>O 4666 5666 K666 M66 4666 4666 CIUDAD )8*ico :uebla )8*ico -uer8taro )8*ico )8*ico

1<B9< @.E01<S
CLA>EMSUC :C $ #C4 4 4 NUMMCLIENTE :C $ #C5 M66 5666 NUMMCUENTA :C M66 N64 SALDO 4666 46M66

3*
4 K566 546 46666 5 466J MO6 4666 K 666K 556 K666 N N66 N66 K666 N JM6 K66 4666 M 466 OK6 5666 O 4666 4666 46666 1<B9< @9/E01ES NUMMCLIENTE NOMBRE CALLEMNUM CIUDAD :C 666K <costa <driana )adero 5K )8*ico 6466 :8rez &odolfo &e' 4656 :uebla 6N66 Lalencia Sergio 9ibertad KXJ -uer8taro 6M66 !u"rez !os8 <lfonso @opilco 4M @hiapas 6JM6 9ara Susana ?ola 45M )8*ico 4666 &uaz Aonzalo .ni'ersidad J6 )8*ico 466J #ern"ndez )arco /ns 455 )8*ico 5666 9pez <le%andra <llende 44 Auadala%ara K566 Amez Lernica :rogreso KP )onterre$ P666 =ern"ndez 9uis ?ola XN )8*ico 1<B9< DE:OS/1OS CLA>EMSUC NUMMCLIENTE NUMMCUENTA +ECNA SALDO :C $ #C4 :C $ #C4 :C $ #C4 :C 4 5666 N64 5-ene-XJ 4666 4 K566 546 M-mar-XJ NM6 5 466J MO6 P-%un-XJ 466 K 666K 556 4-%ul-XP 4J6 N 6JM6 K66 K-no'-XP 5X6 1<B9< :&ES1<)OS CLA>EMSUC NUMMCLIENTE NUMMCUENTA NUMM<RESTAMO :C $ #C4 :C $ #C4 :C $ #C4 :C 4 6M66 M66 5K 4 5666 N64 645 5 466J MO6 M6 N 6N66 N66 4P M 6466 OK6 46 O 4666 4666 4J Si agrego :9<^OB:&ES1<)OS CLA>EMSUC NUMMCLIENTE NUMMCUENTA NUMM<RESTAMO <LAPO :C $ #C4 :C $ #C4 :C $ #C4 :C $ #C4 :C 4 6M66 M66 5K 4 4 6M66 M66 5K 5 4 5666 N64 645 4 4 5666 N64 645 5 4 5666 N64 645 K

IM<ORTE K66 M66 K66 466 4666 JM6 IM<ORTE 4M6 4M6 566 566 466

3+
(EPO+,TO c0a<e: NUMBER(") NOT NULL (./) num_c0'ente: NUMBER(9) NOT NULL (./) num_cuenta: NUMBER(9) NOT NULL (./) %ec&a: (ATE NOT NULL sa0do: NUMBER(O>") NOT NULL PRE+TAMO c0a<e: NUMBER(") NOT NULL (./) num_c0'ente: NUMBER(9) NOT NULL (./) num_cuenta: NUMBER(9) NOT NULL (./) num_prestamo: NUMBER(9) NOT NULL 'mporte: NUMBER(O>") NOT NULL

UENTA c0a<e: NUMBER(") NOT NULL (./) num_c0'ente: NUMBER(9) NOT NULL (./) num_cuenta: NUMBER(9) NOT NULL sa0do: NUMBER(O>") NOT NULL

L,ENTE num_c0'ente: NUMBER(9) NOT NULL nombre: VAR !AR"(3$) NOT NULL ca00e_num: VAR !AR"(#$) NOT NULL c'udad: VAR !AR"(#$) NOT NULL +U UR+AL c0a<e: NUMBER(") NOT NULL nombre: VAR !AR"(3$) NOT NULL act'<o: NUMBER(5>") NOT NULL c'udad: VAR !AR"(#$) NULL

+I,URA 95 E?/S1E .0< @O&&ES:O0DE0@/< D/&E@1< E01&E @O0@E:1O DE .0< TABLA Q E9 @O0-@E:1O )<1E)<1/@O DE .0< RELACION, DE9 @.<9 &E@/BE E9 0O)B&E DE )ODE9O &E9<@/O0<9.
1<B9< DE:OS/1OS ; &E9<@/O0 DE:OS/1OS CLA>EMSUC NUMMCLIENTE NUMMCUENTA +ECNA SALDO :C $ #C4 :C $ #C4 :C $ #C4 :C 4 5666 N64 5-ene-XJ 4666 4 K566 546 M-mar-XJ NM6 5 466J MO6 P-%un-XJ 466 K 666K 556 4-%ul-XP 4J6 N 6JM6 K66 K-no'-XP 5X6 D4 +Dominio4, Es el con%unto de todos las cla'es de sucursal D5 +Dominio5, Es el con%unto de todos los n7meros de cliente DK +DominioK, Es el con%unto de todos los n7meros de @uenta DN +DominioN, Es el con%unto de todas las fechas de Depsito de los @lientes DM +DominioM, Es el con%unto de todos los Saldos depositados @ada 1upla +rengln, se compone de +L4,L5,LK,LN,LM, donde L4 pertenece a D4 $ as sucesi'amente. :or tanto DE:OS/1OS es un "uB0!njunt! de M ? Di producto cartesiano i;4 En general una tabla de n columnas es un subcon%unto de n ? Di

3,
i;4 9os matem"ticos llaman &E9<@/O0 al "uB0!njunt! del producto cartesiano de una lista de dominios, esto es similar a una tabla. Debido a que las tablas son b"sicamente relaciones, se utilizan los t8rminos matem"ticos &E9<@/O0ES $ 1.:9<S en 'ez de tablas $ renglones.
AL,EBRA RELACIONAL Es un lengua%e de 0!n"u ta +sir'e para obtener la informacin de la Base de Datos., @onsta de M operaciones fundamentales2 - Elegir - :ro$ectar - :roducto @artesiano ? - .nin . - Diferencia de con%untos Q 5 operaciones adicionales2 - /nterseccin - :roducto 0atural +?, Se permiten operadores +diferente, bD ; < > +<0D, L+O&, :roducto @artesiano 7 +S.@.&S<9ES ? @.E01<S, CLA>E NOMBRE ACTI>O CIUDAD CLA>EMSUC NUMMCLIENT NUMMCUENTA SALDO E 4 0orte 4666 )8*ico 4 M66 M66 4666 4 0orte 4666 )8*ico 4 5666 N64 46M66 4 0orte 4666 )8*ico 4 K566 546 46666 4 0orte 4666 )8*ico 5 466J MO6 4666 4 0orte 4666 )8*ico K 666K 556 K666 4 0orte 4666 )8*ico N N66 N66 K666 4 0orte 4666 )8*ico N JM6 K66 4666 4 0orte 4666 )8*ico M 466 OK6 5666 4 0orte 4666 )8*ico O 4666 4666 46666 5 Sur 5666 :uebla 4 M66 M66 4666 c K Este K666 )8*ico 4 M66 M66 4666 c N Oeste M66 -uer8taro 4 M66 M66 4666 c M @entro 4666 )8*ico 4 M66 M66 4666 c O :oniente 4666 )8*ico 4 c O :oniente 4666 )8*ico O 4666 4666 46666

EAEM?LOS DE CONS:LTAS CON AL2EBRA RELACIONAL *) Pro;ectar e0 nPmero de c0'ente> nPmero de cuenta ; nPmero de prQstamo PERO 0as tup0as de 0a re0ac'?n PRE+TAMO+ de 0a sucursa0 * NUM_ L,ENTE> NUM_ UENTA> NUM_PRE+TAMO LAVE_+U C * (?RESTAMOS) N:MCCLIENTE $2$$ "$$$ N:MCC:ENTA 2$$ 7$* N:MC?RESTAMO "# $*"

NOTA: uando se ut'0'Ja mRs de una tab0a> se rea0'Ja un :O,N entre 0as co0umnas en comPnM N TABLA+ NS* :O,N ") Pro;ectar e0 nPmero de c0'ente> nPmero de cuenta ; nPmero de prQstamo PERO 0as tup0as de 0a re0ac'?n PRE+TAMO+ de 0a sucursa0 Norte NUM_ L,ENTE> NUM_ UENTA> NUM_PRE+TAMO LAVE_+U C LAVE T NOMBRE C UNorteV (?RESTAMOS D S:C:RSALES) #) Pro;ectar 0os nombres de c0'entes ; su nombre de sucursa0es en 0as 1ue &an &ec&o prQstamosM L,ENTE+Mnombre> +U UR+ALE+M nombre L,ENTE+MNUM_ L,ENTE C PRE+TAMO+MNUM_ L,ENTE

4T LAVE_+U C LAVE (?RESTAMOS D CLIENTES D S:C:RSALES) CLIENTES'no"8re :uRreJ :osQ A0%onso L?peJ A0e8andra .ernRndeJ Marco Va0enc'a +er)'o PQreJ Rodo0%o Ru'J -onJa0o ON(, ,WN (E UN,WN: Un'?n ompat'b0e E0 orden (NPmero de Atr'butos) ; 0os dom'n'os de cada atr'buto deben ser ')ua0es Las dos re0ac'ones deben tener e0 m'smo nPmero de ar)umentosM E8emp0o: R*$ C F (*>a)> (*>b)> (*>c) H R"$ C F (*>a)> (">b)> (#>b) H R#$ C F (a)> (b)> (*) H R*$ R#$ C No se puede rea0'Jar por1ue no son compat'b0es 7) Pro;ectar 0os c0'entes 1ue &an &ec&o operac'ones en 0a sucursa0 NorteM (Obser<ar nombre de0 a0'as pro;ectado) L,ENTE+Mnombre Xc0'ente depos'toY> c0a<e C c0a<e_suc T L,ENTE+Mnum_c0'ente C (EPO+,TO+Mnum_c0'ente T +U UR+ALE+Mnombre C XNorteY (DE?OSITOS D CLIENTES D S:C:RSALES) L,ENTE+Mnombre Xc0'ente prestamoY c0a<e C c0a<e_suc T L,ENTE+Mnum_c0'ente C PRE+TAMO+Mnum_c0'ente T +U UR+ALE+Mnombre C XNorteY (?RESTAMOS D CLIENTES D S:C:RSALES) #l ente de&os to L?peJ A0e8andra -?meJ Ver?n'ca :uRreJ :osQ A0%onso S:C:RSALES'no"8re Norte Norte +ur Oeste entro Pon'ente

M, Obtener los clientes que no han hecho ning7n pr8stamo en la sucursal 0orte @9/E01ES.nombre :&ES1<)OS.numBcliente ; @9/E01ES.numBcliente d cla'e ; cla'eBsuc d S.@.&S<9ES.nombre bD E0orteG +<RESTAMOS 7 CLIENTES 7 SUCURSALES, CLIENTES2n!mB%e :8rez &odolfo #ern"ndez )arco Lalencia Sergio &u z Aonzalo Una eEp%e"i@n en #eB%a Re a0i!na "e puede 0!n"t%ui% 0!n "uBeEp%e"i!ne"2 Sean E- ( E. eEp%e"i!ne" de #eB%a Re a0i!na E- U E. E- : E. E- 7 E.

41
p(E-) " (E-) d!nde p * <%edi0ad! 0!n at%iBut!" de Ed!nde " Li"ta de at%iBut!" Aue apa%e0en de E-

O<ERADORES ADICIONALES2 ( (7)

O, Obtener a todos los clientes que tienen tanto un pr8stamo, como un depsito en la sucursal 0orte @9/E01ES.nombre cla'eBsuc ; cla'e d :&ES1<)OS.0.)B@9/E01E ; @9/E01ES.0.)B@9/E01E d S.@.&S<9ES.nombre ; E0orteG +<RESTAMOS 7 SUCURSALES 7 CLIENTES, @9/E01ES.nombre cla'eBsuc ; cla'e d DE:OS/1OS.0.)B@9/E01E ; @9/E01ES.0.)B@9/E01E d S.@.&S<9ES.nombre ; E0orteG +DE<OSITOS 7 SUCURSALES 7 CLIENTES, CLIENTES2n!mB%e 9pez <le%andra /nclu$endo el saldo de la cuenta @9/E01ES.nombre, S.@.&S<9ES.nombre, @.E01<S.saldo @9/E01ES.numBcliente ; @.E01<S.numBcliente d @.E01<S.cla'eBsuc ; cla'e d :&ES1<)OS.cla'eBsuc ;@.E01<S.cla'eBsuc d :&ES1<)OS.numBcliente ; @.E01<S.numBcliente d :&ES1<)OS.numBcuenta ; @.E01<S.numBcuenta d S.@.&S<9ES.nombre ; E0orteG +<RESTAMOS 7 CUENTAS 7 SUCURSALES 7 CLIENTES, @9/E01ES.nombre, S.@.&S<9ES.nombre, @.E01<S.saldo @9/E01ES.numBcliente ; @.E01<S.numBcliente d @.E01<S.cla'eBsuc ; cla'e d DE:OS/1OS.cla'eBsuc ;@.E01<S.cla'eBsuc d DE:OS/1OS.numBcliente ; @.E01<S.numBcliente d DE:OS/1OS.numBcuenta ; @.E01<S.numBcuenta d S.@.&S<9ES.nombre ; E0orteG (DE<OSITOS 7 CUENTAS 7 SUCURSALES 7 CLIENTES, @on un solo quer$ @9/E01ES.nombre, S.@.&S<9ES.nombre, @.E01<S.saldo :&ES1<)OS.cla'eBsuc ; DE:OS/1OS.cla'eBsuc d :&ES1<)OS.numBcliente ; DE:OS/1OS.numBcliente d :&ES1<)OS.numBcuenta ; DE:OS/1OS.numBcuenta d :&ES1<)OS.cla'eBsuc ;@.E01<S.cla'eBsuc d :&ES1<)OS.numBcliente ; @.E01<S.numBcliente d :&ES1<)OS.numBcuenta ; @.E01<S.numBcuenta d @.E01<S.numBcliente ; @9/E01ES.numBcliente d @.E01<S.cla'eBsuc ; S.@.&S<9ES.cla'e d S.@.&S<9ES.nombre ; E0orteG +(DE<OSITOS 7 <RESTAMOS 7 CUENTAS 7 SUCURSALES 7 CLIENTES, CLIENTES2n!mB%e SUCURSALES2n!mB%e CUENTAS2"a d! 9pez <le%andra 0orte 46M66 P, Obtener todos los nombres $ las ciudades de residencia de los clientes de la sucursal 0orte que han hecho pr8stamos

42
@9/E01ES.nombre, ciudad p +<RESTAMOS 7 CLIENTES 7 SUCURSALES, donde p ; @9/E01ES.0.)B@9/E01E ; :&ES1<)OS.0.)B@9/E01E d @9<LEBS.@ ; @9<LE d S.@.&S<9ES.0O)B&E ; E0orteG
CLIENTES2n!mB%e !u"rez !os8 <lfonso 9pez <le%andra .tilizando :roducto 0atural 0iudad @hiapas Auadala%ara

@9/E01ES.nombre, ciudad +<RESTAMOS (7) CLIENTES (7) SUCURSALES,

donde es el predicado ; S.@.&S<9ES.nombre ; E0orteG

J, Obtener los nombres de los clientes $ las ciudades de residencia de todos los clientes que tienen un pr8stamo. @on producto natural2 nombre, ciudad +<RESTAMOS (7) CLIENTES, <qu se toman 7nicamente las pare%as que tienen el atributo en com7n n7meroBcliente. n!mB%e !u"rez !os8 <lfonso 9pez <le%andra #ern"ndez )arco Lalencia Sergio :8rez &odolfo &u z Aonzalo 0iudad @hiapas Auadala%ara )8*ico -uer8taro :uebla )8*ico

X, Obtener el nombre de todas las sucursales $ el acti'o que tienen depositantes que 'i'an en )8*ico. S.@.&S<9ES.nombre, acti'o @9/E01ES.ciudad ; E)e*icoG +@9/E01ES +?, DE:OS/1OS +?, S.@.&S<9ES , SUCURSALES2n!mB%e a0tiF! Sur 5666 Este K666 Oeste M66 46, Obtener los clientes que tienen tanto un depsito, como un pr8stamo en la sucursal 30orte3 +Similar al e%ercicio O, @9/E01ES.nombre S.@.&S<9ES.nombre ; E0orteG +<RESTAMOS (7) SUCURSALES (7) CLIENTES, @9/E01ES.nombre S.@.&S<9ES.nombre ; E0orteG +DE<OSITOS (7) SUCURSALES (7) CLIENTES, CLIENTES2n!mB%e

43
9pez <le%andra

ESTNDARES <ARA ENTIDADES -2 @a%as de cualquier dimensin .2 0ombre de la entidad en ma$7sculas /2 Si una entidad no puede tener un identificador 7nico +./D, 8sta no puede ser una entidad. Y o barra+s, ./D. 12 0ombre de entidad en singular +Dise(o 9gico, ESTNDARES <ARA RELACIONES 4 0ombres de relaciones en min7sculas 5 Opcionalidad Opcional +:uede serFestar, Obligatorio +Debe serFestar, K Arado @ardinalidad .na m"s .na $ solamente una N 0ombres de &elacin alternado $ cercano a la entidad

+I,URA 99 M Sinta*is de una relacin. debe serFestar @ada entidad4 o puede serFestar -2 .2 /2 12 52 .na o m"s o una $ solamente una

0ombre de la relacin

entidad5

ESTANDARES DEL DIA,RAMA E:R (<a%a CRe0S i"t) <linear las ca%as de las entidades Dibu%ar las l neas de relacin como rectas horizontales o 'erticales =acer todo el te*to claro +entidades, relaciones, atributos, sinnimos, E'itando abre'iaciones $ modismos +modo de hablar propio de una lengua,, en entidades, relaciones, atributos @ompactar en la medida de lo posible las ca%as de las entidades para a$udar a la 'isualizacin del diagrama Dibu%ar patas de gallo apuntando hacia arriba o a la izquierda

92 =2 C2

+I,URA 9= :osicionar las entidades m"s 'ol"tiles arriba $ a la izquierda del diagrama $ posicionar las entidades menos 'ol"tiles aba%o $ a la derecha del diagrama +cat"logos aba%o , 0ombres de entidades $ atributos m"*imo 5X caracteres. Omitir ciclos, e*cepto roles.

44

ESTANDARES DE ATRIBUTOS 9os nombres de los atributos no deben incluir el nombre de la entidad. 9os nombres de los atributos deben ser espec ficos. E%emplo en el caso de una cantidad, es cantidad 'endida o cantidad comprada, fecha de contrato, fecha de orden +checZ list, /2 9os atributos deben estar en singular +e*cepto atributos que s lo necesitan, por e%emplo numBpuertas en E01/D<D auto, $ min7sculas 12 Lerificar que un atributo no sea deri'ado o calculado de los 'alores e*istentes de otros atributos. U 9os atributos deri'ados son redundantesc. U 9a redundancia de datos puede ocasionar una inconsistencia de 'alores de datos. El dato deri'ado debe ser actualizado cada 'ez que se modifican los datos en los que se basa. E%emplos de atributos deri'ados2 U @ontadores +n7mero de 'endedores en una regin, U 1otales +total de 'entas mensuales de cada 'endedor, U )a*F)inF:romedio +Estad sticas de 'entas de un grupo de 'endedores, Otros c"lculos +9a comisin de un 'endedor calculada al 46W de las 'entas, -2 .2 ESTANDARES DE COLUMNAS (DISEO) 1odas las columnas se deben descomponer hasta su m nimo componente con significado E%emplo2 El nombre de una :E&SO0< puede ser descompuesto en nombre $ apellidos. 9a columna direccin puede ser descompuesto en m7ltiples columnas2 n7mero, departamento, calle, ciudad, estado $ cdigo postal. Aeneralmente se descompone durante el dise(o. El ni'el de la descomposicin de columnas depende de los requerimientos del negocio .2 0ombre de tabla en plural +Dise(o # sico, -2 -2 .2 /2 12 ESTANDARES <ARA MODELOS DE ARCO (De&ini0i@n) 9as relaciones en arco frecuentemente tienen los mismos nombres de relacin 9as relaciones de arco deben ser o todas obligatorias o todas opcionales .n arco pertenece a una sola entidad, $ solamente debe incluir relaciones originadas de esta entidad .na entidad puede tener m7ltiples arcos, pero una relacin espec fica, solamente puede participar en un slo arco. ESTANDARES DE SUBTI<OS (De&ini0i@n) :ara la lectura de subtipos @ada S.:E&E01/D<D debe ser S.B1/:OS debeFpuedec @ada S.B1/:O es un tipo de S.:E&1/:Oc <gregar un subtipo O1&OS < menos que no considere su necesidad N!%ma iQa0i@n (De&ini0i@n) 1odos los atributos no deben ser multi'alor 1odos los atributos deben depender del ./D completo .n atributo no ./D no debe depender de otro no ./D

-2 .2 4#0 5#0 K#0

ESTANDARES <ARA D;+ 4 9os nodos finales 'an a ser distribuidos entre PT5 ESTNDARES <ARA D+D 4. 1oda flecha deber" etiquetarse 5. En caso de in'olucrar 'arias tablas, generalizar el flu%o de datos K. Simbolog a

4(

+I,URA 9C

You might also like