Edición de «Final del 06/08/13 (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 1: Línea 1:
{{Back|Bases de Datos}}
== Preguntas ==
# Qué es el system log? Para qué se utiliza?
# Qué es el system log? Para qué se utiliza?
# Explicar detalladamente el problema de falsa actualización (como fue una traducción espantosa dio la posibilidad de elegir entre lost update o dirty read)
# Explicar detalladamente el problema de falsa actualización (como fue una traducción espantosa dio la posibilidad de elegir entre lost update o dirty read)
Línea 10: Línea 6:
# Definir la operación de proyección del álgebra relacional y dar 2 propiedades
# Definir la operación de proyección del álgebra relacional y dar 2 propiedades
# Qué es DML? Dar un ejemplo de instrucción SQL de esta categoría
# Qué es DML? Dar un ejemplo de instrucción SQL de esta categoría
# Dar 2 reglas de Álgebra relacional que involucren al JOIN que puedan usarse para optimización de consultas
# Dar 2 reglas de Álgebra relacional que incolucren al JOIN que puedan usarse para optimización de consultas
# Qué permisos pueden asignarse en una tabla?
# Qué permisos pueden asignarse en una tabla?
# El enunciado era muy largo pero esencialmente preguntaba sobre qué puede asegurarse si tenemos undo/redo, la base se cae y una transacción no hizo commit acerca de los datos en disco, si quedan los viejos, los nuevos, no puede asegurarse nada
# El enunciado era muy largo pero esencialmente preguntaba sobre qué puede asegurarse si tenemos undo/redo, la base se cae y una transacción no hizo commit acerca de los datos en disco, si quedan los viejos, los nuevos, no puede asegurarse nada
Línea 16: Línea 12:
# Qué es clustering? Dar 2 ejemplos de uso donde pueda aplicarse
# Qué es clustering? Dar 2 ejemplos de uso donde pueda aplicarse
# Dar 2 ventajas y desventajas en el uso de stored procedures
# Dar 2 ventajas y desventajas en el uso de stored procedures
== Respuestas ==
# El system log es donde se almacena información sobre todas las operaciones que han realizado las transacciones y que afectan los items de la base de datos. Esta información se necesita para permitir recuperar ante fallas por parte de las transacciones.
# El problema de lost update consiste en que dos procesos concurrentemente modifican la misma variable, despues de ambos haberla leido. Como las escrituras se serializan, ambos leen un valor original, lo modifican y lo escriben. Cuando termina el primer proceso de escribir, el segundo escribe pero nunca comprueba si cambio el valor original, por lo que el primer cambio se pierde y el segundo hace de cuenta que nunca existio.
# El schedule de transacciones / una historia es recuperable cuando antes de commitear, todas las transacciones de las cual leyo commitean
# Las reglas de armstrong adicionales son: Union (X->Y, X->Z => X->YZ), pseudotransitividad (Si \forall W, X->Y y YW->Z => XW->Z) y Descomposicion (X->YZ => X->Y, X->Z)
# Una descomposicion se puede decir SPI cuando la clausura funcional de la clave da todos los atributos de la relacion univocamente identificados. Una descomposicion NO SPI puede ser R(ABCD), (AB) (CD) con (A->B, C->D), luego una tupla de ABCD a1b1c1d1, puede ser conformada como a1b1c2d2 o a2b2c1d1 o a1b1c1d1. Luego no es SPI.
# La proyeccion de AR es la funcion que dada una tupla, devuelve los elementos que coinciden con el predicado. Es equivalente a elegir las columnas de un select. PI_a(PI_b(X)) = PI_{a interseccion b}(X) y PI_L(R x S) = PI_L1(R) x PI_L2(S) si L=L1 U L2
# DML es Data Manipulation Language. Es el lenguaje que sirve para operar sobre el contenido de las relaciones (tablas), no para modificar su estructura. SELECT y INSERT INTO son de las funciones mas comunes. SELECT user FROM logs WHERE inserted_on < TODAY()
# Si es un JOIN Natural, R ⋈ S, entonces R⋈S = S⋈R. Esto permite definir cual es la tabla por la cual se recorre secuencialmente y cual se recorre por indices. Otra propiedad, Sigma_a(R⋈S) = Sigma_a(R)⋈Sigma_a(S) . Esto permite reducir la cantidad de registros que entran al join.
# A una tabla se le pueden asignar permisos de lectura y de escritura para los distintos usuarios.
# Si hay UNDO, pero no hay COMMIT, entonces tenemos que deshacer los datos del disco. Ahi aplicamos el mecanismo de recuperacion de UNDO, que es deshacer todos los cambios de esa transaccion (del ultimo al primero), y luego abortarla. Si hay REDO, sabemos que no hay nada grabado en la base, asi que no tenemos que hacer nada para la transaccion salvo agregarle el ABORT al final.
# DDL es Data Definition Language. Es el lenguaje que se usa para definir los objetos de la base de datos (usuarios, permisos, tablas, triggers, indices). La instruccion tipica es CREATE TABLE Productos( ID Integer, Name VARCHAR(30))
# Clustering en el sentido data mining, es una tecnica no supervisada de clasificacion, donde se busca obtener patrones de agrupamiento de distintos datos. Es un criterio para definir que datos son similares a otros y que datos son muy distintos (los distintos grupos). Clustering en el sentido de bases de datos es relativo a como estan puestos en las paginas los indices con respecto a los registros a los que apuntan.
# Los stored procedures sirven para encapsular la logica del negocio en procedimientos almacenados en el motor de bases de datos. Ventajas: Son caja negra para los usuarios, no necesitan saber como estan implementados. Reducen la necesidad de mover registros de la BD a una aplicacion y de vuelta a la BD, haciendolos a veces mucho mas eficientes. Pueden tener un control muy fino de privilegios, de quienes pueden ejecutarlo. Desventajas: Estan escritos en lenguajes propietarios de los motores, dificultando las migraciones. Muchas veces pueden ser procesos muy largos que usen recursos del motor de BD que los podria hacer un servidor aparte, creando un cuello de botella de CPU durante toda la ejecucion innecesariamentee, aumentando la latencia de todos los otros usuarios.
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: