Edición de «Final del 11/04/12 (Bases de Datos)»

De Cuba-Wiki
Advertencia: no has iniciado sesión. Tu dirección IP se hará pública si haces cualquier edición. Si inicias sesión o creas una cuenta, tus ediciones se atribuirán a tu nombre de usuario, además de otros beneficios.

Puedes deshacer la edición. Antes de deshacer la edición, comprueba la siguiente comparación para verificar que realmente es lo que quieres hacer, y entonces publica los cambios para así efectuar la reversión.

Revisión actual Tu texto
Línea 5: Línea 5:
== Preguntas ==
== Preguntas ==


# Defina la durabilidad de una transacción y de un ejemplo donde se aplique esta propiedad (1 punto)
===Defina la durabilidad de una transacción y de un ejemplo donde se aplique esta propiedad (1 punto)===
# Defina grafo de precedencia y enuncie el teorema de serializabilidad. Por qué es importante este teorema en el control de concurrencia?(2.5 puntos)
Hace referencia a que una vez commiteados los cambios de una transacción estos cambios no deben ser perdidos incluso ante fallas posteriores (cortes de corriente, crasheos, tuviejas, etc).
# Indique y explique dos diferencias entre el lockeo binario y el shared-lock ( o lockeo ternario).(2 puntos)
# Defina la clausura de un atributo. Escriba la definición de clave candidata en función de la clausura.(1.5 puntos)
# Dada la siguiente relación {NROPEDIDO; CODART, NOMART, CANTPEDIDA, PRECIO, CODEMP. NOMEMP., FECHA}. Indicar: (1.5 puntos)
## Una dependencia funcional completa
##  Una dependencia funcional parcial.
##  Una dependencia funcional transitiva.
# Cuál es la diferencia entre una clave primaria y un índice único? (1 punto)
# Indique los tres niveles que tiene la arquitectura de una base de datos. Ejemplifique (1.5 puntos).
# Mencione dos reglas del álgebra relacional que toma en cuenta la optimización por reglas. Ejemplifique su uso (2 puntos)
# De un ejemplo de cómo funciona el recovery en el caso de una caída abrupta de la base de datos por un corte de luz si la misma utiliza redo logging? (2 puntos).
# Detalle el uso que el DBMS le da al system catalog en el momento de crear una tabla (1 punto)
# ¿Por qué es necesario para un DBA conocer la cantidad de registros que inicialmente va a tener una tabla? (1 punto)
# ¿Cuándo una entidad se considera débil? De un ejemplo (1.5 puntos)


== Respuestas ==
===Defina grafo de precedencia y enuncie el teorema de serializabilidad. Por qué es importante este teorema en el control de concurrencia?(2.5 puntos)===
El grafo de precedencia para una historia H sobre un conjunto T de transacciones (T={t_1, t_2, ..., t_n}) es el grafo digido SG = (V,E) que tiene como nodos a las transacciones y donde existe una arista (u,v) si alguna operación de T_u precede y conflictua con alguna operación de T_v en H.


# Hace referencia a que una vez commiteados los cambios de una transacción estos cambios no deben ser perdidos incluso ante fallas posteriores (cortes de corriente, crasheos, tuviejas, etc).
El teorema de serializabilidad consiste en que la historia H es serializable si y solo si su grafo de precedencia es acíclico.
# El grafo de precedencia para una historia H sobre un conjunto T de transacciones (T={t_1, t_2, ..., t_n}) es el grafo digido SG = (V,E) que tiene como nodos a las transacciones y donde existe una arista (u,v) si alguna operación de T_u precede y conflictua con alguna operación de T_v en H. El teorema de serializabilidad consiste en que la historia H es serializable si y solo si su grafo de precedencia es acíclico.
 
