Você está na página 1de 136

301125 - BASES DE DATOS AVANZADAS

Curso Electivo
ANVAR CHAVES TORRES
Director Nacional
AV!ER !"ENEZ
Acreditador
San Juan de Pasto
Agosto de 2013
La primera versin de este documento fue escrita por el ingeniero Rogelio Vsque
!ernal" posteriormente #a sido actualiado por otros profesionales" docentes de la
$NAD" cu%os nom&res no fueron registrados' (sta versin del documento #a sido
editada por An)var *#aves +orres'
(ste documento fue preparado para estudiantes de ,ngenier)a de sistemas de la $nad %
se acoge a la licencia *reative *ommons 3'0' (n consecuencia" se permite su uso con
fines acad-micos" siempre que se reconoca el cr-dito al autor' .e pro#)&e la
reproduccin" por cualquier medio" con fines comerciales'
Los e/emplos % e/ercicios #an sido dise0ados e1clusivamente con fines didcticos" el
autor" el editor % la universidad no asumen ninguna responsa&ilidad por la aplicacin de
los mismos en con propsitos diferentes a la comprensin de los temas de este curso'
CONTEN!DO
Nmero de crditos y dedicacin horaria........................................................6
....................................................................................................................... 6
Protocolo.......................................................................................................... 7
Introduccin general al curso........................................................................14
Unidad I. ases de datos distri!uidas............................................................1"
#a$itulo 1. #once$tos !%sicos de !ases de datos......................................1"
&eccin 1. 'odelo entidad relacin.........................................................1"
&eccin (. )lementos del 'odelo entidad relacin..................................1*
&eccin +. ,lge!ra relacional...................................................................(7
1. Seleccin............................................................................................. (*
+. Producto.............................................................................................. (-
". Interseccin......................................................................................... (-
6. .i/erencia............................................................................................ +0
&eccin 4. Normali1acin de datos..........................................................+(
'odelo entidad 2 relacin........................................................................... +(
Normali1acin............................................................................................ +(
Primera /orma normal3 41N56.....................................................................++
7ercera /orma normal3 4+N56......................................................................+4
.esnormali1acin de datos........................................................................+"
&eccin ". 7ransacciones.........................................................................+6
#oncurrencia........................................................................................... +7
Seguridad y recu$eracin de datos.........................................................+*
#onsultas.................................................................................................... 40
#%lculo relacional ...................................................................................... 41
#a$8tulo (. .ise9o de !ases de datos distri!uidas.....................................4"
&eccin 6. ases de datos distri!uidas....................................................4"
&eccin 7. ases de datos distri!uidas...................................................."0
)l $ro!lema de dise9o................................................................................... "0
)n/o:ues al $ro!lema de dise9o de !ases de datos distri!uidas .................."1
&eccin *. 5ragmentacin......................................................................."4
&eccin -. 7i$os de /ragmentacin de datos..........................................."*
&eccin 10. .ise9o de re$lica..................................................................61
#a$itulo +. #onsultas.................................................................................. 6+
&eccin 11. #onsultas distri!uidas..........................................................6+
&eccin 1(. .escom$osicin de una consulta y locali1acin de datos
distri!uidos.............................................................................................. 67
&eccin 1+. 7ransacciones .istri!uidas...................................................6-
&eccin 14. #onsistencia de la !ase de datos interna. ...........................76
&eccin 1". #at%logo...............................................................................-1
Unidad (. odegas de datos..........................................................................-"
#a$8tulo 4. .ise9o de !odegas de datos....................................................-"
&eccin 16. Introduccin......................................................................... -"
&eccin 17. #onstruccin y mane;o de una !odega de datos .................-7
&eccin 1-. )strategias recomendadas $ara dise9o de datos ..............101
&eccin (0. 5actores de riesgo .............................................................10+
#a$itulo ". 'iner8a de datos.....................................................................104
&eccin ((. 5undamentos del .ata 'ining ...........................................10"
&eccin (+. <lcance de .ata 'ining .....................................................106
&eccin (4. 5ases de un Proyecto de 'iner8a de .atos ........................10*
&eccin (". #mo 7ra!a;a el .ata 'ining= ...........................................10-
#a$8tulo 6. >erramientas de miner8a de datos.........................................111
&eccin (6. ?edes neuronales arti/iciales3 ............................................111
&eccin (7. ,r!oles de decisin3 ..........................................................11(
&eccin (*. 'todo del @ecino m%s cercano3 .......................................11+
&eccin (-. <lgoritmos genticos .........................................................114
&eccin +0. ?egla de induccin3 ...........................................................11"
Unidad +. ases de datos orientadas a o!;etos...........................................116
#a$8tulo 7. Arientacin a o!;etos.............................................................116
&eccin +1. Introduccin......................................................................116
&eccin +(. #once$tos !%sicos3.............................................................117
&eccin ++. <r:uitectura de administrador de sistemas de .AA........1(0
&eccin +4. Sistema administradores de !ases de datos orientadas a
o!;etos BS<.CAAD................................................................................ 1((
&eccin +". )l sistema Postgres...........................................................1(+
#a$itulo *. &engua;e de 'odelado Uni/icado U'&....................................1(4
&eccin +6. Introduccin......................................................................1(4
&eccin +7. E'todo o &engua;e de 'odelado=....................................1(6
&eccin +*. Una $ers$ecti@a de U'&.....................................................1(*
&eccin +-. .iagramas de Secuencia....................................................1+(
&eccin 40. .iagramas de #ola!oracin...............................................1+4
#a$8tulo -. 'odelado con U'&.................................................................1+"
&eccin 41. 'odelando el com$ortamiento de las #lases con .iagramas
de )stado.............................................................................................. 1+"
&eccin 4(. .iagramas de <cti@idad.....................................................1+6
&eccin 4+. 'odelando #om$onentes de So/tFare...............................1+*
&eccin 44. 'odelando la .istri!ucin y la Im$lementacin.................1+-
&eccin 4". .ise9o de ases de .atos ?elacionales CC Una eGtensin
in/ormal de U'&.................................................................................... 141
N#$ero %e cr&%itos ' %e%ic(ci)* +or(ri(
(l curso de !ases de datos avanada est configurado como curso de 3 cr-ditos'
*onsiderando que cada cr-dito acad-mico corresponde a 23 #oras de dedicacin del
estudiante" este curso e1ige que el estudiante invierta como m)nimo 122 #oras en el
semestre' Dado que el semestre se desarrolla en 14 semanas" es necesario una
dedicacin promedio de 5 #oras semanales'
Lo anterior es un referente" pues no todas las semanas e1igen la misma dedicacin' Lo
recomenda&le es que el estudiante est- pendiente de las actividades en la agenda del
curso % a las orientaciones del tutor' La me/or estrategia" sin duda" es desarrollarlas
oportunamente" teniendo en cuenta que algunas de ellas se realian de forma
cola&orativa'

,rotocolo
!*tro%ucci)*
(ste curso es electivo" pretende fortalecer los conocimientos &sicos de &ases de datos
% revisar los temas de diferentes tipos de aplicacin'
(l curso pretende6
*onocer los fundamentos de &ases de datos distri&uidas" &odegas de datos % &ases de
datos orientadas a o&/etos'
usti-ic(ci)*
Los sistemas de &ases de datos" son los ms importantes para el mane/o eficiente de
informacin' Aunque el sustento terico sigue siendo el mismo" las realidades de la
empresa" las aplicaciones de la informacin almacenadas en las &ases de datos" como
soporte decisional" las inclusin de los o&/etos en el mundo planificado % pensado para
registros planos" #ace de este curso importante para ver otras realidades % retos en el
desarrollo de los sistemas de &ases de datos'
!*te*sio*(li%(%es -or$(tiv(s
,ro.)sitos
(l curso pretende definir un marco de tra&a/o que facilite el desarrollo de conocimientos
alrededor de los temas propuestos
Reconocer la e1istencia de modelos de datos % sus implicaciones en los sistemas de
informacin
Determinar cuando se de&en usar las estructuras de &ases de datos definidas en el
curso acad-mico
O/0etivos
Reconocer las venta/as de las &ases de datos en los procesos de anlisis de
informacin % como #erramienta para la toma de decisiones'
(ntender el modelo de &ases de datos distri&uido" sus venta/as" desventa/as %
las posi&ilidades del modelo so&re la plataforma de alta velocidad de trasmisin'
*onocer % aplicar los conceptos de &odegas de datos" como #erramienta
indispensa&le para almacenar informacin que facilite procesos de anlisis %
toma de decisiones
*onocer las t-cnicas de miner)a de datos" sus aplicaciones % los resultados
o&tenidos'
Reconocer los conceptos &sicos de un sistema de &ase de datos orientado a
o&/etos" el modelo de datos" sus venta/as" desventa/as % aplicaciones'
"et(s
7ue el estudiante refuerce los conocimientos de &ases de datos relacionales %
los aplique en el dise0o de &ases de datos distri&uidas
7ue el estudiante comprenda la importancia de las &odegas de datos % la
miner)a de datos'
7ue el estudiante conoca que t-cnicas puede aplicar para miner)a de datos'
7ue el estudiante pueda plantear pro%ectos que requieran las tecnolog)as
desarrolladas en el curso
Co$.ete*ci(s
Las competencias que promueve el curso % que son necesarias son6
*ognitiva6 capacidad de apropiarse de los conocimientos planteados en el contenido
del curso a trav-s del desarrollo" monitoreo % aplicacin de procesos de pensamiento'
*omunicativa6 capacidad de comprender" e1presar mensa/es % de desarrollar procesos
argumentativos" apo%ados por las relaciones interpersonales'
*onte1tual6 capacidad de u&icar el conocimiento en el conte1to cient)fico" pol)tico"
cultural" tecnolgico" social % en el plano nacional e internacional" as) como la
disposicin % capacidad para aplicarlo en procesos de transformacin que inciden en la
calidad de vida de la po&lacin'
Valorativa6 capacidad de apropiarse de valores como el respeto a la vida % a las ideas
de los dems8 la dignidad #umana" la convivencia" la solidaridad" la tolerancia % la
li&ertad que orientan las acciones del individuo como persona" como ser social % como
profesional'
(l curso &usca que el estudiante reconoce las diferentes reas de aplicacin de las
&ases de datos" dise0ando % constru%endo soluciones eficientes que permiten apo%ar
los procesos de toma de decisiones en la empresa'
1*i%(%es %i%2ctic(s
$nidad ,'
(ste tema inclu%e un repaso del 9odelo (ntidad Relacin" normaliacin de datos %
.7L'
!ases de datos distri&uidas" que son" modelo de datos (ntidad Relacin" fragmentacin
% replicacin" transacciones" consultas % catalogo distri&uido'
$nidad ,,'
!odegas de datos" que son' *arga de datos % miner)a de datos'
$nidad ,,,
!ases de datos orientadas a o&/eto' :&/etos" propiedades" dise0o de o&/etos $9L'
Estructur( %el curso
Co*te3to te)rico
(l curso de &ases de datos avanada" se #a pensado como un curso electivo que
quiere fortalecer los temas vistos en el curso &sico'
.e intenta mostrar el sustento terico en los sistemas de &ases de datos distri&uidos"
sistema que #o% retoma importancia por los desarrollos en los medios de comunicacin
que #an reactivado ese tipo de pro%ectos'
De otro lado" #o% en d)a los sistemas de &odegas de datos tienen un espacio claro en
la empresa" para permitir" al revisar la #istoria" crear el concepto de fidelidad %
conocimiento de los gustos del cliente para ofrecer me/ores servicios'
De igual manera" la idea de o&/etos % como los sistemas de &ases de datos los utilian"
es importante por el auge que #a tomado este tipo de sistemas'
"eto%olo45(
*on el propsito de dar cumplimiento a las intencionalidades formativas del curso" es
importante que se planifique de manera responsa&le el proceso de aprendia/e
teniendo en cuenta las caracter)sticas de la metodolog)a de educacin a distancia" por
tal ran" este proceso se puede estructurar mediante las siguientes fases6
Reco*oci$ie*to6 9ediante esta etapa se pretende reconocer los conocimientos
previos del estudiante" por lo tanto la funcin didctica consiste en crear actividades
mediante las cuales se identifican los propsitos del curso" sus intencionalidades % se
presenta el desarrollo del curso' (sta fase puede desarrollarse de manera individual a
trav-s del estudio del protocolo del curso" el modulo % las fuentes documentales % a
trav-s de actividades grupales propuestas por el tutor'
,ro-u*%i6(ci)*6 +eniendo en cuenta que esta se refiere al con/unto de actividades
previamente planificadas conducentes al dominio de conceptos % competencias de
ordenes diferentes" se #an definido los siguientes propsitos de formacin6
+ra&a/o personal6 desarrolladas por el estudiante" a trav-s de6 estudio del
material sugerido en el curso acad-mico" consulta de fuentes documentales
;&i&liograf)a de documentos impresos en papel6 li&ros % revistas8 &i&liograf)a de
documentos situados en ,nternet8 direcciones de sitios <e& de informacin
especialiada % &i&liotecas=
+ra&a/o en grupo6 desarrolladas por estudiantes a trav-s de peque0os grupos
cola&orativos de carcter o&ligatorio" con el propsito de6 socialiacin del
tra&a/o personal" desarrollo de actividades en equipo" ela&oracin de informes"
de acuerdo con las actividades programadas en la gu)a didctica'
+utor)a en grupo de curso6 teniendo en cuenta las inquietudes presentadas por
el estudiante a partir del tra&a/o personal % del tra&a/o en grupo" el tutor estar
dispuesto a resolver las consultas mediante la valoracin de informes % el
intercam&io de conocimientos en el tratamiento de las temticas propuestas'
+utor)a individual6 entendida como el acompa0amiento que el tutor de&e ofrecer
al estudiante mediante el uso de las tecnolog)as de informacin % la
comunicacin" tales como6 correo electrnico" salas de conversacin" foros de
discusin" el tel-fono % *#at8 tam&i-n se puede complementar con encuentros
presenciales'
Tr(*s-ere*ci(6 todo conocimiento" #a&ilidad" destrea o competencias puede permitir
la transferencia de situaciones conocidas a situaciones desconocidas8 por lo tanto
en esta fase requiere que tomando como referencia las fases de reconocimiento %
profundiacin que se ela&oren ensa%os" evaluaciones" mapas conceptuales %
talleres de aplicacin en las diferente fases del curso acad-mico'
Siste$( %e ev(lu(ci)*
Los procesos de evaluacin del aprendia/e estarn correlacionados % articulados de
manera necesaria al principio de autonom)a % generaran en el estudiante competencias
para la realiacin de procesos de auto evaluacin" coevaluacin % #eteroevaluacin' A
continuacin se indica cada uno de estos procesos6
Autoev(lu(ci)*6 (s aquella que realia el mismo estudiante" donde a medida que va
estudiando" se va planteando preguntas que el mismo las resuelve' De esta forma el
estudiante #ace su propio seguimiento" identificando avances % dificultades" lo que
#ace el proceso de autoaprendia/e mu% dinmico % participativo' (ste tipo de
evaluacin N: tiene ponderacin en la valoracin del curso" solo es una forma de
identificar fortaleas" oportunidades" de&ilidades % amenaas en el proceso de
aprendia/e'
Coev(lu(ci)*7 *uando el estudiante realia estudio en grupo cola&orativo" los
compa0eros pueden valorar los avances" por medio de la *oevaluacin" en -sta los
compa0eros se eval>an entre s)" con el fin de identificar los avances % detectar
de&ilidades % fortaleas en el desarrollo de los temas que se estn estudiando' La
*oevaluacin es un espacio para desarrollar #a&ilidades comunicativas % N: tiene
ponderacin en la valoracin del curso'
Heteroev(lu(ci)*6 (s aquella preparada por el +utor o por el Docente +itular del
*urso" para #acer el seguimiento al rendimiento acad-mico de los estudiantes" se
puede realiar por medio de parciales" quices" revisin de informes" tra&a/os"
portafolios" evaluacin nacional % otros' (ste estilo de evaluacin es la utiliada por la
$NAD para determinar la apro&acin o no del curso acad-mico'

!*tro%ucci)* 4e*er(l (l curso
?$n sistema de &ase de datos es &sicamente un sistema computariado para llevar
registros@
1
(l mdulo &ase de datos avanada tiene como propsito fundamental profundiar
algunos temas tratados en &ase de datos &sica % presentar un esquema nuevo para
un nivel ms avanado'
Los temas aqu) tratados requieren de un &uen conocimiento de &ases de datos % un
gran deseo por profundiar cada uno de ellos en la &i&liograf)a recomendada'
Los estudiantes de&en tra&a/ar el modulo acompa0ado de la gu)a de actividades % del
protocolo acad-mico para lograr as) el propsito del curso acad-mico'
1
#.J. .<7). Introduccin a los sistemas de !ases de datos
1*i%(% !8 B(ses %e %(tos %istri/ui%(s
C(.itulo 18 Co*ce.tos /2sicos %e /(ses %e %(tos
9ecci)* 18 "o%elo e*ti%(% rel(ci)*
(s una t-cnica para definir las necesidades de informacin de una organiacin' (l
modelo entidad relacin en su forma ms simple implica identificar asuntos importantes
dentro de la organiacin ;entidades= " propiedades de esos asuntos ;atri&utos= % como
se relacional entre si ;relacin=' (sto tiene valor solamente dentro del conte1to de lo
que se realia en la empresa % en la forma de actuar de estas funciones de gestin
so&re el modelo de informacin'
1818 O/0etivos %el $o%elo e*ti%(% rel(ci)*
Aroporcionar un modelo preciso de las necesidades de informacin de la organiacin'
Aroporcionar un modelo independiente de cualquier almacenamiento de datos %
m-todo de acceso" que permita tomar decisiones de las t-cnicas de implementacin %
coe1istencia con sistemas antiguos'
1828 !$.ort(*ci( %el $o%elo e*ti%(% rel(ci)*
:frece un medio efectivo % preciso de especificar % controlar la definicin de las
necesidades de informacin' A continuacin se indican die temas clave que se
necesitan tener en cuenta cuando se utilia el modelo6
Dato7 un recurso clave
Bo% en d)a un dato" como recurso" se acepta por ser importante para la evolucin
satisfactoria de la organiacin como lo son los recursos financieros" #umanos % f)sicos'

*ompromiso con la direccin
La direccin de&e confirmar los requisitos de informacin' No importa lo
inteligente que usted resulte al modelar" tendr un -1ito limitado sin el
compromiso de la direccin'
*onvenciones
(n todo momento se de&en aplicar convenciones rigurosas" estndares %
directrices" inclu%endo los conceptos de normaliacin de datos'
Definicin m)nima
.e de&er)a definir o modelar cualquier informacin o concepto de datos slo de
una forma" % a continuacin configurar asociaciones para los o&/etos
relacionados' *omo por e/emplo" se de&er)a definir una ve una cosa
denominada ?Aedido de compra@ % a continuacin relacionarlo con el
departamento" los productos" las funciones de autoriacin % as)
sucesivamente" como se requiera'
,ndependencia de los datos
.e de&en definir los requisitos de informacin de forma que sean
independientes de cualquier almacenamiento final o m-todo de acceso % que
nos permita tener una visin creativa % o&/etiva de la empresa % del dise0o
su&siguiente'
Aatrones gen-ricos
De&er)an &uscarse patrones gen-ricos de datos para permitir a los usuarios
utiliarlos en su gestin" adems de tener la oportunidad de perfeccionar la
forma de procesar sus datos % de sugerir estructuras ms renta&les % fle1i&les
para los dise0adores de &ases de datos'
Actitud % calidad
Los modeliadores de&en comenar a aplicar las convenciones automticas %
velomente" pero sin sacrificar el rigor' +am&i-n de&e aprovec#ar cualquier
oportunidad con los usuarios para me/orar la precisin de los modelos'
*omunicacin
De&e #a&er comunicacin con los usuarios finales" en t-rminos que ellos
puedan entender aunque de&e seguir siendo t-cnicamente riguroso' (stas
t-cnicas de modeliacin se #an utiliado durante muc#os a0os para a%udar a
altos e/ecutivos" directores % a otros a comprender su gestin' (s esencial
utiliar un lengua/e claro" sin a&reviaturas" para lograr su comprensin' *on un
usuario final no de&er)amos utiliar la pala&ra entidad'
Relevancia
Los requisitos de informacin solamente pueden tener valor si aportan las
necesidades funcionales de la organiacin" dentro del marco de tra&a/o de los
o&/etivos % propsitos de la empresa'
$n medio" no un fin
Aunque el modelo entidad relacin es mu% potente" ofrecer una idea incre)&le
de la compa0)a % actuar como un marco de tra&a/o para el dise0o de los datos"
solo es una t-cnica intermedia" aunque desde luego importante'
9ecci)* 28 Ele$e*tos %el "o%elo e*ti%(% rel(ci)*
(l modelo entidad relacin para ser funcional requiere de la definicin de unos
elementos" los cuales se precisan a continuacin6
E*ti%(%
.e define como entidad a cualquier o&/eto real o a&stracto" que e1iste en un conte1to
determinado o puede llegar a e1istir % del cual deseamos guardar informacin'
Re.rese*t(ci)* %e e*ti%(%6 $na entidad se representa en forma de diagrama con un
recuadro % en su interior un nom&re' (l nom&re se muestra en singular % con letras
ma%>sculas ;figura 1='
:i4ur(18 Representacin de entidad
Re4l(s .(r( %e-i*ir u*( e*ti%(%6 *ualquier o&/eto slo puede ser representado por
una entidad' (s decir las entidades son mutuamente e1clusivas en todos los casos'
*ada entidad de&e ser identificada en forma >nica' (s decir" cada instancia ;aparicin=
de una entidad de&e encontrarse separada e identifica&le claramente de todas las
dems instancias de ese tipo de entidad'
Rel(ci)*
.e entiende por relacin a la asociacin" vinculacin o correspondencia entre
entidades' Aor e/emplo entre la entidad AR:C(.:R % la entidad *$R.: podemos
esta&lecer la relacin ,9AAR+( porque el profesor imparte cursos'
$na relacin es &inaria en el sentido de que es siempre una asociacin entre
e1actamente dos entidades" o entre una entidad % ella misma' *ada relacin tiene dos
e1tremos" para cada uno de los cuales tiene un6
Nom&re
Drado E cardinalidad ;cuantos=
:pcionalidad ;opcional u o&ligatorio='
(stas propiedades se utilian para descri&ir la asociacin desde un e1tremo8 se de&en
definir am&os e1tremos'
Re.rese*t(ci)* %e u*( rel(ci)*6 $na relacin se representa mediante una l)nea que
une dos recuadros de entidades" o recursivamente ;recurrentemente= une un recuadro
de entidad consigo mismo'
La relacin es una funcin que indica por cada elemento de la relacin A cuantos
elementos dependen en la relacin !' Los valores se dividen en dos ;2= % se conocen
como cardinalidad de la relacin ;Cigura 2='
NOMBRE_ENTIDAD
(l primer valor" denominado c(r%i*(li%(% $5*i$(; indica el menor n>mero de
elementos en esa relacin8 generalmente ese valor puede ser 0 1' .i el valor es 0" se
dice que la relacin es opcional % la grfica de la relacin se presenta con un circulo en
la terminacin de la relacin se #ace con una l)nea punteada' .i el valor es 1" se dice
que la relacin es o&ligatoria" la cual se presenta en la terminacin de la relacin
mediante una l)nea perpendicular o mediante una l)nea continua'
(l segundo valor de la cardinalidad" c(r%i*(li%(% $23i$(; indica la cantidad m1ima
de registros de la relacin ! por cada valor de la relacin A8 generalmente son valores
1" o muc#os ;2" 3" ''''n=' La representacin se realia con la terminacin conocida como
Fpata de gallinaF" que es" la terminacin con 3 l)neas'
:i4ur( 28 Representacin de una relacin
(s >til pensar acerca de una relacin de uno a muc#os como una relacin padre a #i/o"
con la e1istencia del #i/o encontrndose en una forma dependiente de su padre'
Rel(ci)* recursiv(
(s una relacin que se llama as) misma" a continuacin se muestra una relacin
recursiva" por e/emplo" /efe % empleado'
:i4ur( 38 Relacin recursiva
No$/re %e l(s rel(cio*es6 (l nom&re de cada e1tremo de una relacin se sit>a cerca
al e1tremo apropiado en min>sculas como se muestra a continuacin'
:i4ur( <8 Nom&re relaciones
*uando la terminacin de la relacin es o&ligatoria" la frase ?de&e ser@ se utilia para
preceder al nom&re final de la relacin8 para los nom&res finales opcionales de la
relacin se utilia la frase ?puede ser@
:i4ur( 58 (/emplo nom&re relaciones
*ada (N+,DADGA de&e ser el nom&reGe1tremoG1 una % solo una (N+,DADG!"
% de derec#a a iquierda6
*ada (N+,DADG! puede ser el nom&reGe1tremoG2 % una o ms (N+,DADesGA'
Aara la figura H" la lectura de esa representacin ser)a6
*ada +,7$(+( de&e ser para uno % slo un AA.AI(R: %" cada AA.AI(R: se puede
o&servar en uno o ms +,7$(+(.'
Atri/utos
Las entidades se componen de atri&utos que son cada una de las propiedades o
caracter)sticas que tienen las entidades' *ada e/emplar de una misma entidad posee
los mismos atri&utos" tanto en nom&re como en n>mero" diferencindose cada uno de
los e/emplares por los valores que toman dic#os atri&utos' (/emplo si consideramos la
entidad AR:C(.:R % definimos los atri&utos Nom&re" +el-fono" .alario8 podr)amos
o&tener lo siguiente6
Iuan A-re Rodr)gue" 22H32H0" 300'000
9art#a Lpe Iim-ne" 3HH3240" 400'000
Re.rese*t(ci)* %e los (tri/utos
Aara representar un atri&uto #a% que escri&ir su nom&re en singular % en min>scula" %
de forma opcional con un e/emplo de su valor'
:i4ur( =8 ,ncorporando atri&utos
(n el e/emplo siguiente" los atri&utos candidatos son esenciales para a%udar a distinguir
entre dos entidades'
:i4ur( >8 Atri&utos candidatos
(n la grfica" por cada tiquete de&e tenerse un cdigo % una fec#a e1pedicin' Aara
ese modelo" un pasa/ero tiene su identificacin % el nom&re del pasa/ero
C(r(cter5stic(s %el (tri/uto
Las siguientes normas simples a%udan a crear un modelo preciso" completo % fle1i&le'
1* (tri/uto %escri/e u*( e*ti%(%
El (tri/uto %e/e %escri/ir l( e*ti%(% e* co*tr( %e lo ?ue se $uestr(8
(sto puede ser o&vio" pero es el error ms com>n que se encuentra en los atri&utos'
Aor e/emplo' J(l Fn>mero de asientoF es un atri&uto de un cupn" &illete" tar/eta de
em&arque" avin o asiento de un avinK :&viamente es un atri&uto de A.,(N+:" pero
en la vida real el n>mero a menudo se ve duplicado muc#as veces8 por e/emplo" en una
tar/eta de em&arque" que se muestra como una entidad en la Cigura 3'
JAor qu-K (n el mundo real" un n>mero de asiento es una forma mu% conveniente de
representar una relacin' Aor el contrario" cuando se encuentran estas situaciones #a%
que di&u/ar la l)nea de relacin ;si es necesario " crear la entidad a la que se refiere="
como se muestra a continuacin'
Aara que sirva de gu)a la ma%or)a de las entidades slo se descri&irn mane/ando entre
dos % oc#o atri&utos' .i se tienen ms" pro&a&lemente e1istirn muc#as relaciones %Eo
entidades perdidas'
:i4ur( @8 Asignar un atri&uto a la entidad correcta
9eer *o$/res %e (tri/utos
No #a% que utiliar el nom&re de la entidad como parte del nom&re del atri&uto' .er)a
redundante" %a que el atri&uto slo descri&e la entidad' (n el e/emplo anterior" el ?el
n>mero asiento@ realmente a%ud a identificar una entidad perdida llamada A.,(N+:
que se podr)a descri&ir con el atri&uto Ln>meroL % quis con otros atri&utos como MtipoL'
Aara leer atri&utos que se nom&ren de esta manera" se pueden utiliar de una de las
dos formas6
Nom&re entidad nom&re atri&uto o
Nom&re atri&uto de nom&re entidad'
Aor e/emplo" asiento n>mero o n>mero de asiento'
Eli$i*(r (tri/utos re.eti%os A.ri$er( -or$( *or$(lB
$na entidad que slo tenga un valor para un atri&uto en cualquier momento' .i son
esenciales muc#os valores" se de&e crear una entidad nueva para mantenerlos en la
relacin muc#os a uno unidos con la entidad original'
.iguiendo la norma anterior se o&tiene6
:i4ur( 108 A0adir la entidad perdida
(sta es una norma o regla que se llama normalmente LArimera forma normalL
Nom&re en singular
(l nom&re de un atri&uto de&e ir en singular' Los nom&res plurales generalmente
refle/an el pro&lema de los atri&utos repetidos que se #a mostrado anteriormente'
J(s una entidadK
$n atri&uto se convierte en una entidad cuando tiene importancia por s) misma" con sus
propias relaciones % atri&utos'
,dentificador >nico
*ada entidad de&e ser identifica&le >nicamente por una com&inacin de atri&uto %Eo
relacin' De esta forma se podr)a &uscar siempre cualquier atri&uto candidato que
a%ude a identificar una entidad'
(l valor del atri&uto de&e ser dependiente de todo el identificador >nico' ;segunda
forma normal=
Ba% que quitar los atri&utos por los que los valores son dependientes slo de parte del
identificador >nico' (sto se conoce como L.egunda forma normalL ' Dic#os atri&utos
normalmente suponen una entidad perdida" pero relacionada'
Los atri&utos de&en ser dependientes directamente del identificador >nico ;tercera
forma normal=
:i4ur( C8 $n atri&uto repetido indica una entidad
perdida'

Ba% que quitar los atri&utos que no sean dependientes directamente del identificador
>nico de la entidad' (sto se conoce como M+ercera forma normalL' (n el su&tema tres
se profundiara el concepto de normaliacin'
!%e*ti-ic(%or #*ico
Definicin
*ada entidad de&e ser >nicamente identifica&le de forma que cada instancia de la
entidad est- separada % sea claramente identifica&le de todas las otras instancias de
ese tipo de entidad' (l identificador >nico puede ser un atri&uto" una com&inacin de
relaciones o una com&inacin de atri&utos % relaciones'
$na entidad puede tener ms de un medio alternativo de identificacin >nica' (l m-todo
primario se puede mostrar en el diagrama entidadGrelacin antecediendo a un atri&uto
que forme el identificador con una marca MNL " % colocando una &arra cruada en el caso
de una ;s= l)nea ;s= de relacin' Cigura 11
:i4ur( 118 9uestra de identificadores >nicos
As)" pues" para identificar >nicamente una tar/eta de em&arque se necesita6
La relacin con el asiento" % por tanto el n>mero de asiento'
La relacin con el vuelo" % por tanto la fec#a % #ora de la salida"
La fec#a % #ora emitidas en el caso raro en que las tar/etas de
em&arque se #a%an reemitido8 para volver a sentar a una familia
/unta despu-s de que alguien no #a%a aparecido en el vuelo
*omo el identificador >nico del vuelo tam&i-n inclu%e la relacin con la
ruta de la l)nea a-rea" se necesita el n>mero de vuelo'
:i4ur( 128 Refinamiento de (ntidades
Nor$( %e DiseDo
Las normas simples del dise0o que siguen a continuacin se #an definido para que el
diagrama sea fcil de leer" aplica&le para personas que necesiten tra&a/ar con ellas %
para ma1imiar la calidad % la precisin'
Diagrama de .u&con/unto
*uando se trata un rea funcional en particular con un usuario o un dise0o con los
dise0adores" es &ueno crear un diagrama de su&con/unto % e1presar las ideas de
nuevo ms eficamente como un ve#)culo de comunicacin con ese propsito'
Durante el proceso se van a encontrar omisiones % errores" que se pueden corregir
rpidamente la perspectiva diferente es una potente #erramienta anal)tica'
(smerado % pulcro
Ba% que organiar el diagrama de forma que los recuadros de las entidades est-n
alineados % que las l)neas de las relaciones sean rectas en sentido #oriontal o
vertical' Ba% que di&u/ar el menor n>mero de l)neas cruadas posi&le'
Ba% que evitar *onstruir un diagrama que tenga demasiadas l)neas paralelas que
est-n mu% /untas' Ba% que utiliar el ma%or espacio en &lanco que se pueda para
evitar el sentimiento de congestin % utilice de ve en cuando la l)nea en diagonal para
a%udar a la est-tica del diagrama'
Reconocimiento de patrones
La ma%or)a de las personas tienen la capacidad incorporada de reconocer formas %
patrones en un instante % por tanto pueden recordar fcilmente el tema' Los
modeliadores pueden &eneficiarse de esto #aciendo que cada diagrama sea
claramente diferente en forma'
+e1to
Ba% que asegurarse de que el te1to no sea am&iguo' Ba% que evitar las a&reviaturas %
las /ergas' Ba% que utiliar las convenciones de lectura descritas anteriormente % leer
todo el diagrama para asegurarse de que es completo % preciso' $n &uen diagrama
entidad relacin de&er)a ser semnticamente completo' Aara me/orar la comprensin %
la precisin al leerlo" #a% que a0adir ad/etivos % e/emplos cuando sea necesario'
:i4ur( 138 Reco*oci$ie*to %e .(tro*es
Drado de relacin
Ba% que situar la terminacin de muc#as ;ramificaciones= de las relaciones a la
iquierda o en la parte superior de la l)nea de relacin' .e #a pro&ado que esta t-cnica
#a incrementado la precisin del modelo formando la consideracin de las relaciones"
desde las entidades que aparecen con ms frecuencia a las menos frecuentes'
9ecci)* 38 El4e/r( rel(cio*(l
(s necesario que el lector se familiarice con el t-rmino ?relacin@" entendida en dos
aspectos" en primer lugar cuando mencionamos esta pala&ra en el modelo entidad
relacin se #ace referencia a la asociacin entre dos o ms entidades" %" al #a&lar de
?relacin@ en el lge&ra relacional se est #aciendo referencia a ta&las" puesto que las
ta&las son esencialmente relaciones'
(l Olge&ra relacional es un lengua/e de consulta procedural' *onsta de un con/unto de
operaciones que toman como entrada una o dos relaciones % producen como resultado
una nueva relacin" por lo tanto" es posi&le anidar % com&inar operadores' Ba% oc#o
operadores en el lge&ra relacional que constru%en relaciones % manipulan datos" estos
son6
1' .eleccin 2' Aro%eccin 3' Aroducto
2' $nin H' ,nterseccin 4' Diferencia
P' Ioin 3' Divisin
T(/l( 1 - O.er(%ores %el El4e/r( rel(cio*(l
Las operaciones de pro%eccin" producto" unin" diferencia" % seleccin son llamadas
primitivas" puesto que las otras tres se pueden definir en t-rminos de estas'
.e #ace necesario en este punto incluir un modelo de datos de e/emplo en el cual
tra&a/ar para generar e/emplos de comandos % operadores' Aara este efecto se inclu%e
un modelo &sico de administracin de Radio ta1is' (l Drfico que se presenta a
continuacin representa el 9odelo conceptual ;9odelo Lgico= o Diagrama de (ntidadG
Relacin" ;este adopta una metodolog)a similar a la anterior=6

:i4ur( 1< - (squema de Relaciones de (/emplo
Los (squemas de relaciones que se pueden construir a partir de este modelo son los
siguientes6
Due0o Q Rrut" nom&re" tel-fono" direccin" vigenciaS
*#ofer Q Rrut" nom&re" tel-fono" direccin" fec#aTlicenciaTdesde" fec#aTlicenciaT#asta"
vigenciaS
Vale Q Rcorrelativo" #oraTdesde" #oraT#asta" metra/eTtotal" tarifaTtotalS
9vil Q Rpatente" rutTdue0o" rutTc#ofer" marca" modelo" a0oS
Via/e Q RcorrelativoTvale" patenteTmovil" BoraTDesde" #oraT#asta" origen" destino"
tarifa" metra/eS
18 Selecci)*
(l operador de seleccin opta por tuplas que satisfagan cierto predicado" se utilia la
letra griega sigma min>scula ;F= para se0alar la seleccin' (l predicado aparece como
su&)ndice de F' La Relacin que constitu%e el argumento se da entre par-ntesis
despu-s de la F'
(/emplos 6
28 ,ro'ecci)*
La operacin de pro%eccin permite quitar ciertos atri&utos de la relacin" esta
operacin es unaria" copiando su relacin &ase dada como argumento % quitando
ciertas columnas" La pro%eccin se se0ala con la letra griega pi ma%>scula ;G=' *omo
su&)ndice de G se coloca una lista de todos los atri&utos que se desea aparecan en el
resultado' La relacin argumento se escri&e despu-s de G entre par-ntesis'
(/emplos 6
38 ,ro%ucto.
(n lge&ra relacional el producto de dos relaciones A % B es6
A Veces ! o A H !
Aroduce el con/unto de todas las +uplas t tales que t es el encadenamiento de una
tupla ( perteneciente a A % de una / que pertenece a B' se utilia el s)m&olo H para
representar el producto'
(/emplos6
Due0o 1 9vil
<8 1*i)*8
(n lge&ra relacional la unin de dos relaciones compati&les
2
A % B es6
A $N,:N ! o A $ !
Aroduce el con/unto de todas las tuplas que pertenecen %a sea a A o a B o a Am&as' Al
igual que en teor)a de con/untos el s)m&olo $ representa aqu) la unin de dos
relaciones'
(/emplo 6
Devuelve to%os los DueDos ' los C+)-eres'
58 !*tersecci)*8
(n lge&ra relacional la interseccin de dos relaciones compati&les A % B
(
Relaciones *ompati&les6 (n el lge&ra relacional la compati&ilidad se aplica a las operaciones
de $nin" ,nterseccin % Diferencia' *ada operacin requiere dos relaciones que de&en ser
compati&les" esto significa que de&en ser del mismo grado" *" % el iG-simo atri&uto de cada una
;iQ 1" 2'''n= se de&e &asar en el mismo dominio'
A ,N+(R.(**,:N ! o A U !
Aroduce el con/unto de todas las tuplas pertenecientes a A % B' Al igual que en teor)a
de con/untos el s)m&olo U representa aqu) la interseccin entre dos relaciones'
(/emplo6
rut" vigencia
;Due0o=
U rut" vigencia
;*#ofer=

Devuelve to%os los %ueDos ?ue t($/i&* so* c+)-eres
=8 Di-ere*ci(
(n lge&ra relacional la diferencia entre dos relaciones compati&les A % B
A 9(N:. ! o A V !
Aroduce el con/unto de todas las tuplas t que pertenecen a A % no pertenecen a B'
(/emplo6
Devuelve to%os los %ueDos ?ue NO so* c+)-eres
>8 oi* o Reu*i)*8
(n lge&ra relacional el I:,N entre el atri&uto H de la relacin A con el atri&uto I de la
relacin B produce el con/unto de todas las tuplas t tal que t es el encadenamiento de
una tupla ( perteneciente a A % una tupla / perteneciente a B que cumplen con el
predicado ?A'W comp !'X es verdadero@ ;siendo comp un operador relacional % los
atri&utos A'W % !'X pertenecientes al mismo dominio=' .i el operador relacional ?comp@
es ?Q@ entonces el con/unto resultante es un (7$,GI:,N' .i se quita uno de -stos
;usando una pro%eccin= entonces el resultado es un I:,NGNA+$RAL'
(/emplo 6
@8 Divisi)*
(n lge&ra relacional el operador de divisin divide la relacin A con grado m Y n por la
relacin B entregando como resultado una relacin con grado m' (l atri&uto m Y i de A
% el atri&uto i de ! de&en estar definidos dentro del mismo dominio' As) el resultado de
A D,V,D,D: A:R ! o A E !
produce la relacin C con un slo atri&uto H" tal que cada valor de 3 de C8H aparece
como un valor de A8H" % el par de valores ;1" %= aparece en A para todos los valores '
que aparecen en B'
(/emplo6
Seleccio*( to%os los (utos ( cu'os c+)-eres les c(%uc( l( lice*ci( el 01J01J1CCC
9ecci)* <8 Nor$(li6(ci)* %e %(tos
La normaliacin de datos es un procedimiento que asegura que un modelo de datos
se a/usta a algunos estndares >tiles' Aara los datos % los modelos entidadGrelacin"
estos estndares se #an definido para minimiar la duplicacin de datos" proporcionar
la fle1i&ilidad necesaria para soportar requisitos funcionales % para permitir que el
modelo se estructure so&re una amplia variedad de dise0os alternativos de &ase de
datos'
"o%elo e*ti%(% K rel(ci)*
(l modelo entidadGrelacin tiende a producir entidades que estn normaliadas de
forma natural' (sto de&ido a que se sigue un proceso simple" como el siguiente6
Aerci&ir las cosas de significacin so&re lo que se necesita sa&er % mantener la
informacin' (stas entidades de&en ser mutuamente e1clusivas" % se
representan en un diagrama por medio de un recuadro con el nom&re de la
entidad en singular % en ma%>sculas'
A0adir las relaciones de gestin" las cuales se #an nom&rado como asociaciones
significativas entre entidades' (stas relaciones se muestran como una l)nea
entre dos recuadros8 cada terminacin tiene un grado ;un tringulo o
ramificacin que significa muc#os8 si no #a% tringulo significa uno= % la
opcionalidad ;una l)nea de puntos significa opcional" una l)nea continua significa
o&ligatorio='
(n cada entidad se listan los tipos de informacin que se podr)an mantener o
conocer' (stos atri&utos se muestran dentro de la entidad como nom&res en
min>sculas'
Cinalmente" se determina la forma en que cada aparicin de una entidad puede
ser identificada de forma >nica' (sto se #ar mediante alguna com&inacin de
atri&utos %Eo relaciones' *uando un atri&uto es parte del identificador >nico se
muestra con una marca N' *uando una relacin es parte del identificador >nico
se muestra mediante una &arra cruada cruando la l)nea de relacin' (l
seguimiento del proceso anterior dar rigurosa % automticamente un modelo
normaliado" pero depende de la &uena comprensin del analista acerca de lo
que es realmente un atri&uto" una relacin % una entidad'
Nor$(li6(ci)*
Aara compro&ar que un modelo entidadGrelacin tiene todas sus entidades
un)vocamente identificadas" se #a normaliado completamente % por tanto se a/usta a
la tercera forma normal8 se pueden aplicar las siguientes compro&aciones simples6
Ase4ur(r ?ue to%(s l(s e*ti%(%es so* i%e*ti-ic(/les %e -or$( #*ic(
,or u*( co$/i*(ci)* %e (tri/utos ' J o rel(cio*es
,ri$er( -or$( *or$(l7 L1N:M
(liminar los atri&utos repetidos o grupos de atri&utos'
.i e1iste ms de un valor a la ve para un atri&uto o para ms de uno con el mismo
nom&re" se define una entidad nueva" la cual se descri&e mediante ese atri&uto' (l
identificador >nico de esta nueva entidad consta de uno de los atri&utos que se fueron
con ella % la relacin ;de muc#os a uno= se lleva a la entidad original'
:i4ur( 15 ,ri$er( -or$( *or$(l
Se4u*%( -or$( *or$(l7 L2N:M
(liminar atri&utos dependientes slo en parte del identificador >nico'
.i una entidad tiene un identificador >nico compuesto de ms de un atri&uto %Eo
relacin" % si otro atri&uto depende slo %e .(rte de este identificador compuesto"
entonces el atri&uto" % la parte del identificador del que depende" de&ern formar la
&ase de una nueva entidad' La entidad nueva se identifica por la parte emigrada del
identificador >nico de la entidad original" % tiene una relacin de uno a muc#os unido a
la entidad original'
Tercera forma normal: [3NF]
(liminar los atri&utos dependientes de atri&utos que no son parte del identificador
>nico'
.i un atri&uto de una entidad es dependiente de otro atri&uto" que no es parte del
identificador >nico" entonces estos atri&utos de&er)an formar la &ase de la nueva
entidad" que tenga una relacin de uno a muc#os con la entidad original' (l
identificador >nico de la entidad nueva es el atri&uto del que depende el otro atri&uto' A
continuacin se presenta la representacin de esta forma6
:i4ur( 1=8 Se4u*%( ' tercer( -or$( *or$(l
(n general" ?una relacin R est en la tercera forma normal ;3NC= si % slo si en
cualquier momento cada tupla ;l)nea relacional= de R se compone de un valor clave
primario que identifica alguna identidad" /unto con un grupo de cero o ms valores
independientes mutuamente que descri&en esa entidad de alguna manera@
3
Adems" ?una relacin R est en la cu(rt( -or$( *or$(l ;2NC= si % >nicamente si
donde quiera que #a%a una dependencia multivalores ;9VD= en R" digamos A Z !"
todos los atri&utos de R son tam&i-n funcionalmente dependientes de A' (n otras
pala&ras" las >nicas dependencias ;funcionales o multivalores= en R son de la forma [
Z W' De modo equivalente6 R est en 2NC si todos los 9VDs ;dependencias
multivalores= son de verdad dependencias funcionales ;CD='
+am&i-n" ?una relacin R est en ?ui*t( -or$( *or$(l ;HNC=" tam&i-n denominada
forma normal de unin de proteccin ;AIEAN=" si % >nicamente si cada dependencia de
unin en R es una consecuencia de las claves candidatas de R'@
Des*or$(li6(ci)* %e %(tos
La desnormaliacin de datos es el procedimiento inverso" llevado a ca&o puramente
por raones de me/orar la realiacin de sistemas de produccin" particularmente
cuando estn computariados' La desnormaliacin slo se de&e realiar so&re el
dise0o' No .o*er e* .eli4ro *u*c( el $o%elo %e 4esti)*'
La desnormaliacin en formas manuales de procedimientos es necesariamente mu%
com>n" como queda evidenciado por el #ec#o de que la ma%or parte de los formularios
en papel mantienen grandes datos de referencias' +odos conocemos los pro&lemas
que se pueden originar cuando ese dato se cam&ia % se tiene que volver a emitir el
grupo entero de formularios'
+
Date" *'I' An ,ntroduction to Data&ase .%stem" 2ed' 1534' AdissonG<esle% Au&lis#ing *o
9ecci)* 58 Tr(*s(ccio*es
$na transaccin es una unidad de la e/ecucin de un programa que accede %
posi&lemente actualia varios elementos de datos' .e delimita dependiendo del
lengua/e por las sentencias inicio transaccin % fin transaccin % se compone de todas
las instrucciones que se encuentran entre estos dos delimitadores'
,ro.ie%(%es %e l( tr(*s(cci)*
Aara asegurar la consistencia de los datos se necesita que el sistema de &ase de datos
tengan las propiedades llamadas A*,D6 ;Atomicit%" *onsistenc%" ,solation" Dura&ilit% G
Atomicidad" *onsistencia" Aislamiento" Dura&ilidad \.il&ersc#at5P]=' A continuacin
e1plicamos cada una de estas propiedades6
Atomicidad6
Asegura que o &ien todos los efectos de la transaccin se refle/an en la &ase de datos"
o &ien ninguno de ellos8 un fallo no puede de/ar a la &ase de datos en un estado en el
cual una transaccin se #a%a e/ecutado parcialmente'
*onsistencia6
Asegura que si la &ase de datos es consistente inicialmente" la e/ecucin de la
transaccin de/a la &ase de datos en un estado consistente'
Aislamiento6
Asegura que en la e/ecucin concurrente de transacciones" estas estn aisladas unas
de otras" de tal manera que cada una tiene la impresin de que ninguna otra
transaccin se e/ecuta concurrentemente con ella'
Dura&ilidad6
Asegura que una ve que la transaccin se #a comprometido" las actualiaciones
#ec#as por la transaccin no se pierden" incluso si #a% un fallo en el sistema'
$na transaccin que termina con -1ito se dice que est comprometida ;commited=" una
transaccin que #a%a sido comprometida llevar a la &ase de datos a un nuevo estado
consistente que de&e permanecer incluso si #a% un fallo en el sistema' (n cualquier
momento una transaccin slo puede estar en uno de los siguientes estados6
Activa ;Active=6 el estado inicial8 la transaccin permanece en este estado durante su
e/ecucin'
Aarcialmente comprometida ;$ncommited=6 Despu-s de e/ecutarse la >ltima
transaccin'
Callida ;Cailed=6 tras descu&rir que no se puede continuar la e/ecucin normal'
A&ortada ;Rolled !ac^=6 despu-s de #a&er retrocedido la transaccin % resta&lecido la
&ase de datos a su estado anterior al comieno de la transaccin'
*omprometida ;*ommited=6 tras completarse con -1ito'
*uando varias transacciones se e/ecutan concurrentemente" e1iste la posi&ilidad de
que se pierda la consistencia de datos' .e #ace necesario por lo tanto un sistema que
controle la interaccin entre las transacciones concurrentes' Auesto que una
transaccin por definicin conserva la consistencia" una e/ecucin lineal de
transacciones la garantia tam&i-n' $n sistema que asegure esta propiedad se dice
que asegura la secuencialidad'
Co*curre*ci(
(1isten varios esquemas de control de concurrencia que aseguran la secuencialidad"
todos estos esquemas o &ien retrasan una operacin o &ien a&ortan la transaccin que
#a realiado la operacin' Los ms conocidos son los protocolos de &loqueo" el
esquema de ordenacin por marcas temporales" las t-cnicas de validacin" el esquema
de granularidad m>ltiple % los esquemas multiversin'
$n protocolo de &loqueo es un con/unto de reglas que indican el momento en que una
transaccin puede &loquear o des&loquear un o&/eto de la &ase de datos' (l protocolo
de &loqueo de dos fases permite que una transaccin &loquee un o&/eto slo despu-s
de que #a%a des&loqueado otro o&/eto distinto" este m-todo asegura la secuencialidad'
(l esquema de ordenacin por marcas temporales asegura la secuencialidad
seleccionando previamente un orden en todo par de transacciones' (1isten 2 formas de
implementar este esquema" uno es por medio de valores timestamp ;dependientes del
relo/ del sistema= % por medio de un contador lgico que se incrementa cada ve que
asigna una nueva marca temporal' (ste protocolo asegura la secuencialidad en cuanto
a conflictos % la ausencia de inter&loqueos" si una de las transacciones viola la norma la
transaccin se retrasa % se le asigna una nueva marca temporal' Aor e/emplo" una
operacin leer se puede retrasar porque todav)a no se #a escrito el valor apropiado o
incluso rec#aar si #a so&rescrito el valor que supuestamente se i&a a leer'
$n esquema de validacin es un m-todo de control de concurrencia adecuado para
transacciones de slo lectura % en las cuales la tasa de conflictos es &a/a' .e &asa en
dividir una transaccin en 3 etapas ;lectura" validacin % escritura= % tra&a/ar con el
esquema de marcas temporales so&re la etapa de validacin' De esta manera se quita
una so&recarga en la etapa de lectura" en la cual no se necesita un esquema de control
de concurrencia dado que toda lectura lleva a la &ase de datos al mismo estado de
consistencia'
$na manera distinta mane/ar la concurrencia es por medio de la granularidad" este
concepto permite agrupar varios elementos de datos % definirlos como un todo para
efectos de sincroniacin' .e define como una /erarqu)a de distintos niveles" donde el
nivel superior puede representar toda la &ase de datos" se esquematia como
estructura de r&ol donde los nodos #i/os de un nodo interno representan las
dependencias de datos asociadas' .e utilian los tipos de &loqueos *ompartidos %
(1clusivos ms un nuevo tipo de &loqueo llamado el &loqueo intencional" el cual indica
que e1isten nodos descendientes que tienen &loqueos compartidos o e1clusivos'
(l esquema multiversin se &asa en la creacin de nuevas versiones de los elementos
de datos cada ve que una transaccin va%a a escri&ir dic#o elemento' *uando se va a
realiar una escritura el sistema elige una de las versiones para que se lea' (l esquema
de control de versiones garantia que la versin que se va a leer se elige de forma que
asegure la secuencialidad por medio de marcas temporales' (n este esquema una
operacin de lectura tiene -1ito siempre" sin em&argo" una operacin de escritura
puede provocar el retroceso de una transaccin'
$n sistema est en estado de inter&loqueo si e1iste un con/unto de transacciones tal
que toda transaccin del con/unto est esperando a otra transaccin del con/unto' (n
tal situacin" ninguna de las transacciones puede progresar' (1isten 2 m-todos para
tratar los inter&loqueos % am&os provocan un retroceso de las transacciones" la
diferencia radica en que uno es preventivo % otro curativo' (l protocolo de prevencin
de inter&loqueos asegura que el sistema nunca llegar a un estado de inter&loqueos
mientras que el m-todo de deteccin % de inter&loqueos permite que el sistema llegue a
un estado de inter&loqueos para luego tratar de recuperarse' La prevencin se usa
normalmente cuando la pro&a&ilidad de que el sistema llegue a un estado de
inter&loqueo es relativamente alta" de lo contrario lo ms conveniente es usar la
deteccin % recuperacin'
Se4uri%(% ' recu.er(ci)* %e %(tos
Los fallos que ocurren en un computador pueden darse por diferentes motivos ;fallos de
disco" cortes de energ)a o fallos en el soft_are=' (n cada uno de estos casos puede
perderse informacin concerniente a la &ase de datos' (1isten varios tipos de fallas" a
considerar6
Callo en la transaccin" que a su ve se dividen en errores lgicos % errores del
sistema' $n error lgico ocurre cuando una transaccin no puede continuar con su
e/ecucin normal a causa de una condicin interna como lo es un des&ordamiento o un
e1ceso de recursos' $n error del sistema ocurre cuando el sistema se encuentra en un
estado no deseado como en el caso de los inter&loqueos'
*a)da del sistema" provocado %a sea por el #ard_are" el sistema operativo o por el
soft_are de &ase de datos' *om>nmente causa la p-rdida del contenido de la memoria
primaria % a&orta el procesamiento de una transaccin'
Callo de disco" para el cual slo sirve la recuperacin por medio de copias e1istentes
en medios de almacenamiento secundario como cintas magn-ticas'
La forma ms aceptada de lograr un tipo de almacenamiento lo ms esta&le posi&le es
replicando la informacin en varios medios de almacenamiento no voltil" con modos de
fallos independientes' Los sistemas RA,D ;disposicin redundante de discos
independientes= garantian que el fallo de un slo disco no conduca a la perdida de
datos' .in em&argo los sistemas RA,D" no pueden proteger al sistema de una p-rdida
de datos en el caso de una catstrofe geogrfica" para tales efectos muc#os sistemas
de almacenamiento guardan copias de seguridad en cintas en otros lugares" no
o&stante" como las cintas no pueden ser trasladadas continuamente" los >ltimos
cam&ios realiados luego del traslado de cintas no se pueden volver a recuperar en el
caso de tales desastres' Los sistemas ms seguros guardan copias de cada &loque de
almacenamiento en otra disposicin geogrfica" datos que se transmiten por medios de
redes de computadores al sistema de respaldo remoto'''
(l estado de un sistema de &ase de datos puede no volver a ser consistente en caso de
que ocurran fallos" para preservar la consistencia es necesario que cada transaccin
sea atmica' Darantiar la propiedad de atomicidad es responsa&ilidad del esquema de
recuperacin'
(1isten &sicamente 2 esquemas que garantian la atomicidad'
!asados en el registro #istrico' +odas las modificaciones se gra&an en el registro
#istrico" el cual de&e estar guardado en almacenamiento esta&le' (n el esquema de
modificacin diferida" durante la e/ecucin de una transaccin" se difieren todas las
operaciones de escritura #asta que la transaccin se compromete parcialmente"
momento en el cual se utilia la informacin del registro #istrico asociado con la
transaccin para e/ecutar las escrituras diferidas' *on la t-cnica de modificacin
inmediata todas las modificaciones se aplican directamente en la &ase de datos' .i
ocurre una ca)da se utilia la informacin del registro #istrico para llevar a la &ase de
datos a un estado esta&le previo'
Aaginacin en la som&ra' Durante la vida de una transaccin se mantienen 2 ta&las de
pginas6 la ta&la actual de pginas % la ta&la de pginas som&ra' Am&as ta&las son
id-nticas al principio de la transaccin" sin em&argo" la ta&la actual de pginas puede ir
cam&iando luego de cada operacin escri&ir' +odas las operaciones de lectura %
escritura utilian la ta&la de pginas actual" cuando una transaccin se compromete
parcialmente se desec#a la ta&la de pginas som&ra % la ta&la actual se convierte en la
nueva ta&la de pginas' .i la transaccin fracasa" simplemente se desec#a la ta&la
actual de pginas'
(l procesamiento de transacciones se &asa en un modelo de almacenamiento en el
cual la memoria principal contiene una memoria intermedia para el registro #istrico"
una memoria intermedia para la &ase de datos % una memoria intermedia para el
sistema' $na implementacin eficiente de un esquema de recuperacin de datos
requiere que sea m)nimo el n>mero de escrituras de la &ase de datos % que sea
realiado en almacenamiento esta&le' Los registros del registro #istrico pueden
guardarse inicialmente en la memoria intermedia del registro #istrico pero de&en ser
llevados a almacenamiento esta&le &a/o dos situaciones6
De&en escri&irse en almacenamiento esta&le todos los registros del registro #istrico
que referencien a la transaccin +i antes de gra&ar el registro que indique que la
transaccin +i #a sido comprometida
De&en escri&irse en almacenamiento esta&le todos los registros del registro #istrico
pertenecientes a los datos de un &loque antes de que ese &loque de datos se
escri&a desde la memoria intermedia a la &ase de datos'
Co*sult(s
(l Arocesamiento de consultas #ace referencia a la serie de actividades a seguir para
llevar a ca&o la recuperacin de datos desde una &ase de datos' (stas actividades
inclu%en la traduccin de consultas en lengua/es de consultas de alto nivel ;(/6 .7L= a
e1presiones que se puedan implementar en un nivel f)sico" as) como tam&i-n los
algoritmos de evaluacin % optimiacin de consultas'
Recu.er(ci)*
$na de las venta/as principales del modelo relacional presentado por *odd en 15P0 es
la que tiene relacin con la independencia de los datos que se entiende aqu) como la
separacin entre el modelo ;lgico= % la implementacin ;f)sica=' (sta separacin nos
permite desarrollar una poderosa semntica lgica independiente de una
implementacin f)sica particular'
$no de los desaf)os de la independencia de datos es que la codificacin de una
consulta para la &ase de datos se componga de 2 fases6
1' La descripcin lgica de la consulta ;que se supone que de&e #acer='
2' La definicin del plan de e/ecucin f)sico ;el que muestra como implementar la
consulta='
Antes de empear el procesamiento de la consulta el sistema de&e traducir la consulta
a un medio de representacin interno con el cual le sea fcil operar' As)" por e/emplo
para .7L la representacin ms >til es la del lge&ra relacional e1tendida ;r&ol
relacional=' (ste proceso cumple la misma funcin que el analiador l-1ico % sintctico
de un compilador" es decir" revisa la sinta1is de la consulta % c#equea que todos lo
identificadores sean nom&res de o&/etos de la &ase de datos" en el caso de las vistas
reemplaa el nom&re de la vista por la e1presin relacional que la representa'
(l plan de e/ecucin es un r&ol relacional armado a partir de la consulta % que slo
puede ser entendido por el motor de e/ecucin de consultas' La transformacin de la
consulta a un plan puede ser #ec#a efectivamente a mano % en algunos casos de
consultas simples que se e/ecutan miles de veces esta podr)a ser la me/or estrategia"
sin em&argo" una de las venta/as que nos ofrece el modelo relacional es la capacidad
de usar la informacin del catalogo de la &ase de datos" que como se ver ms
adelante" podr responder una gran cantidad de preguntas distintas'
Aor otro lado" aunque una consulta simple pueda ser e/ecutada miles de veces" no
e1iste un camino mecnico que garantice que el plan de e/ecucin elegido satisfaga la
consulta que se quiere implementar" puesto que6
1' $n Alan calculado a mano ;o un plan precalculado= ser invalidado por cam&ios
lgicos dentro del esquema o por cam&ios f)sicos en el camino de acceso a la
informacin o en el almacenamiento f)sico'
2' .i los parmetros de la consulta ;o los datos= cam&ian" la relacin optima que
asocia a un plan con una consulta por so&re otros puede cam&iar'
La siguiente figura nos muestra los pasos en el procesamiento de una consulta'
:i4ur( 1> - ,(sos e* el .roces($ie*to %e u*( co*sult( SN9
Despu-s de enviar la consulta" la &ase de datos de&e producir su correspondiente plan
de e/ecucin' (l primer paso en este proceso es traducir la consulta desde .7L a un
r&ol lgico en lge&ra relacional" proceso com>nmente llamado parser.
(l Ar1imo paso es traducir el r&ol de la consulta en el plan de e/ecucin'
Deneralmente e1iste un gran n>mero de planes que implementan al r&ol de la
consulta8 el proceso de encontrar el me/or de estos planes se le denomina optimizacin
de consultas.
C2lculo rel(cio*(l
La manipulacin del modelo relacional esta &asada en el lge&ra relacional8 sin
em&argo" de igual forma podemos indicar que tam&i-n esta &asada en el clculo
relacional' Olge&ra % clculo son alternativos entre s)" la diferencia entre ellos es la
siguiente6 mientras que el lge&ra proporciona un con/unto de operadores e1pl)citos
;/untar" unir" pro%ectar" etc=" que pueden usarse para indicar al sistema cmo construir
cierta relacin dada" al clculo simplemente proporciona una notacin para esta&lecer
la definicin de esa relacin deseada en t-rminos de dic#as relaciones dadas
2
(l clculo relacional de tuplas descri&e la informacin deseada sin dar un
procedimiento espec)fico para o&tenerla' Las consultas en el clculo relacional de
4
*'I Date" ,ntroduccin a los .istemas de !ases de Datos" Arentice Ball
tuplas se e1presan como6
{ t | P(t)}"
(s decir" son el con/unto de tuplas t tales que se cumple el predicado P para cada t'
.iguiendo la misma notacin" se utilia t[A] para el valor de la tupla t en el atri&uto A.
.i slo se desea o&tener un atri&uto de la tupla" se utilia el constructor ?(1iste@ de la
lgica matemtica' As)" si lo que se desea es el Nom&re de los due0os de ta1is que
est-n vigentes6
F*on/unto de todas las tuplas t tales que e1iste una tupla s en la relacin Due0o para la
que los valores de t % de s son iguales en el atri&uto Nom&re % el valor de s para el
atri&uto vigencia Q M.L F' La varia&le de tupla t se define slo en el atri&uto Nom&re"
puesto que -ste es el >nico atri&uto para el que se especifica una condicin para t' As)"
el resultado es una relacin so&re ;Nom&re='
.i lo que se desea es o&tener las tarifas de todos los via/es que #a efectuado todos los
mviles de marca ?c#evrolet@" la consulta requiere de dos clusulas ?(1iste@ conectadas
por el operador de con/uncin lgica ?%@'
7ue se lee como el con/unto de todas las tuplas ;tarifa= correspondientes a los via/es
que #an #ec#o todos los mviles de marca ?c#evrolet@'
*onsid-rese a#ora la consulta ?o&tener todos los R$+ de los due0os de mviles" cu%os
mviles no #a%an efectuado nunca un via/e@6
que ocupa la clusula ?(1iste@ para e1igir que el due0o posea un mvil % la clusula ?no
e1iste@ para eliminar a aquellos mviles que tengan via/es realiados'
La consulta que se presenta a continuacin utilia la implicacin" la frmula ?A implica
7@ significa que ?si A es verdad entonces 7 de&e ser verdad@" se introduce el
constructor ?para todo@' .e desea .elecciona todos los autos a cu%os c#feres les
caduca la licencia el ?01E01E1555@'
.in em&argo como la intencin del modulo no es la de suplir al te1to" se recomienda
consultar el tema completo en la &i&liograf)a recomendada'
O.ti$i6(ci)* %e co*sult(s
Las consultas de &ase de datos relacionales son o &ien declarativas o alge&raicas' Los
lengua/es alge&raicos permiten la transformacin alge&raica de la consulta" luego"
&asndose en la especificacin alge&raica de la consulta es relativamente fcil para el
optimiador generar diversos planes equivalentes para la consulta % elegir el menos
costoso'
Dado este nivel de generalidad" el optimiador puede ser visto como el generador de
cdigo de un compilador para el lengua/e .7L" que produce el cdigo que ser
interpretado por el motor de e/ecucin de consultas" e1cepto que el optimiador marca
-nfasis en la capacidad de producir el cdigo ms eficiente" #aciendo uso para tales
efectos del catlogo de la &ase de datos" de donde o&tiene informacin estad)stica de
las relaciones referenciadas por la consulta" algo que los lengua/es de programacin
tradicionales no #acen'
$n aspecto de la optimiacin de consultas se sit>a en el nivel del lge&ra relacional'
Dado un con/unto de reglas se trata de encontrar una e1presin que sea equivalente a
la e1presin dada pero que sea ms eficiente en la e/ecucin'
*on el fin de seleccionar la me/or estrategia para la recuperacin de datos el
optimiador ?estima@ un costo que estar relacionado a cada plan de e/ecucin' (ste
costo est determinado por frmulas predefinidas en &ase a informacin que se posee
de la ta&la % que se #a rescatado previamente del catlogo de la &ase de datos" en
realidad el optimiador no siempre escoge el plan ms ptimo" %a que encontrar la
estrategia ptima puede consumir muc#o tiempo" por lo tanto se dice que el
optimiador ?slo escoge una estrategia raona&lemente eficiente@' La manera con la
que el optimiador utilia esa informacin" las distintas t-cnicas % algoritmos que aplica
% las transformaciones alge&raicas que se realian son las que diferencian a los
optimiadores de &ases de datos'
$n optimiador &asado en el costo genera una serie de planes de evaluacin para una
consulta % luego elige el que tiene un menor costo asociado" las medidas de costo
com>nmente tienen que ver con la (E. % el tiempo de *A$ utiliado en e/ecutar la
consulta" sin em&argo" es cuestin de cada .D!D el elegir las medidas de costo que
me/or representen el criterio de minimiacin en la utiliacin de recursos'
Re-ere*ci(s
*(R, ." Aelagatti D'"Distri&uted data&ases principles ` s%stems'' (d' 9acDra_GBill'
153H'
DA+(" *' I" ,ntroduccin a los sistemas de &ases de datos' (d' Arentice Ball' .-ptima
edicin'
.,LV(R.*BA+a" [ort# % .udars#an" Cundamentos de &ases de datos" (d 9acDra_G
Bill' *uarta edicin
:+a$" Valdurie" Distri&uted data&ases" (d' 9acDra_GBill
___'lsi'us'esEdocenciaEasignaturasEd&d'#tml
___'cieloprogramadores'com
C(.5tulo 28 DiseDo %e /(ses %e %(tos %istri/ui%(s
9ecci)* =8 B(ses %e %(tos %istri/ui%(s
!*tro%ucci)* ' -u*%($e*tos %e B(se %e D(tos Distri/ui%(s8
La cantidad de innovaciones tecnolgicas que #a #a&ido en los >ltimos a0os #a
promovido un cam&io en la forma de o&servar a los sistemas de informacin %" en
general" a las aplicaciones computacionales' (1isten avances tecnolgicos que se
realian continuamente en circuitos" dispositivos de almacenamiento" programas %
metodolog)as' .in em&argo" los cam&ios tecnolgicos van de la mano con la demanda
de los usuarios % programas para la e1plotacin e1#austiva de tales dispositivos
me/orados' Aor tanto" e1iste un continuo desarrollo de nuevos productos los cuales
incorporan ideas nuevas desarrolladas por compa0)as e instituciones acad-micas'
A>n cuando es posi&le que un usuario com>n no perci&a los desarrollos relevantes de
nuevos productos" para las aplicaciones e1iste una demanda permanente por ma%or
funcionalidad" ma%or n>mero de servicios" ms fle1i&ilidad % me/or rendimiento' As)" al
dise0ar un nuevo sistema de informacin o al prolongar la vida de uno %a e1istente" se
de&e &uscar siempre formas para enlaar las soluciones ofrecidas por la tecnolog)a
disponi&le a las necesidades de las aplicaciones de los usuarios'
$n rea en la cual las soluciones estn integrando tecnolog)a con nuevas arquitecturas
o formas de #acer las cosas es" sin lugar a dudas" el rea de los sistemas distri&uidos
de informacin' (llos se refieren al mane/o de datos almacenados en facilidades de
cmputo localiadas en muc#os sitios ligados a trav-s de una red de comunicaciones'
$n caso espec)fico de estos sistemas distri&uidos es lo que se conoce como &ases de
datos distri&uidas" tpico a estudiar en estas notas'
Co*ce.tu(li6(ci)* %e B(ses %e D(tos Distri/ui%(s8
Los sistemas de &ases de datos distri&uidas son un caso particular de los sistemas de
cmputo distribuido en los cuales un con/unto de elementos de procesamiento
autnomos ;no necesariamente #omog-neos= se interconectan por una red de
comunicaciones % cooperan entre ellos para realiar sus tareas asignadas'
Bistricamente" el cmputo distri&uido se #a estudiado desde muc#os puntos de vista'
As)" es com>n encontrar en la literatura un gran n>mero de t-rminos que se #an usado
para identificarlo' (ntre los t-rminos ms comunes que se utilian para referirse al
cmputo distri&uido podemos encontrar6 funciones distri&uidas" procesamiento
distri&uido de datos" multiprocesadores" multicomputadoras" procesamiento satelital"
procesamiento tipo F&ac^endF" computadoras dedicadas % de propsito espec)fico"
sistemas de tiempo compartido" sistemas funcionalmente modulares'
(1isten muc#os componentes a distri&uir para realiar una tarea' (n computacin
distri&uida los elementos que se pueden distri&uir son6
*ontrol' Las actividades relacionadas con el mane/o o administracin del sistema'
Datos' La informacin que mane/a el sistema'
Cunciones' Las actividades que cada elemento del sistema realia'
Arocesamiento lgico' Las tareas espec)ficas involucradas en una actividad de
procesamiento de informacin'
:i4ur( 1@8 "otiv(ci)* %e los siste$(s %e /(ses %e %(tos %istri/ui%os8
$na /(se %e %(tos %istri/ui%( ;!DD= es un con/unto de m>ltiples &ases de datos
lgicamente relacionadas las cuales se encuentran distri&uidas entre diferentes sitios
interconectados por una red de comunicaciones ;ver Cigura13='
$n siste$( %e /(se %e %(tos %istri/ui%( ;.!DD= es un sistema en el cual m>ltiples
sitios de &ases de datos estn ligados por un sistema de comunicaciones" de tal forma
que" un usuario en cualquier sitio puede accesar los datos en cualquier parte de la red
e1actamente como si los datos estuvieran almacenados en su sitio propio'
$n siste$( %e $(*e0o %e /(ses %e %(tos %istri/ui%(s ;.9!DD= es aquel que se
encarga del mane/o de la !DD % proporciona un mecanismo de acceso que #ace que la
distri&ucin sea transparente a los usuarios' (l t-rmino transparente significa que la
aplicacin tra&a/ar)a" desde un punto de vista lgico" como si un solo .9!D e/ecutado
en una sola mquina" administrara esos datos'
$n siste$( %e /(se %e %(tos %istri/ui%( ;.!DD= es entonces el resultado de la
integracin de una &ase de datos distri&uida con un sistema para su mane/o'
Dada la definicin anterior" es claro que algunos sistemas no se pueden considerar
como .!DD' Aor e/emplo" un sistema de tiempo compartido no inclu%e necesariamente
un sistema de mane/o de &ases de datos %" en caso de que lo #aga" -ste es controlado
% administrado por una sola computadora'
$n sistema de multiprocesamiento puede administrar una &ase de datos pero lo #ace
usualmente a trav-s de un solo sistema de mane/o de &ase de datos8 los procesadores
se utilian para distri&uir la carga de tra&a/o del sistema completo o incluso del propio
.9!D pero actuando so&re una sola &ase de datos' Cinalmente" una &ase de datos la
cual reside en un solo sitio de una red de computadoras % que es accesada por todos
los nodos de la red no es una &ase de datos distri&uida ;Cigura 15=' (ste caso se trata
de una &ase de datos cu%o control % administracin esta centraliada en un solo nodo
pero se permite el acceso a ella a trav-s de la red de computadoras'
:i4ur( 1C8 1* siste$( ce*tr(li6(%o so/re u*( re%8
(l medio am&iente t)pico de un .9!DD consiste de un con/unto de sitios o nodos los
cuales tienen un sistema de procesamiento de datos completo que inclu%e una &ase de
datos local" un sistema de mane/o de &ases de datos % facilidades de comunicaciones'
.i los diferentes sitios pueden estar geogrficamente dispersos" entonces" ellos estn
interconectados por una red de tipo <AN' Aor otro lado" si los sitios estn localiados
en diferentes edificios o departamentos de una misma organiacin pero
geogrficamente en la misma u&icacin" entonces" estn conectados por una red local
;LAN= ;Cigura 20='
:i4ur( 208 1* $e%io ($/ie*te %istri/ui%o .(r( /(ses %e %(tos'
Ti.os %e /(ses %e %(tos %istri/ui%(s'
(n t-rminos generales" podemos decir que e1isten dos tipos de sistemas de &ases de
datos distri&uidas" #omog-neas % sistemas de &ases de datos distri&uidas
#eterog-neas'
La #omogeneidad o #eterogeneidad" puede darse a diferentes niveles" Bard_are"
.oft_are o sistema operativo' Aara este curso" se asume que cuando se indica la
#omogeneidad del sistema" se #ace referencia a que en todos los sitios del sistema"
e1iste el mismo sistema de administracin de &ase de datos % generalmente inclu%e el
mismo modelo de datos'
$n sistema de &ases de datos distri&uido" inclu%e diferentes sistemas mane/adores de
&ases de datos" pro&a&lemente con modelos de datos diferentes que #a% que
compati&iliar % con retos a nivel de comunicacin entre los sistemas de &ases de datos
que conforman el sistema" para dar la visin al usuario de integracin % de un >nico
sistema de &ases de datos'
9ecci)* >8 B(ses %e %(tos %istri/ui%(s
(n el presente cap)tulo se mostrar los aspectos importantes referentes al dise0o de
una &ase de datos distri&uida' .e revisar el pro&lema de fragmentacin de los datos
as) como la transparencia que un sistema de datos distri&uidos de&e guardar respecto
a la vista del usuario' .e presentarn los algoritmos para fragmentacin #oriontal"
fragmentacin #oriontal derivada % fragmentacin vertical' (n la parte final de este
cap)tulo se discute el pro&lema de asignacin de fragmentos'
El .ro/le$( %e %iseDo
(l pro&lema de dise0o de &ases de datos distri&uidos se refiere" en general" a tomar
decisiones acerca de la u&icacin de datos % programas a trav-s de los diferentes sitios
de una red de computadoras' (ste pro&lema de&er)a estar relacionado al dise0o de la
misma red de computadoras' .in em&argo" en estas notas >nicamente el dise0o de la
&ase de datos se toma en cuenta' La decisin de donde colocar a las aplicaciones tiene
que ver tanto con el soft_are del .9!DD ;sistema mane/ador de &ase de datos
distri&uidas= como con las aplicaciones que se van a e/ecutar so&re la &ase de datos'
(l dise0o de las &ases de datos centraliadas contempla los puntos siguientes6
1' Dise0o del Fesquema conceptualF el cual descri&e la &ase de datos integrada
;esto es" todos los datos que son utiliados por las aplicaciones que tienen
acceso a las &ases de datos='
2' Dise0o Ff)sico de la &ase de datosF" esto es" mapear el esquema conceptual a
las reas de almacenamiento % determinar los m-todos de acceso a las &ases
de datos'
(n el caso de las &ases de datos distri&uidas se tienen que considerar los pro&lemas
siguientes6
1' Dise0o del ?esquema conceptual@" donde se &usca descri&ir el modelo de datos
de todo el sistema
2' Dise0o de la fragmentacin" este proceso se determina mediante la divisin de
las ta&las en fragmentos #oriontales" verticales o mi1tos" dependiendo de las
necesidades de informacin detectadas en la etapa de anlisis del sistema'
3' Dise0o de la asignacin de los fragmentos" esto determina la forma en que los
fragmentos se mapean en los sitios o nodos del sistema'
2' Dise0o de replicacin' Aroceso que indica en que lugar ;nodos=" se u&ican
copias de ta&las o fragmentos % la frecuencia de actualiacin de la informacin'
O/0etivos %el DiseDo %e l( Distri/uci)* %e los D(tos8
(n el dise0o de la distri&ucin de los datos" se de&en de tomar en cuenta los siguientes
o&/etivos6
,roces($ie*to loc(l8 La distri&ucin de los datos" para ma1imiar el procesamiento
local corresponde al principio simple de colocar los datos tan cerca como sea posi&le
de las aplicaciones que los utilian' .e puede realiar el dise0o de la distri&ucin de los
datos para ma1imiar el procesamiento local agregando el n>mero de referencias
locales % remotas que le corresponden a cada fragmentacin candidata % la localiacin
del fragmento" que de esta forma se seleccione la me/or solucin de ellas'
Distri/uci)* %e l( c(r4( %e tr(/(0o' La distri&ucin de la carga de tra&a/o so&re los
sitios" es una caracter)stica importante de los sistemas de cmputo distri&uidos' (sta
distri&ucin de la carga se realia para tomar venta/a de las diferentes caracter)sticas
;potenciales= o utiliaciones de las computadoras de cada sitio" % ma1imiar el grado de
e/ecucin de paralelismo de las aplicaciones' .in em&argo" la distri&ucin de la carga
de tra&a/o podr)a afectar negativamente el procesamiento local deseado'
Costo %e (l$(ce*($ie*to ' %is.o*i/ili%(%' La distri&ucin de la &ase de datos
refle/a el costo % disponi&ilidad del almacenamiento en diferentes sitios' Aara esto" es
posi&le tener sitios especialiados en la red para el almacenamiento de datos' .in
em&argo el costo de almacenamiento de datos no es tan relevante si -ste se compara
con el del *A$" ,E: % costos de transmisin de las aplicaciones'
E*-o?ues (l .ro/le$( %e %iseDo %e /(ses %e %(tos %istri/ui%(s
(1isten dos estrategias generales para a&ordar el pro&lema de dise0o de &ases de
datos distri&uidas6
(l enfoque de arri&a #acia a&a/o ;topGdo_n=' (ste enfoque es ms apropiado para
aplicaciones nuevas % para sistemas #omog-neos' *onsiste en partir desde el anlisis
de requerimientos para definir el dise0o conceptual % las vistas de usuario' A partir de
ellas se define un esquema conceptual glo&al % los esquemas e1ternos necesarios' .e
prosigue con el dise0o de la fragmentacin de la &ase de datos" % de aqu) se contin>a
con la localiacin de los fragmentos en los sitios" creando las imgenes f)sicas' (sta
apro1imacin se completa e/ecutando" en cada sitio" Fel dise0o f)sicoF de los datos" que
se localian en -ste' (n la Cigura 21 se presenta un diagrama con la estructura general
del enfoque topGdo_n'
(l dise0o de a&a/o #acia arri&a ;&ottomGup=' .e utilia particularmente a partir de &ases
de datos e1istentes" generando con esto &ases de datos distri&uidas' (n forma
resumida" el dise0o &ottomGup de una &ase de datos distri&uida requiere de la seleccin
de un modelo de &ases de datos com>n para descri&ir el esquema glo&al de la &ase de
datos' (sto se de&e" a que es posi&le que se utilicen diferentes .9!D' Despu-s se
#ace la traduccin de cada esquema local en el modelo de datos com>n % finalmente
se #ace la integracin del esquema local en un esquema glo&al com>n'
:i4ur( 218 El e*-o?ue to.-%oO* .(r( el %iseDo %e /(ses %e %(tos %istri/ui%(s'
(l dise0o de una &ase de datos distri&uida" cualquiera sea el enfoque que se siga" de&e
responder satisfactoriamente las siguientes preguntas6
JAor qu- #acer una fragmentacin de datosK
J*mo realiar la fragmentacinK
J7u- tanto se de&e fragmentarK
J*mo pro&ar la valide de una fragmentacinK
J*mo realiar el asignamiento de fragmentosK
J*mo considerar los requerimientos de la informacinK
9ecci)* @8 :r(4$e*t(ci)*
:i4ur( 228 El .ro/le$( %e -r(4$e*t(ci)* %e rel(cio*es8
(l pro&lema de fragmentacin se refiere al particionamiento de la informacin para
distri&uir cada parte a los diferentes sitios de la red" como se o&serva en la Cigura 22'
,nmediatamente aparece la siguiente pregunta6 Jcul es la unidad raona&le de
distri&ucinK .e puede considerar que una relacin completa es lo adecuado %a que las
vistas de usuario son su&con/untos de las relaciones' .in em&argo" el uso completo de
relaciones no favorece las cuestiones de eficiencia so&re todo aquellas relacionadas
con el procesamiento de consultas'
La otra posi&ilidad es usar fragmentos de relaciones ;su&Grelaciones= lo cual favorece la
e/ecucin concurrente de varias transacciones que accesan porciones diferentes de
una relacin' .in em&argo" el uso de su&Grelaciones tam&i-n presenta inconvenientes'
Aor e/emplo" las vistas de usuario que no se pueden definir so&re un solo fragmento
necesitarn un procesamiento adicional a fin de localiar todos los fragmentos de una
vista' Aunado a esto" el control semntico de datos es muc#o ms comple/o %a que" por
e/emplo" el mane/o de llaves >nicas requiere considerar todos los fragmentos en los
que se distri&u%en todos los registros de la relacin' (n resumen" el o&/etivo de la
fragmentacin es encontrar un nivel de particionamiento adecuado en el rango que va
desde tuplas o atri&utos #asta relaciones completas ;ver Cigura 23 ='
(/emplo 1' *onsidere una relacin I del e/emplo visto en la introduccin del presente
cap)tulo'
I6
N: N:9!R( AR(.$A$(.+: L$DAR
1 ,nstrumentacin 1H0000 Dua/ira
2 Desarrollo de &ases de datos 13H000 *artagena
3 *ADE*A9 2H0000 9edell)n
2 9antenimiento 310000 *artagena
H *ADE*A9 H00000 !ogot
La relacin I se puede fragmentar #oriontalmente produciendo los siguientes
fragmentos'
I16 Aro%ectos con presupuesto menor que b200"000
N: IN:9!R( AR(.$A$(.+: L$DAR
1 ,nstrumentacin 1H0000 Dua/ira
2 Desarrollo de &ases de datos 13H000 *artagena
I26 Aro%ectos con presupuesto ma%or que o igual a b200"000
N: IN:9!R( AR(.$A$(.+: L$DAR
3 *ADE*A9 2H0000 9edell)n
2 9antenimiento 310000 *artagena
H *ADE*A9 H00000 !ogot
(/emplo 2' La relacin I del e/emplo anterior se puede fragmentar verticalmente
produciendo los siguientes fragmentos6
I36 informacin acerca de presupuestos de pro%ectos
N: AR(.$A$(.+:
1 1H0000
2 13H000
3 2H0000
2 310000
H 1H00000
I26 informacin acerca de los nom&res % u&icaciones de pro%ectos
N: IN:9!R( L$DAR
1 ,nstrumentacin Dua/ira
2 Desarrollo de &ases de datos *artagena
3 *ADE*A9 9edell)n
2 9antenimiento *artagena
H *ADE*A9 !ogot
:i4ur( 238 El 4r(%o %e -r(4$e*t(ci)*'
Correcci)* %e u*( -r(4$e*t(ci)*6 Al realiar la fragmentacin de una relacin se
de&en satisfacer las siguientes condiciones para garantiar que la misma sea correcta6
*ondicin de completitud' La descomposicin de una relacin R en los fragmentos R1"
R2" '''" Rn es completa si % solamente si cada elemento de datos en R se encuentra en
alg>n de los Ri'
*ondicin de Reconstruccin' .i la relacin R se descompone en los fragmentos R1"
R2" '''" Rn" entonces de&e e1istir alg>n operador relacional $ " tal que"
R Q $ 1i cQ n Ri
*ondicin de Cragmentos Dis/untos' .i la relacin R se descompone en los fragmentos
R1" R2" '''" Rn" % el dato di est en R/" entonces" no de&e estar en ning>n otro
fragmento R^ ;^d /='
Alternativas so&re replicacin para el asignamiento de fragmentos
La replicacin de informacin es de utilidad para o&tener un me/or rendimiento % para
ofrecer un ma%or grado de confia&ilidad ;tolerancia a fallas=' La replicacin se complica
cuando es necesario #acer actualiaciones a las copias m>ltiples de un dato' Aor tanto"
respecto a la replicacin" en el asignamiento de fragmentos se tienen tres estrategias6
No soportar replicacin' *ada fragmento reside en un solo sitio'
.oportar replicacin completa' *ada fragmento en cada uno de los sitios'
.oportar replicacin parcial' *ada fragmento en algunos de los sitios'
#omo regla general se de!e considerar :ue la re$licacin de /ragmentos es
de utilidad cuando el nmero de consultas de solo lectura es BmuchoD mayor
:ue el nmero de consultas $ara actuali1aciones. )n la 7a!la 1 se com$aran
la com$le;idad de im$lementar o tomar @enta;a de las di/erentes alternati@as
de re$licacinH res$ecto de los di/erentes as$ectos im$ortantes en !ases de
datos distri!uidas.
Recopilacin completa Recopilacin Aarcial Aarticionamiento
Arocesamiento de
*onsultas
Ccil 9oderado 9oderado
9ane/o de Directorios Ccil o no e1istente 9oderado 9oderado
*ontrol de
*oncurrencia
9oderado Dif)cil Ccil
*onfia&ilidad 9u% alto Alto !a/o
Realidad Aplicacin posi&le Realista Aplicacin posi&le
T(/l( 28 Co$.(r(ci)* %e l(s estr(te4i(s %e re.lic(ci)* %e -r(4$e*tos'
Re?ueri$ie*tos %e i*-or$(ci)*7
*on el fin de realiar una fragmentacin adecuada es necesario proporcionar
informacin que a%ude a realiarla' (sta informacin normalmente de&e ser
proporcionada por el usuario % tiene que ver con cuatro tipos6
,nformacin so&re el significado de los datos
,nformacin so&re las aplicaciones que los usan
,nformacin acerca de la red de comunicaciones
,nformacin acerca de los sistemas de cmputo
9ecci)* C8 Ti.os %e -r(4$e*t(ci)* %e %(tos
(1isten tres tipos de fragmentacin6
Cragmentacin #oriontal
Cragmentacin vertical
Cragmentacin #)&rida
(n las siguientes secciones revisaremos de manera informal cada uno de los tipos
mencionados' 9s adelante" se presentar de manera ms formal la construccin de
los diferentes tipos de fragmentacin'
:r(4$e*t(ci)* +ori6o*t(l .ri$(ri(
*onsiste del particionamiento en tuplas de una relacin glo&al en su&con/untos" donde
cada su&con/unto puede contener datos que tienen propiedades comunes % se puede
definir e1presando cada fragmento como una operacin de seleccin so&re la relacin
glo&al'
(/emplo 3' *onsidere la relacin glo&al
.$AAL,(R ;.N$9" NA9(" *,+X=
entonces" la fragmentacin #oriontal puede ser definida como6
.$AAL,(R1 Q .Lcit% QQ F.CF.$AAL,(R
.$AAL,(R1 Q .Lcit% QQ FLAF.$AAL,(R
(sta fragmentacin satisface la condicin de completes si F.CF % FLAF son solamente
los >nicos valores posi&les del atri&uto *,+X'
2' La condicin de reconstruccin se logra con6
.$AAL,(R Q .$AAL,(R1 unin .$AAL,(R2
3' La condicin de dis/untos se cumple claramente en este e/emplo'
:r(4$e*t(ci)* +ori6o*t(l %eriv(%(
La fragmentacin derivada #oriontal se define partiendo de una fragmentacin
#oriontal'
(n esta operacin se requiere de .emiG/unta ;.emiGIoin= el cual nos sirve para derivar
las tuplas o registros de dos relaciones'
(/emplo 2' Las siguientes relaciones definen una fragmentacin #oriontal derivada de
la relacin .$AALX'
.$AALX1 Q .$AALX.Isnum QQ snum.$AAL,(R1
.$AALX2 Q .$AALX.Isnum QQ snum.$AAL,(R2
:r(4$e*t(ci)* vertic(l
La fragmentacin vertical es la su&divisin de atri&utos en grupos' Los fragmentos se
o&tienen pro%ectando la relacin glo&al so&re cada grupo' La fragmentacin es correcta
si cada atri&uto se mapea en al menos un atri&uto del fragmento'
(/emplo H' *onsidere la siguiente relacin glo&al6
(9A; empnum" name" sal" ta1" mgrnum" depnum =
una fragmentacin vertical de esta relacin puede ser definida como6
(9A1 Q AIempnum" name" mgrnum" depnum (9A
(9A2 Q AIempnum" sal" ta1 (9A
La reconstruccin de la relacin (9A puede ser o&tenida como6
(9A Q (9A1 ;IN empnum= (9A2 porque empnum es una clave de (9A
:r(4$e*t(ci)* +5/ri%(
(n lo que respecta a la fragmentacin #)&rida" esta consiste en aplicar la fragmentacin
vertical seguida de la fragmentacin #oriontal o viceversa'
(/emplo 4' *onsidere la relacin glo&al
(9A ;empnum" name" sal" ta1" mrgnum" depnum=
Las siguientes son para o&tener una fragmentacin mi1ta" aplicando la vertical seguida
de la #oriontal6
(9A1 Q .L depnum cQ 10 AIempnum" name" mgrnum" depnum (9A
(9A2 Q .L 10 c depnum cQ 20 AIempnum" name" mgrnum" depnum (9A
(9A3 Q .L depnum e 20 AIempnum" name" mgrnum" depnum (9A
(9A2 Q AI empnum" name" sal" ta1 (9A
La reconstruccin de la relacin (9A es definida por la siguiente e1presin6
(9A Q $N;(9A1" (9A2" (9A3=INempnum Q empnumAIempnum" sal" ta1 (9A2
Cinalmente" como otro e/emplo considere el siguiente esquema glo&al
(9A;(9AN$9" NA9(" .AL" +AW" 9DRN$9" D(AN$9=
D(A;D(AN$9" NA9(" AR(A" 9DRN$9=
.$AAL,(R;.N$9" NA9(" *,+X=
.$AALX;.N$9" AN$9" D(AN$9" 7$AN=
Despu-s de aplicar una fragmentacin mi1ta se o&tiene el siguiente esquema
fragmentado
(9A1 Q .ldepnum cQ 10 AIempnum" name" mgrnum" depnum ;(9A=
(9A2 Q .L 10 c depnum cQ 20 AIempnum" name" mgrnum" depnum ;(9A=
(9A3 Q .L depnum e 20 AIempnum" name" mgrnum" depnum ;(9A=
(9A2 Q AI empnum" name" sal" ta1 ;(9A=
D(A1 Q .L depnum cQ 10 ;D(A=
D(A2 Q .L 10 c depnum cQ 20 ;D(A=
D(A3 Q .L depnum e 20 ;D(A=
.$AAL,(R1 Q .L cit% QQ F.CF ;.$AAL,(R=
.$AAL,(R2 Q .L cit% QQ FLAF ;.$AAL,(R=
.$AALX1 Q .$AALX.Isnum QQ snum.$AAL,(R1
.$AALX2 Q .$AALX.Isnum QQ snum.$AAL,(R2
9ecci)* 108 DiseDo %e re.lic(
La replicacin de informacin es de utilidad para o&tener un me/or rendimiento % para
ofrecer un ma%or grado de confia&ilidad ;tolerancia a fallas=' .e entiende por
Replicacin" la administracin de copias de fragmentos o ta&las % de asegurar su
actualiacin en los periodos de tiempo definidos por el administrador del sistema'
La replicacin se complica cuando es necesario #acer actualiaciones a las copias
m>ltiples de un dato' Aor tanto" respecto a la replicacin" en la asignacin de
fragmentos se tienen tres estrategias6
1 No soportar replicacin' *ada fragmento reside en un solo sitio'
2 .oportar replicacin completa' *ada fragmento en cada uno de los sitios'
3 .oportar replicacin parcial' *ada fragmento en algunos de los sitios'
*omo regla general se de&e considerar que la replicacin de fragmentos es de utilidad
cuando el n>mero de consultas de solo lectura es ;muc#o= ma%or que el n>mero de
consultas para actualiaciones' (n la +a&la 1 se comparan la comple/idad de
implementar o tomar venta/a de las diferentes alternativas de replicacin" respecto de
los diferentes aspectos importantes en &ases de datos distri&uidas'
Adems de indicar en que sitios se desea guardar copia de la entidad o ta&la" es
necesario definir la frecuencia o periodo de actualiacin de la copia' (n este sentido"
podemos encontrar los siguientes tipos de r-plica6
1 (n tiempo real" es decir en el momento que un sitio actualia un registro
;insercin" modificacin % &orrado de registros=" se env)a una copia de la
informacin a los sitios donde reside la copia'
2 *opia fuera de l)nea" esta opcin permite que una ve registrada la transaccin en
el sitio donde ella se genera" pueda pasar un tiempo para actualiar las copias de la
informacin almacenadas en otros lugares'
*on estos dos tipos de replicacin" es posi&le definir varios modelos de sistemas de
replica6
1' 9aestro G maestro; #ace que una ve generada % registrada una transaccin en un
sitio del sistema" inmediatamente se actualicen las copias de la informacin que se
guardan en los otros sitios' (ste modelo" aumenta la opcin de acceso a datos desde
cualquier punto" aumentando la disponi&ilidad del sistema' (l ma%or pro&lema de este
modelo es que de&e garantiarse canales de comunicacin entre los nodos en todo
momento" de tal manera que se asegure la copia de los fragmentos cuando la
transaccin se realice" de lo contrario el sistema cae en un estado de invalide de
informacin'
2' 9aestroGcopia' (ste modelo permite que la actualiacin de los sitios pueda
generarse en un periodo de tiempo T despu-s de generarse una t transaccin en un
sitio del sistema' (ste modelo asume que los datos de las copias pueden estar
diferentes al registro original durante un periodo de tiempo" sin afectar los procesos del
sistema'
(l modelo reduce costos de canal de comunicacin" %a que este es requerido durante
algunos periodos de tiempo" durante el cual se realian las actualiaciones a las
replicas del sistema'
3' 9aestro G &odega' (ste modelo e1ige la determinacin de un sitio" donde se
guardarn las replicas de los datos' $na ve se realice una transaccin en un sitio"
inmediata o durante un periodo de tiempo" de&e generarse la copia de la replica en la
&odega de datos' (sto #ace que las consultas a informacin que no se encuentre en el
sitio" solo puede #acerse a la &odega de datos'
(ste modelo reduce los costos de canales de datos" pero de&e asegurarse que el sitio
de la &odega siempre se encuentre accesi&le
C(.itulo 38 Co*sult(s
9ecci)* 118 Co*sult(s %istri/ui%(s
(l procesamiento de consultas es de suma importancia en &ases de datos
centraliadas' .in em&argo" en !DD -ste adquiere una relevancia ma%or' (l o&/etivo es
convertir transacciones de usuario en instrucciones para manipulacin de datos' No
o&stante" el orden en que se realian las transacciones afecta grandemente la
velocidad de respuesta del sistema' As)" el procesamiento de consultas presenta un
pro&lema de optimiacin en el cual se determina el orden en el cual se #ace la menor
cantidad de operaciones' (n !DD se tiene que considerar el procesamiento local de
una consulta /unto con el costo de transmisin de informacin al lugar en donde se
solicit la consulta'
O/0etivo %el .roces($ie*to %e l(s co*sult(s
(n un sistema de &ase de datos es posi&le cam&iar la estructura inicial" pero es algo
que puede resultar mu% costoso desde el punto de vista de tiempo % dinero' Aor tanto"
cuando se presenta una consulta al sistema" es necesario #allar el me/or m-todo de
encontrar la respuesta utiliando la estructura e1istente de la &ase de datos' (1iste un
gran n>mero de estrategias posi&les para procesar una consulta" especialmente si la
estructura es comple/a' No o&stante" normalmente vale la pena que el sistema dedique
una cantidad importante de tiempo en la seleccin de una &uena estrategia' (l coste de
procesar una consulta normalmente est dominado por el acceso al disco' Aero" en un
sistema distri&uido es preciso tener en cuenta otros factores" como son6
(l coste de transmisin de datos en la red'
(l &eneficio potencial que supondr)a en la e/ecucin el que varias localidades
procesaran en paralelo partes de la consulta'
La diferencia entre una &uena estrategia % una mala" en t-rminos del n>mero de
accesos a disco requeridos % el coste de transmisin de datos en la red" a menudo es
importante" % puede tener varios rdenes de magnitud' As) pues" el tiempo empleado
en elegir una estrategia de procesamiento de consultas merece la pena incluso para
una consulta que se e/ecuta slo una ve'
Niveles %e .roces(%or %e co*sult(s
(1isten varios medios para calcular la respuesta a una consulta8 siempre de&e elegirse
una estrategia de procesamiento de consultas que reduca al m)nimo el tiempo que se
requiere para calcular la respuesta' (n el caso de sistemas centraliados" el criterio
principal para determinar el coste de una estrategia espec)fica es el n>mero de accesos
al disco' (n un sistema distri&uido es preciso tener en cuenta otros factores" como son6
(l coste de transmisin de datos en la red'
(l &eneficio potencial que supondr)a en la e/ecucin el que varias localidades
procesaran en paralelo partes de la consulta'
(l coste relativo de la transferencia de datos en la red % la transferencia de datos entre
la memoria % el disco var)a en forma considera&le" dependiendo del tipo de red % de la
velocidad de los discos' Aor tanto" en un caso general" no podemos tener en cuenta
slo los costes del disco o los de la red' (s necesario llegar a un equili&rio adecuado
entre los dos'
9oc(li6(ci)* %e %(tos
*onsideremos una consulta mu% sencilla6 ?(ncontrar todas las tuplas de la relacin
depsito@' Aunque la consulta es mu% simple" de #ec#o es trivial8 su procesamiento no
es trivial" %a que es posi&le que la relacin depsito est- fragmentada" repetida o las
dos cosas' .i la relacin depsito est repetida" es preciso decidir que copia se va a
utiliar' .i ninguna de las copias est fragmentada" se elige la copia que implique
costes de transmisin ms reducidos' Aero si una copia est fragmentada" la eleccin
no es tan sencilla" %a que es preciso calcular varios productos o uniones para
reconstruir la relacin depsito' (n tal caso" el n>mero de estrategias para este e/emplo
sencillo puede ser grande' De #ec#o" la eleccin de una estrategia puede ser una tarea
tan comple/a como #acer una consulta ar&itraria'
La transparencia de la fragmentacin implica que el usuario puede escri&ir una consulta
como -sta6
Auesto que depsito est definido como
La e1presin que resulta del esquema de traduccin de nom&res es
Al emplear las t-cnicas de optimiacin podemos simplificar de manera automtica esta
e1presin' La e1presin que resulta es
La cual inclu%e dos su&e1presiones' La primera inclu%e slo depsito1 %" por tanto"
puede ser calculada en la localidad de Riverside' La segunda inclu%e solamente
depsito2 %" por tanto" puede ser calculada en la localidad de *olum&ia'
(1iste a>n una optimiacin que se puede #acer as)6
Auesto que depsito1 tiene solamente tuplas de pertenecientes a la sucursal Riverside"
podemos eliminar la operacin de seleccin' *alculando
Aodemos aplicar la definicin del fragmento depsito2 para o&tener
(sta e1presin es el con/unto vac)o" independientemente del contenido de la relacin
depsito'
As)" nuestra estrategia final para la localidad Riverside consistir en devolver depsito1
como resultado de la consulta'
,roces($ie*to %e i*tersecci)* si$.le
$n aspecto importante de la eleccin de una estrategia de procesamiento de consulta
es elegir una estrategia de interseccin' *onsidere la e1presin alge&raica relacional6
*liente f1f depsito f1f sucursal
.uponemos que ninguna de las tres relaciones est- repetida o fragmentada % que
cliente est almacenada en la localidad Lc" depsito en la Ld % sucursal en la L&' .ea Li
la localidad donde se origin la consulta' (l sistema de&e producir el resultado en la
localidad Li' (ntre las posi&les estrategias para procesar posi&les estrategias para
procesar esta consulta se encuentran en las siguientes6
(nviar copia de las tres relaciones a la localidad Li' (scoger una estrategia para
procesar en forma local la consulta completa en Li'
(nviar una copia de la relacin cliente a la localidad Ld % calcular cliente |x|
depsito de Ld. (nviar cliente |x| depsito de Ld a L&" donde se calcula ;cliente |x|
deposito) |x| sucursal. (l resultado de esta operacin es enviado a Li'
Aueden ela&orarse estrategias similares a la anterior al intercam&iar los papeles
de Lc" Ld % L&'
No puede garantiarse que una estrategia sea la me/or en todos los casos' (ntre los
factores que de&en tener en cuenta estn la cantidad de datos que de&e transmitirse" el
costo de transmitir un &loque de datos entre dos localidades determinadas % la
velocidad de procesamiento relativa en cada localidad' *onsiderar las dos primeras
estrategias mencionadas' .i se env)an las tres relaciones a Li % e1isten )ndices para
ellas" puede ser necesario volver a crear esos )ndices en Li' (sto requiere tiempo e1tra
de procesamiento % ms accesos al disco' .in em&argo" la segunda estrategia tiene la
desventa/a de que una relacin potencialmente grande ;cliente f1f deposito= de&e
transmitirse desde Ld a L&' (sta relacin repite los datos del domicilio de un cliente una
ve por cada cuenta que tenga el cliente' As)" la segunda estrategia puede requerir la
transmisin de un volumen ma%or que la primera estrategia'
+am&i-n pueden utiliarse dos estrategias adicionales" la de interseccin utiliando el
paralelismo % la estrategia de semiGinterseccin'
9ecci)* 128 Desco$.osici)* %e u*( co*sult( ' loc(li6(ci)* %e %(tos
%istri/ui%os
Antes de que pueda iniciarse el procesamiento de una consulta" el sistema de&e
traducir la consulta a una forma que pueda mane/ar' Los lengua/es como el .7L son
adecuados a las personas" pero no para son la representacin interna de una consulta
dentro del sistema' $na representacin interna ms >til es la que se &asa en el lge&ra
relacional'
La primera accin que el sistema de&e tomar en una consulta es traducirla a su forma
interna' (ste proceso de traduccin es similar al tra&a/o realiado por el analiador
sintctico ;parser= de un compilador' Al generar la forma interna de la consulta" el
parser revisa la sinta1is de la consulta del usuario" verifica que los nom&res de
relaciones que aparecen en la consulta sean nom&res de relaciones de &ase de datos"
% as) sucesivamente' .i la consulta se e1pres en t-rminos de una vista" el parser
sustitu%e todas las referencias al nom&re de la vista por la e1presin del lge&ra
relacional para calcular esa vista'
$na ve que se #a traducido la consulta a una forma interna del lge&ra" empiea el
proceso de optimiacin' La primera fase de la optimiacin se lleva a ca&o en el nivel
del lge&ra relacional' .e #ace un intento para encontrar una e1presin que sea
equivalente a la e1presin dada" pero que pueda e/ecutarse de manera eficiente' La
siguiente fase implica la seleccin de una estrategia detallada para procesar la
consulta' De&e tomarse una decisin acerca de la manera e1acta en que se va a
e/ecutar la consulta' .e de&en elegir los )ndices espec)ficos que se van a usar' .e de&e
determinar el orden en que se van a procesar las tuplas' La eleccin final de una
estrategia se &asa principalmente en el n>mero de accesos a disco que se requieran'
,l(* %e o.ti$i6(ci)* %e co*sult(s %istri/ui%(s
Dada una consulta" generalmente e1iste una variedad de m-todos para calcular la
respuesta' *ada forma de e1presar la consulta ?sugiere@ una estrategia para encontrar
la respuesta' .in em&argo" no esperamos que los usuarios escri&an sus consultas de
una forma que sugiera la estrategia ms eficiente' As) pues" el sistema de&e
encargarse de transformar la consulta como la introdu/o el usuario en una consulta
equivalente que pueda calcularse de manera ms eficiente' (sta ?optimiacin@" o ms
e1actamente" me/ora de la estrategia para procesar una consulta se llama optimizacin
de consultas' (1iste una analog)a entre la optimiacin de consultas por un sistema de
&ase de datos'
La optimiacin de consultas es una cuestin importante en cualquier sistema de &ase
de datos puesto que la diferencia en tiempo de e/ecucin entre una &uena estrategia %
una mala puede ser enorme' (n el modelo de red % en el modelo /errquico la
optimiacin de consultas se de/a en su ma%or parte al programador de aplicaciones'
(sto se de&e a que las sentencias de los lengua/es de manipulacin de datos de estos
dos modelos normalmente se incorporan en un lengua/e de programacin principal" %
no es fcil transformar una consulta de red o /errquica en una equivalente sin
conocimiento del programa de aplicacin completo'
Xa que una consulta relacional puede e1presarse completamente en un lengua/e de
consulta relacional sin emplear un lengua/e principal" es posi&le realiar
automticamente una cantidad importante de optimiacin de consultas'
Algunos sistemas reducen el n>mero de estrategias que necesitan ser completamente
consideradas #aciendo una suposicin #eur)stica de una estrategia &uena' .eg>n esto"
el optimiador considera cada una de las posi&les estrategias" pero aca&a tan pronto
como determine que el coste es ma%or que la me/or de las estrategias consideradas
anteriormente' .i el optimiador empiea con una estrategia que es pro&a&le que tenga
un coste &a/o" slo unas pocas estrategias competentes requerirn un anlisis
completo del coste' (sto puede reducir el tiempo de optimiacin de consultas'
Aara simplificar la tarea de seleccin de estrategias se de&e dividir una consulta en
varias su&consultas' (sto no slo simplifica la seleccin de estrategias sino que
tam&i-n permite al optimiador de consultas reconocer los casos en los que una
su&consulta determinada apareca varias veces en la misma consulta' .i esas
su&consultas se calculan una sola ve" se a#orra tiempo tanto en la fase de
optimiacin de la consulta como en la e/ecucin de la consulta' (l reconocimiento de
su&consultas comunes es anlogo al reconocimiento de suexpresiones comunes en
muc#os compiladores optimiadores de lengua/es de programacin'
(s o&vio que e1aminar la consulta &uscando su&consultas comunes % estimar el coste
de un gran n>mero de estrategias supone un tiempo e1tra considera&le en el
procesamiento de consultas' .in em&argo" el coste adicional de optimiacin de
consultas generalmente se compensa con creces por el a#orro en el tiempo de
e/ecucin de la consulta' (l a#orro logrado es a>n ma%or en aquellas aplicaciones que
se e/ecutan so&re una &ase regular % vuelven a e/ecutar las mismas consultas en cada
e/ecucin' Aor tanto" la ma%or parte de los sistemas comerciales inclu%en optimiadores
relativamente sofisticados'
9ecci)* 138 Tr(*s(ccio*es Distri/ui%(s
Basta este momento" las primitivas &sicas de acceso que se #an considerado son las
consultas ;queries=' .in em&argo" no se #a discutido qu- pasa cuando" por e/emplo"
dos consultas tratan de actualiar el mismo elemento de datos" o si ocurre una falla del
sistema durante la e/ecucin de una consulta' Dada la naturalea de una consulta" de
lectura o actualiacin" a veces no se puede simplemente reactivar la e/ecucin de una
consulta" puesto que algunos datos pueden #a&er sido modificados antes la falla' (l no
tomar en cuenta esos factores puede conducir a que la informacin en la &ase de datos
contenga datos incorrectos'
(l concepto fundamental aqu) es la nocin de Fe/ecucin consistenteF o Fprocesamiento
confia&leF asociada con el concepto de una consulta' (l concepto de una transaccin
es usado dentro del dominio de la &ase de datos como una unidad &sica de cmputo
consistente % confia&le'
De-i*ici)* %e u*( tr(*s(cci)*
$na transaccin es una coleccin de acciones que #acen transformaciones
consistentes de los estados de un sistema preservando la consistencia del sistema'
$na &ase de datos est en un estado consistente si o&edece todas las restricciones de
integridad definidas so&re ella' Los cam&ios de estado ocurren de&ido a
actualiaciones" inserciones" % supresiones de informacin' Aor supuesto" se quiere
asegurar que la &ase de datos nunca entra en un estado de inconsistencia' .in
em&argo" durante la e/ecucin de una transaccin" la &ase de datos puede estar
temporalmente en un estado inconsistente' (l punto importante aqu) es asegurar que la
&ase de datos regresa a un estado consistente al fin de la e/ecucin de una transaccin
;Ver Cigura 3'1=
Lo que se persigue con el mane/o de transacciones es por un lado tener una
transparencia adecuada de las acciones concurrentes a una &ase de datos % por otro
lado tener una transparencia adecuada en el mane/o de las fallas que se pueden
presentar en una &ase de datos'
:i4ur( 2<8 1* $o%elo %e tr(*s(cci)*'
E0e$.lo 1' *onsidere la siguiente consulta en .7L para incrementar el 10g del
presupuesto del pro%ecto *ADE*A9 de la &ase de datos de e/emplo'
1,DATE I
SET !$DD(+ Q !$DD(+h1'1
PHERE INA9( Q F*ADE*A9F
(sta consulta puede ser especificada" usando la notacin de .7L" como una
transaccin otorgndole un nom&re6
Be4i*Qtr(*s(ctio* A*+$AL,aATAR(.$A$(.+:
/e4i*
1,DATE I
SET !$DD(+ Q !$DD(+h1'1
PHERE INA9( Q F*ADE*A9F
e*%'

E0e$.lo 2' *onsidere una agencia de reservaciones para l)neas a-reas con las
siguientes relaciones6
CL,DB+; CN:" DA+(" .R*" D(.+" .+.:LD" *AA =
*$.+; *NA9(" ADDR" !AL =
C*; CN:" DA+(" *NA9(" .A(*,AL =
$na versin simplificada de una reservacin t)pica puede ser implementada
mediante la siguiente transaccin6
Be4i*Qtr(*s(ctio* Reservacin
/e4i*
i*.ut; flig#tTno" date" customerTname =8
EHEC SN9 1,DATE CL,DB+
SET .+.:LD Q .+.:LD Y 1
PHERE CN: Q flig#tTno
AND DA+( Q date
EHEC SN9 !NSERT
!NTO C*; CNA9(" DA+(" *NA9(" .A(*,AL =
VA91ES ;flig#tTno" date" customerTname" null =
out.ut;Freservacin terminadaF=8
e*%'
Co*%icio*es %e ter$i*(ci)* %e u*( tr(*s(cci)*
$na transaccin siempre termina" aun en la presencia de fallas' .i una transaccin
termina de manera e1itosa se dice que la transaccin #ace un commit ;se usar el
t-rmino en ingl-s cuando no e1ista un t-rmino en espa0ol que refle/e con &revedad el
sentido del t-rmino en ingl-s=' .i la transaccin se detiene sin terminar su tarea" se dice
que la transaccin aorta' *uando la transaccin es a&ortada" su e/ecucin es detenida
% todas sus acciones e/ecutadas #asta el momento son des#ec#as ;undone=
regresando a la &ase de datos al estado antes de su e/ecucin' A esta operacin
tam&i-n se le conoce como rollac!'
E0e$.lo 38 *onsiderando de nuevo el (/emplo 3'2" veamos el caso cuando no
e1isten asientos disponi&les para #acer la reservacin'
Be4i*Qtr(*s(ctio* Reservacin
/e4i*
i*.ut; flig#tTno" date" customerTname =8
!NTO temp1" temp2
EHEC SN9 SE9ECT .+.:LD" *AA
:RO" CL,DB+
PHERE CN: Q flig#tTno AND DA+( Q date
i- temp1 Q temp2 t+e*
output; Fno #a% asientos li&resF =
A/ort
else
EHEC SN9 1,DATE CL,DB+
SET .+.:LD Q .+.:LD Y 1
PHERE CN: Q flig#tTno AND DA+( Q date
EHEC SN9 !NSERT
!NTO C*; CNA9(" DA+(" *NA9(" .A(*,AL =
VA91ES ;flig#tTno" date" customerTname" null =
Co$$it
out.ut;Freservacin terminadaF=8
e*%i-
e*%'
C(r(cteri6(ci)* %e tr(*s(ccio*es
:&serve que en el e/emplo anterior las transacciones leen % escri&en datos' (stas
acciones se utilian como &ase para caracteriar a las transacciones' Los elementos de
datos que lee una transaccin se dice que constitu%en el con"unto de lectura ;#$='
.imilarmente" los elementos de datos que una transaccin escri&e se les denomina el
con"unto de escritura ;%$=' Note que los con/untos de lectura % escritura no tienen que
ser necesariamente dis/untos' La unin de am&os con/untos se le conoce como el
con"unto ase de la transaccin ;&$ Q #$ $ %$='
E0e$.lo <' Los con/untos de lectura % escritura de la transaccin del (/emplo 3'3 son6
#$\Reservacin] Q R CL,DB+'.+.:LD" CL,DB+'*AA S
%$\Reservacin] Q R CL,DB+'.+.:LD" C*'CN:" C*'DA+(" C*'NA9("
C*'.A(*,AL S
:or$(li6(ci)* %el co*ce.to %e tr(*s(cci)*
.ea 'i";x= una operacin '" de la transaccin (i la cual tra&a/a so&re alguna entidad x'
'" Rread" _riteS % '" es una operacin atmica" esto es" se e/ecuta como una unidad
indivisi&le' .e denota por '$i Q $ " 'i" al con/unto de todas las operaciones de la
transaccin (i' +am&i-n" se denota por )i la condicin de terminacin para (i" donde"
)i Ra&ort" commitS'
La transaccin (i es un orden parcial" (i Q R , i" ci S" donde
.umatoria i Q '$i , R)iS
Aara cualesquiera dos operaciones" 'i"" 'i! '$i" si 'i" Q #;x= % 'i! Q %;x= para
cualquier elemento de datos x" entonces" 'i" ci 'i! 'i! ci 'i"
Aara todo 'i" , '$i" 'i" ci )i
E0e$.lo 3' *onsidere una transaccin simple + que consiste de los siguientes
pasos6
Read; x =
Read; * =
x x Y *
<rite; x =
*ommit
La especificacin de su transaccin de acuerdo con la notacin formal que se #a
introducido es la siguiente6
.umatoria Q R #;x=" #;*=" %;x=" + S
ci Q R ;#;x=" %;x==" ;#;*=" %;x==" ;%;x=" +=" ;#;x=" +=" ;#;*=" += S
Note que la relacin de ordenamiento especifica el orden relativo de todas las
operaciones con respecto a la condicin de terminacin' (sto se de&e a la tercera
condicin de la definicin de transaccin' +am&i-n note que no se define el
ordenamiento entre cualquier par de operaciones" esto es" de&ido a que se #a definido
un orden parcial'
,ro.ie%(%es %e l(s tr(*s(ccio*es
La discusin en la seccin previa clarifica el concepto de transaccin' .in em&argo" aun
no se #a dado ninguna /ustificacin para afirmar que las transacciones son unidades de
procesamiento consistentes % confia&les' Las propiedades de una transaccin son las
siguientes6
Atomicidad' .e refiere al #ec#o de que una transaccin se trata como una unidad de
operacin' Aor lo tanto" o todas las acciones de la transaccin se realian o ninguna de
ellas se lleva a ca&o' La atomicidad requiere que si una transaccin se interrumpe por
una falla" sus resultados parciales de&en ser des#ec#os' La actividad referente a
preservar la atomicidad de transacciones en presencia de a&ortos de&ido a errores de
entrada" so&recarga del sistema o )nter &loqueos se le llama recuperacin de
transacciones' La actividad de asegurar la atomicidad en presencia de ca)das del
sistema se le llama recuperacin de ca,das'
Consistencia' La consistencia de una transaccin es simplemente su correctitud' (n
otras pala&ras" una transaccin es un programa correcto que lleva la &ase de datos de
un estado consistente a otro con la misma caracter)stica' De&ido a esto" las
transacciones no violan las restricciones de integridad de una &ase de datos'
Aislamiento' $na transaccin en e/ecucin no puede revelar sus resultados a otras
transacciones concurrentes antes de su commit' 9s a>n" si varias transacciones se
e/ecutan concurrentemente" los resultados de&en ser los mismos que si ellas se
#u&ieran e/ecutado de manera secuencial ;seria&ilidad='
Durabilidad' (s la propiedad de las transacciones que asegura que una ve que una
transaccin #ace su commit" sus resultados son permanentes % no pueden ser
&orrados de la &ase de datos' Aor lo tanto" los D!9. aseguran que los resultados de
una transaccin so&revivirn a fallas del sistema' (sta propiedad motiva el aspecto de
recuperacin de ases de datos" el cual trata so&re como recuperar la &ase de datos a
un estado consistente en donde todas las acciones que #an #ec#o un commit queden
refle/adas'
(n resumen" las transacciones proporcionan una e/ecucin atmica % confia&le en
presencia de fallas" una e/ecucin correcta en presencia de accesos de usuario
m>ltiples % un mane/o correcto de r-plicas ;en el caso de que se soporten='
Ti.os %e Tr(*s(ccio*es
Las transacciones pueden pertenecer a varias clases' Aun cuando los pro&lemas
fundamentales son los mismos para las diferentes clases" los algoritmos % t-cnicas que
se usan para tratarlas pueden ser considera&lemente diferentes' Las transacciones
pueden ser agrupadas a lo largo de las siguientes dimensiones6
Ere(s %e (.lic(ci)*' (n primer lugar" las transacciones se pueden e/ecutar en
aplicaciones no distri&uidas' Las transacciones que operan en datos distri&uidos se les
conocen como transacciones distri&uidas' Aor otro lado" dado que los resultados de
una transaccin que realia un commit son dura&les" la >nica forma de des#acer los
efectos de una transaccin con commit es mediante otra transaccin' A este tipo de
transacciones se les conoce como transacciones compensatorias' Cinalmente" en
am&ientes #eterog-neos se presentan transacciones -eterog.neas so&re los datos'
Tie$.o %e %ur(ci)*' +omando en cuenta el tiempo que transcurre desde que se inicia
una transaccin #asta que se realia un commit o se a&orta" las transacciones pueden
ser de tipo &atc# o en l)nea' (stas se pueden diferencias tam&i-n como transacciones
de corta % larga vida' Las transacciones en l)nea se caracterian por tiempos de
respuesta mu% cortos % por accesar una porcin relativamente peque0a de la &ase de
datos' Aor otro lado" las transacciones de tipo &atc# toman tiempos relativamente
largos % accesan grandes porciones de la &ase de datos'
Estructur(' *onsiderando la estructura que puede tener una transaccin se e1aminan
dos aspectos6 si una transaccin puede contener a su ve su&transacciones o el orden
de las acciones de lectura % escritura dentro de una transaccin'
Estructur( %e tr(*s(ccio*es
Las transacciones planas consisten de una secuencia de operaciones primitivas
encerradas entre las pala&ras clave /e4i* % e*%' Aor e/emplo"
Be4i*Qtr(*s(ctio* Reservacin
' ' '
e*%'
(n las transacciones anidadas" las operaciones de una transaccin pueden ser as)
mismo transacciones' Aor e/emplo"
Be4i*Qtr(*s(ctio* Reservacin
' ' '
Be4i*Qtr(*s(ctio* Vuelo
' ' '
e*%' RVueloS
' ' '
Be4i*Qtr(*s(ctio* Botel
' ' '
e*%'
' ' '
e*%'
$na transaccin anidada dentro de otra transaccin conserva las mismas propiedades
que la de sus padres" esto implica" que puede contener as) mismo transacciones dentro
de ella' (1isten restricciones o&vias en una transaccin anidada6 de&e empear
despu.s que su padre % de&e terminar antes que -l' 9s a>n" el commit de una
su&transaccin es condicional al commit de su padre" en otras pala&ras" si el padre de
una o varias transacciones a&orta" las su&transacciones #i/as tam&i-n sern a&ortadas'
Las transacciones anidadas proporcionan un nivel ms alto de concurrencia entre
transacciones' Xa que una transaccin consiste de varias transacciones" es posi&le
tener ms concurrencia dentro de una sola transaccin' As) tam&i-n" es posi&le
recuperarse de fallas de manera independiente de cada su&transaccin' (sto limita el
da0o a un parte ms peque0a de la transaccin" #aciendo que costo de la recuperacin
sea menor'
(n el segundo punto de vista se considera el orden de las lecturas % escrituras' .i las
acciones de lectura % escritura pueden ser mecladas sin ninguna restriccin" entonces"
a este tipo de transacciones se les conoce como generales' (n contraste" si se
restringe o impone que un dato de&er ser le)do antes de que pueda ser escrito
entonces se tendr transacciones restringidas' .i las transacciones son restringidas a
que todas las acciones de lectura se realicen antes de las acciones de escritura
entonces se les conoce como de dos pasos' Cinalmente" e1iste un modelo de accin
para transacciones restringidas en donde se aplica a>n ms la restriccin de que cada
par cread"_ritee tiene que ser e/ecutado de manera atmica'
E0e$.lo =' Los siguientes son algunos e/emplos de los modelos de transaccin
mencionados antes'
Deneral6 (16 R #;x=" #;*=" %;*=" #;z=" %;x=" %;z=" %;/=" +S
Dos pasos6 (26 R #;x=" #;*=" #;z=" %;x=" %;*=" %;z=" %;/=" +S
Restringida6 (36 R #;x=" #;*=" %;*=" #;z=" %;x=" %;z=" #;/=" %;/=" +S
Restringida % de dos pasos6
(26 R #;x=" #;*=" #;z=" #;/=" %;*=" %;x=" %;z=" %;/=" +S
Accin6 (36 R \#;x=" %;x=]" \#;*=" %;*=]" \#;z=" %;z=]" \#;/=" %;/=]" +S
Note que cada par de acciones encerrado en \ ] se e/ecuta de manera atmica
@8 As.ectos rel(cio*(%os (l .roces($ie*to %e tr(*s(ccio*es
Los siguientes son los aspectos ms importantes relacionados con el procesamiento de
transacciones6
9odelo de estructura de transacciones' (s importante considerar si las transacciones
son planas o pueden estar anidadas'
9ecci)* 1<8 Co*siste*ci( %e l( /(se %e %(tos i*ter*(8
Los algoritmos de control de datos semntico tienen que satisfacer siempre las
restricciones de integridad cuando una transaccin pretende #acer un commit'
Arotocolos de confia&ilidad' (n transacciones distri&uidas es necesario introducir medios
de comunicacin entre los diferentes nodos de una red para garantiar la atomicidad %
dura&ilidad de las transacciones' As) tam&i-n" se requieren protocolos para la
recuperacin local % para efectuar los compromisos ;commit= glo&ales'
Algoritmos de control de concurrencia' Los algoritmos de control de concurrencia de&en
sincroniar la e/ecucin de transacciones concurrentes &a/o el criterio de correctitud' La
consistencia entre transacciones se garantia mediante el aislamiento de las mismas'
Arotocolos de control de r-plicas' (l control de r-plicas se refiere a cmo garantiar la
consistencia mutua de datos replicados' Aor e/emplo se puede seguir la estrategia
readGoneG_riteGall ;R:<A='
!*cor.or(ci)* %el $(*e0(%or %e tr(*s(ccio*es ( l( (r?uitectur( %e u* S"BD
(l monitor de e/ecucin distri&uida consiste de dos mdulos6 (l administrador de
transacciones ;+9= % el despac#ador ;.*=' *omo se puede apreciar en la Cigura 2H" el
administrador de transacciones es responsa&le de coordinar la e/ecucin en la &ase de
datos de las operaciones que realia una aplicacin' (l despac#ador" por otra parte" es
responsa&le de implementar un algoritmo espec)fico de control de concurrencia para
sincroniar los accesos a la &ase de datos'
$n tercer componente que participa en el mane/o de transacciones distri&uidas es el
administrador de recuperacin local cu%a funcin es implementar procedimientos
locales que le permitan a una &ase de datos local recuperarse a un estado consistente
despu-s de una falla'
:i4ur( 25' $n modelo del administrador de transacciones'
Los administradores de transacciones implementan una interfa para los programas de
aplicacin que consiste de los comandos6
Be4i*Qtr(*s(ctio*'
Re(%'
Prite'
Co$$it'
A/ort'
(n la Cigura 24 se presenta la arquitectura requerida para la e/ecucin centraliada de
transacciones' Las modificaciones requeridas en la arquitectura para una e/ecucin
distri&uida se pueden apreciar en las Cigura 24&' (n esta >ltima figura se presentan
tam&i-n los protocolos de comunicacin necesarios para el mane/o de transacciones
distri&uidas'
:i4ur( 2=8 E0ecuci)* ce*tr(li6(%( %e tr(*s(ccio*es'
:i4ur( 2=/8 E0ecuci)* %istri/ui%( %e tr(*s(ccio*es'
Recu.er(ci)* e* Siste$(s Distri/ui%os
$na transaccin de&e e/ecutarse en forma atmica' (s decir" se e/ecutan
completamente todas las instrucciones de la transaccin" o no se e/ecuta ninguna'
Adems" en el caso de e/ecucin concurrente" el efecto de e/ecutar una transaccin
de&e ser el mismo que si se e/ecutara sola en el sistema'
Estructur( %el siste$(8
*uando se tiene un sistema de &ase de datos distri&uido" es muc#o ms dif)cil
garantiar la propiedad de atomicidad de una transaccin' (sto se de&e a que es
posi&le que participen varias localidades en la e/ecucin de una transaccin' (l fallo de
una de estas localidades o el fallo de la l)nea de comunicacin entre ellas" puede dar
como resultado un clculo errneo'
La funcin del gestor de transacciones de un sistema de &ase de datos distri&uidos es
asegurar que la e/ecucin de las distintas transacciones' Los distintos gestores de
transacciones cooperan para e/ecutar las transacciones glo&ales' Aara comprender
cmo puede estructurarse un gestor de este tipo" definiremos un modelo a&stracto para
un sistema de transacciones'
Restor %e tr(*s(ccio*es; cu%a funcin es gestionar la e/ecucin de aquellas
transacciones ;o su&transacciones= que accedan a datos almacenados en esa
localidad' :&servamos que da transaccin puede ser &ien una transaccin local
;es decir" que se e/ecuta slo en esa localidad=" o parte de una transaccin
glo&al ;es decir" que se e/ecuta en varias localidades='
Coor%i*(%or %e tr(*s(ccio*es; cu%a funcin es la de coordinar la e/ecucin de
varias transacciones ;tanto local como glo&al= iniciadas en esa localidad'
La estructura de un gestor de transacciones es similar en muc#os aspectos a la que se
utilia en el caso de un sistema centraliado' *ada gestor de transacciones se encarga
de6
9antener una &itcora para la recuperacin'
Aarticipar en un esquema de control de concurrencia apropiado para coordinar la
e/ecucin en paralelo de las transacciones que se e/ecuten en esa localidad'
*omo su nom&re lo indica" un coordinador de transacciones se encarga de coordinar
todas las transacciones que se inicien en esa localidad' Aara cada una de estas
transacciones" el coordinador de&e6
,niciar la e/ecucin de la transaccin'
Dividir la transaccin en varias su&transacciones" las cuales #a de distri&uir en las
localidades apropiadas para su e/ecucin'
*oordinar la terminacin de la transaccin" %a sea que quede e/ecutada o
a&ordada en todas las localidades'
Ro/uste6
(s una configuracin distri&uida es necesario prever otro tipo de fallos" como pueden
ser6
(l fallo total de una localidad'
La interrupcin de una l)nea de comunicacin'
A-rdida de mensa/es'
Cragmentacin de la red'
Aor tanto" para que el sistema sea ro&usto" es necesario que detecte cualquiera de
estos fallos" que reconfigure el sistema de manera que pueda reanudarse el proceso %
que se recupere una ve que #a%a sido reparado el procesador o la l)nea de
comunicacin afectados'
(n general" no es posi&le distinguir entre los fallos en las l)neas de comunicacin de la
red % de las localidades' Aor tanto" el esquema de reconfiguracin que se adopte de&e
estar dise0ado para que funcione correctamente aun cuando la red quede fragmentada'
(leccin de dos o ms distri&uidores centrales en distintos fragmentos'
Actualiacin de un dato repetido en ms de un fragmento de la red'
+am&i-n es necesario tener cuidado al reintegrar al sistema una localidad o l)nea de
comunicacin separada' *uando una localidad que qued fuera de servicio se
recupera" de&e iniciar un procedimiento de actualiacin de sus ta&las de sistema para
que refle/en los cam&ios que tuvieron lugar mientras esta&a inactiva' .i la localidad
ten)a copias de datos" de&e o&tener los valores actuales de todos ellos % asegurarse de
reci&ir las actualiaciones futuras' (sto es ms complicado de lo que parece" %a que es
posi&le que se actualicen los datos que se estn procesando mientras que el sistema
se recupera'
(s necesario representar a las tareas de recuperacin como una seria de
transacciones' (n este caso" el su&sistema de control de concurrencia % el mane/o de
transacciones puede encargarse de realiar de manera fia&le la reintegracin de la
localidad'
.i se recupera una l)nea de comunicacin interrumpida" es posi&le que se unan de
nuevo dos fragmentos de la red' Dado que la fragmentacin de una red limita las
operaciones que pueden permitirse en algunas localidades" o en todas ellas" es
conveniente enviar un mensa/e a todas ellas informando sin delacin que la l)nea se
recuper'
Co*trol %e co*curre*ci(
(l control de concurrencia trata con los pro&lemas de aislamiento % consistencia del
procesamiento de transacciones' (l control de concurrencia distri&uido de una DD!9.
asegura que la consistencia de la &ase de datos se mantiene en un am&iente
distri&uido multiusuario' .i las transacciones son internamente consistentes" la manera
ms simple de lograr este o&/etivo es e/ecutar cada transaccin sola" una despu-s de
otra' .in em&argo" esto puede afectar grandemente el desempe0o de un DD!9. dado
que el nivel de concurrencia se reduce al m)nimo' (l nivel de concurrencia" el n>mero
de transacciones activas" es pro&a&lemente el parmetro ms importante en sistemas
distri&uidos' Aor lo tanto" los mecanismos de control de concurrencia &uscan encontrar
un &alance entre el mantenimiento de la consistencia de la &ase de datos % el
mantenimiento de un alto nivel de concurrencia'
.i no se #ace un adecuado control de concurrencia" se pueden presentar dos
anomal)as' (n primer lugar" se pueden perder actualiaciones provocando que los
efectos de algunas transacciones no se refle/en en la &ase de datos' (n segundo
t-rmino" pueden presentarse recuperaciones de informacin inconsistentes'
(n este cap)tulo se #ace la suposicin de que el sistema distri&uido es completamente
confia&le % no e1perimente falla alguna'
Teor5( %e l( seri(/ili%(%
$na calendarizacin ;sc-edule=" tam&i-n llamado una -istoria" se define so&re un
con/unto de transacciones ( Q R (1" (2" '''" (n S % especifica un orden entrelaado de la
e/ecucin de las operaciones de las transacciones' La calendariacin puede ser
especificada como un orden parcial so&re ('
E0e$.lo 1' *onsidere las siguientes tres transacciones6
(16 Read; x = (26 <rite; x = (36 Read; x = <rite; x = <rite; * = Read; * = *ommit
Read; z = Read; z = *ommit *ommit $na calendariacin de las acciones de las tres
transacciones anteriores puede ser6
01 Q R %2;x=" #1;x=" #3;x=" %1;x=" +1" %2;*=" #3;*=" #2;z=" +2" #3;z=" +3 S
Dos operaciones 'i";x= % '!l;x= ;i % ! no necesariamente distintos= que accesan el
mismo dato de la &ase de datos x se dice que estn en con1licto si al menos una de
ellas es una escritura' De esta manera" las operaciones de lectura no tienen conflictos
consigo mismas' Aor tanto" e1isten dos tipos de conflictos read2/rite ;o /rite2read= %
/rite2/rite' Las dos operaciones en conflicto pueden pertenecer a la misma transaccin
o a transacciones diferentes' (n el >ltimo caso" se dice que las transacciones tienen
con1licto' De manera intuitiva" la e1istencia de un conflicto entre dos operaciones indica
que su orden de e/ecucin es importante' (l orden de dos operaciones de lectura es
insignificante'
$na calendarizacin completa define el orden de e/ecucin de todas las operaciones en
su dominio' Cormalmente" una calendariacin completa $(c definido so&re un
con/unto de transacciones ( Q R (1" (2" '''" (n S es un orden parcial $(c Q R (" c( S en
donde
.umatoria ( Q $i i " para todos los i Q 1" 2" '''" n
c( i ci " para todos los i Q 1" 2" '''" n
Aara cualesquiera dos operaciones en conflicto 'i" % '!l (" 'i" c( '!l
'!l c( 'i"
La primera condicin esta&lece simplemente que el dominio de la calendariacin es la
unin de los dominios de las transacciones individuales' La segunda condicin define la
relacin de ordenamiento como un supercon/unto de la relacin de ordenamiento de
transacciones individuales' (sto mantiene el ordenamiento de las operaciones dentro
de cada transaccin' La condicin final define el orden de e/ecucin entre dos
operaciones en conflicto'
E0e$.lo 2' *onsidere las tres transacciones del (/emplo 1" una posi&le calendariacin
completa est dada por la siguiente grfica dirigida ac)clica ;DAD='
$na calendarizacin se define como un prefi/o de una calendariacin completa' $n
prefi/o de un orden parcial se define como sigue' Dado un orden parcial
Las primeras dos condiciones definen a PL como una restriccin de P en el dominio L"
en donde las relaciones de ordenamiento en P se mantienen por PL' La >ltima condicin
indica que para cualquier elemento de L" todos sus predecesores en de&en ser
incluidos tam&i-n en L'
E0e$.lo 3' La siguiente calendariacin es un prefi/o de la calendariacin del (/emplo
2'
.i en una calendariacin $" las operaciones de varias transacciones no estn
entrelaadas" esto es" si las operaciones de una transaccin ocurren de manera
consecutiva" entonces se dice que la calendariacin es serial' .i cada transaccin es
consistente ;o&edece las reglas de integridad=" entonces la &ase de datos se garantia
ser consistente al final de la calendariacin serial' La #istoria asociada a este tipo de
calendariacin se le conoce como serial.
E0e$.lo <' La siguiente es una #istoria serial para el (/emplo 1'
0$ Q R %2;x=" %2;*=" #2;z=" +2" #1;x=" %1;x=" +1" #3;x=" #3;*=" #3;z=" +3 S
Las transacciones se e/ecutan de manera concurrente" pero el efecto neto de la #istoria
resultante so&re la &ase de datos es e3ui4alente a alguna -istoria serial' !asada en la
relacin de precedencia introducida por el orden parcial" es posi&le discutir la
equivalencia de diferentes calendariaciones con respecto a sus efectos so&re la &ase
de datos'
Dos calendariaciones" $1 % $2" definidas so&re el mismo con/unto de transacciones ("
se dice que son e3ui4alentes si para cada par de operaciones en conflicto 'i" % '!l ;i
!=" cada ve que 'i" c1 '!l" entonces" 'i" c2 '!l' A esta relacin se le conoce como
e3ui4alencia de con1lictos puesto que define la equivalencia de dos calendariaciones
en t-rmino del orden de e/ecucin relativo de las operaciones en conflicto en ellas'
$na calendariacin $ se dice que es serializale" si % solamente si" es equivalente por
conflictos a una calendariacin serial'
E0e$.lo 5' Las siguientes calendariaciones no son equivalentes por conflicto6
0$ Q R %2;x=" %2;*=" #2;z=" +2" #1;x=" %1;x=" +1" #3;x=" #3;*=" #3;z=" +3 S
01 Q R %2;x=" #1;x=" #3;x=" %1;x=" +1" %2;*=" #3;*=" #2;z=" +2" #3;z=" +3 S
Las siguientes calendariaciones son equivalentes por conflictos8 por lo tanto 02 es
serialia&le6
0$ Q R %2;x=" %2;*=" #2;z=" +2" #1;x=" %1;x=" +1" #3;x=" #3;*=" #3;z=" +3 S
02 Q R %2;x=" #1;x=" %1;x=" +1" #3;x=" %2;*=" #3;*=" #2;z=" +2" #3;z=" +3 S
La funcin primaria de un controlador de concurrencia es generar una calendariacin
serialia&le para la e/ecucin de todas las transacciones' (l pro&lema es" entonces"
desarrollar algoritmos que garanticen que >nicamente se generan calendariaciones
serialia&les'
Seri(/ili%(% e* S"BD %istri/ui%os
(n &ases de datos distri&uidas es necesario considerar dos tipos de #istoria para poder
generar calendariaciones serialia&les6 la calendariacin de la e/ecucin de
transacciones en un nodo conocido como calendarizacin local % la calendarizacin
gloal de las transacciones en el sistema' Aara que las transacciones glo&ales sean
serialia&les se de&en satisfacer las siguientes condiciones6
cada #istoria local de&e ser serialia&le" %
dos operaciones en conflicto de&en estar en el mismo orden relativo en todas las
#istorias locales donde las operaciones aparecen /untas'
La segunda condicin simplemente asegura que el orden de serialiacin sea el mismo
en todos los nodos en donde las transacciones en conflicto se e/ecutan /untas'
E0e$.lo =' *onsidere las siguientes tres transacciones6
(16 Read; x = (26 Read; x = 1 1 Y H 1 1 h H <rite; x = <rite; x = *ommit *ommit
Las siguientes #istorias locales son individualmente serialia&les ;de #ec#o son
seriales=" pero las dos transacciones no son glo&almente serialia&les'
501 Q R #1;x=" %1;x=" +1" #2;x=" %2;x=" +2 S
502 Q R #2;x=" %2;x=" +2" #1;x=" %1;x=" +1 S
T(3o*o$5( %e los $ec(*is$os %e co*trol %e co*curre*ci(
(l criterio de clasificacin ms com>n de los algoritmos de control de concurrencia es el
tipo de primitiva de sincroniacin' (sto resulta en dos clases6 aquellos algoritmos que
estn &asados en acceso mutuamente e1clusivo a datos compartidos ;candados= %
aquellos que intentar ordenar la e/ecucin de las transacciones de acuerdo a un
con/unto de reglas ;protocolos=' .in em&argo" esas primitivas se pueden usar en
algoritmos con dos puntos de vista diferentes6 el punto de vista pesimista que considera
que muc#as transacciones tienen conflictos con otras" o el punto de vista optimista que
supone que no se presentan muc#os conflictos entre transacciones'
Los algoritmos pesimistas sincronian la e/ecucin concurrente de las transacciones en
su etapa inicial de su ciclo de e/ecucin' Los algoritmos optimistas retrasan la
sincroniacin de las transacciones #asta su terminacin' (l grupo de algoritmos
pesimistas consiste de algoritmos asados en candados" algoritmos asados en
ordenamiento por estampas de tiempo % algoritmos -,ridos' (l grupo de los algoritmos
optimistas se clasifican por &asados en candados % &asados en estampas de tiempo
;Ver' Cigura 2P='
:i4ur( 2>8 Cl(si-ic(ci)* %e los (l4orit$os %e co*trol %e co*curre*ci('
Al4orit$os /(s(%os e* c(*%(%os
(n los algoritmos &asados en candados" las transacciones indican sus intenciones
solicitando candados al despac#ador ;llamado el administrador de candados=' Los
candados son de lectura ;rl=" tam&i-n llamados compartidos" o de escritura ;/l="
tam&i-n llamados exclusi4os' *omo se aprecia en la ta&la siguiente" los candados de
lectura presentan conflictos con los candados de escritura" dado que las operaciones
de lectura % escritura son incompati&les'
rl /l rl si no /l no no (n sistemas &asados en candados" el despac#ador es un
administrador de candados ;L9=' (l administrador de transacciones le pasa al
administrador de candados la operacin so&re la &ase de datos ;lectura o escritura= e
informacin asociada" como por e/emplo el elemento de datos que es accesado % el
identificador de la transaccin que est enviando la operacin a la &ase de datos' (l
administrador de candados verifica si el elemento de datos que se quiere accesar %a #a
sido &loqueado por un candado' .i candado solicitado es incompati&le con el candado
con que el dato est &loqueado" entonces" la transaccin solicitante es retrasada' De
otra forma" el candado se define so&re el dato en el modo deseado % la operacin a la
&ase de datos es transferida al procesador de datos' (l administrador de transacciones
es informado luego so&re el resultado de la operacin' La terminacin de una
transaccin li&era todos los candados % se puede iniciar otra transaccin que esta&a
esperando el acceso al mismo dato'
C(*%(%os %e %os -(ses A2,9B
(n los candados de dos fases una transaccin le pone un candado a un o&/eto antes
de usarlo' *uando un o&/eto es &loqueado con un candado por otra transaccin" la
transaccin solicitante de&e esperar' *uando una transaccin li&era un candado" %a no
puede solicitar ms candados' As) una transaccin que utilia candados de dos fases
se comporta como en la Cigura 23' (n la primera fase solicita % adquiere todos los
candados so&re los elementos que va a utiliar % en la segunda fase li&era los
candados o&tenidos uno por uno'
La importancia de los candados de dos fases es que se #a demostrado de manera
terica que todos las calendariaciones generadas por algoritmos de control de
concurrencia que o&edecen a los candados de dos fases son serialia&les'
Auede suceder que si una transaccin a&orta despu-s de li&erar un candado" otras
transacciones que #a%an accesado el mismo elemento de datos a&orten tam&i-n
provocando lo que se conoce como aortos en cascada' Aara evitar lo anterior" los
despac#adores para candados de dos fases implementan lo que se conoce como los
candados estrictos de dos 1ases en los cuales se li&eran todos los candados /untos
cuando la transaccin termina ;con commit o a&orta=' (l comportamiento anterior se
muestra en la Cigura 25'
:i4ur( 2@8 Rr2-ic( %el uso %e los c(*%(%os %e %os -(ses'
:i4ur( 2C8 Co$.ort($ie*to %e los c(*%(%os %e %os -(ses estrictos8
C(*%(%os %e %os -(ses ce*tr(li6(%os
(n sistemas distri&uidos puede que la administracin de los candados se dedique a un
solo nodo del sistema" por lo tanto" se tiene un despac#ador central el cual reci&e todas
las solicitudes de candados del sistema' (n la Cigura 30 se presenta la estructura de la
comunicacin de un administrador centraliado de candados de dos fases' La
comunicacin se presenta entre el administrador de transacciones del nodo en donde
se origina la transaccin ;llamado el coordinador +9=" el administrador de candados en
el nodo central % los procesadores de datos ;DA= de todos los nodos participantes' Los
nodos participantes son todos aquellos en donde la operacin se va a llevar a ca&o'
:i4ur( 308 Co$u*ic(ci)* e* u* (%$i*istr(%or ce*tr(li6(%o %e c(*%(%os %e %os
-(ses estrictos8
La cr)tica ms fuerte a los algoritmos centraliados es el Fcuello de &otellaF que se
forma alrededor del nodo central reduciendo los tiempos de respuesta de todo el
sistema' 9s a>n" su disponi&ilidad es reducida a cero cuando se presentan fallas en el
nodo central'
C(*%(%os %e %os -(ses %istri/ui%os
(n los candados de dos fases distri&uidos se presentan despac#adores en cada nodo
del sistema' *ada despac#ador mane/a las solicitudes de candados para los datos en
ese nodo' $na transaccin puede leer cualquiera de las copias replicada del elemento
x" o&teniendo un candado de lectura en cualquiera de las copias de x' La escritura
so&re x requiere que se o&tengan candados para todas las copias de x' La
comunicacin entre los nodos que cooperan para e/ecutar una transaccin de acuerdo
al protocolo de candados distri&uidos de dos fases se presenta en la Cigura 31' Los
mensa/es de solicitud de candados se env)an a todos los administradores de candados
que participan en el sistema' Las operaciones son pasadas a los procesadores de
datos por los administradores de candados' Los procesadores de datos env)a su
mensa/e de Ffin de operacinF al administrador de transacciones coordinador'
Al4orit$os /(s(%os e* est($.(s %e tie$.o
A diferencia de los algoritmos &asados en candados" los algoritmos &asados en
estampas de tiempo no pretenden mantener la seria&ilidad por e1clusin mutua' (n
lugar de eso" ellos seleccionan un orden de serialiacin a priori % e/ecutan las
transacciones de acuerdo a ellas' Aara esta&lecer este ordenamiento" el administrador
de transacciones le asigna a cada transaccin (i una estampa de tiempo >nica ts; (i =
cuando -sta inicia' $na estampa de tiempo es un identificador simple que sirve para
identificar cada transaccin de manera >nica' :tra propiedad de las estampas de
tiempo es la monoticidad" esto es" dos estampas de tiempo generadas por el mismo
administrador de transacciones de&en ser monotonicamente crecientes' As)" las
estampas de tiempo son valores derivados de un dominio totalmente ordenado'
:i4ur( 318 Co$u*ic(ci)* e* c(*%(%os %e %os -(ses %istri/ui%os'
(1isten varias formas en que las estampas de tiempo se pueden asignar' $n m-todo es
usar un contador glo&al monotnicamente creciente' .in em&argo" el mantenimiento de
contadores glo&ales es un pro&lema en sistemas distri&uidos' Aor lo tanto" es preferi&le
que cada nodo asigne de manera autnoma las estampas de tiempos &asndose en un
contador local' Aara o&tener la unicidad" cada nodo le agrega al contador su propio
identificador' As)" la estampa de tiempo es un par de la forma6
ccontador local" identi1icador de nodoe
Note que el identificador de nodo se agrega en la posicin menos significativa" de
manera que" -ste sirve solo en el caso en que dos nodos diferentes le asignen el
mismo contador local a dos transacciones diferentes'
(l administrador de transacciones asigna tam&i-n una estampa de tiempo a todas las
operaciones solicitadas por una transaccin' 9s a>n" a cada elemento de datos x se
le asigna una estampa de tiempo de escritura" /ts;x=" % una estampa de tiempo de
lectura" rts;x=8 sus valores indican la estampa de tiempo ms grande para cualquier
lectura % escritura de x" respectivamente'
(l ordenamiento de estampas de tiempo ;+:= se realia mediante la siguiente regla6
Re4l( TO6 dadas dos operaciones en conflicto" 'i" % '!l" perteneciendo a las
transacciones (i % (!" respectivamente" 'i" es e/ecutada antes de '!l" si %
solamente si" ts;(i= c ts;(!=' (n este caso (i se dice ser una transaccin m6s 4ie"a %
(! se dice ser una transaccin m6s "o4en'
Dado este orden" un conflicto entre operaciones se puede resolver de la siguiente
forma6
for #i;x= do begin if ts;(i= c /ts; x = then re"ect #i;x= else accept #i;x= rts;x= ts;(i=
endfor %i;x= do begin if ts;(i= c rts;x= and ts;(i= 7 /ts;x= then re"ect %i;x= else accept
%i;x= /ts;x= ts;(i= end. La accin de rec#aar una operacin" significa que la
transaccin que la envi necesita reiniciarse para o&tener la estampa de tiempo ms
reciente del dato e intentar #acer nuevamente la operacin so&re el dato'
Or%e*($ie*to co*serv(%or .or est($.(s %e tie$.o
(l ordenamiento &sico por estampas de tiempo trata de e/ecutar una operacin tan
pronto como se reci&e una operacin' As)" la e/ecucin de las operaciones es
progresiva pero pueden presentar muc#os reinicios de transacciones' (l ordenamiento
conservador de estampas de tiempo retrasa cada operacin #asta que e1ista la
seguridad de que no ser reiniciada' La forma de asegurar lo anterior es sa&iendo que
ninguna otra operacin con una estampa de tiempo menor puede llegar al
despac#ador' $n pro&lema que se puede presentar al retrasar las operaciones es que
esto puede inducir la creacin de )nter &loqueos ;deadloc!s='
Or%e*($ie*to .or est($.(s %e tie$.o $#lti.les
Aara prevenir la formacin de )nter &loqueos se puede seguir la estrategia siguiente' Al
#acer una operacin de escritura" no se modifican los valores actuales sino se crean
nuevos valores' As)" puede #a&er copias m>ltiples de un dato' Aara crear copias >nicas
se siguen las siguientes estrategias de acuerdo al tipo de operacin de que se trate6
$na operacin de lectura #i;x= se traduce a una operacin de lectura de x de una sola
versin encontrando la versin de x" digamos x4" tal que" ts;x4= es la estampa de
tiempo ms grande que tiene un valor menor a ts;(i='
$na operacin de escritura %i;x= se traduce en una sola versin" %i;x/=" % es aceptada
si el despac#ador no #a procesado cualquier lectura #";xr=" tal que" ts;(i= c ts;xr= c
ts;("=
Co*trol %e co*curre*ci( o.ti$ist(
Los algoritmos de control de concurrencia discutidos antes son por naturalea
pesimistas' (n otras pala&ras" ellos asumen que los conflictos entre transacciones son
mu% frecuentes % no permiten el acceso a un dato si e1iste una transaccin conflictiva
que accesa el mismo dato' As)" la e/ecucin de cualquier operacin de una transaccin
sigue la secuencia de fases6 validacin ;V=" lectura ;R=" cmputo ;*= % escritura ;<= ;ver
Cigura 4'4a=' Los algoritmos optimistas" por otra parte" retrasan la fase de validacin
/usto antes de la fase de escritura ;ver Cigura 32=' De esta manera" una operacin
sometida a un despac#ador optimista nunca es retrasada'
Las operaciones de lectura" cmputo % escrita de cada transaccin se procesan
li&remente sin actualiar la &ase de datos corriente' *ada transaccin inicialmente #ace
sus cam&ios en copias locales de los datos' La fase de validacin consiste en verificar
si esas actualiaciones conservan la consistencia de la &ase de datos' .i la respuesta
es positiva" los cam&ios se #acen glo&ales ;escritos en la &ase de datos corriente=' De
otra manera" la transaccin es a&ortada % tiene que reiniciar
:i4ur( 328 :(ses %e l( e0ecuci)* %e u*( tr(*s(cci)* (B .esi$ist(; /B o.ti$ist(8
Los mecanismos optimistas para control de concurrencia fueron propuestos
originalmente con el uso de estampas de tiempo' .in em&argo" en este tipo de
mecanismos las estampas de tiempo se asocian >nicamente con las transacciones" no
con los datos' 9s a>n" las estampas de tiempo no se asignan al inicio de una
transaccin sino /ustamente al inicio de su fase de validacin' (sto se de&e a que las
estampas se requieren >nicamente durante la fase de validacin'
*ada transaccin (i se su&divide en varias su&transacciones" cada una de las cuales
se puede e/ecutar en nodos diferentes' .ea (i" una su&transaccin de (i que se e/ecuta
en el nodo "' .upongamos que las transacciones se e/ecutan de manera independiente
% ellas alcanan el fin de sus fases de lectura' A todas las su&transacciones se les
asigna una estampa de tiempo al final de su fase de lectura' Durante la fase de
validacin se realia una prue&a de validacin" si una transaccin falla" todas las
transacciones se rec#aan'
La prue&a de validacin se realia con una de las siguientes reglas6
.i todas las transacciones (!" tales que" ts; (! = c ts; (i" =" #an terminado su fase de
escritura antes que (i" #a iniciado su fase de lectura entonces la validacin tiene -1ito'
(n este caso la e/ecucin de las transacciones es completamente serial como se
muestra en la Cigura Pa'
.i e1iste alguna transaccin (!" tal que" ts; (! = c ts; (i" = % la cual completa su fase de
escritura mientras (i" est en su fase de lectura" entonces" la validacin tiene -1ito si
%$;(! = #$;(i" = Q ' (n este caso" las fases de lectura % escritura se traslapan"
como se muestra en la Cigura P&" pero (i" no lee datos que son escritos por (!'
.i e1iste alguna transaccin (!" tal que" ts; (! = c ts; (i" = % la cual completa su fase de
lectura antes que (i" termine su fase de lectura" entonces" la validacin tiene -1ito si
%$;(! = #$;(i" = Q % %$;(! = %$;(i" = Q ' (n este caso" las fases de lectura se
traslapan" como se muestra en la Cigura 33" pero las transacciones no accesan datos
comunes'
:i4ur( 338 C(sos %i-ere*tes %e l(s .rue/(s %e v(li%(ci)* .(r( co*trol %e
co*curre*ci( o.ti$ist(8
9ecci)* 158 C(t2lo4o
Co*ce.tos /2sicos
(1iste un elemento denominado *atlogo" que es imprescindi&le conocer si se quiere
llegar a ser e1perto en el mane/o de cualquier .D!D ;.istema de gestin de &ase de
datos=' (l catlogo guarda la informacin del esquema de la &ase de datos % es gracias
a -l que se pueden compartir los esquemas de dominio" % definir las relaciones de
integridad % de datos'
*omprender la estructura del catlogo" de&e de ser un o&/etivo de todo administrador %
analista que quiera conocer el comportamiento de la &ase de datos' Aara poder llegar a
solucionar pro&lemas de definicin de datos" de rendimiento u optimiacin es
necesario conocer las caracter)sticas del motor" la forma como se comporta en
determinada plataforma e incluso sus deficiencias'
(n un sistema distri&uido" el catlogo del sistema incluir no solo los datos usuales del
catlogo con relacin a las varrels &ase" vistas" autoriaciones" etc'" sino tam&i-n toda
la informacin de control necesaria para permitir que el sistema proporcione la
independencia de u&icacin" fragmentacin % replicacin necesaria' .urge entonces un
interrogante JDnde % cmo de&e ser almacenado el propio catlogoK' A continuacin
se muestran las posi&ilidades6
Ce*tr(li6(%o
(l catlogo total es almacenado e1actamente una ve en un sitio central'
Co$.let($e*te re.lic(%o
(l catlogo total es almacenado por completo en cada uno de los sitios'
Divi%i%o
*ada sitio mantiene su propio catlogo de los o&/etivos que estn almacenados en ese
sitio' (l catlogo total es la unin de todos los catlogos locales dis/untos'
Co$/i*(ci)* %e ce*tr(li6(%o ' %ivi%i%o
*ada sitio mantiene su propio catlogo local" como en el punto 2'28 adems" un >nico
sitio central mantiene una copia unificada de todos esos catlogos locales" como en
punto 2'2
*ada uno de los enfoques mencionados anteriormente" tiene sus propios pro&lemas' (l
enfoque centraliado viola el o&/etivo de ?no dependencia de un sitio central@' (l
enfoque completamente replicado sufre una p-rdida de autonom)a" %a que cada
actualiacin del catlogo tiene que ser propagada por cada uno de los sitios' (l
enfoque dividido eleva el costo de operaciones que no son locales' La com&inacin de
centraliado % dividido es ms eficiente que el dividido" pero viola nuevamente el
o&/etivo de no dependencia de un sitio central" por lo tanto" en la prctica los sistemas
no usan ninguno de los enfoque antes mencionados' A manera de e/emplo descri&imos
el enfoque usado en Rh ;donde Rh es un prototipo tomado como referencia='
Aara e1plicar la forma en que est estructurado el catlogo de Rh" es necesario primero
decir algo acerca del *o$/r($ie*to %e o/0etos e* RS' (ste nom&ramiento es
importante para los sistemas distri&uidos en general" %a que la posi&ilidad de que los
sitios distintos W % X" puedan tener un o&/eto" digamos una varrel llamada A" implica
que ser)a necesario alg>n mecanismo V por lo general la calificacin por nom&re de
sitio V para ?eliminar la am&igiedad@ ;es decir" garantiar la unicidad de nom&res a
nivel de sistema=' Aor lo tanto" lo que se necesita es un medio para transformar los
nom&res conocidos por los usuarios a sus nom&res correspondientes conocidos por el
sistema'
(ste es el enfoque de Rh para este pro&lema' Rh primero distingue entre el nom&re
com>n de un o&/eto" que es el nom&re por el cual los usuarios #acen normalmente
referencia al o&/eto ; por e/emplo una instruccin .(L(*+ de .7L=" % su *o$/re (
*ivel %e siste$(" que es identificador interno glo&almente >nico para el o&/eto' Los
nom&res a nivel del sistema tienen cuatro componentes6
,D del creador ;el ,D del usuario que cre el o&/eto=
,D del sitio del creador ;el ,D del sitio en el cual se dio la operacin *R(A+(=
Nom&re local;el nom&re del o&/eto sin calificativos= %
,D del sitio de nacimiento ;el ,D del sitio en el cual se almacen inicialmente el
o&/eto='
Los ,Ds de usuario son >nicos dentro del sito en el cual % los ,Ds del sitio son >nicos a
nivel glo&al' Aor lo tanto" el nom&re a nivel de sistema de
9AR,: j N(<AX:R[ ' .+A+. L:NDR(.
Denota un o&/eto" tal ve una varrel &ase" con el nom&re local .+A+." creada por el
usuario 9ario en el sitio Nueva Xor^ % almacenada inicialmente en el sitio Londres'
Este 4(r(*ti6(%o ?ue este *o$/re *u*c( c($/i(r2; ni auque el o&/eto migre a otro
sitio'
Los usuarios se refieren normalmente a los o&/etos por su nom&re com>n' (ste nom&re
se usa sin calificativos" %a sea el componente ?nom&re local@ del nom&re a nivel
sistema ;.+A+. en el e/emplo anterior= o un sinnimo para ese nom&re a nivel de
sistema" definido por medio de la instruccin especial de .7L" Rh *R(A+( .XN:NX9'
(n el e/emplo en cuestin6
*R(A+( .XN:NX9 9.+A+. C:R 9AR,: N$(VAX:R[' .+A+. j L:NDR(.8
A#ora el usuario puede decir ;e/emplo=
.(L(*+ k CR:9 .+A+.k8
:
.(L(*+ k CR:9 9.+A+.k8
(n el primer caso ;al usar el nom&re local=" el sistema infiere el nom&re a nivel sistema
suponiendo todos los valores predeterminados o&vios8 es decir que el o&/eto fue creado
por este usuario" que fue creado en este sitio % que fue guardado inicialmente en este
sitio'
(n el segundo caso ;al usar el sinnimo=" el sistema determina el nom&re a nivel de
sistema consultando la ta&la sinnimos relevante' Las ta&las del sinnimos pueden ser
vistas como el primer componente del catlogo8 cada sitio mantiene un con/unto de
esas ta&las para los usuarios que se sa&e que estn en ese sitio % transforma los
sinnimos conocidos para ese usuario en los nom&res a nivel de sistema
correspondientes' Adems en las ta&las de sinnimos cada sitio mantiene6
1' $na entrada de catlogo para cada o&/eto nacido en este sitio8
2' $na entrada de catlogo para cada o&/eto almacenado actualmente en ese
sitio'
.upongamos que a#ora el usuario emite una solicitud que #ace referencia al sinnimo
9.+A+.' Arimero" el sistema &usca el nom&re a nivel sistema correspondiente en la
ta&la de sinnimos adecuada ;una simple &>squeda local=" A#ora %a sa&e el sitio de
nacimiento;es decir Londres en el e/emplo= % puede consultar el catlogo de Londres ;%
se supone" de manera general" que ser una &>squeda renota8 el primer acceso
remoto=' (l catlogo de Londres contendr una entrada para ese o&/eto gracias al
punto 1 anterior' .i el o&/eto est todav)a en Londres %a #a&r sido encontrado' .in
em&argo" si el o&/eto #a emigrado ;digamos= a Los Ongeles" entonces la entrada de
catlogo en Londres lo dir % por lo tanto" el sistema podr a#ora consultar al catlogo
de Los Ongeles ;segundo acceso remoto=' X el catlogo de los Ongeles contendr una
entrada para los o&/etos gracias al punto 2 anterior' Aor lo tanto" #a sido encontrado en"
como m1imo" dos accesos remotos'
Adems" si el o&/eto emigra nuevamente" digamos a .an Crancisco" entonces el
sistema6
,nsertar una entrada en el catlogo de .an Crancisco8
!orrar la entrada del catlogo de los Ongeles8
Actualiar la entrada del catlogo de Londres para que se apunte a .an Crancisco en
lugar de Los Ongeles'
(l efecto neto es que el o&/eto todav)a puede ser encontrado en dos accesos remotos"
como m1imo' X este es un esquema completamente distri&uido8 no #a% un sitio con
catlogo central % no #a% punto alguno de falla dentro del sistema'
Re-ere*ci(s
D:R.(X" A" Budic^a :racle3' Dise0o de &ases de datos con $9L' I' (d' :racle
press' 1555'
[R:(N[("D' Arocesamiento de &ases de datos' Cundamentos" dise0o e
implementacin' 2003' (d' Aearson (ducation' :ctava edicin
.,LV(R.*BA+a" [ort# % .udars#an" Cundamentos de &ases de datos" (d 9acDra_G
Bill' *uarta edicin
1*i%(% 28 Bo%e4(s %e %(tos
C(.5tulo <8 DiseDo %e /o%e4(s %e %(tos
9ecci)* 1=8 !*tro%ucci)*
Bo% en d)a se #a&la muc#o del tema de Data <are#ousing o !odega de Datos" que
permite la utiliacin de los datos de una :rganiacin o un con/unto de ellas" como
soporte en la toma de decisiones'
(st informacin puede provenir de m>ltiples fuentes #eterog-neas no slo en
am&iente de computacin sino tam&i-n en formato" am&iente de captura" significado"
etc" informacin toda esta indispensa&le en su interpretacin % correcta utiliacin % que
es lo que se conoce como 9etadatos'
La funcin de una !odega de Datos es la de entregar la informacin correcta a la gente
indicada en el momento adecuado en el formato correcto'
*untos tornillos se vendieron el a0o pasado en el >ltimo trimestreK 7uienK (n que
Departamentos o ciudadesK *uanto fueron las ventas totales en este trimestreK *ules
campa0as de pu&licidad dieron el me/or resultadoK Las ventas se incrementaron como
resultado de las campa0as de las >ltimas semanasK *ules son las caracter)sticas de
un cliente t)picoK *ules #an sido los valores #istricos de la ran cida" para un
con/unto de compa0)as que conforman un poolK *mo es la composicin de las
cuentas del presupuestoK
(stas son las preguntas a las que la !odega de Datos tiene respuestas' .in em&argo
vale la pena aclarar que !odega de Datos no es un pro%ecto de implementacin de una
#erramienta de mercadeo' (s una forma de operar dentro de una organiacin'
,nicia con el proceso de recoleccin" transformacin % lanamiento de los datos" que se
conoce como el proceso de .cru&&ing' Almacena los metadatos en lo que se conoce
como repositorio % a partir de a#) permite que la informacin se analice % se presente
en la forma que necesita el usuario'
Los datos pueden ser e1tractados de grandes aplicaciones en 9ainframe o de m>ltiples
fuentes distri&uidas" de am&iente *E." en am&ientes dis)miles' $sualmente los datos
son transformados ;reformateados o agregados= antes de ser colocados en la !odega
de Datos'
La pro&lemtica de !odega de Datos difiere de compa0)a en compa0)a' $na puede
necesitar una !ase de Datos centraliada" mientras que una organiacin distri&uida a
lo largo del pa)s o del mundo puede necesitar de una gran !ase de Datos distri&uida'
9ecci)* 1>8 Co*strucci)* ' $(*e0o %e u*( /o%e4( %e %(tos
.i la organiacin tiene muc#os datos de aplicaciones tradicionales % est &uscando
una solucin para transferir grandes vol>menes de datos de un 9ainframe" se necesita
una solucin de !odega de Datos de fuera industrial para #acer transferencia &ruta de
datos diferentes de fuentes en 9ainframes a !odegas de Datos en D!2 o en $ni1'
.e requiere de alguna #erramienta para po&lar % actualiar la !odega de Datos que
realice e1traccin de datos a altas velocidades % altos vol>menes de datos" traslade %
distri&u%a de m>ltiples % diferentes !ases de Datos en 9ainframes en la !:D(DA %
o/al elimine la necesidad de escri&ir comple/os programas % rutinas de conversin'
$sualmente estas #erramientas tienen #a&ilidades grficas % proveen de criterio de
seleccin fcilmente puede llevar los datos al formato requerido en la !ase de Datos'
Aor definicin !odega de Datos es una coleccin de datos actualiada" por lo tanto la
#erramienta utiliada de&e completar las actualiaciones en el momento'
Distri&ucin de datos es el proceso de mover los datos e1tractados % trasladarlos a la
!odega de Datos o a diferentes !ases de Datos en cualquier plataforma en cualquier
sitio' $na #erramienta de distri&ucin define !ase de Datos :&/etivo" informacin de
conversin % entrada % salida de datos' $na ve creadas estas definiciones" pueden ser
salvadas para ser reutiliadas" editadas o e/ecutadas posteriormente'
Algunas soluciones de !odega de Datos requieren de enrutadores de datos o rutinas
de sincroniacin mas sofisticadas a trav-s de am&ientes m>ltiples % #eterog-neos'
(ste tipo de proceso puede necesitar un movimiento vi direccional entre las plataformas
9ainframe % *E. para mantener actualiada % sincroniada la !ase de Datos en todas
las localidades
Leccin 18. Construccin del Data Warehouse.
*omo todo pro%ecto informtico" el pro%ecto de &odega de datos consta de los
siguientes pasos'
,l(*e(ci)*
La fase define la metodolog)a a utiliar' *omo se muestra en el modelo de &ases de
datos avanada" e1iste el enfoque +opGDo_n ;De Arri&a a&a/o=" % !ottomGup ;De a&a/o
a arri&a= o una com&inacin de estas dos'
+odo pro%ecto de sistemas" requiere una metodolog)a de desarrollo del producto' (n
general" se usa el m-todo de anlisis % dise0o estructurado % el m-todo del desarrollo
en espiral'
Re?ueri$ie*tos
(specificacin de lo que se desean lograr del data _are#ouse' *omenando por la
vista de usuario" para que se quiere desarrollar la &odega' (n el dise0o" se puede
tra&a/ar dos modelos diferentes" &odegas &asadas en el 9odelo (ntidad Relacin o
&odegas dise0adas con el modelo copo de nieve ;sno_fla^e='
(n am&os casos" de&e dise0arse las ta&las que administran los datos del proceso que
se desea revisar ;produccin" ventas" compras=" llamadas ta&las de #ec#o % las ta&las
que registran los elementos que pueden e1plicar ese #ec#o" denominadas dimensiones
o categor)as ;estrato" tiempo" categor)as de los elementos" d)a en que se reali la
transaccin=" elementos que #istricamente" pueden determinar un comportamiento o
tendencia'
A*2lisis
$na ve definidos los requerimientos" se determinan % clarifican las necesidades" se
identifican las entidades de donde se alimentar la informacin de la &odega8 se
revisan los atri&utos" sus propiedades % las transformaciones que se de&en desarrollar
para #omogeniar los datos' .e definen los procedimientos de cone1in con las fuentes
de datos % el data _are#ouse % las #erramientas de acceso del usuario final'
DiseDo
Los modelos lgicos de la fase anterior se convierten en modelos f)sicos' ,nclu%e la
implementacin de la &odega en la #erramienta8 los programas que manipulan los
datos para crear" modificar" estandariar" sumariar o generar los )ndices a partir de los
datos de los sistemas de alimentacin de informacin definidos en la etapa anterior8
determinar la periodicidad en que se #ace el proceso de carga de datos a la &odega
"o*t(0e
Arocesos relacionados con la puesta en marc#a del sistema' $n elemento importante
consiste en concientiar a los usuarios so&re la disponi&ilidad" &eneficios %
presentacin de de la &odega ;proceso de comercialiacin de la informacin='
(n la literatura especialiada" estos pasos se conocen como el proceso (+L" llamado
as)" por las siglas (1traccin" +ransformacin % *arga de datos' Los procesos de
(1traccin identifican los sistemas que alimentarn la &odega8 el proceso de
transformacin" define la manipulacin de los datos para convertirlos % de/arlos en el
formato que requiere la &odega % el proceso de *arga" que define la periodicidad en
que se de&e realiar el proceso para cargar los datos a la &odega'
9ecci)* 1C8 Estr(te4i(s reco$e*%(%(s .(r( %iseDo %e %(tos
La metodolog)a recomendada es iniciar con un prototipo'
,rototi.o7 La meta del prototipo de !odega de Datos es proveer a los usuarios finales
con una apro1imacin de lo que la !odega de Datos les puede proporcionar en un
per)odo de tiempo tan corto como sea posi&le tal que el grupo de !odega de Datos
pueda demostrar los &eneficios de la !odega de Datos a los usuarios % recolectar lo
ms pronto la retroalimentacin cr)tica de los usuarios'
Las estructuras de Datos apropiadas pueden ser distri&uidas #erramientas de acceso
de datos a usuarios finales % aplicaciones para realiar queries' De&en ser creadas
#erramientas de soporte en la Decisin si es aplica&le' .in em&argo el proceso de
integrar % transformar los datos de la !odega de Datos no ser completamente
automatiado'
(n la ma%or)a de los casos el prototipo contemplar una cargada no repeti&le ;de una
sola ve= de los datos de las estructuras de las !odegas de Datos' La plataforma % la
!ase de Datos para el almacenamiento puede tam&i-n diferir de aquellas para la
arquitectura definitiva de !odega de Datos" lo que es importante tam&i-n" es que la
presentacin de los Datos al usuario final sea tan fiel como sea posi&le para que sea
igualmente presentada en posteriores etapas de la !odega de Datos'
,iloto
(n la construccin de una !odega de Datos" se de&e o&servar especial cuidado porque
es la primera fase del pro%ecto en el cual el equipo de !odega de Datos utiliar los
m-todos" t-cnicas % #erramientas que ser la &ase para una !odega de Datos
completa' Aor esta ran el pro%ecto piloto de !odega de Datos de&e tener un peque0o
alcance % tiempo adicional comparativamente con los esfueros sucesivos de !odega
de Datos'
,rue/( %el co*ce.to tec*ol)4ico
La prue&a del concepto tecnolgico es un paso opcional que se puede necesitar para
definir si la arquitectura especificada para la !odega de Datos funcionar finalmente
como se intenta' (n la ma%or)a de pro%ectos de !odega de Datos el esfuero del piloto
#a servido tam&i-n como la prue&a del concepto para la arquitectura t-cnica' (s cr)tico
que la prue&a del concepto tecnolgico no est- cercana al prototipo" dado que la meta
del prototipo es poner datos en las manos de los usuarios tan pronto como sea posi&le'
Ar?uitectur( %e l( Bo%e4( %e D(tos8
Datos de los sistemas de Aplicacin % de otras fuentes de !odegas de Datos de&en ser
peridicamente e1tra)dos % alimentados en la capa de Data .cru&&ing' La e1traccin
de&e ser realiada en muc#os casos utiliando los programas para acompa0ar esta
tarea' (l Data scru&&ing de&e ser #ec#o &ien sea con a%uda de programas
desarrollados para esto" o con a%uda de #erramientas de scru&&ing tales como
Alatinum ,nfopump'
(l coran de la !odega de Datos de&e ser organiado desde un punto de vista de
negocio' .e de&e utiliar una estructura de Datos para el coran de la !odega de
Datos" ligeramente normaliada' (sta estructura de Datos parece estar normaliada
cuando se ve al nivel de (ntidadGrelacin' *uando se miran los atri&utos sin em&argo"
la estructura de datos puede estar desnormaliada' (sta representa una visin de
negocio de la compa0)a % sus datos" independiente de cuanto usuarios este mirando a
esos datos en un momento en particular' (sto es importante de&ido a que la forma en
que la informacin es usada" cam&iar frecuentemente % se necesita una !ase de
Datos esta&le para soportar el cam&io'
Aor esta ran se de&e utiliar una serie de Data 9arts para proveer a los usuarios
finales con fcil acceso a sus datos' Los Data 9arts de&en consistir en Datos e1tra)dos
del coran de la !odega de Datos % reorganiados %Eo reformateados para #acer ms
fcil su uso para diferentes propsitos' Aero fofo que esos propsitos espec)ficos
pueden cam&iar en el tiempo" los Data 9arts de&en ser conce&idos con estructuras de
Datos temporales' *uando los usuarios no ven ms los datos como estn presentados
por un Data 9art en particular" este Data 9art de&e ser removido' X mientras los
usuarios desarrollan nuevas formas de #acer &>squedas % mirar los datos" de&en ser
creados nuevos Data 9arts para #acer sus &>squedas ms simples % con un me/or
desempe0o'
Los Data 9art pueden incluir una gran variedad de estilos de ta&las' Algunas pueden
ser simplemente un su&con/unto de datos de la !odega de Datos" conteniendo
solamente datos para una particular ona geogrfica" un per)odo espec)fico de tiempo"
una unidad de negocios'
(s cr)tico que los usuarios sean provistos del m-todo apropiado para utiliar la
informacin de las !odegas de Datos' No se de&e esperar que un usuario novato
negocie una comple/a % poderosa #erramienta slo para #acer una simple pregunta de
la !odega de Datos' .imilarmente un usuario adelantado rpidamente quedar
frustrado con la !odega de Datos si el o ella esperan #acer un comple/o anlisis de
negocio usando una #erramienta de acceso con menos poder del que se necesita' (s
importante reconocer que #a% diferentes estilos de usuarios finales cada uno con su
propio nivel de conocimiento % necesidades" para as) proveer de apropiados
mecanismos de acceso para cada clase de usuarios'
9ecci)* 208 :(ctores %e ries4o
(s importante conocerlos para poder monitorearlos' .on -stos6
E3.ect(tiv(s %e los usu(rios' .e de&e tra&a/ar con las e1pectativas de los
usuarios' 9uc#as veces el -1ito depende de la diferencia entre lo que los
usuarios esperan % lo que ellos perci&en que les es entregado' (s cr)tico que el
equipo de !odega de Datos comunique las e1pectativas acerca de lo que ser
entregado mu% claramente % a%ude al usuario final a entender la naturalea
iterativa de construir una !odega de Datos'
E3.erie*ci( co* Bo%e4(s %e D(tos8 (ste riesgo se puede reducir con el uso
/uicioso de e1periencias de proveedores % consultores'
Direcci)* estr(t&4ic(8 (s relativamente lgico definir un punto de inicio lgico
para la !odega de Datos' .in em&argo cuando esta primera rea se #a%a
completado" es ms dif)cil identificar reas para esfueros futuros % asegurar
que esos esfueros estn alineados con los o&/etivos % necesidades del
negocio' (l riesgo se puede mitigar siguiendo la estrategia recomendada de la
!odega" para entender las necesidades % prioridades de la informacin del
negocio % desarrollar una implementacin de !odega de Datos a largo plao
que cumpla con estas propiedades'
C(.itulo 58 "i*er5( %e %(tos
9ecci)* 218 !*tro%ucci)*
(sta unidad tiene como propsito introducir al lector en los conceptos fundamentales de
la miner)a de datos % su relacin con las &odegas de datos" no es la intencin de
profundiar en cada uno de los temas" estos pueden ser ampliados en la &i&liograf)a
recomendada" es necesario que el lector tenga conocimientos en &ase de datos
relacionales % distri&uidas para una me/or comprensin del tema'
D(t( "i*i*4" la extraccin de in1ormacin oculta * predecile de grandes ases de
datos" es una poderosa tecnolog)a nueva con gran potencial para a%udar a las
compa0)as a concentrarse en la informacin ms importante de sus !ases de
,nformacin ;Data <are#ouse=' Las #erramientas de Data 9ining predicen futuras
tendencias % comportamientos" permitiendo en los negocios tomar decisiones
proactivas % conducidas por un conocimiento aca&ado de la informacin ;^no_ledgeG
driven=' Los an6lisis prospecti4os automatiados ofrecidos por un producto as) van ms
all de los eventos pasados provistos por #erramientas retrospectivas t)picas de
sistemas de soporte de decisin' Las #erramientas de Data 9ining pueden responder a
preguntas de negocios que tradicionalmente consumen demasiado tiempo para poder
ser resueltas % a los cuales los usuarios de esta informacin casi no estn dispuestos a
aceptar' (stas #erramientas e1ploran las &ases de datos en &usca de patrones ocultos"
encontrando informacin predeci&le que un e1perto no puede llegar a encontrar porque
se encuentra fuera de sus e1pectativas'
Las t-cnicas de miner)a de datos se emplean para me/orar el rendimiento de procesos
de negocio o industriales en los que se mane/an grandes vol>menes de informacin
estructurada % almacenada en &ases de datos' Aor e/emplo" se usan con -1ito en
aplicaciones de control de procesos productivos" como #erramienta de a%uda a la
planificacin % a la decisin en mar^eting" finanas" etc'
Asimismo" la miner)a de datos es fundamental en la investigacin cient)fica % t-cnica"
como #erramienta de anlisis % descu&rimiento de conocimiento a partir de datos de
o&servacin o de resultados de e1perimentos'
9ecci)* 228 :u*%($e*tos %el D(t( "i*i*4
Las t-cnicas de Data 9ining son el resultado de un largo proceso de investigacin %
desarrollo de productos' (sta evolucin comen cuando los datos de negocios fueron
almacenados por primera ve en computadoras" % continu con me/oras en el acceso a
los datos" % ms recientemente con tecnolog)as generadas para permitir a los usuarios
navegar a trav-s de los datos en tiempo real' Data 9ining toma este proceso de
evolucin ms all del acceso % navegacin retrospectiva de los datos" #acia la entrega
de informacin prospectiva % proactiva' Data 9ining est lista para su aplicacin en la
comunidad de negocios porque est soportado por tres tecnolog)as que %a estn
suficientemente maduras6
Recoleccin masiva de datos
Aotentes computadoras con multiprocesadores
Algoritmos de Data 9ining
Las &ases de datos comerciales estn creciendo a un ritmo sin precedentes' $n
reciente estudio del 9(+A DR:$A so&re los pro%ectos de Data <are#ouse encontr
que el 15g de los que contestaron estn por encima del nivel de los H0 Diga&%tes"
mientras que el H5g espera alcanarlo en el segundo trimestre de 155P' (n algunas
industrias" tales como ventas al por menor ;retail=" estos n>meros pueden ser a>n
ma%ores' La necesidad paralela de motores computacionales me/orados puede a#ora
alcanarse de forma ms efectiva con de con multiprocesamiento paralelo' Los de Data
9ining utilian t-cnicas que #an e1istido por lo menos desde #ace 10 a0os" pero que
slo #an sido implementadas recientemente como #erramientas maduras" confia&les"
entendi&les que consistentemente son ms performantes que estad)sticos clsicos'
Los componentes esenciales de la de Data 9ining #an estado &a/o desarrollo por
d-cadas" en reas de investigacin como estad)sticas" inteligencia artificial %
aprendia/e de mquinas' Bo%" la madure de estas t-cnicas" /unto con los motores de
&ases de datos relacionales de alta performance" #icieron que estas tecnolog)as fueran
prcticas para los entornos de data _are#ouse actuales'
9ecci)* 238 Alc(*ce %e D(t( "i*i*4
(l nom&re de Data 9ining deriva de las similitudes entre &uscar valiosa informacin de
negocios en grandes &ases de datos" por e/'6 encontrar informacin de la venta de un
producto entre grandes montos de Diga&%tes almacenados" minar una monta0a para
encontrar una veta de metales valiosos' Am&os procesos requieren e1aminar una
inmensa cantidad de material" o investigar inteligentemente #asta encontrar
e1actamente donde residen los valores' Dadas &ases de datos de suficiente tama0o %
calidad" la tecnolog)a de Data 9ining puede generar nuevas oportunidades de negocios
al proveer estas capacidades6
,re%icci)* (uto$(ti6(%( %e te*%e*ci(s ' co$.ort($ie*tos' Data 9ining
automatia el proceso de encontrar informacin predeci&le en grandes &ases de
datos' Areguntas que tradicionalmente requer)an un intenso anlisis manual"
a#ora pueden ser contestadas directa % rpidamente desde los datos' $n t)pico
e/emplo de pro&lema predeci&le es el mar^eting apuntado a o&/etivos ;targeted
mar^eting=' Data 9ining usa datos en mailing promocionales anteriores para
identificar posi&les o&/etivos para ma1imiar los resultados de la inversin en
futuros mailing' :tros pro&lemas predeci&les inclu%en pronsticos de pro&lemas
financieros futuros % otras formas de incumplimiento" e identificar segmentos de
po&lacin que pro&a&lemente respondan similarmente a eventos dados'
Descu/ri$ie*to (uto$(ti6(%o %e $o%elos .revi($e*te %esco*oci%os8 Las
#erramientas de Data 9ining &arren las &ases de datos e identifican modelos
previamente escondidos en un slo paso' :tros pro&lemas de descu&rimiento
de modelos inclu%e detectar transacciones fraudulentas de tar/etas de cr-ditos e
identificar datos anormales que pueden representar errores de tipeado en la
carga de datos'
Las t-cnicas de Data 9ining pueden redituar los &eneficios de automatiacin en
las plataformas de #ard_are % soft_are e1istentes % puede ser implementadas
en sistemas nuevos a medida que las plataformas e1istentes se actualicen %
nuevos productos sean desarrollados' *uando las #erramientas de Data 9ining
son implementadas en sistemas de procesamiento paralelo de alta
performance" pueden analiar &ases de datos masivas en minutos'
Arocesamiento ms rpido significa que los usuarios pueden automticamente
e1perimentar con ms modelos para entender datos comple/os' Alta velocidad
#ace que sea prctico para los usuarios analiar inmensas cantidades de datos'
Drandes &ases de datos" a su ve" producen me/ores predicciones'
Las &ases de datos pueden ser grandes tanto en profundidad como en anc#o6
"2s colu$*(s' Los analistas muc#as veces de&en limitar el n>mero de varia&les
a e1aminar cuando realian anlisis manuales de&ido a limitaciones de tiempo'
.in em&argo" varia&les que son descartadas porque parecen sin importancia
pueden proveer informacin acerca de modelos desconocidos' $n Data 9ining
de alto rendimiento permite a los usuarios e1plorar toda la &ase de datos" sin
preseleccionar un su&con/unto de varia&les'
"2s -il(s8 9uestras ma%ores producen menos errores de estimacin % desv)os" %
permite a los usuarios #acer inferencias acerca de peque0os pero importantes
segmentos de po&lacin'
9ecci)* 2<8 :(ses %e u* ,ro'ecto %e "i*er5( %e D(tos
Los pasos a seguir para la realiacin de un pro%ecto de miner)a de datos son siempre
los mismos" independientemente de la t-cnica espec)fica de e1traccin de
conocimiento usada' Ver fig' 2H'
:i4ur( <57 :(ses %e u* ,ro'ecto %e "i*er5( %e D(tos
(l proceso de miner)a de datos pasa por las siguientes fases6
Ciltrado de datos
.eleccin de varia&les
(1traccin de conocimiento
,nterpretacin % evaluacin
.i desea o&tener una descripcin ms detallada" puede consultar la documentacin de
*R,.AGD9' CR!S,-D ;*Ross ,ndustr% .tandard Arocess for Data 9ining= es un
estndar industrial utiliado por ms de 140 empresas e instituciones de todo el mundo"
que surge en respuesta a la falta de estandariacin % propone un modelo de proceso
general para pro%ectos de miner)a de datos'
9ecci)* 258 C)$o Tr(/(0( el D(t( "i*i*4T
J*un e1actamente es capa Data 9ining de decirle cosas importantes que usted
desconoce o que van a pasarK La t-cnica usada para realiar estas #aa0as en Data
9ining se llama 8odelado' 9odelado es simplemente el acto de construir un modelo en
una situacin donde usted conoce la respuesta % luego la aplica en otra situacin de la
cual desconoce la respuesta' Aor e/emplo" si &usca un galen espa0ol #undido en los
mares lo primero que podr)a #acer es investigar otros tesoros espa0oles que %a fueron
encontrados en el pasado' Notar)a que esos &arcos frecuentemente fueron
encontrados fuera de las costas de !ermuda % que #a% ciertas caracter)sticas respecto
de las corrientes ocenicas % ciertas rutas que pro&a&lemente tomara el capitn del
&arco en esa -poca' $sted nota esas similitudes % arma un modelo que inclu%e las
caracter)sticas comunes a todos los sitios de estos tesoros #undidos' *on estos
modelos en mano sale a &uscar el tesoro donde el modelo indica que en el pasado
#u&o ms pro&a&ilidad de darse una situacin similar' *on un poco de esperana" si
tiene un &uen modelo" pro&a&lemente encontrar el tesoro'
(ste acto de construccin de un modelo es algo que la gente #a estado #aciendo
desde #ace muc#o tiempo" seguramente desde antes del auge de las computadoras %
de la tecnolog)a de Data 9ining' Lo que ocurre en las computadoras" no es mu%
diferente de la manera en que la gente constru%e modelos' Las computadoras son
cargadas con muc#a informacin acerca de una variedad de situaciones donde una
respuesta es conocida % luego el soft_are de Data 9ining en la computadora de&e
correr a trav-s de los datos % distinguir las caracter)sticas de los datos que llevarn al
modelo' $na ve que el modelo se constru%" puede ser usado en situaciones similares
donde usted no conoce la respuesta'
.i alguien le dice que tiene un modelo que puede predecir el uso de los clientes"
J*mo puede sa&er si es realmente un &uen modeloK La primera cosa que puede
pro&ar es pedirle que aplique el modelo a su &ase de clientes G donde usted %a conoce
la respuesta' *on Data 9ining" la me/or manera para realiar esto es de/ando de lado
ciertos datos para aislarlos del proceso de Data 9ining' $na ve que el proceso est
completo" los resultados pueden ser testeados contra los datos e1cluidos para
confirmar la valide del modelo' .i el modelo funciona" las o&servaciones de&en
mantenerse para los datos e1cluidos'
1*( (r?uitectur( .(r( D(t( "i*i*4
Aara aplicar me/or estas t-cnicas avanadas" -stas de&en estar totalmente integradas
con el data _are#ouse as) como con #erramientas fle1i&les e interactivas para el
anlisis de negocios' Varias #erramientas de Data 9ining actualmente operan fuera del
_are#ouse" requiriendo pasos e1tra para e1traer" importar % analiar los datos'
Adems" cuando nuevos conceptos requieren implementacin operacional" la
integracin con el _are#ouse simplifica la aplicacin de los resultados desde Data
9ining' (l Data _are#ouse anal)tico resultante puede ser aplicado para me/orar
procesos de negocios en toda la organiacin" en reas tales como mane/o de
campa0as promocionales" deteccin de fraudes" lanamiento de nuevos productos" etc'
(l punto de inicio ideal es un data _are#ouse que contenga una com&inacin de datos
de seguimiento interno de todos los clientes /unto con datos e1ternos de mercado
acerca de la actividad de los competidores' ,nformacin #istrica so&re potenciales
clientes tam&i-n provee una e1celente &ase para prospecting' (ste _are#ouse puede
ser implementado en una variedad de sistemas de &ases relacionales % de&e ser
optimiado para un acceso a los datos fle1i&le % rpido'
$n server multidimensional :LAA permite que un modelo de negocios ms sofisticado
pueda ser aplicado cuando se navega por el data _are#ouse' Las estructuras
multidimensionales permiten que el usuario analice los datos de acuerdo a como quiera
mirar el negocio G resumido por l)nea de producto" u otras perspectivas claves para su
negocio' (l server de Data 9ining de&e estar integrado con el data _are#ouse % el
server :LAA para insertar el anlisis de negocios directamente en esta infraestructura'
$n avanado" metadata centrado en procesos define los o&/etivos del Data 9ining para
resultados espec)ficos tales como mane/os de campa0a" prospecting" % optimiacin de
promociones' La integracin con el data _are#ouse permite que decisiones
operacionales sean implementadas directamente % monitoreadas' A medida que el data
_are#ouse crece con nuevas decisiones % resultados" la organiacin puede FminarF
las me/ores prcticas % aplicarlas en futuras decisiones'
(ste dise0o representa una transferencia fundamental desde los sistemas de soporte
de decisin convencionales' 9s que simplemente proveer datos a los usuarios finales
a trav-s de soft_are de consultas % reportes" el server de Anlisis Avanado aplica los
modelos de negocios del usuario directamente al _are#ouse % devuelve un anlisis
proactivo de la informacin ms relevante' (stos resultados me/oran los metadatos en
el server :LAA ;procesamiento anal)tico onGline= prove%endo una estrato de metadatos
que representa una vista fraccionada de los datos' Deneradores de reportes"
visualiadores % otras #erramientas de anlisis pueden ser aplicadas para planificar
futuras acciones % confirmar el impacto de esos planes'
C(.5tulo =8 Herr($ie*t(s %e $i*er5( %e %(tos
9ecci)* 2=8 Re%es *euro*(les (rti-ici(les7
9odelos predeci&le noGlineales que aprenden a trav-s del entrenamiento % seme/an la
estructura de una red neuronal &iolgica'
9ecci)* 2>8 Er/oles %e %ecisi)*7
(structuras de forma de r&ol que representan con/untos de decisiones' (stas
decisiones generan reglas para la clasificacin de un con/unto de datos' 9-todos
espec)ficos de r&oles de decisin inclu%en Or&oles de *lasificacin % Regresin
;*AR+6 *lassification And Regression +ree= % Deteccin de ,nteraccin Automtica de
*#i *uadrado ;*BA,6 *#i .quare Automatic ,nteraction Detection=
9ecci)* 2@8 "&to%o %el veci*o $2s cerc(*o7
(s una t-cnica que clasifica cada registro en un con/unto de datos &asado en una
com&inacin de las clases delEde los ! registro ;s= ms similarEes a -l en un con/unto de
datos #istricos ;donde ! 1=' Algunas veces se llama la t-cnica del vecino !Gms
cercano'
9ecci)* 2C8 Al4orit$os 4e*&ticos
+-cnicas de optimiacin que usan procesos tales como com&inaciones gen-ticas"
mutaciones % seleccin natural en un dise0o &asado en los conceptos de evolucin'
9ecci)* 308 Re4l( %e i*%ucci)*7
La e1traccin de reglas ifGt#en de datos &asados en significado estad)stico
Re-ere*ci(s
!A+,N, *'8 *eri .'8 Navat#e .' Dise0o conceptual de &ases de datos' $n enfoque de
entidadesGinterrelaciones' 1552' (d' AddisonG<esle%'
*A.+Al: A'8 Aiattini 9' Cundamentos % modelos de &ases de datos' 1555' (d'
Alfaomega' .egunda edicin'
*(R, ." Aelagatti D'"Distri&uted data&ases principles ` s%stems'' (d' 9acDra_GBill'
153H'
DA+(" *' I" ,ntroduccin a los sistemas de &ases de datos' (d' Arentice Ball' .-ptima
edicin'
D:R.(X" A" Budic^a :racle3' Dise0o de &ases de datos con $9L' I' (d' :racle
press' 1555'
[R:(N[("D' Arocesamiento de &ases de datos' Cundamentos" dise0o e
implementacin' 2003' (d' Aearson (ducation' :ctava edicin
.,LV(R.*BA+a" [ort# % .udars#an" Cundamentos de &ases de datos" (d 9acDra_G
Bill' *uarta edicin
:+a$" Valdurie" Distri&uted data&ases" (d' 9acDra_GBill'
$LL9AN" I Arinciples of data&ase s%stems" (d' *omputer science press" 1532'
1*i%(% 38 B(ses %e %(tos orie*t(%(s ( o/0etos
C(.5tulo >8 Orie*t(ci)* ( o/0etos
9ecci)* 318 !*tro%ucci)*
Los sistemas de &ases de datos orientados a o&/etos tienen sus or)genes en los
lengua/es de programacin orientados a o&/etos' La idea fundamental es que el usuario
no de&er)a tener que &atallar con construcciones orientadas al computador tales como
registros % campos" sino ms &ien de&er)a poder mane/ar o&/etos ;% operaciones= que
se aseme/en ms a sus equivalentes en el mundo real' Aor e/emplo" en ve de pensar
en t-rminos de una tupla D(A+: /unto con un con/unto de tuplas (9A" las cuales
inclu%en valores de clave a/ena que #acen referencia a esa tupla D(A+:" el usuario
de&er)a poder pensar directamente en un Fo&/etoF departamento que contenga en
realidad un con/unto de Fo&/etosF empleado' X en ve de ;por e/emplo= tener que insertar
una tupla en la relacin (9A con un valor apropiado de N$9D(A+: ;la clave a/ena=" el
usuario de&er)a ser capa de crear en forma directa un nuevo o&/eto empleado e
incluirlo en el o&/eto departamento pertinente tam&i-n en forma directa' Dic#o de otro
modo" la idea fundamental es elevar el nivel de a&straccin'
La elevacin del nivel de a&straccin es sin duda un o&/etivo desea&le" % el paradigma
de la orientacin a o&/etos #a tenido considera&le -1ito en alcanar ese o&/etivo en el
campo de los lengua/es de programacin' Aor tanto" es natural preguntar si es posi&le
aplicar el mismo paradigma en el rea de las &ases de datos' (s ms" la idea de
mane/ar una &ase de datos formada por Fo&/etos encapsuladosF ;por e/emplo" un o&/eto
dependencia que Fsa&e qu- significaF a0adir un empleado o cam&iar al gerente o
recortar el presupuesto=" en ve de tener que entender relaciones" actualiaciones de
tuplas" claves a/enas" etc-tera" es desde luego muc#o ms atractiva % ?fcil@ desde el
punto de vista del usuario" al menos en lo superficial'
,(r(%i4$( %e orie*t(ci)* ( o/0etos AooB
(n un am&iente ::" el soft_are se organia como un con/unto de o&/etos discretos que
incorporan tanto su estructura como su comportamiento" en contraste con am&ientes
tradicionales en donde estas dos caracter)sticas se encuentran separadas'
Los primeros intentos en aplicar la orientacin a o&/etos al am&iente de &ases de datos
fueron mediante la construccin de interfaces como una capa e1terna a los .A!Ds
relacinales'
$no de los pro&lemas que se tienen actualmente es la falta de estndares en la
concepcin % definicin de t-rminos' .in em&argo" a continuacin se van a introducir
los conceptos m)nimos" que se consideran fundamentales en la aplicacin de este
paradigma a la tecnolog)a de &ases de datos'
9ecci)* 328 Co*ce.tos /2sicos7
(n esta seccin se presentan algunos de los t-rminos % conceptos principales del
enfoque 00" como los o&/etos mismos ;por supuesto=" las clases" m-todos" mensa/es %
/erarqu)as de clases' +am&i-n relacionaremos estas ideas con t-rminos % conceptos
ms familiares siempre que sea posi&le o apropiado' De #ec#o" qui resulte >til mostrar
antes que nada una correspondencia &urda entre los t-rminos :: % los t-rminos de
programacin tradicional6
+-rmino :: +-rmino en programacin
:&/eto varia&le
*lase tipo
9-todo funcin
9ensa/e llamada
Ierarqu)a de clases /erarqu)a de tipos
O/0etos
Antes de entrar en detalles" es &ueno advertir que en el mundo de los o&/etos no se
encuentra el tipo de precisin al que estamos acostum&rados en el mundo relacional'
Adems" muc#os conceptos de o&/etos Vo las definiciones pu&licadas de esos o&/etosG
son &astante imprecisos % #a% mu% poco consenso verdadero % muc#o desacuerdo"
incluso en el nivel ms &sico' (n particular" no #a% un ?modelo de datos de o&/etos@
a&stracto ni formalmente definido" % tampoco #a% consenso so&re un modelo informal'
UNu& es u* o/0etoT To%o8
(s un principio &sico del enfoque de o&/etos que ?todo es un o&/eto@ ;a veces ?todo es
un o&/eto de primera clase@=' Algunos o&/etos son inmuta&les6 e/emplos de esto pueden
ser los enteros % las cadenas de caracteres' :tros o&/etos son muta&les8 algunos
e/emplos podr)an ser los o&/etos de departamento % empleado' Aor lo tanto" en la
terminolog)a tradicional" los o&/etos inmuta&les corresponden a los valores % los o&/etos
muta&les corresponden a las varia&les'
+odo o&/eto tiene un tipo ;el t-rmino en o&/etos es clase=' A los o&/etos individuales con
frecuencia se les llama espec)ficamente e/emplares ;instancias= de o&/eto" para
distinguirlos con claridad del tipo o clase del o&/eto correspondiente' (l t-rmino tipo se
utilia en su sentido usual de lengua/e de programacin8 por lo tanto" en particular en
este t-rmino se inclu%e el con/unto de operadores ;el t-rmino en el entorno de o&/etos
es m-todos= que pueden ser aplicados a los o&/etos de ese tipo'
,oli$or-is$o8
(l polimorfismo es otro de los pilares fundamentales de la programacin orientada a
o&/etos' (s la capacidad de almacenar o&/etos de un determinado tipo en varia&les de
tipos antecesores del primero a costa" claro est" de slo poderse acceder a trav-s de
dic#a varia&le a los miem&ros comunes a am&os tipos' .in em&argo" las versiones de
los m-todos virtuales a las que se llamar)a a trav-s de esas varia&les no ser)an las
definidas como miem&ros del tipo de dic#as varia&les" sino las definidas en el verdadero
tipo de los o&/etos que almacenan'
Here*ci(
(l mecanismo de #erencia es uno de los pilares fundamentales en los que se &asa la
programacin orientada a o&/etos' (s un mecanismo que permite definir nuevas clases a
partir de otras %a definidas de modo que si en la definicin de una clase indicamos que
-sta deriva de otra" entonces la primera Ga la que se le suele llamar clase #i/aG ser
tratada por el compilador automticamente como si su definicin inclu%ese la definicin
de la segunda Va la que se le suele llamar clase padre o clase &ase'
E*c(.sul(ci)*
Xa #emos visto que la #erencia % el polimorfismo son dos de los pilares fundamentales
en los que se apo%a la programacin orientada a o&/etos' Aues &ien" el tercero es la
encapsulacin" que es un mecanismo que permite a los dise0adores de tipos de datos
determinar qu- miem&ros de los tipos pueden ser utiliados por otros programadores %
cules no' Las principales venta/as que ello aporta son6
.e facilita a los programadores que va%an a usar el tipo de dato
;programadores clientes= el aprendia/e de cmo tra&a/ar con -l" pues se le
pueden ocultar todos los detalles relativos a su implementacin interna %
slo de/arle visi&les aquellos que puedan usar con seguridad' Adems" as)
se les evita que cometan errores por manipular inadecuadamente miem&ros
que no de&er)an tocar'
.e facilita al creador del tipo la posterior modificacin del mismo" pues si los
programadores clientes no pueden acceder a los miem&ros no visi&les" sus
aplicaciones no se vern afectadas si -stos cam&ian o se eliminan' Dracias a
esto es posi&le crear inicialmente tipos de datos con un dise0o sencillo
aunque poco eficiente" % si posteriormente es necesario modificarlos para
aumentar su eficiencia" ello puede #acerse sin afectar al cdigo escrito en
&ase a la no me/orada de tipo'
La encapsulamiento de o&/etos u ocultacin de la informacin es sin duda una &uena
idea en muc#os casos6 es evidente que los conceptos gemelos de a= ocultar los detalles
irrelevantes a la vista del usuario ;con lo cual es posi&le alterar esos detalles" cuando sea
necesario" en una forma controlada % relativamente poco dif)cil= % &= ofrecer un acceso
disciplinado a o&/etos slo a trav-s de una interfa p>&lica" son claramente apropiados
para muc#os usuarios % muc#as aplicaciones' Aero #a% que tener en cuenta que
siempre e1istir la necesidad de o&tener acceso a los datos en formas no previstas para
realiar consultas especiales" ran por la cual la idea de slo poder operar a trav-s de
m-todos predefinidos no es acepta&le en algunas situaciones' Los sistemas :: tienden
a ser demasiado r)gidos en este aspecto'
La encapsulacin se consigue a0adiendo modificadores de acceso en las definiciones
de miem&ros % tipos de datos' (stos modificadores son part)culas que se les colocan
delante para indicar desde qu- cdigos puede accederse a ellos" entendi-ndose por
acceder el #ec#o de usar su nom&re para cualquier cosa que no sea definirlo" como
llamarlo si es una funcin" leer o escri&ir su valor si es un campo" crear o&/etos o
#eredar de -l si es una clase" etc
9ecci)* 338 Ar?uitectur( %e (%$i*istr(%or %e siste$(s %e BDOO8
La estructura de las &ases de datos orientadas a o&/etos no presenta la uniformidad de
las &ases de datos relacinales' Aara construir una estructura f)sica fcil de mantener"
com>nmente los o&/etos se representan as)6
Determinadas clases se tratan como clases &sicas de &loques que se constru%an" que
el sistema de computadores implemente directamente' *om>nmente" las clases &sicas
corresponden a tipos de datos de lengua/es de programacin estndar" tales como
entero" flotante" carcter % cadena'
Las instancias de clases que no son &sicas se representan as)6
Las varia&les se representan por campos de un tipo de registro' *ada campo contiene
el valor del o&/eto para instancias de las clases &sicas" o &ien el identificador del o&/eto
para instancias de las clases que no son &sicas' Las varia&les con un con/unto de
valores se representan por una lista enlaada de los o&/etos que son miem&ros del
con/unto'
La estructura f)sica #ace que sea posi&le utiliar registros de longitud fi/a para
implementar una &ase de datos orientada a o&/etos" aunque la modificacin del
esquema puede complicar esto'
*uando la relacin de contenido es /errquica" el esquema de &ase de datos para una
&ase de datos orientada a o&/etos puede representarse utiliando el modelo relacional
anidado'
No todas las varia&les enca/an convenientemente en la estructura que se #a descrito'
Algunas de las aplicaciones que se citan inclu%en tipos de datos altamente
especialiados que son grandes f)sicamente % que" por raones prcticas" normalmente
se manipulan mediante programas de aplicacin que no son parte del con/unto de
m-todos con las clases6
Datos de te1to' (l te1to" normalmente se trata como una cadena de &%tes que
manipulan los editores % formateadores'
Datos de audio' *om>nmente" los datos de audio son una representacin comprimida
digitaliada del #a&la que mane/an aplicaciones de soft_are separadas'
Datos de video % grficos' Los datos de video pueden representarse como un mapa de
&%tes o como un con/unto de l)neas" ca/as % otros o&/etos geom-tricos'
Aunque algunos datos grficos a menudo se gestionan dentro del sistema de &ase de
datos" en muc#os casos se utilian aplicaciones de soft_are especiales'
Las varia&les que contienen datos de los tipos anteriores" con frecuencia se denominan
campos largos" de&ido a que una implementacin relacional de o&/etos que contengan
estas varia&les requiere registros que contengan campos cu%a longitud pueda ser de
varios mega &ites' $n campo largo se almacena en un arc#ivo especial ;o con/unto de
arc#ivos= reservado para almacenamiento de campos largos'
(l m-todo ms ampliamente utiliado para acceder a campos largos es el m-todo de
verificacin de resultados de salida ;c#ec^out=Everificacin de datos de entrada ;c#ec^in='
(l usuario comprue&a ;c#ec^out= la copia de un o&/eto con campo largo" opera so&re esta
copia utiliando programas de aplicacin de propsito especial % comprue&a la copia
modificada ;c#ec^in=' Las nociones de verificacin de resultados de salida ;c#ec^out= %
verificacin de datos de entrada ;c#ec^in= corresponden apro1imadamente a una lectura
% a una escritura' .in em&argo" el resultado de la operacin de verificacin de datos de
entrada normalmente no es una escritura sino ms &ien la creacin de una nueva
versin'
9ecci)* 3<8 Siste$( (%$i*istr(%ores %e /(ses %e %(tos orie*t(%(s (
o/0etos ASABD-OOB
La primera ve que se #a&la del concepto de un .A!DG:: se remonta al a0o 1533 con
una propuesta de D' *opeland % D' 9aier" en la cual sugieren construir tal .A!D a partir
del lengua/e de programacin .malltal^ % con la cola&oracin de miem&ros del :regon
Draduate *enter' De este prototipo se desarrolla un producto % se comercialia en 1533
por .ervio Logia" &a/o el nom&re de Dem.tone
Aor otra parte" en ese mismo a0o" la compa0)a Be_lett Aac^ard implementa un pro%ecto
&a/o el nom&re de ,ris'
A pesar de que aun no e1iste un consenso de lo que de&e ser un .A!DG::" e1isten
algunas caracter)sticas m)nimas que de&en ser satisfec#as' (n efecto" un .A!D para ser
considerado con una etiqueta de orientacin a o&/etos" de&e satisfacer al menos los
siguientes criterios6
De&e ser un .A!D en el sentido tradicional
De&e ser un sistema orientado a o&/etos
De esta forma" un .ADDG:: de&e satisfacer las reglas que aparecen en la figura
siguiente6
Reglas de &ases de datos (l
sistema de&e6
Asegurar la persistencia de los datos'
Aoder administrar en forma eficiente una /erarqu)a de memorias'
Aermitir a los usuarios manipular los datos en forma concurrente'
Aermitir al usuario consultar la &ase en forma natural % sencilla'
Aermitir la administracin de o&/etos comple/os'
Reglas de orientacin a o&/etos
Los o&/etos de&en tener una identidad independiente de su valor'
(l sistema de&e adems6
Aermitir la nocin de encapsulamiento'
Agrupar los o&/etos en clases o poder esta&lecer tipos'
Definir una /erarqu)a de clases o de tipos'
Aermitir la programacin completa de las aplicaciones'
Aermitir la e1tensin de las clases o tipos predefinidos por parte del usuario'
9ecci)* 358 El siste$( ,ost4res
Aara referenciar uno de los productos que tra&a/an este tipo de &ases de datos #emos
tomado el pro%ecto Aostgres' (l pro%ecto AostgresG Aost ,ngresG inicia en 1534 como una
e1tensin del .A!D ,ngres' Ba sido escrito en el lengua/e de programacin * % consta de
130000 l)neas de cdigo ;.+:N51=
Aostgres se apo%a en la idea de e1tender el modelo relacional con mecanismos generales
que permitan el soporte de o&/etos comple/os" as) como implementar /erarqu)as de
o&/etos' (ntre los mecanismos" se pueden mencionar los tipos de datos a&stractos" los
datos de tipo procedimiento % las reglas'
$na &ase datos en Aostgres se puede ver como un con/unto de ta&las' (l tipo de un
atri&uto puede ser atmico6 entero" punto flotante" &ooleano" date" o &ien estructurado6
arreglos o procedimientos'
(ntre los o&/etivos principales del sistema Aostgres de pueden mencionar los siguientes6
9e/orar la administracin de los o&/etos comple/os
Aermitir la definicin de nuevos tipos de datos" nuevos operadores % nuevos
m-todos de acceso'
!rindar mecanismos primarios para la definicin de &ases de datos'
9e/orar la seguridad de funcionamiento'
C(.itulo @8 9e*4u(0e %e "o%el(%o 1*i-ic(%o 1"9
9ecci)* 3=8 !*tro%ucci)*
La intencin de este cap)tulo no es la de #acer un estudio detallado de $9L" es tan solo
motivar al lector a que con &ase en los temas aqu) tratados pueda consultar te1tos
avanados so&re la temtica % su relacin con las &ases de datos
$9L es un lengua/e de modelamiento para la especificacin" visualiacin"
construccin % documentacin de los artefactos de un proceso de sistema intensivo'
,nclu%e dentro de otras las siguientes caracter)sticas6
Dentro de un proceso de sistema intensi4o9 un m-todo es aplicado para
llegar o evolucionar un sistema
*omo un lengua"e9 es usado para la comunicacin' (s decir" un medio
para capturar el conocimiento ;semnticas= respecto a un tema %
e1presar el conocimiento ;sinta1is= resguardando el tema propsito de la
comunicacin' (l tema es el sistema en estudio'
*omo un lengua/e para modelamiento9 se enfoca en la comprensin de
un tema a trav-s de la formulacin de un modelo del tema ;% su conte1to
respectivo=' (l modelo a&arca el conocimiento cuidando del tema" % la
apropiada aplicacin de este conocimiento constitu%e inteligencia'
*uidando la uni1icacin9 integra las me/ores prcticas de la ingenier)a de
la industria tecnolgica % sistemas de informacin pasando por todos os
tipos de sistemas ;soft_are % no G soft_are=" dominios ;negocios versus
soft_are= % los procesos de ciclo de vida'
(n cuanto a cmo se aplica para especi1icar sistemas" puede ser usado
para comunicar Fqu-F se requiere de un sistema % FcmoF un sistema
puede ser realiado'
(n cuanto a cmo se aplica para 4isualizar sistemas" puede ser usado
para descri&ir visualmente un sistema antes de ser realiado'
(n cuanto a cmo se aplica para construir sistemas" puede ser usado
para guiar la realiacin de un sistema similar a los FplanosF'
(n cuanto a cmo se aplica para documentar sistemas" puede ser
usado para capturar conocimiento respecto a un sistema a lo largo de
todo el proceso de su ciclo de vida'
1"9 *o es7
$n lengua/e de programacin visual" sino un lengua/e de modelamiento
visual
$na #erramienta o depsito de especificacin" sino un lengua/e para
modelamiento de especificacin'
$n proceso" sino que #a&ilita procesos'
9ecci)* 3>8 U"&to%o o 9e*4u(0e %e "o%el(%oT
$9L es un lengua/e para #acer modelos % es independiente de los m-todos de anlisis
% dise0o' (1isten diferencias importantes entre un m-todo % un lengua/e de modelado'
$n m.todo es una manera e1pl)cita de estructurar el pensamiento % las acciones de cada
individuo' Adems" el m-todo le dice al usuario qu- #acer" cmo #acerlo" cundo
#acerlo % por qu- #acerlo8 mientras que el lengua/e de modelado carece de estas
instrucciones' Los m-todos contienen modelos % esos modelos son utiliados para
descri&ir algo % comunicar los resultados del uso del m-todo'
Ele$e*tos %e 1"96
Di(4r($(s6 Los diagramas son las grficas que descri&en el contenido de una vista'
$9L tiene nueve tipos de diagramas que son utiliados en com&inacin para proveer
todas las vistas de un sistema6 diagramas de caso de uso" de clases" de o&/etos" de
estados" de secuencia" de cola&oracin" de actividad" de componentes % de distri&ucin'
S5$/olos o Ele$e*tos %e $o%elo6 Los conceptos utiliados en los diagramas son los
elementos de modelo que representan conceptos comunes orientados a o&/etos" tales
como clases" o&/etos % mensa/es" % las relaciones entre estos conceptos inclu%endo la
asociacin" dependencia % generaliacin' $n elemento
de modelo es utiliado en varios diagramas diferentes" pero siempre tiene el mismo
significado % sim&olog)a'
Re4l(s o "ec(*is$os 4e*er(les6 Aroveen comentarios e1tras" informacin o semntica
acerca del elemento de modelo8 adems proveen mecanismos de e1tensin para
adaptar o e1tender $9L a un m-todo o proceso espec)fico" organiacin o usuario'
1tili%(% %e 1"9
$9L es un lengua/e para modelamiento de propsito general evolutivo" ampliamente
aplica&le" que puede ser soportado por diferentes #erramientas e industrialmente
estandariado' .e aplica a una multitud de diferentes tipos de sistemas" dominios" %
m-todos o procesos'
*omo lengua/e de propsito general9 se enfoca en el coran de un
con/unto de conceptos para la adquisicin" comparticin % utiliacin de
conocimientos empare/ados con mecanismos de e1tensin'
*omo un lengua/e para modelamiento ampliamente aplica&le" puede ser
aplicado a diferentes tipos de sistemas ;soft_are % no G soft_are="
dominios ;negocios versus soft_are= % m-todos o procesos'
*omo un lengua/e para modelamiento soporta&le por #erramientas" las
#erramientas %a estn disponi&les para soportar la aplicacin del
lengua/e para especificar" visualiar" construir % documentar sistemas'
*omo un lengua/e para modelamiento industrialmente estandariado" no
es un lengua/e cerrado" propiedad de alguien" sino ms &ien" un
lengua/e a&ierto % totalmente e1tensi&le reconocido por la industria'
9e/ores tiempos totales de desarrollo ;de H0 g o ms='
9odelar sistemas ;% no slo de soft_are= utiliando conceptos
orientados a o&/etos'
(sta&lecer conceptos % artefactos e/ecuta&les'
(ncaminar el desarrollo del escalamiento en sistemas comple/os de
misin cr)tica'
*rear un lengua/e de modelado utiliado tanto por #umanos como por
mquinas'
9e/or soporte a la planeacin % al control de pro%ectos'
Alta reutiliacin % minimiacin de costos'
$9L posi&ilita la captura" comunicacin % nivelacin de conocimiento estrat-gico" tctico %
operacional para facilitar el incremento de valor" aumentando la calidad" reduciendo
costos % reduciendo el tiempo de presentacin al mercado8 mane/ando riesgos % siendo
proactivo para el posi&le aumento de comple/idad o cam&io'
9ecci)* 3@8 1*( .ers.ectiv( %e 1"9
Las siguientes secciones presentan una vista ms detallada al modelado con $9L' $n
sistema de reserva de aerol)neas simple se va a usar para mostrar los diagramas %
t-cnicas de modelado con $9L' .e cu&ren los siguientes puntos6
:rganiando tu sistema con paquetes
9odelando con *asos de $so" % usndolos para averiguar los requisitos
del sistema
9odelando con Diagramas de .ecuencia % *ola&oracin
Analiando % dise0ando con el Diagrama de *lase" % e1tendiendo $9L
con la t-cnica de las tar/etas *R*
9odelando comportamiento con Diagramas de Actividad % de (stado
9odelando componentes de soft_are" distri&ucin e implementacin
(1tendiendo $9L con el dise0o de !ases de Datos relacionales
$na de las tareas clave para modelar un sistema de soft_are de grandes dimensiones
es dividirlo primero en reas mane/a&les' Aunque estas reas se llaman dominios"
categor)as o su&sistemas" la idea es la misma6 dividir el sistema en reas que tengan
competencias parecidas'
$9L introduce la nocin de un paquete como el )tem universal para agrupar elementos"
permitiendo a los modeladores su&dividir % categoriar sistemas' Los paquetes pueden
ser usados en cualquier nivel" desde el nivel ms alto" donde son usados para su&dividir
el sistema en dominios" #asta el nivel ms &a/o" donde son usados para agrupar casos de
uso individuales" clases" o componentes' Ver fig'32
:i4ur( 3<7 Or4(*i6(*%o el siste$( $e%i(*te el uso %e .(?uetes
"o%el(%o %e C(sos %e 1so
$n *aso de $so es un documento narrativo que descri&e a los actores utiliando un
sistema para satisfacer un o&/etivo' (s una #istoria o una forma particular de usar un
sistema' Los casos de uso son requisitos" en particular requisitos funcionales'
(l modelado de *asos de $so es la t-cnica ms efectiva % a la ve la ms simple para
modelar los requisitos del sistema desde la perspectiva del usuario' Los *asos de $so
se utilian para modelar cmo un sistema o negocio funciona actualmente" o cmo los
usuarios desean que funcione' No es realmente una apro1imacin a la orientacin a
o&/etos8 es realmente una forma de modelar procesos' (s" sin em&argo" una manera
mu% &uena de dirigirse #acia el anlisis de sistemas orientado a o&/etos' Los casos de
uso son generalmente el punto de partida del anlisis orientado a o&/etos con $9L'
(l modelo de casos de uso consiste en actores % casos de uso' Los actores
representan usuarios % otros sistemas que interaccionan con el sistema' .e di&u/an
como Fmu0ecosF de palo' Actualmente representan el tipo de usuario" no una instancia
de usuario' Los casos de uso representan el comportamiento del sistema" los escenarios
que el sistema atraviesa en respuesta a un est)mulo desde un actor' .e di&u/an como
elipses'
:i4ur( 357 "o%el(%o %e C(sos %e 1so8
*ada caso de uso se documenta por una descripcin del escenario' La descripcin
puede ser escrita en modo de te1to o en un formato paso a paso' *ada caso de uso
puede ser tam&i-n definido por otras propiedades" como las condiciones preG % postG del
escenario GGG condiciones que e1isten antes de que el escenario comience" % condiciones
que e1isten despu-s de que el escenario se completa' Los Diagramas de Actividad
ofrecen una #erramienta grfica para modelar el proceso de un *aso de $so' Ver fig'
3H
$se *ase Description in .1ep Corm
FBonre are
possi&le
classes or
class
attri&utes'
1' Aassenger rec:ests
11ig-tirom tic^et vendar'
2' +ic^et vendor cr-ete
a4a;a<ii1it* 1rorr= Airline
PmmFnGGTT
Estu%i(r ' %escu/rir los re?uisitos
(l o&/etivo final en cualquier dise0o de soft_are es satisfacer los requisitos del usuario
para el sistema' (stos requisitos pueden ser requisitos de soft_are" requisitos de
productos" o requisitos de prue&as' La meta de capturar % compro&ar los requisitos del
usuario es asegurar que todos los requisitos son completados por el dise0o" % que el
dise0o es acorde con los requisitos especificados'
9uc#as veces los requisitos del sistema %a e1isten en forma de documentos de
requisitos' Los casos de uso se utilian para correlacionar cada escenario con los
requisitos que completa' .i los requisitos no e1isten" modelar el sistema a trav-s de los
*asos de $so" permite el descu&rimiento de estos requisitos'
Or4(*i6(ci)* %e Di(4r($(s %e C(sos %e 1so
Durante el anlisis de negocio ;&usiness= del sistema" puedes desarrollar un modelo de
caso de uso para este sistema" % construir paquetes para representar los varios dominios
de negocio ;&usiness= del sistema' Auedes descomponer cada paquete con un Diagrama
de *aso de $so que contenga los *asos de $so de un dominio" con interacciones de
actor'
"o%el(r secue*ci(s (lter*(s ( tr(v&s %e l( rel(ci)* VE3tie*%eV
Ae3te*%sB
+)picamente" uno modela cada *aso de $so con una secuencia normal de acciones' (l
usuario entonces considera condiciones Fque siF para cada paso" % desarrolla *asos de
$so &asados en estas secuencias alternas de eventos' Las secuencias alternas se
modelan en casos de uso separados" los cuales estn relacionados con el caso de uso
original mediante una relacin F(1tiendeF ;e1tends=' Las relaciones (1tiende ;e1tends=
pueden ser pensadas como un caso de uso equivalente a #erencia" en el cual el caso
de uso e1tendido" #ereda % modifica el comportamiento del caso de uso original'
Eli$i*(r el $o%el(%o re%u*%(*te ( tr(v&s %e l( rel(ci)* V1s(V AusesB
Aara eliminar el modelado redundante de &uena parte del comportamiento que apareca
en varios casos de uso" la parte del comportamiento puede ser modelada en un caso
de uso separado que est relacionado con los otros casos de uso mediante la relacin
F$saF ;uses=' La relacin $sa ;uses= se puede pensar como un caso de uso equivalente'
Ver fig' 34'
:i4ur( 3=7 Rel(ci)* c(so %e uso E3tie*%e Ae3te*%sB -re*te ( rel(ci)* %e c(so
1s( AusesB8
9ecci)* 3C8 Di(4r($(s %e Secue*ci(
(l Diagrama de .ecuencia es uno de los diagramas ms efectivos para modelar interaccin entre
o&/etos en un sistema' $n diagrama de secuencia se modela para cada caso de uso' 9ientras
que el diagrama de caso de uso permite el modelado de una vista o&usinesso del escenario" el
diagrama de secuencia contiene detalles de implementacin del escenario" inclu%endo los o&/etos %
clases que se usan para implementar el escenario" % mensa/es pasados entre los o&/etos'
+)picamente uno e1amina la descripcin de un caso de uso para determinar qu- o&/etos son
necesarios para la implementacin del escenario' .i tienes modelada la descripcin de cada caso
de uso como una secuencia de varios pasos" entonces puedes Fcaminar so&reF esos pasos para
descu&rir qu- o&/etos son necesarios para que se puedan seguir los pasos'
$n diagrama de secuencia muestra los o&/etos que intervienen en el escenario con l)neas
discontinuas verticales" % los mensa/es pasados entre los o&/etos como vectores #oriontales' Los
mensa/es se di&u/an cronolgicamente desde la parte superior del diagrama a la parte inferior8 la
distri&ucin #oriontal de los o&/etos es ar&itraria' Ver fig' 3P'
:i4ur( 3>7 Di(4r($( %e Secue*ci( .(r( u* esce*(rio
Durante el anlisis inicial" el modelador t)picamente coloca el nom&re o&usinesso de un
mensa/e en la l)nea del mensa/e' 9s tarde" durante el dise0o" el nom&re o&usinesso es
reemplaado con el nom&re del m-todo que est siendo llamado por un o&/eto en el otro'
(l m-todo llamado" o invocado" pertenece a la definicin de la case instan ciada por el
o&/eto en la recepcin final del mensa/e'
9ecci)* <08 Di(4r($(s %e Col(/or(ci)*
(l Diagrama de *ola&oracin presenta una alternativa al diagrama de secuencia para
modelar interacciones entre o&/etos en el sistema' 9ientras que el diagrama de
secuencia se centra en la secuencia cronolgica del escenario que estamos modelando"
el diagrama de cola&oracin se centra en estudiar todos los efectos de un o&/eto dado
durante un escenario' Los o&/etos se conectan por medio de enlaces" cada enlace
representa una instancia de una asociacin entre las clases implicadas" ver fig' 33' (l
enlace muestra los mensa/es enviados entre los o&/etos" el tipo de mensa/e ;sincrnico"
asincrnico" simple" &lan^ing" % otimeGouto=" % la visi&ilidad de un o&/eto con respecto a
los otros'
:i4ur( 3@7 Di(4r($( %e Col(/or(ci)* .(r( u* 4ru.o %e O/0etos
C(.5tulo C8 "o%el(%o co* 1"9
9ecci)* <18 "o%el(*%o el co$.ort($ie*to %e l(s Cl(ses co* Di(4r($(s %e Est(%o
9ientras los diagramas de interaccin % cola&oracin modelan secuencias dinmicas de
accin entre grupos de o&/etos en un sistema" el diagrama de estado se usa para modelar
el comportamiento dinmico de un o&/eto en particular" o de una clase de o&/etos'
$n diagrama de estado se modela para todas las clases que se consideran con un
comportamiento dinmico' (n -l" modelas la secuencia de estado que un o&/eto de la
clase atraviesa durante su vida en respuesta a los est)mulos reci&idos" /unto con sus
propias respuestas % acciones'
Aor e/emplo" un comportamiento de un o&/eto se modela en t-rminos de en qu- estado
est inicialmente" % a qu- estado cam&ia cuando reci&e un evento en particular'
+am&i-n modelas qu- acciones realia un o&/eto en un estado en concreto'
Los estados representan las condiciones de o&/etos en ciertos puntos en el tiempo' Los
eventos representan incidentes que #acen que los o&/etos pasen de un estado a otro'
Las l)neas de transicin descri&en el movimiento desde un estado #asta otro' *ada
l)nea de transicin se nom&re con el evento que causa esta transicin' Las acciones
ocurren cuando un o&/eto llega a un estado' Ver fig' 35'
:i4ur( 3C7 "o%el(*%o Co$.ort($ie*to Di*2$ico %e u* o/0eto WVueloW co* u*
%i(4r($( %e est(%o
9ecci)* <28 Di(4r($(s %e Activi%(%
(l Diagrama de Actividad es un diagrama de flu/o del proceso multiGpropsito que se usa
para modelar el comportamiento del sistema' Los diagramas de actividad se pueden
usar para modelar un *aso de $so" o una clase" o un m-todo complicado'
$n diagrama de actividad es parecido a un diagrama de flu/o8 la diferencia clave es que
los diagramas de actividad pueden mostrar procesado paralelo ;parallel processing='
(sto es importante cuando se usan diagramas de actividad para modelar procesos
o&ussinesso algunos de los cuales pueden actuar en paralelo" % para modelar varios #ilos
en los programas concurrentes'
1s(*%o Di(4r($(s %e Activi%(% .(r( $o%el(r C(sos %e 1so
Los Diagramas de Actividad ofrecen una #erramienta grfica para modelar el proceso
de un *aso de $so' .e pueden usar como un a0adido a una descripcin te1tual del caso
de uso" o para listar los pasos del caso de uso' $na descripcin te1tual" cdigo" u otros
diagramas de actividad pueden detallar ms la actividad'
1s(*%o Di(4r($(s %e Activi%(% .(r( $o%el(r Cl(ses
*uando se modela el comportamiento de una clase" un diagrama de estado de $9L se
suele usar normalmente para modelar situaciones donde ocurren eventos asincrnicos' (l
diagrama de actividad se usa cuando todos o la ma%or)a de los elementos representan
el desarrollo de los pasos dados por las acciones generadas internamente' Ver fig' 20'
De&er)as asignar actividades a las clases antes de terminar con el diagrama de
actividad'
:i4ur( <0: Di(4r($( %e Activi%(%
9ecci)* <38 "o%el(*%o Co$.o*e*tes %e So-tO(re
(l Diagrama de *omponentes se usa para modelar la estructura del soft_are" inclu%endo las
dependencias entre los componentes de soft_are" los componentes de cdigo &inario" % los
componentes e/ecuta&les' (n el Diagrama de *omponentes modelas componentes del sistema
ver fig' 21" a veces agrupados por paquetes" % las dependencias que e1isten entre componentes ;%
paquetes de componentes='
:i4ur( <1: "o%el(*%o co$.o*e*tes co* el Di(4r($( %e Co$.o*e*tes
9ecci)* <<8 "o%el(*%o l( Distri/uci)* ' l( !$.le$e*t(ci)*
Los Diagramas de ,mplementacin se usan para modelar la configuracin de los
elementos de procesado en tiempo de e/ecucin ;runGtime processing elements= % de los
componentes" procesos % o&/etos de soft_are que viven en ellos' (n el diagrama
odeplo%mento" empieas modelando nodos f)sicos % las asociaciones de comunicacin que
e1isten entre ellos' Aara cada nodo" puedes indicar qu- instancias de componentes
viven o corren ;se e/ecutan= en el nodo' +am&i-n puedes modelar los o&/etos que
contiene el componente'
Los Diagramas de ,mplementacin ver fig' 22" se usan para modelar slo componentes
que e1isten como entidades en tiempo de e/ecucin8 no se usan para modelar
componentes solo de tiempo de compilacin o de tiempo de enlaado' Auedes tam&i-n
modelar componentes que migran de nodo a nodo u o&/etos que migran de componente
a componente usando una relacin de dependencia con el estereotipo o&ecomeso ;se
transforma=
UNIVERSIDAD NACIONAL AIER!A " A DIS!ANCIA # UNAD
)scuela de #iencias %sicasH 7ecnolog8a e Ingenier8a
Programa Ingenier8a de sistemas
*urso 30112H V !ases de datos avanadas
:i4ur( <27 "o%el(*%o l( Distri/uci)* %el Siste$( co* el Di(4r($( %e
!$.le$e*t(ci)*
UNIVERSIDAD NACIONAL AIER!A " A DIS!ANCIA # UNAD
)scuela de #iencias %sicasH 7ecnolog8a e Ingenier8a
Programa Ingenier8a de sistemas
*urso 30112H V !ases de datos avanadas
9ecci)* <58 DiseDo %e B(ses %e D(tos Rel(cio*(les -- 1*( e3te*si)*
i*-or$(l %e 1"9
(l Diagrama de *lase presenta un mecanismo de implementacin neutral para modelar
los aspectos de almacenado de datos del sistema' Las clases persistentes" sus atri&utos"
% sus relaciones pueden ser implementados directamente en una &ase de datos orientada
a o&/etos' Aun as)" en el entorno de desarrollo actual" la &ase de datos relacional es el
m-todo ms usado para el almacenamiento de datos' (s en el modelado de esta rea
donde $9L se queda corto' (l diagrama de clase de $9L se puede usar para modelar
algunos aspectos del dise0o de &ases de datos relacionales" pero no cu&re toda la
semntica involucrada en el modelado relacional" ma%oritariamente la nocin de atri&utos
clave que relacionan entre s) las ta&las unas con otras' Aara capturar esta informacin" un
Diagrama de Relacin de (ntidad ;(R diagram= se recomienda como e1tensin a $9L'
(l Diagrama de *lase se puede usar para modelar la estructura lgica de la &ase de datos"
independientemente de si es orientada a o&/etos o relacional" con clases representando
ta&las" % atri&utos de clase representando columnas' .i una &ase de datos relacional es el
m-todo de implementacin escogido" entonces el diagrama de clase puede ser
referenciados a un diagrama de relacin de entidad lgico' Las clases persistentes % sus
atri&utos #acen referencia directamente a las entidades lgicas % a sus atri&utos8 el
modelador dispone de varias opciones so&re cmo inferir asociaciones en relaciones entre
entidades' Las relaciones de #erencia son referenciadas directamente a superGsu&
relaciones entre entidades en un diagrama; ver fig' 23= de relacin de entidad ;(R diagram='
:i4ur( <37 E3te*si)* %e 1"9 -- DiseDo %e B(ses %e D(tos Rel(cio*(les co* el
Di(4r($( %e Rel(ci)* %e E*ti%(% AER Di(4r($B
UNIVERSIDAD NACIONAL AIER!A " A DIS!ANCIA # UNAD
)scuela de #iencias %sicasH 7ecnolog8a e Ingenier8a
Programa Ingenier8a de sistemas
*urso 30112H V !ases de datos avanadas
Xa en el Diagrama de Relacin de (ntidad" el modelador puede empear el proceso de
determinar cmo el modelo relacional enca/a8 % qu- atri&utos son claves primarias" claves
secundarias" % claves e1ternas &asadas en relaciones con otras entidades' La idea es
construir un modelo lgico que sea conforme a las reglas de normaliacin de datos'
Al implementar el dise0o relacional" es una estrategia encaminada a #acer referencia al
diagrama de relacin de entidad lgico a un diagrama f)sico que represente el o&/etivo" el
RD!9.' (l diagrama f)sico puede ser denormaliado para lograr un dise0o de &ase de
datos que tiene tiempos eficientes de acceso a los datos' Las relaciones superGsu& entre
entidades se resuelven por las estructuras de ta&las actuales' Adems" el diagrama f)sico
se usa para modelar propiedades espec)ficas de cada fa&ricante para el RD!9.' .e crean
varios diagramas f)sicos si #a% varios RD!9.s siendo odeplo%edo8 cada diagrama f)sico
representa uno de los RD!9. que son nuestro o&/etivo' Ver fig' 22
:i4ur( <<7 Rel(cio*es cl(ve e*tre e*ti%(%es e* u* Di(4r($( %e Rel(ci)* %e E*ti%(%
UNIVERSIDAD NACIONAL AIER!A " A DIS!ANCIA # UNAD
)scuela de #iencias %sicasH 7ecnolog8a e Ingenier8a
Programa Ingenier8a de sistemas
*urso 30112H V !ases de datos avanadas
Co*sult(s orie*t(%(s ( o/0etos
Los lengua/es de programacin orientados a o&/etos requieren que toda la interaccin con
o&/etos sea mediante env)o de mensa/es' (sto presenta serias limitaciones en las
aplicaciones de &ases de datos' *onsid-rese el e/emplo del dise0o de sistema de
computadores % la consulta ?(ncontrar todos los sistemas de computadores que utilicen c#ips
vendidos por :ld&loc^ *orporation@' .i seguimos estrictamente el modelo de la
programacin orientada a o&/etos" se de&er enviar un mensa/e a cada instancia de la clase
*#ip para verificar su valor vendedor' .i tratramos esta solicitud como un pro&lema de la
&ase de datos" esperar)amos que e1istiera un )ndice para la clase *#ip para las cuales el
campo vendedor fuera ?:ldG&loc^ *orporation@'
La >ltima forma de cmo se va a tratar la consulta corresponde a una vista relacional de la
&ase de datos de o&/etos que vimos' De #ec#o" podr)amos plantear consultas que
implicasen intersecciones de con/untos de o&/etos' .in em&argo" la vista relacional de
o&/etos est limitada a varia&les" % gran parte de que el modelo orientado a o&/etos sea tan
atractivo se de&e al uso de los m-todos'
As)" un lengua/e de consultas para un sistema de &ase de datos orientado a o&/etos de&e
incluir tanto el modelo de pasar el mensa/e de o&/eto en o&/eto ;un o&/eto cada ve= como
el modelo de pasar el mensa/e de con/unto en con/unto en con/unto ;un con/unto cada ve='
La mecla del proceso con los dos modelos conduce a serias complicaciones en el dise0o
del lengua/e" a menudo conocido como ?impedancia desa/ustada@'
Re-ere*ci(s
!A+,N, *'8 *eri .'8 Navat#e .' Dise0o conceptual de &ases de datos' $n enfoque de
entidadesGinterrelaciones' 1552' (d' AddisonG<esle%'
*A.+Al: A'8 Aiattini 9' Cundamentos % modelos de &ases de datos' 1555' (d'
Alfaomega' .egunda edicin'
*(R, ." Aelagatti D'"Distri&uted data&ases principles ` s%stems'' (d' 9acDra_GBill' 153H'
DA+(" *' I" ,ntroduccin a los sistemas de &ases de datos' (d' Arentice Ball' .-ptima
edicin'
D:R.(X" A" Budic^a :racle3' Dise0o de &ases de datos con $9L' I' (d' :racle press'
1555'
[R:(N[("D' Arocesamiento de &ases de datos' Cundamentos" dise0o e implementacin'
2003' (d' Aearson (ducation' :ctava edicin
UNIVERSIDAD NACIONAL AIER!A " A DIS!ANCIA # UNAD
)scuela de #iencias %sicasH 7ecnolog8a e Ingenier8a
Programa Ingenier8a de sistemas
*urso 30112H V !ases de datos avanadas
.,LV(R.*BA+a" [ort# % .udars#an" Cundamentos de &ases de datos" (d 9acDra_GBill'
*uarta edicin
:+a$" Valdurie" Distri&uted data&ases" (d' 9acDra_GBill'
$LL9AN" I Arinciples of data&ase s%stems" (d' *omputer science press" 1532'

Você também pode gostar