Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Evaluativa 3
Evaluativa 3
JAVIER JIMENEZ
(Acreditador)
La primera versin de este documento fue escrita por el ingeniero Rogelio Vsquez
Bernal, posteriormente ha sido actualizado por otros profesionales, docentes de la
UNAD, cuyos nombres no fueron registrados. Esta versin del documento ha sido
editada por Anvar Chaves Torres.
Este documento fue preparado para estudiantes de Ingeniera de sistemas de la Unad y
se acoge a la licencia Creative Commons 3.0. En consecuencia, se permite su uso con
fines acadmicos, siempre que se reconozca el crdito al autor. Se prohbe la
reproduccin, por cualquier medio, con fines comerciales.
Los ejemplos y ejercicios han sido diseados exclusivamente con fines didcticos, el
autor, el editor y la universidad no asumen ninguna responsabilidad por la aplicacin de
los mismos en con propsitos diferentes a la comprensin de los temas de este curso.
CONTENIDO
Nmero de crditos y dedicacin horaria................................................................................. 6
Protocolo........................................................................................................................................ 7
Introduccin general al curso ................................................................................................... 14
Unidad I. Bases de datos distribuidas..................................................................................... 15
Capitulo 1. Conceptos bsicos de bases de datos ........................................................... 15
Leccin 1. Modelo entidad relacin................................................................................. 15
Leccin 2. Elementos del Modelo entidad relacin....................................................... 18
Leccin 3. lgebra relacional ........................................................................................... 28
Leccin 5. Transacciones ................................................................................................. 39
Captulo 2. Diseo de bases de datos distribuidas........................................................... 50
Leccin 6. Bases de datos distribuidas .......................................................................... 50
Leccin 7. Bases de datos distribuidas .......................................................................... 55
Leccin 8. Fragmentacin................................................................................................. 59
Leccin 9. Tipos de fragmentacin de datos ................................................................. 64
Leccin 10. Diseo de replica .......................................................................................... 68
Capitulo 3. Consultas............................................................................................................. 70
Leccin 11. Consultas distribuidas .................................................................................. 70
Leccin 12. Descomposicin de una consulta y localizacin de datos distribuidos 74
Leccin 13. Transacciones Distribuidas ......................................................................... 76
Leccin 14. Consistencia de la base de datos interna................................................. 84
Leccin 15. Catlogo ....................................................................................................... 101
Unidad 2. Bodegas de datos .................................................................................................. 106
Captulo 4. Diseo de bodegas de datos ......................................................................... 106
Protocolo
Introduccin
El curso de Bases de datos Avanzada hace una revisin acerca de diversas
aplicaciones, en cuanto a bases de datos se refiere, que permiten identificar ventajas,
desventajas y reas de aplicacin.
Este curso es electivo, pretende fortalecer los conocimientos bsicos de bases de datos
y revisar los temas de diferentes tipos de aplicacin.
Es un curso metodolgico, de tres crditos (3), lo que significa que deben realizar
procesos de aprendizaje de por lo menos 144 horas en el semestre: 108 horas de
dedicacin independiente, investigando, leyendo, interiorizando los conceptos,
desarrollo de actividades colaborativas con otros compaeros de curso; 36 horas de
acompaamiento tutorial, donde se resuelven dudas, se apoya el proceso individual y
de grupo.
El curso pretende:
Conocer otros tipos de modelos de datos.
Determinar las condiciones, necesidades, ventajas y desventajas de los diferentes tipos
de bases de datos.
Aplicar los conceptos de acuerdo a los requerimientos de la empresa
Justificacin
Los sistemas de bases de datos, son los ms importantes para el manejo eficiente de
informacin. Aunque el sustento terico sigue siendo el mismo, las realidades de la
empresa, las aplicaciones de la informacin almacenadas en las bases de datos, como
soporte decisional, las inclusin de los objetos en el mundo planificado y pensado para
registros planos, hace de este curso importante para ver otras realidades y retos en el
desarrollo de los sistemas de bases de datos.
Las competencias que promueve el curso y que son necesarias son:
Cognitiva: Capacidad de apropiarse de un conjunto de conocimientos a travs del
desarrollo, monitoreo y aplicacin de procesos de pensamiento.
Comunicativa: Capacidad de comprender, expresar mensajes y de desarrollar procesos
argumentativos, apoyados por las relaciones interpersonales.
Intensionalidades formativas
Propsitos
El curso pretende definir un marco de trabajo que facilite el desarrollo de conocimientos
alrededor de los temas propuestos
Reconocer la existencia de modelos de datos y sus implicaciones en los sistemas de
informacin
Determinar cuando se deben usar las estructuras de bases de datos definidas en el
curso acadmico
Objetivos
Metas
Que el estudiante pueda aplicar los modelos de datos usados para los sistemas
de bases de datos transaccionales, bodegas de datos y modelos de datos
orientados a objeto
Que el estudiante conozca que tcnicas puede aplicar para minera de datos.
Que el estudiante pueda plantear proyectos que requieran las tecnologas
desarrolladas en el curso
Competencias
Las competencias que promueve el curso y que son necesarias son:
Cognitiva: Capacidad de apropiarse de los conocimientos planteados en el contenido
del curso a travs del desarrollo, monitoreo y aplicacin de procesos de pensamiento.
Contexto terico
El curso de bases de datos avanzada, se ha pensado como un curso electivo que
quiere fortalecer los temas vistos en el curso bsico.
Se intenta mostrar el sustento terico en los sistemas de bases de datos distribuidos,
sistema que hoy retoma importancia por los desarrollos en los medios de comunicacin
que han reactivado ese tipo de proyectos.
De otro lado, hoy en da los sistemas de bodegas de datos tienen un espacio claro en
la empresa, para permitir, al revisar la historia, crear el concepto de fidelidad y
conocimiento de los gustos del cliente para ofrecer mejores servicios.
De otro lado, la idea de objetos y como los sistemas de bases de datos los utilizan, es
importante por el auge que ha tomado este tipo de sistemas.
Metodologa
Con el propsito de dar cumplimiento a las intencionalidades formativas del curso, es
importante que se planifique de manera responsable el proceso de aprendizaje
Hoy en da un dato, como recurso, se acepta por ser importante para la evolucin
satisfactoria de la organizacin como lo son los recursos financieros, humanos y fsicos.
Convenciones
En todo momento se deben aplicar convenciones rigurosas, estndares y
directrices, incluyendo los conceptos de normalizacin de datos.
Definicin mnima
Patrones genricos
Deberan buscarse patrones genricos de datos para permitir a los usuarios
utilizarlos en su gestin, adems de tener la oportunidad de perfeccionar la
forma de procesar sus datos y de sugerir estructuras ms rentables y flexibles
para los diseadores de bases de datos.
Actitud y calidad
Los modelizadores deben comenzar aplicar las convenciones automticas y
velozmente, pero sin sacrificar el rigor. Tambin debe aprovechar cualquier
oportunidad con los usuarios para mejorar la precisin de los modelos.
Comunicacin
Debe haber comunicacin con los usuarios finales, en trminos que ellos
puedan entender aunque debe seguir siendo tcnicamente riguroso. Estas
tcnicas de modelizacin se han utilizado durante muchos aos para ayudar a
altos ejecutivos, directores y a otros a comprender su gestin. Es esencial
utilizar un lenguaje claro, sin abreviaturas, para lograr su comprensin. Con un
usuario
final
no
deberamos
utilizar
la
palabra
entidad.
Relevancia
Los requisitos de informacin solamente pueden tener valor si aportan las
necesidades funcionales de la organizacin, dentro del marco de trabajo de los
objetivos y propsitos de la empresa.
Un medio, no un fin
Aunque el modelo entidad relacin es muy potente, ofrecer una idea increble
de la compaa y actuar como un marco de trabajo para el diseo de los datos,
solo es una tcnica intermedia, aunque desde luego importante.
Autoevaluacin
Una de las ventajas del modelo Entidad Relacin es:
Es un modelo de datos estndar que organiza la informacin del sistema.
Es un modelo de datos que indica como se almancena la informacin en los discos
Es un modelo de datos donde cada persona define su estandar para identificar los
elementos del modelo
Es un modelo que se implementa directamente en el computador
Nombre
Representacin de una relacin: Una relacin se representa mediante una lnea 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 B. Los valores se dividen en dos (2) y se conocen
como cardinalidad de la relacin (Figura 2).
El primer valor, denominado cardinalidad mnima, indica el menor nmero de
elementos en esa relacin; generalmente ese valor puede ser 0 1. Si el valor es 0, se
dice que la relacin es opcional y la grfica de la relacin se presenta con un circulo en
la terminacin de la relacin se hace con una lnea punteada. Si el valor es 1, se dice
que la relacin es obligatoria, la cual se presenta en la terminacin de la relacin
mediante una lnea perpendicular o mediante una lnea continua.
El segundo valor de la cardinalidad, cardinalidad mxima, indica la cantidad mxima
de registros de la relacin B por cada valor de la relacin A; generalmente son valores
1, o muchos (2, 3, ....n). La representacin se realiza con la terminacin conocida como
"pata de gallina", que es, la terminacin con 3 lneas.
Hay que quitar los atributos por los que los valores son dependientes slo de parte del
identificador nico. Esto se conoce como Segunda forma normal . Dichos atributos
normalmente suponen una entidad perdida, pero relacionada.
Los atributos deben ser dependientes directamente del identificador nico (tercera
forma normal)
Hay que quitar los atributos que no sean dependientes directamente del identificador
nico de la entidad. Esto se conoce como Tercera forma normal. En el subtema tres
se profundizara el concepto de normalizacin.
Identificador nico
Definicin
Cada entidad debe ser nicamente identificable de forma que cada instancia de la
entidad est separada y sea claramente identificable de todas las otras instancias de
ese tipo de entidad. El identificador nico puede ser un atributo, una combinacin de
relaciones o una combinacin de atributos y relaciones.
Una entidad puede tener ms de un medio alternativo de identificacin nica. El mtodo
primario se puede mostrar en el diagrama entidad-relacin antecediendo a un atributo
que forme el identificador con una marca # , y colocando una barra cruzada en el caso
de una (s) lnea (s) de relacin. Figura 11
Reconocimiento de patrones
La mayora de las personas tienen la capacidad incorporada de reconocer formas y
patrones en un instante y por tanto pueden recordar fcilmente el tema. Los
modelizadores pueden beneficiarse de esto haciendo que cada diagrama sea
claramente diferente en forma.
Texto
Hay que asegurarse de que el texto no sea ambiguo. Hay que evitar las abreviaturas y
las jergas. Hay que utilizar las convenciones de lectura descritas anteriormente y leer
todo el diagrama para asegurarse de que es completo y preciso. Un buen diagrama
entidad relacin debera ser semnticamente completo. Para mejorar la comprensin y
la precisin al leerlo, hay que aadir adjetivos y ejemplos cuando sea necesario.
2. Proyeccin
3. Producto
4. Unin
5. Interseccin
6. Diferencia
7. Join
8. Divisin
Tabla 1 - Operadores del lgebra relacional
1. Seleccin
El operador de seleccin opta por tuplas que satisfagan cierto predicado, se utiliza la
letra griega sigma minscula () para sealar la seleccin. El predicado aparece como
subndice de . La Relacin que constituye el argumento se da entre parntesis
despus de la .
Ejemplos :
2. Proyeccin
La operacin de proyeccin permite quitar ciertos atributos de la relacin, esta
operacin es unaria, copiando su relacin base dada como argumento y quitando
ciertas columnas, La proyeccin se seala con la letra griega pi mayscula (). Como
subndice de se coloca una lista de todos los atributos que se desea aparezcan en el
resultado. La relacin argumento se escribe despus de entre parntesis.
Ejemplos :
3. Producto.
En lgebra relacional el producto de dos relaciones A y B es:
A Veces B o A X B
Produce el conjunto de todas las Tuplas t tales que t es el encadenamiento de una
tupla a perteneciente a A y de una b que pertenece a B. se utiliza el smbolo X para
representar el producto.
Ejemplos:
Dueo x Mvil
4. Unin.
5. Interseccin.
En lgebra relacional la interseccin de dos relaciones compatibles A y B
A INTERSECCION B o A B
Produce el conjunto de todas las tuplas pertenecientes a A y B. Al igual que en teora
de conjuntos el smbolo representa aqu la interseccin entre dos relaciones.
Ejemplo:
(Dueo)
(Chofer)
6. Diferencia
En lgebra relacional la diferencia entre dos relaciones compatibles A y B
A MENOS B o A B
Produce el conjunto de todas las tuplas t que pertenecen a A y no pertenecen a B.
2
Ejemplo:
Ejemplo :
8. Divisin
En lgebra relacional el operador de divisin divide la relacin A con grado m + n por la
relacin B entregando como resultado una relacin con grado m. El atributo m + i de A
y el atributo i de B deben estar definidos dentro del mismo dominio. As el resultado de
A DIVIDIDO POR B o A / B
produce la relacin C con un slo atributo X, tal que cada valor de x de C.X aparece
como un valor de A.X, y el par de valores (x, y) aparece en A para todos los valores y
que aparecen en B.
Ejemplo:
Selecciona todos los autos a cuyos chferes les caduca la licencia el 01/01/1999
Nota del autor: los resultados de cada uno de los ejemplos citados en este tema estn
al final del modulo como un anexo.
Autoevaluacin
Los operadores Seleccin y Proyeccin son conocidos como operadores Unarios
porque
Son operadores unarios porque se aplican sobre una tabla o relacin
Son operadores unarios porque se aplican a un conjunto de tuplas
Son operadores unarios porque se aplican a los ndices
Son operadores unarios porque se aplican a un tablespace
Normalizacin
Para comprobar que un modelo entidad-relacin tiene todas sus entidades
unvocamente identificadas, se ha normalizado completamente y por tanto se ajusta a
la tercera forma normal; se pueden aplicar las siguientes comprobaciones simples:
Asegurar que todas las entidades son identificables de forma nica
Por una combinacin de atributos y / o relaciones
Primera forma normal: [1NF]
Eliminar los atributos repetidos o grupos de atributos.
Si existe ms de un valor a la vez para un atributo o para ms de uno con el mismo
nombre, se define una entidad nueva, la cual se describe mediante ese atributo. El
identificador nico de esta nueva entidad consta de uno de los atributos que se fueron
con ella y la relacin (de muchos a uno) se lleva a la entidad original.
Tambin, una relacin R est en quinta forma normal (5NF), tambin denominada
forma normal de unin de proteccin (PJ/PN), si y nicamente si cada dependencia de
unin en R es una consecuencia de las claves candidatas de R.
Desnormalizacin de datos
La desnormalizacin de datos es el procedimiento inverso, llevado a cabo puramente
por razones de mejorar la realizacin de sistemas de produccin, particularmente
cuando estn computarizados. La desnormalizacin slo se debe realizar sobre el
diseo. No poner en peligro nunca el modelo de gestin.
La desnormalizacin en formas manuales de procedimientos es necesariamente muy
comn, como queda evidenciado por el hecho de que la mayor parte de los formularios
en papel mantienen grandes datos de referencias. Todos conocemos los problemas
que se pueden originar cuando ese dato se cambia y se tiene que volver a emitir el
grupo entero de formularios.
Autoevaluacin
Una Base de datos que no est en 3FN
Tiene problemas a nivel de insercin y borrado de datos
Tiene problemas al generar el backup
Tiene problemas a nivel de generacin de roles
Tiene problemas de identidad
Leccin 5. Transacciones
Una transaccin es una unidad de la ejecucin de un programa que accede y
posiblemente actualiza varios elementos de datos. Se delimita dependiendo del
lenguaje por las sentencias inicio transaccin y fin transaccin y se compone de todas
las instrucciones que se encuentran entre estos dos delimitadores.
Propiedades de la transaccin
Para asegurar la consistencia de los datos se necesita que el sistema de base de datos
tengan las propiedades llamadas ACID: (Atomicity, Consistency, Isolation, Durability Atomicidad, Consistencia, Aislamiento, Durabilidad [Silberschatz97]). A continuacin
explicamos cada una de estas propiedades:
Asegura que o bien todos los efectos de la transaccin se reflejan en la base de datos,
o bien ninguno de ellos; un fallo no puede dejar a la base de datos en un estado en el
cual una transaccin se haya ejecutado parcialmente.
ia:
Asegura que si la base de datos es consistente inicialmente, la ejecucin de la
transaccin deja la base de datos en un estado consistente.
ejecucin.
transaccin.
cucin normal.
Concurrencia
Existen varios esquemas de control de concurrencia que aseguran la secuencialidad,
todos estos esquemas o bien retrasan una operacin o bien abortan la transaccin que
ha realizado la operacin. Los ms conocidos son los protocolos de bloqueo, el
esquema de ordenacin por marcas temporales, las tcnicas de validacin, el esquema
de granularidad mltiple y los esquemas multiversin.
Un protocolo de bloqueo es un conjunto de reglas que indican el momento en que una
transaccin puede bloquear o desbloquear un objeto de la base de datos. El protocolo
de bloqueo de dos fases permite que una transaccin bloquee un objeto slo despus
de que haya desbloqueado otro objeto distinto, este mtodo asegura la secuencialidad.
El esquema de ordenacin por marcas temporales asegura la secuencialidad
seleccionando previamente un orden en todo par de transacciones. Existen 2 formas de
implementar este esquema, uno es por medio de valores timestamp (dependientes del
reloj del sistema) y por medio de un contador lgico que se incrementa cada vez que
asigna una nueva marca temporal. Este protocolo asegura la secuencialidad en cuanto
a conflictos y la ausencia de interbloqueos, si una de las transacciones viola la norma la
transaccin se retrasa y se le asigna una nueva marca temporal. Por ejemplo, una
operacin leer se puede retrasar porque todava no se ha escrito el valor apropiado o
incluso rechazar si ha sobrescrito el valor que supuestamente se iba a leer.
Un esquema de validacin es un mtodo de control de concurrencia adecuado para
transacciones de slo lectura y en las cuales la tasa de conflictos es baja. Se basa en
dividir una transaccin en 3 etapas (lectura, validacin y escritura) y trabajar con el
sistema. Un error lgico ocurre cuando una transaccin no puede continuar con su
ejecucin normal a causa de una condicin interna como lo es un desbordamiento o un
exceso de recursos. Un error del sistema ocurre cuando el sistema se encuentra en un
estado no deseado como en el caso de los interbloqueos.
{ t | P(t)},
Es decir, son el conjunto de tuplas t tales que se cumple el predicado P para cada t.
Siguiendo la misma notacin, se utiliza t[A] para el valor de la tupla t en el atributo A.
"Conjunto de todas las tuplas t tales que existe una tupla s en la relacin Dueo para la
que los valores de t y de s son iguales en el atributo Nombre y el valor de s para el
atributo vigencia = S ". La variable de tupla t se define slo en el atributo Nombre,
puesto que ste es el nico atributo para el que se especifica una condicin para t. As,
el resultado es una relacin sobre (Nombre).
Si lo que se desea es obtener las tarifas de todos los viajes que ha efectuado todos los
mviles de marca chevrolet, la consulta requiere de dos clusulas Existe conectadas
por el operador de conjuncin lgica y.
Que se lee como el conjunto de todas las tuplas (tarifa) correspondientes a los viajes
que han hecho todos los mviles de marca chevrolet.
Considrese ahora la consulta obtener todos los RUT de los dueos de mviles, cuyos
mviles no hayan efectuado nunca un viaje:
que ocupa la clusula Existe para exigir que el dueo posea un mvil y la clusula no
existe para eliminar a aquellos mviles que tengan viajes realizados.
La consulta que se presenta a continuacin utiliza la implicacin, la frmula P implica
Q significa que si P es verdad entonces Q debe ser verdad, se introduce el
constructor para todo. Se desea Selecciona todos los autos a cuyos chferes les
caduca la licencia el 01/01/1999.
www.cieloprogramadores.com
procesamiento de informacin.
aplicacin trabajara, desde un punto de vista lgico, como si un solo SMBD ejecutado
en una sola mquina, administrara esos datos.
Un sistema de base de datos distribuida (SBDD) es entonces el resultado de la
integracin de una base de datos distribuida con un sistema para su manejo.
Dada la definicin anterior, es claro que algunos sistemas no se pueden considerar
como SBDD. Por ejemplo, un sistema de tiempo compartido no incluye necesariamente
un sistema de manejo de bases de datos y, en caso de que lo haga, ste es controlado
y administrado por una sola computadora.
Un sistema de multiprocesamiento puede administrar una base de datos pero lo hace
usualmente a travs de un solo sistema de manejo de base de datos; los procesadores
se utilizan para distribuir la carga de trabajo del sistema completo o incluso del propio
SMBD pero actuando sobre una sola base de datos. Finalmente, una base de datos la
cual reside en un solo sitio de una red de computadoras y que es accesada por todos
los nodos de la red no es una base de datos distribuida (Figura 19). Este caso se trata
de una base de datos cuyo control y administracin esta centralizada en un solo nodo
pero se permite el acceso a ella a travs de la red de computadoras.
interconectados por una red de tipo WAN. Por otro lado, si los sitios estn localizados
en diferentes edificios o departamentos de una misma organizacin pero
geogrficamente en la misma ubicacin, entonces, estn conectados por una red local
(LAN) (Figura 20).
Autoevaluacin
Autoevaluacin
El diseo Top-Down, es mejor desarrollarlo cuando
El sistema de base de datos a trabajar es nuevo, comienza de cero
Ya existen bases de datos y hay que integrarlas en el sistema distribuido
La programacin a utilizar es orientada a objeto
Se utiliza patrones de diseo
Leccin 8. Fragmentacin
J5 1500000
J2: informacin acerca de los nombres y ubicaciones de proyectos
JNO JNOMBRE LUGAR
J1 Instrumentacin Guajira
J2 Desarrollo de bases de datos Cartagena
J3 CAD/CAM Medelln
J4 Mantenimiento Cartagena
J5 CAD/CAM Bogot
i <= n Ri
Procesamiento de
Consultas
Manejo de Directorios
Control de
Concurrencia
Confiabilidad
Realidad
Recopilacin
completa
Fcil
Recopilacin Parcial
Particionamiento
Moderado
Moderado
Fcil o no existente
Moderado
Moderado
Difcil
Moderado
Fcil
Muy alto
Aplicacin posible
Alto
Realista
Bajo
Aplicacin posible
Autoevaluacin
En trminos generales, la fragmentacin busca
Que la informacin se administre en el sitio donde ella pertenece
Que la informacin se administre en todos los sitios
Que la informacin se administre verticalmente
Que la informacin se administre horizontalmente
En las siguientes secciones revisaremos de manera informal cada uno de los tipos
mencionados. Ms adelante, se presentar de manera ms formal la construccin de
los diferentes tipos de fragmentacin.
Fragmentacin horizontal primaria
Consiste del particionamiento en tuplas de una relacin global en subconjuntos, donde
cada subconjunto puede contener datos que tienen propiedades comunes y se puede
definir expresando cada fragmento como una operacin de seleccin sobre la relacin
global.
Ejemplo 3. Considere la relacin global
SUPPLIER (SNUM, NAME, CITY)
entonces, la fragmentacin horizontal puede ser definida como:
SUPPLIER1 = SLcity == "SF"SUPPLIER
SUPPLIER1 = SLcity == "LA"SUPPLIER
Esta fragmentacin satisface la condicin de completes si "SF" y "LA" son solamente
los nicos valores posibles del atributo CITY.
2. La condicin de reconstruccin se logra con:
SUPPLIER = SUPPLIER1 unin SUPPLIER2
3. La condicin de disjuntos se cumple claramente en este ejemplo.
Fragmentacin horizontal derivada
La fragmentacin derivada horizontal se define partiendo de una fragmentacin
horizontal.
En esta operacin se requiere de Semi-junta (Semi-Join) el cual nos sirve para derivar
las tuplas o registros de dos relaciones.
Ejemplo 4. Las siguientes relaciones definen una fragmentacin horizontal derivada de
la relacin SUPPLY.
SUPPLY1 = SUPPLYSJsnum == snumSUPPLIER1
SUPPLY2 = SUPPLYSJsnum == snumSUPPLIER2
Fragmentacin vertical
La fragmentacin vertical es la subdivisin de atributos en grupos. Los fragmentos se
obtienen proyectando la relacin global sobre cada grupo. La fragmentacin es correcta
si cada atributo se mapea en al menos un atributo del fragmento.
Ejemplo 5. Considere la siguiente relacin global:
EMP( empnum, name, sal, tax, mgrnum, depnum )
una fragmentacin vertical de esta relacin puede ser definida como:
EMP1 = PJempnum, name, mgrnum, depnum EMP
EMP2 = PJempnum, sal, tax EMP
La reconstruccin de la relacin EMP puede ser obtenida como:
EMP = EMP1 (JN empnum) EMP2 porque empnum es una clave de EMP
Fragmentacin hbrida
En lo que respecta a la fragmentacin hbrida, esta consiste en aplicar la fragmentacin
vertical seguida de la fragmentacin horizontal o viceversa.
Ejemplo 6. Considere la relacin global
EMP (empnum, name, sal, tax, mrgnum, depnum)
Las siguientes son para obtener una fragmentacin mixta, aplicando la vertical seguida
de la horizontal:
EMP1 = SL depnum <= 10 PJempnum, name, mgrnum, depnum EMP
EMP2 = SL 10 < depnum <= 20 PJempnum, name, mgrnum, depnum EMP
EMP3 = SL depnum > 20 PJempnum, name, mgrnum, depnum EMP
Verdadero
Falso
Capitulo 3. Consultas
Leccin 11. Consultas distribuidas
El procesamiento de consultas es de suma importancia en bases de datos
centralizadas. Sin embargo, en BDD ste adquiere una relevancia mayor. El objetivo es
convertir transacciones de usuario en instrucciones para manipulacin de datos. No
obstante, el orden en que se realizan las transacciones afecta grandemente la
velocidad de respuesta del sistema. As, el procesamiento de consultas presenta un
problema de optimizacin en el cual se determina el orden en el cual se hace la menor
cantidad de operaciones. En BDD se tiene que considerar el procesamiento local de
una consulta junto con el costo de transmisin de informacin al lugar en donde se
solicit la consulta.
Objetivo del procesamiento de las consultas
En un sistema de base de datos es posible cambiar la estructura inicial, pero es algo
que puede resultar muy costoso desde el punto de vista de tiempo y dinero. Por tanto,
cuando se presenta una consulta al sistema, es necesario hallar el mejor mtodo de
encontrar la respuesta utilizando la estructura existente de la base de datos. Existe un
gran nmero de estrategias posibles para procesar una consulta, especialmente si la
estructura es compleja. No obstante, normalmente vale la pena que el sistema dedique
una cantidad importante de tiempo en la seleccin de una buena estrategia. El coste de
procesar una consulta normalmente est dominado por el acceso al disco. Pero, en un
sistema distribuido es preciso tener en cuenta otros factores, como son:
La cual incluye dos subexpresiones. La primera incluye slo depsito1 y, por tanto,
puede ser calculada en la localidad de Riverside. La segunda incluye solamente
depsito2 y, por tanto, puede ser calculada en la localidad de Columbia.
Existe an una optimizacin que se puede hacer as:
localidad Li. Entre las posibles estrategias para procesar posibles estrategias para
procesar esta consulta se encuentran en las siguientes:
i.
depsito de Ld. Enviar cliente |x| depsito de Ld a Lb, donde se calcula (cliente |x|
deposito) |x| sucursal. El resultado de esta operacin es enviado a Li.
de Lc, Ld y Lb.
No puede garantizarse que una estrategia sea la mejor en todos los casos. Entre los
factores que deben tener en cuenta estn la cantidad de datos que debe transmitirse, el
costo de transmitir un bloque de datos entre dos localidades determinadas y la
velocidad de procesamiento relativa en cada localidad. Considerar las dos primeras
estrategias mencionadas. Si se envan las tres relaciones a Li y existen ndices para
ellas, puede ser necesario volver a crear esos ndices en Li. Esto requiere tiempo extra
de procesamiento y ms accesos al disco. Sin embargo, la segunda estrategia tiene la
desventaja de que una relacin potencialmente grande (cliente |x| deposito) debe
transmitirse desde Ld a Lb. Esta relacin repite los datos del domicilio de un cliente una
vez por cada cuenta que tenga el cliente. As, la segunda estrategia puede requerir la
transmisin de un volumen mayor que la primera estrategia.
Tambin pueden utilizarse dos estrategias adicionales, la de interseccin utilizando el
paralelismo y la estrategia de semi-interseccin.
Autoevaluacin
La consulta de datos intenta reducir el costo de trasmisin
Verdadero
Falso
Falso
Ejemplo 2. Considere una agencia de reservaciones para lneas areas con las
siguientes relaciones:
FLIGHT( FNO, DATE, SRC, DEST, STSOLD, CAP )
CUST( CNAME, ADDR, BAL )
FC( FNO, DATE, CNAME, SPECIAL )
Una versin simplificada de una reservacin tpica puede ser implementada
mediante la siguiente transaccin:
Begin_transaction Reservacin
begin
input( flight_no, date, customer_name );
EXEC SQL UPDATE FLIGHT
SET STSOLD = STSOLD + 1
WHERE FNO = flight_no
AND DATE = date
end.
conjunto de escritura (WS). Note que los conjuntos de lectura y escritura no tienen que
ser necesariamente disjuntos. La unin de ambos conjuntos se le conoce como el
conjunto base de la transaccin (BS = RS U WS).
Ejemplo 4. Los conjuntos de lectura y escritura de la transaccin del Ejemplo 3.3 son:
RS[Reservacin] = { FLIGHT.STSOLD, FLIGHT.CAP }
WS[Reservacin] = { FLIGHT.STSOLD, FC.FNO, FC.DATE, FC.NAME,
FC.SPECIAL }
Formalizacin del concepto de transaccin
Sea Oij(x) una operacin Oj de la transaccin Ti la cual trabaja sobre alguna entidad x.
Oj
Oj es una operacin atmica, esto es, se ejecuta como una unidad
indivisible. Se denota por OSi = U j Oij al conjunto de todas las operaciones de la
transaccin Ti. Tambin, se denota por Ni la condicin de terminacin para Ti, donde,
Ni
La transaccin Ti es un orden parcial, Ti = { I i, <i }, donde
Sumatoria i = OSi I {Ni}
Para cualesquiera dos operaciones, Oij, Oik OSi, si Oij = R(x) y Oik = W(x) para
cualquier elemento de datos x, entonces, Oij <i Oik Oik <i Oij
Para todo Oij I OSi, Oij <i Ni
Ejemplo 3. Considere una transaccin simple T que consiste de los siguientes
pasos:
Read( x )
Read( y )
x x + y
Write( x )
Commit
La especificacin de su transaccin de acuerdo con la notacin formal que se ha
introducido es la siguiente:
Sumatoria = { R(x), R(y), W(x), C }
<i = { (R(x), W(x)), (R(y), W(x)), (W(x), C), (R(x), C), (R(y), C) }
Una 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. Existen restricciones obvias en una transaccin anidada: debe empezar
despus que su padre y debe terminar antes que l. Ms an, el commit de una
subtransaccin es condicional al commit de su padre, en otras palabras, si el padre de
una o varias transacciones aborta, las subtransacciones hijas tambin sern abortadas.
Las transacciones anidadas proporcionan un nivel ms alto de concurrencia entre
transacciones. Ya que una transaccin consiste de varias transacciones, es posible
tener ms concurrencia dentro de una sola transaccin. As tambin, es posible
recuperarse de fallas de manera independiente de cada subtransaccin. Esto limita el
dao a un parte ms pequea de la transaccin, haciendo que costo de la recuperacin
sea menor.
En el segundo punto de vista se considera el orden de las lecturas y escrituras. Si las
acciones de lectura y escritura pueden ser mezcladas sin ninguna restriccin, entonces,
a este tipo de transacciones se les conoce como generales. En contraste, si se
restringe o impone que un dato deber ser ledo antes de que pueda ser escrito
entonces se tendr transacciones restringidas. Si 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. Finalmente, existe un modelo de accin
para transacciones restringidas en donde se aplica an ms la restriccin de que cada
par <read,write> tiene que ser ejecutado de manera atmica.
Ejemplo 6. Los siguientes son algunos ejemplos de los modelos de transaccin
mencionados antes.
General: T1: { R(x), R(y), W(y), R(z), W(x), W(z), W(w), C}
Dos pasos: T2: { R(x), R(y), R(z), W(x), W(y), W(z), W(w), C}
Restringida: T3: { R(x), R(y), W(y), R(z), W(x), W(z), R(w), W(w), C}
Restringida y de dos pasos:
T4: { R(x), R(y), R(z), R(w), W(y), W(x), W(z), W(w), C}
Accin: T3: { [R(x), W(x)], [R(y), W(y)], [R(z), W(z)], [R(w), W(w)], C}
Note que cada par de acciones encerrado en [ ] se ejecuta de manera atmica
8. Aspectos relacionados al procesamiento de transacciones
Los siguientes son los aspectos ms importantes relacionados con el procesamiento de
transacciones:
Falso
Por tanto, para que el sistema sea robusto, es necesario que detecte cualquiera de
estos fallos, que reconfigure el sistema de manera que pueda reanudarse el proceso y
que se recupere una vez que haya sido reparado el procesador o la lnea de
comunicacin afectados.
En general, no es posible distinguir entre los fallos en las lneas de comunicacin de la
red y de las localidades. Por tanto, el esquema de reconfiguracin que se adopte debe
estar diseado para que funcione correctamente aun cuando la red quede fragmentada.
conveniente enviar un mensaje a todas ellas informando sin delacin que la lnea se
recuper.
Control de concurrencia
El control de concurrencia trata con los problemas de aislamiento y consistencia del
procesamiento de transacciones. El control de concurrencia distribuido de una DDBMS
asegura que la consistencia de la base de datos se mantiene en un ambiente
distribuido multiusuario. Si las transacciones son internamente consistentes, la manera
ms simple de lograr este objetivo es ejecutar cada transaccin sola, una despus de
otra. Sin embargo, esto puede afectar grandemente el desempeo de un DDBMS dado
que el nivel de concurrencia se reduce al mnimo. El nivel de concurrencia, el nmero
de transacciones activas, es probablemente el parmetro ms importante en sistemas
distribuidos. Por lo tanto, los mecanismos de control de concurrencia buscan encontrar
un balance entre el mantenimiento de la consistencia de la base de datos y el
mantenimiento de un alto nivel de concurrencia.
Si no se hace un adecuado control de concurrencia, se pueden presentar dos
anomalas. En primer lugar, se pueden perder actualizaciones provocando que los
efectos de algunas transacciones no se reflejen en la base de datos. En segundo
trmino, pueden presentarse recuperaciones de informacin inconsistentes.
En este captulo se hace la suposicin de que el sistema distribuido es completamente
confiable y no experimente falla alguna.
Teora de la seriabilidad
Una calendarizacin (schedule), tambin llamado una historia, se define sobre un
conjunto de transacciones T = { T1, T2, ..., Tn } y especifica un orden entrelazado de la
ejecucin de las operaciones de las transacciones. La calendarizacin puede ser
especificada como un orden parcial sobre T.
Ejemplo 1. Considere las siguientes tres transacciones:
T1: Read( x ) T2: Write( x ) T3: Read( x ) Write( x ) Write( y ) Read( y ) Commit
Read( z ) Read( z ) Commit Commit Una calendarizacin de las acciones de las tres
transacciones anteriores puede ser:
H1 = { W2(x), R1(x), R3(x), W1(x), C1, W2(y), R3(y), R2(z), C2, R3(z), C3 }
Dos operaciones Oij(x) y Okl(x) (i y k no necesariamente distintos) que accesan el
mismo dato de la base de datos x se dice que estn en conflicto si al menos una de
ellas es una escritura. De esta manera, las operaciones de lectura no tienen conflictos
consigo mismas. Por tanto, existen dos tipos de conflictos read-write (o write-read) y
write-write. Las dos operaciones en conflicto pueden pertenecer a la misma transaccin
o a transacciones diferentes. En el ltimo caso, se dice que las transacciones tienen
conflicto. De manera intuitiva, la existencia de un conflicto entre dos operaciones indica
for Ri(x) do begin if ts(Ti) < wts( x ) then reject Ri(x) else accept Ri(x) rts(x) ts(Ti)
endfor Wi(x) do begin if ts(Ti) < rts(x) and ts(Ti) < wts(x) then reject Wi(x) else accept
Wi(x) wts(x)
ts(Ti) end. La accin de rechazar una operacin, significa que la
transaccin que la envi necesita reiniciarse para obtener la estampa de tiempo ms
reciente del dato e intentar hacer nuevamente la operacin sobre el dato.
Ordenamiento conservador por estampas de tiempo
El ordenamiento bsico por estampas de tiempo trata de ejecutar una operacin tan
pronto como se recibe una operacin. As, la ejecucin de las operaciones es
progresiva pero pueden presentar muchos reinicios de transacciones. El ordenamiento
conservador de estampas de tiempo retrasa cada operacin hasta que exista la
seguridad de que no ser reiniciada. La forma de asegurar lo anterior es sabiendo que
ninguna otra operacin con una estampa de tiempo menor puede llegar al
despachador. Un problema que se puede presentar al retrasar las operaciones es que
esto puede inducir la creacin de nter bloqueos (deadlocks).
Ordenamiento por estampas de tiempo mltiples
Para prevenir la formacin de nter bloqueos se puede seguir la estrategia siguiente. Al
hacer una operacin de escritura, no se modifican los valores actuales sino se crean
nuevos valores. As, puede haber copias mltiples de un dato. Para crear copias nicas
se siguen las siguientes estrategias de acuerdo al tipo de operacin de que se trate:
Una operacin de lectura Ri(x) se traduce a una operacin de lectura de x de una sola
versin encontrando la versin de x, digamos xv, tal que, ts(xv) es la estampa de
tiempo ms grande que tiene un valor menor a ts(Ti).
Una operacin de escritura Wi(x) se traduce en una sola versin, Wi(xw), y es aceptada
si el despachador no ha procesado cualquier lectura Rj(xr), tal que, ts(Ti) < ts(xr) <
ts(Tj)
Control de concurrencia optimista
Los algoritmos de control de concurrencia discutidos antes son por naturaleza
pesimistas. En otras palabras, ellos asumen que los conflictos entre transacciones son
muy frecuentes y no permiten el acceso a un dato si existe una transaccin conflictiva
que accesa el mismo dato. As, la ejecucin de cualquier operacin de una transaccin
sigue la secuencia de fases: validacin (V), lectura (R), cmputo (C) y escritura (W) (ver
Figura 6.6a). Los algoritmos optimistas, por otra parte, retrasan la fase de validacin
justo antes de la fase de escritura (ver Figura 32). De esta manera, una operacin
sometida a un despachador optimista nunca es retrasada.
Las operaciones de lectura, cmputo y escrita de cada transaccin se procesan
libremente sin actualizar la base de datos corriente. Cada transaccin inicialmente hace
sus cambios en copias locales de los datos. La fase de validacin consiste en verificar
si esas actualizaciones conservan la consistencia de la base de datos. Si la respuesta
WS(Tk ) RS(Tij ) =
WS(Tk ) WS(Tij ) =
traslapan, como se muestra en la Figura 33, pero las transacciones no accesan datos
comunes.
Autoevaluacin
Un candado de dos fases, solicita la primero los candados (fase de preparacin) y al
terminar , los libera
Verdadero
Falso
objeto).
se almacen inicialmente el
Los IDs de usuario son nicos dentro del sito en el cual y los IDs del sitio son nicos a
nivel global. Por lo tanto, el nombre a nivel de sistema de
MARIO @ NEWAYORK . STATS LONDRES
Denota un objeto, tal vez una varrel base, con el nombre local STATS, creada por el
usuario Mario en el sitio Nueva York y almacenada inicialmente en el sitio Londres.
Este garantizado que este nombre nunca cambiar, ni auque el objeto migre a otro
sitio.
Los usuarios se refieren normalmente a los objetos por su nombre comn. Este nombre
se usa sin calificativos, ya sea el componente nombre local del nombre a nivel
sistema (STATS en el ejemplo anterior) o un sinnimo para ese nombre a nivel de
sistema, definido por medio de la instruccin especial de SQL, R* CREATE SYNONYM.
En el ejemplo en cuestin:
CREATE SYNONYM MSTATS FOR MARIO NUEVAYORK. STATS @ LONDRES;
El efecto neto es que el objeto todava puede ser encontrado en dos accesos remotos,
como mximo. Y este es un esquema completamente distribuido; no hay un sitio con
catlogo central y no hay punto alguno de falla dentro del sistema.
Autoevaluacin
El catalogo guarda la estructura del sistema de base de datos
Verdadero
Falso
Referencias
DORSEY, P, Hudicka Oracle8. Diseo de bases de datos con UML. J. Ed. Oracle
press. 1999.
KROENKE,D. Procesamiento de bases de datos. Fundamentos,
implementacin. 2003. Ed. Pearson Education. Octava edicin
diseo
Autoevaluacin
Una bodega de datos almacena
Informacin histrica del desempeo de la empresa
Informacin de produccin
Informacin transaccional
Informacin institucional
Autoevaluacin
Se conoce como ETL, el proceso de Extraccin, Transformacin y Carga de los datos
a la bodeba
Verdadero
Falso
Herramientas de antivirus
Falso
Falso
Falso
Data Mining de alto rendimiento permite a los usuarios explorar toda la base de
datos, sin preseleccionar un subconjunto de variables.
Ms filas. Muestras mayores producen menos errores de estimacin y desvos,
y permite a los usuarios hacer inferencias acerca de pequeos pero importantes
segmentos de poblacin.
Autoevaluacin
Las minera de datos puede decirse que busca informacin dentro de la informacin
Verdadero
Falso
Falso
Falso
Autoevaluacin
Una red neuronal es similar a la manera como funciona el cerebro
Verdadero
Falso
Autoevaluacin
Un tipo de rbol, es el rbol de decisin
Verdadero
Falso
Autoevaluacin
El analisis de vecino ms cercano es tambin llamado analisis Cluster
Verdadero
Falso
Falso
Falso
Referencias
BATINI C.; Ceri S.; Navathe S. Diseo conceptual de bases de datos. Un enfoque de
entidades-interrelaciones. 1994. Ed. Addison-Wesley.
CASTAO A.; Piattini M. Fundamentos y modelos de bases de datos. 1999. Ed.
Alfaomega. Segunda edicin.
CERI S, Pelagatti G.,Distributed databases principles & systems.. Ed. MacGraw-Hill.
1985.
DATE, C. J, Introduccin a los sistemas de bases de datos. Ed. Prentice Hall. Sptima
edicin.
DORSEY, P, Hudicka Oracle8. Diseo de bases de datos con UML. J. Ed. Oracle
press. 1999.
KROENKE,D. Procesamiento de bases de datos. Fundamentos,
implementacin. 2003. Ed. Pearson Education. Octava edicin
diseo
Trmino en programacin
variable
tipo
Mtodo
funcin
Mensaje
llamada
Jerarqua de clases
jerarqua de tipos
Objetos
Antes de entrar en detalles, es bueno advertir que en el mundo de los objetos no se
encuentra el tipo de precisin al que estamos acostumbrados en el mundo relacional.
Adems, muchos conceptos de objetos o las definiciones publicadas de esos objetosson bastante imprecisos y hay muy poco consenso verdadero y mucho desacuerdo,
incluso en el nivel ms bsico. En particular, no hay un modelo de datos de objetos
abstracto ni formalmente definido, y tampoco hay consenso sobre un modelo informal.
Qu es un objeto? Todo.
Es un principio bsico del enfoque de objetos que todo es un objeto (a veces todo es
un objeto de primera clase). Algunos objetos son inmutables: ejemplos de esto pueden
ser los enteros y las cadenas de caracteres. Otros objetos son mutables; algunos
ejemplos podran ser los objetos de departamento y empleado. Por lo tanto, en la
terminologa tradicional, los objetos inmutables corresponden a los valores y los objetos
mutables corresponden a las variables.
Todo objeto tiene un tipo (el trmino en objetos es clase). A los objetos individuales con
frecuencia se les llama especficamente ejemplares (instancias) de objeto, para
distinguirlos con claridad del tipo o clase del objeto correspondiente. El trmino tipo se
utiliza en su sentido usual de lenguaje de programacin; por lo tanto, en particular en
este trmino se incluye el conjunto de operadores (el trmino en el entorno de objetos
es mtodos) que pueden ser aplicados a los objetos de ese tipo.
Polimorfismo.
Se facilita al creador del tipo la posterior modificacin del mismo, pues si los
programadores clientes no pueden acceder a los miembros no visibles, sus
aplicaciones no se vern afectadas si stos cambian o se eliminan. Gracias a
esto es posible crear inicialmente tipos de datos con un diseo sencillo
aunque poco eficiente, y si posteriormente es necesario modificarlos para
aumentar su eficiencia, ello puede hacerse sin afectar al cdigo escrito en
base a la no mejorada de tipo.
siempre existir la necesidad de obtener acceso a los datos en formas no previstas para
realizar consultas especiales, razn por la cual la idea de slo poder operar a travs de
mtodos predefinidos no es aceptable en algunas situaciones. Los sistemas OO tienden
a ser demasiado rgidos en este aspecto.
La encapsulacin se consigue aadiendo modificadores de acceso en las definiciones
de miembros y tipos de datos. Estos modificadores son partculas que se les colocan
delante para indicar desde qu cdigos puede accederse a ellos, entendindose por
acceder el hecho de usar su nombre para cualquier cosa que no sea definirlo, como
llamarlo si es una funcin, leer o escribir su valor si es un campo, crear objetos o
heredar de l si es una clase, etc
visual
Cada caso de uso se documenta por una descripcin del escenario. La descripcin
puede ser escrita en modo de texto o en un formato paso a paso. Cada caso de uso
puede ser tambin definido por otras propiedades, como las condiciones pre- y post- del
escenario --- condiciones que existen antes de que el escenario comience, y condiciones
que existen despus de que el escenario se completa. Los Diagramas de Actividad
ofrecen una herramienta grfica para modelar el proceso de un Caso de Uso. Ver fig.
35
alternas
travs
de
la
relacin
"Extiende"
Tpicamente, uno modela cada Caso de Uso con una secuencia normal de acciones. El
usuario entonces considera condiciones "que si" para cada paso, y desarrolla Casos de
Uso basados 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 "Extiende" (extends). Las relaciones Extiende (extends)
pueden ser pensadas como un caso de uso equivalente a herencia, en el cual el caso
de uso extendido, hereda y modifica el comportamiento del caso de uso original.
Eliminar el modelado redundante a travs de la relacin "Usa" (uses)
Para eliminar el modelado redundante de buena parte del comportamiento que aparezca
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
"Usa" (uses). La relacin Usa (uses) se puede pensar como un caso de uso equivalente.
Ver fig. 36.
Figura 36: Relacin caso de uso Extiende (extends) frente a relacin de caso
Usa (uses).
Los lenguajes de programacin orientados a objetos requieren que toda la interaccin con
objetos sea mediante envo de mensajes. Esto presenta serias limitaciones en las
aplicaciones de bases de datos. Considrese el ejemplo del diseo de sistema de
computadores y la consulta Encontrar todos los sistemas de computadores que utilicen chips
vendidos por Oldblock Corporation. Si seguimos estrictamente el modelo de la
programacin orientada a objetos, se deber enviar un mensaje a cada instancia de la clase
Chip para verificar su valor vendedor. Si tratramos esta solicitud como un problema de la
base de datos, esperaramos que existiera un ndice para la clase Chip para las cuales el
campo vendedor fuera Old-block Corporation.
La ltima forma de cmo se va a tratar la consulta corresponde a una vista relacional de la
base de datos de objetos que vimos.
De hecho, podramos plantear consultas que
implicasen intersecciones de conjuntos de objetos. Sin embargo, la vista relacional de
objetos est limitada a variables, y gran parte de que el modelo orientado a objetos sea tan
atractivo se debe al uso de los mtodos.
As, un lenguaje de consultas para un sistema de base de datos orientado a objetos debe
incluir tanto el modelo de pasar el mensaje de objeto en objeto (un objeto cada vez) como
el modelo de pasar el mensaje de conjunto en conjunto en conjunto (un conjunto cada vez).
La mezcla del proceso con los dos modelos conduce a serias complicaciones en el diseo
del lenguaje, a menudo conocido como impedancia desajustada.
Referencias
BATINI C.; Ceri S.; Navathe S. Diseo conceptual de bases de datos. Un enfoque de
entidades-interrelaciones. 1994. Ed. Addison-Wesley.
CASTAO A.; Piattini M. Fundamentos y modelos de bases de datos. 1999. Ed.
Alfaomega. Segunda edicin.
CERI S, Pelagatti G.,Distributed databases principles & systems.. Ed. MacGraw-Hill. 1985.
DATE, C. J, Introduccin a los sistemas de bases de datos. Ed. Prentice Hall. Sptima
edicin.
DORSEY, P, Hudicka Oracle8. Diseo de bases de datos con UML. J. Ed. Oracle press.
1999.
KROENKE,D. Procesamiento de bases de datos. Fundamentos, diseo e implementacin.
2003. Ed. Pearson Education. Octava edicin
SILVERSCHATZ, Korth y Sudarshan, Fundamentos de bases de datos, Ed MacGraw-Hill.
Cuarta edicin