#
===Indique y explique dos diferencias entre el lockeo binario y el shared-lock ( o lockeo ternario).(2 puntos)===
##  El lockeo binario tiene dos estados mientars que el ternario tiene 3.
* El lockeo binario tiene dos estados mientars que el ternario tiene 3.
##  El lockeo binario fuerza exclusión mutua tanto para lectura como para escritura mientras que el ternario lo fuerza sólo para escritores (permite acceso a múltiples lectores).
* El lockeo binario fuerza exclusión mutua tanto para lectura como para escritura mientras que el ternario lo fuerza sólo para escritores (permite acceso a múltiples lectores).
##  El lockeo ternario puede sufrir starving de escritores mientras que el binario no.
* El lockeo ternario puede sufrir starving de escritores mientras que el binario no.
# La clausura de un atributo X bajo una serie de dependencias funcionales F es el conjunto X+ de atributos que estan determinados funcionalmente por X aplicando las reglas de inferencia a las dependencias funcionales F. Una clave candidata es un conjunto de atributos tal que su clausura contiene a todos los atributos de la relación.
 
#  
===Defina la clausura de un atributo. Escriba la definición de clave candidata en función de la clausura.(1.5 puntos)===
## Dependencia funcional completa: CODART -> NOMART
La clausura de un atributo X bajo una serie de dependencias funcionales F es el conjunto X+ de atributos que estan determinados funcionalmente por X aplicando las reglas de inferencia a las dependencias funcionales F. Una clave candidata es un conjunto de atributos tal que su clausura contiene a todos los atributos de la relación.
##  Dependencia funcional parcial: CODART, NOMART, CANTPEDIDA -> PRECIO
 
##  Dependencia funcional transitiva: NROPEDIDO -> NOMEMP
===Dada la siguiente relación {NROPEDIDO; CODART, NOMART, CANTPEDIDA, PRECIO, CODEMP. NOMEMP., FECHA}. Indicar: (1.5 puntos)===
# Para una tabla puede haber mas de un índice único pero solo una clave primaria.
# Una dependencia funcional completa
#
# Una dependencia funcional parcial.
##  Esquema conceptual: Las tablas y los atributos que las forman corresponden al esquema conceptual, asi como el lenguaje utilizado para realizar queries a la base de datos.
# Una dependencia funcional transitiva.
##  Esquema interno: Corresponde a la estructura de los archivos y como se almacenan los datos en los mismos (sorted, heap). Tambien incluye elementos como los índices que tenga la tabla.
 
##  Esquema externo: Corresponde a las vistas para usuarios, que dan una porción de interés del esquema conceptual para esconder el resto a los usuarios que no les concierne.
* Dependencia funcional completa: CODART -> NOMART
#
* Dependencia funcional parcial: CODART, NOMART, CANTPEDIDA -> PRECIO
##  Conmutatividad de selects: Permite elegir el select menos selectivo para disminuir rapidamente la cantidad de tuplas, lo cual disminuye la cantidad de bloques que hay que leer y escribir a disco para mantener los buffers.
* Dependencia funcional transitiva: NROPEDIDO -> NOMEMP
##  Conmutatividad de la junta: Permite, al realizar un block nested loop join, elegir la menor de las relaciones para tener en memoria para disminuir el uso de bloques de disco y por lo tanto disminuir la cantidad de lecturas necesarias para poder realizar el escaneo.
 
# En primer lugar se restaura la base de datos a un punto consistente si la misma resulto dañada. Posteriormente, asumiendo que no se utiliza checkpointing, se comienza desde el inicio del log hacia abajo, rehaciendo todas las operaciones de las transacciones que commitearon. Por ultimo, se escribe abort para las transacciones que no commitearon y se flushea el log a disco.
===Cuál es la diferencia entre una clave primaria y un índice único? (1 punto)===
# Al crear una tabla, el DBMS debe revisar que la definicion sea consistente (por ejemplo revisando que no haya una tabla con el mismo nombre en la base de datos, y que las foreign keys y constraints referencien tablas correctas y existentes). Posteriormente de validar la definición de la tabla, escribe los metadatos de la misma al system catalog para posterior referencia en comandos usando el DDL y DML.
Para una tabla puede haber mas de un índice único pero solo una clave primaria.
# Para saber en cuantos shards debe dividir la tabla para poder escalar acordemente. Por ejemplo, si se sabe que la cantidad de datos excede el tamaño que permite tolerar una máquina sera necesario dividirlos en varias máquinas.
 
