Documentos de Académico
Documentos de Profesional
Documentos de Cultura
3011
301125
25 - BASE
BASES
S DE DATO
DATOS
S AVAN
AVANZA
ZADA
DAS
S
Curso Electivo
JAVIER JIMENEZ
(Acreditador)
La primera versión de este documento fue escrita por el ingeniero Rogelio Vásquez
Bernal, posteriormente ha sido actualizado por otros profesionales, docentes de la
UNAD, cuyos nombres no fueron registrados. Esta versión del documento ha sido
editada por Anívar Chaves Torres.
Los ejemplos y ejercicios han sido diseñados exclusivamente con fines didácticos, el
autor, el editor y la universidad no asumen ninguna responsabilidad por la aplicación de
los mismos en con propósitos diferentes a la comprensión de los temas de este curso.
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
Escuela de Ciencias Básicas, Tecnología e Ingeniería
Programa Ingeniería de sistemas
Curso
Curso 301
301125
125 – Bases
Bases de datos
datos avanz
avanzada
adass
Guía de componente práctico
CONTENIDO
Protocolo..............
.............................
...................................
.......................................
...................................
...................................
...................................
.................................
................. 7
Lección 13.
13. Transacciones
Transacciones Distribuidas
Distribuidas ...............
..............................
..................................
.......................................
........................
.... 76
El curso busca que el estudiante reconoce las diferentes áreas de aplicación de las
bases de datos, diseñando y construyendo soluciones eficientes que permiten apoyar
los procesos de toma de decisiones en la empresa.
Unidades didácticas
Repaso
Conceptos Bases de datos. Este tema incluye, Modelo Entidad Relación, normalización
de datos y SQL.
Unidad I.
Bases de datos distribuidas, que son, modelo de datos Entidad Relación, fragmentación
y replicación, transacciones, consultas y catalogo distribuido.
Unidad II.
Bodegas de datos, que son, modelo relacional, modelo copo de nieve. Carga de datos
y minería de datos.
Unidad III
Contexto teórico
De otro lado, hoy en día 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.
Metodología
Sistema de evaluación
1
C.J. DATE. Introducción a los sistemas de bases de datos
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
Escuela de Ciencias Básicas, Tecnología e Ingeniería
Programa Ingeniería de sistemas
Curso 301125 – Bases de datos avanzadas
Guía de componente práctico
Hoy en día un dato, como recurso, se acepta por ser importante para la evolución
satisfactoria de la organización como lo son los recursos financieros, humanos y físicos.
Convenciones
Definición mínima
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
Escuela de Ciencias Básicas, Tecnología e Ingeniería
Programa Ingeniería de sistemas
Curso 301125 – Bases de datos avanzadas
Guía de componente práctico
Patrones genéricos
Actitud y calidad
Comunicación
Debe haber comunicación con los usuarios finales, en términos que ellos
puedan entender aunque debe seguir siendo técnicamente riguroso. Estas
técnicas de modelización se han utilizado durante muchos años para ayudar a
altos ejecutivos, directores y a otros a comprender su gestión. Es esencial
utilizar un lenguaje claro, sin abreviaturas, para lograr su comprensión. Con un
usuario final no deberíamos utilizar la palabra entidad.
Relevancia
Un medio, no un fin
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
Escuela de Ciencias Básicas, Tecnología e Ingeniería
Programa Ingeniería de sistemas
Curso 301125 – Bases de datos avanzadas
Guía de componente práctico
Aunque el modelo entidad relación es muy potente, ofrecer una idea increíble
de la compañía y actuar como un marco de trabajo para el diseño de los datos,
solo es una técnica intermedia, aunque desde luego importante.
Autoevaluación
Una de las ventajas del modelo Entidad Relación es:
Es un modelo de datos estándar que organiza la información del sistema.
Es un modelo de datos que indica como se almancena la información 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
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
Escuela de Ciencias Básicas, Tecnología e Ingeniería
Programa Ingeniería de sistemas
Curso 301125 – Bases de datos avanzadas
Guía de componente práctico
Entidad
Se define como entidad a cualquier objeto real o abstracto, que existe en un contexto
determinado o puede llegar a existir y del cual deseamos guardar información.
Reglas para definir una entidad: Cualquier objeto sólo puede ser representado por
una entidad. Es decir las entidades son mutuamente exclusivas en todos los casos.
Cada entidad debe ser identificada en forma única. Es decir, cada instancia (aparición)
de una entidad debe encontrarse separada e identificable claramente de todas las
demás instancias de ese tipo de entidad.
Relación
Nombre
Eliminar los atributos dependientes de atributos que no son parte del identificador
único.
3
Date, C.J. An Introduction
Introduction to Database System, 4ed. 1986. Adisson-Wesley Publishing Co
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
Escuela de Ciencias Básicas, Tecnología e Ingeniería
Programa Ingeniería de sistemas
Curso
Curso 301
301125
125 – Bases
Bases de datos
datos avanz
avanzada
adass
Guía de componente práctico
También, “una relación R está en quinta forma normal (5NF), también denominada
forma normal de unión de protección (PJ/PN), si y únicamente si cada dependencia de
unión en R es una consecuencia de las claves candidatas de R.”
Desnormalización de datos
Autoevaluación
Una Base de datos que no esté en 3FN
Tiene problemas a nivel de inserción y borrado de datos
Tiene problemas al generar el backup
Tiene problemas a nivel de generación de roles
Tiene problemas de identidad
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
Escuela de Ciencias Básicas, Tecnología e Ingeniería
Programa Ingeniería de sistemas
Curso 301125 – Bases de datos avanzadas
Guía de componente práctico
Lección 5. Transacciones
Propiedades de la transacción
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 continuación
explicamos cada una de estas propiedades:
Asegura que o bien todos los efectos de la transacción 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 transacción se haya ejecutado parcialmente.
ia:
Una transacción que termina con éxito se dice que está comprometida (commited), una
transacción que haya sido comprometida llevará a la base de datos a un nuevo estado
consistente que debe permanecer incluso si hay un fallo en el sistema. En cualquier
momento una transacción sólo puede estar en uno de los siguientes estados:
ejecución.
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
Escuela de Ciencias Básicas, Tecnología e Ingeniería
Programa Ingeniería de sistemas
Curso 301125 – Bases de datos avanzadas
Guía de componente práctico
transacción.
cución normal.
Concurrencia
Los fallos que ocurren en un computador pueden darse por diferentes motivos (fallos de
disco, cortes de energía o fallos en el software). En cada uno de estos casos puede
perderse información concerniente a la base de datos. Existen varios tipos de fallas, a
considerar:
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
Escuela de Ciencias Básicas, Tecnología e Ingeniería
Programa Ingeniería de sistemas
Curso 301125 – Bases de datos avanzadas
Guía de componente práctico
Un optimizador basado en el costo genera una serie de planes de evaluación para una
consulta y luego elige el que tiene un menor costo asociado, las medidas de costo
comúnmente tienen que ver con la E/S y el tiempo de CPU utilizado en ejecutar la
consulta, sin embargo, es cuestión de cada SGBD el elegir las medidas de costo que
mejor representen el criterio de minimización en la utilización de recursos.
Autoevaluación
Una de las propiedades de la transacción es la de Aislamiento. En bases de datos, el
Aislamiento significa
Una transacción A no puede ver datos de una transacción B, mientras la
transacción B no termine.
Una transacción A puede ver datos de una transacción B siempre
Una transacción A no puede ver datos de una transacción B, mientras B no le
asigne timesptamp
Una transacción A no puede ver datos de una transacción B, mientras tenga
abiertas tablas
Referencias
DATE, C. J, Introducción a los sistemas de bases de datos. Ed. Prentice Hall. Séptima
edición.
www.lsi.us.es/docencia/asignaturas/dbd.html
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
Escuela de Ciencias Básicas, Tecnología e Ingeniería
Programa Ingeniería de sistemas
Curso 301125 – Bases de datos avanzadas
Guía de componente práctico
www.cieloprogramadores.com
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
Escuela de Ciencias Básicas, Tecnología e Ingeniería
Programa Ingeniería de sistemas
Curso 301125 – Bases de datos avanzadas
Guía de componente práctico
Aún cuando es posible que un usuario común no perciba los desarrollos relevantes de
nuevos productos, para las aplicaciones existe una demanda permanente por mayor
funcionalidad, mayor número de servicios, más flexibilidad y mejor rendimiento. Así, al
diseñar un nuevo sistema de información o al prolongar la vida de uno ya existente, se
debe buscar siempre formas para enlazar las soluciones ofrecidas por la tecnología
disponible a las necesidades de las aplicaciones de los usuarios.
Un área en la cual las soluciones están integrando tecnología con nuevas arquitecturas
o formas de hacer las cosas es, sin lugar a dudas, el área de los sistemas distribuidos
de información. Ellos se refieren al manejo de datos almacenados en facilidades de
cómputo localizadas en muchos sitios ligados a través de una red de comunicaciones.
Un caso específico de estos sistemas distribuidos es lo que se conoce como bases de
datos distribuidas, tópico a estudiar en estas notas.
Los sistemas de bases de datos distribuidas son un caso particular de los sistemas de
cómputo distribuido en los cuales un conjunto de elementos de procesamiento
autónomos (no necesariamente homogéneos) se interconectan por una red de
comunicaciones y cooperan entre ellos para realizar sus tareas asignadas.
Enfoques al problema
problema de diseño de bases de datos distribuidas
distribuidas
El enfoque de arriba hacia abajo (top-down). Este enfoque es más apropiado para
aplicaciones nuevas y para sistemas homogéneos. Consiste en partir desde el análisis
de requerimientos para definir el diseño conceptual y las vistas de usuario. A partir de
ellas se define un esquema conceptual global y los esquemas externos necesarios. Se
prosigue con el diseño de la fragmentación
fragmentación de la base de datos, y de aquí se continúa
continúa
con la localización de los fragmentos en los sitios, creando las imágenes físicas. Esta
aproximación se completa ejecutando, en cada sitio, "el diseño físico" de los datos, que
se localizan en éste. En la Figura 21 se presenta un diagrama
diagrama con la estructura general
general
del enfoque top-down.
El diseño de abajo hacia arriba (bottom-up). Se utiliza particularmente a partir de bases
de datos existentes, generando con esto bases de datos distribuidas. En forma
resumida, el diseño bottom-up de una base de datos distribuida requiere de la selección
de un modelo de bases de datos común para describir el esquema global de la base de
datos. Esto se debe, a que es posible que se utilicen diferentes SMBD. Después se
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
Escuela de Ciencias Básicas, Tecnología e Ingeniería
Programa Ingeniería de sistemas
Curso
Curso 301
301125
125 – Bases
Bases de datos
datos avanz
avanzada
adass
Guía de componente práctico
Autoevaluación
Lección 8. Fragmentación
Ejemplo 1. Considere una relación J del ejemplo visto en la introducción del presente
capítulo.
J:
JNO PRESUPUESTO
J1 150000
J2 135000
J3 250000
J4 310000
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
Escuela de Ciencias Básicas, Tecnología e Ingeniería
Programa Ingeniería de sistemas
Curso 301125 – Bases de datos avanzadas
Guía de componente práctico
J5 1500000
J1 Instrumentación Guajira
J3 CAD/CAM Medellín
J4 Mantenimiento Cartagena
J5 CAD/CAM Bogotá
R=U1 i <= n Ri
Requerimientos de información:
Autoevaluación
Localización de datos
Consideremos una consulta muy sencilla: “Encontrar todas las tuplas de la relación
depósito”. Aunque la consulta es muy simple, de hecho es trivial; su procesamiento no
es trivial, ya que es posible
posible que la relación depósito esté fragmentada, repetida o las
dos cosas. Si la relación depósito está repetida, es preciso decidir que copia se va a
utilizar. Si ninguna de las copias está fragmentada, se elige la copia que implique
costes de transmisión más reducidos. Pero si una copia está fragmentada, la elección
no es tan sencilla, ya que es preciso calcular varios productos o uniones para
reconstruir la relación depósito. En tal caso, el número de estrategias para este ejemplo
sencillo puede ser
ser grande. De hecho, la elección de una estrategia
estrategia puede ser
ser una tarea
tan compleja como hacer una consulta arbitraria.
La cual incluye dos subexpresiones. La primera incluye sólo depósito1 y, por tanto,
puede ser calculada en la localidad de Riverside. La segunda incluye solamente
depósito2 y, por tanto, puede ser calculada en la localidad de Columbia.
Un aspecto importante
importante de la elección de una estrategia
estrategia de procesamiento
procesamiento de consulta
es elegir una estrategia de intersección. Considere la expresión algebraica relacional:
Suponemos que ninguna de las tres relaciones esté repetida o fragmentada y que
cliente está almacenada en la localidad L c, de
depós
pósito
ito en
en la L d y sucursal en la L b. Sea Li
la localidad donde se originó la consulta. El sistema debe producir el resultado en la
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
Escuela de Ciencias Básicas, Tecnología e Ingeniería
Programa Ingeniería de sistemas
Curso
Curso 301
301125
125 – Bases
Bases de datos
datos avanz
avanzada
adass
Guía de componente práctico
localidad Li. Entre las posibles estrategias para procesar posibles estrategias para
procesar esta consulta se encuentran en las siguientes:
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 están la cantidad de datos que debe transmitirse, el
costo de transmitir un bloque de datos entre dos localidades determinadas y la
velocidad de
de procesamiento
procesamiento relativa en cada localidad.
localidad. Considerar
Considerar las dos primeras
primeras
estrategias mencionadas. Si se envían las tres relaciones a L i y existen índices para
ellas, puede ser necesario volver a crear esos índices en L i. Esto requiere tiempo extra
de procesamiento
procesamiento y más accesos al disco. Sin embargo,
embargo, la segunda estrategia
estrategia tiene la
desventaja de que una relación potencialmente grande (cliente |x| deposito) debe
transmitirse desde L d a Lb. Esta relación repite los datos del domicilio de un cliente una
vez por cada cuenta que tenga
tenga el cliente. Así,
Así, la segunda estrategia puede
puede requerir la
transmisión de un volumen mayor que la primera estrategia.
Autoevaluación
Autoevaluación
La consulta de datos intenta reducir el costo de trasmisión
Verdadero Falso
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
Escuela de Ciencias Básicas, Tecnología e Ingeniería
Programa Ingeniería de sistemas
Curso 301125 – Bases de datos avanzadas
Guía de componente práctico
La primera acción que el sistema debe tomar en una consulta es traducirla a su forma
interna. Este proceso de traducción es similar al trabajo realizado por el analizador
sintáctico ( parser ) de un compilador. Al generar la forma interna de la consulta, el
parser revisa la sintaxis de la consulta del usuario, verifica que los nombres de
relaciones que aparecen en la consulta sean nombres de relaciones de base de datos,
y así sucesivamente. Si la consulta se expresó en términos de una vista, el parser
sustituye todas las referencias al nombre de la vista por la expresión del álgebra
relacional para calcular esa vista.
Una vez que se ha traducido la consulta a una forma interna del álgebra, empieza el
proceso de optimización. La primera fase de la optimización se lleva a cabo en el nivel
del álgebra relacional. Se hace un intento para encontrar una expresión que sea
equivalente a la expresión dada, pero que pueda ejecutarse de manera eficiente. La
siguiente fase implica la selección de una estrategia detallada para procesar la
consulta. Debe tomarse una decisión acerca de la manera exacta en que se va a
ejecutar la consulta. Se deben elegir los índices específicos que se van a usar. Se debe
determinar el orden en que se van a procesar las tuplas. La elección final de una
estrategia se basa principalmente en el número de accesos a disco que se requieran.
Dada una consulta, generalmente existe una variedad de métodos para calcular la
respuesta. Cada forma de expresar la consulta “sugiere” una estrategia para encontrar
la respuesta. Sin embargo, no esperamos que los usuarios escriban sus consultas de
una forma que sugiera la estrategia más eficiente. Así pues, el sistema debe
encargarse de transformar la consulta como la introdujo el usuario en una consulta
equivalente que pueda calcularse de manera más eficiente. Esta “optimización”, o más
exactamente, mejora de la estrategia para procesar una consulta se llama optimización
de consultas. Existe una analogía entre la optimización de consultas por un sistema de
base de datos.
Autoevaluación
Verdadero Falso
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
Escuela de Ciencias Básicas, Tecnología e Ingeniería
Programa Ingeniería de sistemas
Curso 301125 – Bases de datos avanzadas
Guía de componente práctico
Hasta este momento, las primitivas básicas de acceso que se han considerado son las
consultas (queries). Sin embargo, no se ha discutido qué pasa cuando, por ejemplo,
dos consultas tratan de actualizar el mismo elemento de datos, o si ocurre una falla del
sistema durante la ejecución de una consulta. Dada la naturaleza de una consulta, de
lectura o actualización, a veces no se puede simplemente reactivar la ejecución de una
consulta, puesto que algunos datos pueden haber sido modificados antes la falla. El no
tomar en cuenta esos factores puede conducir a que la información en la base de datos
contenga datos incorrectos.
UPDATE J
Esta consulta puede ser especificada, usando la notación de SQL, como una
transacción otorgándole un nombre:
Begin_transaction ACTUALIZA_PRESUPUESTO
begin
UPDATE J
end.
Ejemplo 2. Considere una agencia de reservaciones para líneas aéreas con las
siguientes relaciones:
Begin_transaction Reservación
begin
input( flight_no, date, customer_name );
EXEC SQL UPDATE FLIGHT
SET STSOLD = STSOLD + 1
WHERE FNO = flight_no
AND DATE = date
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
Escuela de Ciencias Básicas, Tecnología e Ingeniería
Programa Ingeniería de sistemas
Curso 301125 – Bases de datos avanzadas
Guía de componente práctico
Begin_transaction Reservación
begin
input( flight_no, date, customer_name );
INTO temp1, temp2
EXEC SQL SELECT STSOLD, CAP
FROM FLIGHT
WHERE FNO = flight_no AND DATE = date
if temp1 = temp2 then
output( "no hay asientos libres" )
Abort
else
EXEC SQL UPDATE FLIGHT
SET STSOLD = STSOLD + 1
WHERE FNO = flight_no AND DATE = date
EXEC SQL INSERT
INTO FC( FNAME, DATE, CNAME, SPECIAL )
VALUES (flight_no, date, customer_name, null )
Commit
output("reservación terminada");
endif
end.
Caracterización de transacciones
Observe que en el ejemplo anterior las transacciones leen y escriben datos. Estas
acciones se utilizan como base para caracterizar a las transacciones. Los elementos de
datos que lee una transacción se dice que constituyen el conjunto de lectura (RS).
Similarmente, los elementos de datos que una transacción escribe se les denomina el
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
Escuela de Ciencias Básicas, Tecnología e Ingeniería
Programa Ingeniería de sistemas
Curso 301125 – Bases de datos avanzadas
Guía de componente práctico
Atomicidad . Se refiere al hecho de que una transacción se trata como una unidad de
operación. Por lo tanto, o todas las acciones de la transacción se realizan o ninguna de
ellas se lleva a cabo. La atomicidad requiere que si una transacción se interrumpe por
una falla, sus resultados parciales deben ser deshechos. La actividad referente a
preservar la atomicidad de transacciones en presencia de abortos debido a errores de
entrada, sobrecarga del sistema o ínter bloqueos se le llama recuperación de
transacciones. La actividad de asegurar la atomicidad en presencia de caídas del
sistema se le llama recuperación de caídas.
Durabilidad . Es la propiedad de las transacciones que asegura que una vez que una
transacción hace su commit , sus resultados son permanentes y no pueden ser
borrados de la base de datos. Por lo tanto, los DBMS aseguran que los resultados de
una transacción sobrevivirán a fallas del sistema. Esta propiedad motiva el aspecto de
recuperación de bases de datos, el cual trata sobre como recuperar la base de datos a
un estado consistente en donde todas las acciones que han hecho un commit queden
reflejadas.
Tipos de Transacciones
Las transacciones pueden pertenecer a varias clases. Aun cuando los problemas
fundamentales son los mismos para las diferentes clases, los algoritmos y técnicas que
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
Escuela de Ciencias Básicas, Tecnología e Ingeniería
Programa Ingeniería de sistemas
Curso 301125 – Bases de datos avanzadas
Guía de componente práctico
Tiempo de duración. Tomando en cuenta el tiempo que transcurre desde que se inicia
una transacción hasta que se realiza un commit o se aborta, las transacciones pueden
ser de tipo batch o en línea. Estas se pueden diferencias también como transacciones
de corta y larga vida. Las transacciones en línea se caracterizan por tiempos de
respuesta muy cortos y por accesar una porción relativamente pequeña de la base de
datos. Por otro lado, las transacciones de tipo batch toman tiempos relativamente
largos y accesan grandes porciones de la base de datos.
Estructura de transacciones
Begin_transaction Reservación
...
end.
En las transacciones anidadas, las operaciones de una transacción pueden ser así
mismo transacciones. Por ejemplo,
Begin_transaction Reservación
...
Begin_transaction Vuelo
...
end. {Vuelo}
...
Begin_transaction Hotel
...
end.
...
end.
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
Escuela de Ciencias Básicas, Tecnología e Ingeniería
Programa Ingeniería de sistemas
Curso 301125 – Bases de datos avanzadas
Guía de componente práctico
Una transacción anidada dentro de otra transacción 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 transacción anidada: debe empezar
después que su padre y debe terminar antes que él. Más aún, el commit de una
subtransacción es condicional al commit de su padre, en otras palabras, si el padre de
una o varias transacciones aborta, las subtransacciones hijas también serán abortadas.
T 4: { R ( x ), R (y ), R (z ), R (w ), W (y ), W ( x ), W (z ), W (w ), C }
Los siguientes son los aspectos más importantes relacionados con el procesamiento de
transacciones:
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
Escuela de Ciencias Básicas, Tecnología e Ingeniería
Programa Ingeniería de sistemas
Curso 301125 – Bases de datos avanzadas
Guía de componente práctico
Autoevaluación
Verdadero Falso
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
Escuela de Ciencias Básicas, Tecnología e Ingeniería
Programa Ingeniería de sistemas
Curso 301125 – Bases de datos avanzadas
Guía de componente práctico
Los algoritmos de control de datos semántico tienen que satisfacer siempre las
restricciones de integridad cuando una transacción pretende hacer un commit.
transacción.
Robustez
Es una configuración distribuida es necesario prever otro tipo de fallos, como pueden
ser:
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 línea de
comunicación afectados.
conveniente enviar un mensaje a todas ellas informando sin delación que la línea se
recuperó.
Control de concurrencia
Teoría de la seriabilidad
T 1: Read( x ) T 2: Write( x ) T 3: Read( x ) Write( x ) Write( y ) Read( y ) Commit
Read( z ) Read( z ) Commit Commit Una calendarización de las acciones de las tres
transacciones anteriores puede ser:
H 1 = { W 2( x ), R 1( x ), R 3( x ), W 1( x ), C 1, W 2(y ), R 3(y ), R 2(z ), C 2, R 3(z ), C 3 }
Okl <T Oij
Ejemplo 2. Considere las tres transacciones del Ejemplo 1, una posible calendarización
completa está dada por la siguiente gráfica dirigida acíclica (DAG).
Las primeras dos condiciones definen a P ’ como una restricción de P en el dominio
en donde las relaciones de ordenamiento en P se mantienen por P ’. La última condición
indica que para cualquier elemento de
incluidos también en
HS = { W 2( x ), W 2(y ), R 2(z ), C 2, R 1( x ), W 1( x ), C 1, R 3( x ), R 3(y ), R 3(z ), C 3 }
Dos calendarizaciones, S1 y S2, definidas sobre el mismo conjunto de transacciones T ,
se dice que son equivalentes si para cada par de operaciones en conflicto Oij y Okl (i
k ), cada vez que Oij <1 Okl , entonces, Oij <2 Okl . A esta relación se le conoce como
equivalencia de conflictos puesto que define la equivalencia de dos calendarizaciones
en término del orden de ejecución relativo de las operaciones en conflicto en ellas.
HS = { W 2( x ), W 2(y ), R 2(z ), C 2, R 1( x ), W 1( x ), C 1, R 3( x ), R 3(y ), R 3(z ), C 3 }
H 1 = { W 2( x ), R 1( x ), R 3( x ), W 1( x ), C 1, W 2(y ), R 3(y ), R 2(z ), C 2, R 3(z ), C 3 }
Las siguientes calendarizaciones son equivalentes por conflictos; por lo tanto H 2 es
serializable:
HS = { W 2( x ), W 2(y ), R 2(z ), C 2, R 1( x ), W 1( x ), C 1, R 3( x ), R 3(y ), R 3(z ), C 3 }
H 2 = { W 2( x ), R 1( x ), W 1( x ), C 1, R 3( x ), W 2(y ), R 3(y ), R 2(z ), C 2, R 3(z ), C 3 }
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
Escuela de Ciencias Básicas, Tecnología e Ingeniería
Programa Ingeniería de sistemas
Curso 301125 – Bases de datos avanzadas
Guía de componente práctico
Por definición Bodega de Datos es una colección de datos actualizada, por lo tanto la
herramienta utilizada debe completar las actualizaciones en el momento.
Autoevaluación
Análisis
Diseño
Montaje
Autoevaluación
Verdadero Falso
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
Escuela de Ciencias Básicas, Tecnología e Ingeniería
Programa Ingeniería de sistemas
Curso 301125 – Bases de datos avanzadas
Guía de componente práctico
Prototipo: La meta del prototipo de Bodega de Datos es proveer a los usuarios finales
con una aproximación de lo que la Bodega de Datos les puede proporcionar en un
período de tiempo tan corto como sea posible tal que el grupo de Bodega de Datos
pueda demostrar los beneficios de la Bodega de Datos a los usuarios y recolectar lo
más pronto la retroalimentación crítica de los usuarios.
En la mayoría de los casos el prototipo contemplará una cargada no repetible (de una
sola vez) de los datos de las estructuras de las Bodegas de Datos. La plataforma y la
Base de Datos para el almacenamiento puede también diferir de aquellas para la
arquitectura definitiva de Bodega de Datos, lo que es importante también, es que la
presentación de los Datos al usuario final sea tan fiel como sea posible para que sea
igualmente presentada en posteriores etapas de la Bodega de Datos.
Piloto
La prueba del concepto tecnológico es un paso opcional que se puede necesitar para
definir si la arquitectura especificada para la Bodega de Datos funcionará finalmente
como se intenta. En la mayoría de proyectos de Bodega de Datos el esfuerzo del piloto
ha servido también como la prueba del concepto para la arquitectura técnica. Es crítico
que la prueba del concepto tecnológico no esté cercana al prototipo, dado que la meta
del prototipo es poner datos en las manos de los usuarios tan pronto como sea posible.
Datos de los sistemas de Aplicación y de otras fuentes de Bodegas de Datos deben ser
periódicamente extraídos y alimentados en la capa de Data Scrubbing. La extracción
debe ser realizada en muchos casos utilizando los programas para acompañar esta
tarea. El Data scrubbing debe ser hecho bien sea con ayuda de programas
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
Escuela de Ciencias Básicas, Tecnología e Ingeniería
Programa Ingeniería de sistemas
Curso 301125 – Bases de datos avanzadas
Guía de componente práctico
Por esta razón se debe utilizar una serie de Data Marts para proveer a los usuarios
finales con fácil acceso a sus datos. Los Data Marts deben consistir en Datos extraídos
del corazón de la Bodega de Datos y reorganizados y/o reformateados para hacer más
fácil su uso para diferentes propósitos. Pero fofo que esos propósitos específicos
pueden cambiar en el tiempo, los Data Marts deben ser concebidos con estructuras de
Datos temporales. Cuando los usuarios no ven más los datos como están presentados
por un Data Mart en particular, este Data Mart debe ser removido. Y mientras los
usuarios desarrollan nuevas formas de hacer búsquedas y mirar los datos, deben ser
creados nuevos Data Marts para hacer sus búsquedas más simples y con un mejor
desempeño.
Los Data Mart pueden incluir una gran variedad de estilos de tablas. Algunas pueden
ser simplemente un subconjunto de datos de la Bodega de Datos, conteniendo
solamente datos para una particular zona geográfica, un período específico de tiempo,
una unidad de negocios.
Es crítico que los usuarios sean provistos del método apropiado para utilizar la
información de las Bodegas de Datos. No se debe esperar que un usuario novato
negocie una compleja y poderosa herramienta sólo para hacer una simple pregunta de
la Bodega de Datos. Similarmente un usuario adelantado rápidamente quedará
frustrado con la Bodega de Datos si el o ella esperan hacer un complejo análisis de
negocio usando una herramienta de acceso con menos poder del que se necesita. Es
importante reconocer que hay diferentes estilos de usuarios finales cada uno con su
propio nivel de conocimiento y necesidades, para así proveer de apropiados
mecanismos de acceso para cada clase de usuarios.
Autoevaluación
secundarias,, y claves
secundarias claves externas
externas basadas
basadas en relaciones
relaciones con
con otras entidades.
e ntidades. La idea es
construir un modelo lógico que sea conforme a las reglas de normalización de datos.
Al implementa
implementarr el diseño relacional, es una estrategia
estrategia encaminad
encaminadaa a hacer referencia al
diagrama de relación de entidad lógico a un diagrama físico que represente el objetivo, el
RDBMS. El El diagrama físico puede
puede ser denormalizado
denormalizado para lograr
lograr un diseño de base de
datos que tiene
tiene tiempos
tiempos eficientes
eficientes de acceso a los datos. Las relaciones super-sub
super-sub entre
entidades se resuelven por las estructuras
estructuras de tablas actuales.
actuales. Además,
Además, el diagrama físico
se usa para modelar propiedades específicas de cada fabricante para el RDBMS. Se crean
varios diagramas físicos si hay varios RDBMSs
RDBMSs siendo
siendo 'deployed';
'deployed'; cada diagrama
diagrama físico
representa uno de los RDBMS que son nuestro objetivo. Ver fig. 44
Los lenguajes de programación orientados a objetos requieren que toda la interacción con
objetos sea mediante envío de mensajes. Esto presenta serias limitaciones en las
aplicaciones de bases de datos. Considérese el ejemplo del diseño 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
programación orientada a objetos, se deberá enviar un mensaje a cada instancia de la clase
Chip para verificar su valor vendedor. Si tratáramos esta solicitud como un problema de la
base de datos, esperaríamos que existiera un índice para la clase Chip para las cuales el
campo vendedor fuera “Old-block Corporation”.
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 diseño
del lenguaje, a menudo conocido como “impedancia desajustada”.
Referencias
BATINI C.; Ceri S.; Navathe S. Diseño conceptual de bases de datos. Un enfoque de
entidades-interrelaciones. 1994. Ed. Addison-Wesley.
CERI S, Pelagatti G.,Distributed databases principles & systems.. Ed. MacGraw-Hill. 1985.
DATE, C. J, Introducción a los sistemas de bases de datos. Ed. Prentice Hall. Séptima
edición.
DORSEY, P, Hudicka Oracle8. Diseño de bases de datos con UML. J. Ed. Oracle press.
1999.