# Una entidad se considera débil si no tiene atributos clave propios: derivan su existencia de otra entidad y necesitan de su identificación para distinguirse de otras. Ejemplo: Hotel -- Habitación.
===Indique los tres niveles que tiene la arquitectura de una base de datos. Ejemplifique (1.5 puntos). ===
* Esquema conceptual: Las tablas y los atributos que las forman corresponden al esquema conceptual, asi como el
lenguaje utilizado para realizar queries a la base de datos.
* Esquema interno: Corresponde a la estructura de los archivos y como se almacenan los datos en los mismos (sorted, heap). Tambien
incluye elementos como los índices que tenga la tabla.
* Esquema externo: Corresponde a las vistas para usuarios, que dan una porción de interés del esquema conceptual para esconder el
resto a los usuarios que no les concierne.
 
===Mencione dos reglas del álgebra relacional que toma en cuenta la optimización por reglas. Ejemplifique su uso (2 puntos)===
* Conmutatividad de selects: Permite elegir el select menos selectivo para disminuir rapidamente la cantidad de tuplas, lo
cual disminuye la cantidad de bloques que hay que leer y escribir a disco para mantener los buffers.
* Conmutatividad de la junta: Permite, al realizar un block nested loop join, elegir la menor de las relaciones para tener en
memoria para disminuir el uso de bloques de disco y por lo tanto disminuir la cantidad de lecturas necesarias para poder realizar el
escaneo.
 
===De un ejemplo de cómo funciona el recovery en el caso de una caída abrupta de la base de datos por un corte de luz si la misma utiliza redo logging? (2 puntos). ===
En primer lugar se restaura la base de datos a un punto consistente si la misma resulto dañada. Posteriormente, asumiendo que no se utiliza checkpointing, se comienza desde el inicio del log hacia abajo, rehaciendo todas las operaciones de las transacciones que commitearon. Por ultimo, se escribe abort para las transacciones que no commitearon y se flushea el log a disco.
 
===Detalle el uso que el DBMS le da al system catalog en el momento de crear una tabla (1 punto)===
Al crear una tabla, el DBMS debe revisar que la definicion sea consistente (por ejemplo revisando que no haya una tabla con el mismo nombre en la base de datos, y que las foreign keys y constraints referencien tablas correctas y existentes). Posteriormente de validar la definición de la tabla, escribe los metadatos de la misma al system catalog para posterior referencia en comandos usando el DDL y DML.
 
===¿Por qué es necesario para un DBA conocer la cantidad de registros que inicialmente va a tener una tabla? (1 punto)===
Para saber en cuantos shards debe dividir la tabla para poder escalar acordemente. Por ejemplo, si se sabe que la cantidad de datos excede el tamaño que permite tolerar una máquina sera necesario dividirlos en varias máquinas.
 
===¿Cuándo una entidad se considera débil? De un ejemplo (1.5 puntos)===
Una entidad se considera débil si no tiene atributos clave propios: derivan su existencia de otra entidad y necesitan de su identificación para distinguirse de otras.
 
Ejemplo: Hotel -- Habitación.
Ten en cuenta que todas las contribuciones a Cuba-Wiki pueden ser editadas, modificadas o eliminadas por otros colaboradores. Si no deseas que las modifiquen sin limitaciones, no las publiques aquí.
Al mismo tiempo, asumimos que eres el autor de lo que escribiste, o lo copiaste de una fuente en el dominio público o con licencia libre (véase Cuba-Wiki:Derechos de autor para más detalles). ¡No uses textos con copyright sin permiso!

Para editar esta página, responde la pregunta que aparece abajo (más información):

Cancelar Ayuda de edición (se abre en una ventana nueva)

Plantilla usada en esta página: