Professional Documents
Culture Documents
54. Cul es la diferencia entre instancia y schema de una base de datos? Qu sublenguajes actan sobre cada
una? (2)
La instancia de una BD son los datos que la base contiene en un determinado momento. En cada instancia, cada
elemento del esquema tiene su propio conjunto actual de ejemplares. El sublenguaje que acta sobre este es el DML.
El esquema de una BD es la descripcin. Se especifica durante el diseo y no se espera que se modifique muy a
menudo. A la mayora de los modelos de datos se los representa en diagramas de esquemas, que suelen representar la
estructura de todos los tipos de registros pero no los ejemplares reales de los registros. El sublenguaje que acta sobre este
es el DDL.
76. Defina nivel externo y conceptual. De un ejemplo de cada uno. (2)
El nivel externo y el conceptual forman parte de la arquitectura de un SGDB de 3 esquemas, siendo la externa el
nivel superior, el conceptual el nivel intermedio y por ltimo el nivel interno conforma el nivel inferior (estructura fsica de
almacenamiento de la BD y accesos).
El nivel externo o nivel de vistas describe la parte de la BD que interesa a un grupo de usuarios, ocultando la otra
parte de la BD. Un ejemplo en un modelo de dos tablas una de clientes y otra de productos sera generar vistas mostrando
a un grupo de usuarios solo la tabla de productos con sus campos de detalle de productos y algn campo como por ejemplo
la fecha de nacimiento de la tabla de clientes, ocultando el resto de los datos demogrficos de la tabla de clientes a ese
grupo.
El nivel conceptual describe la estructura de la BD para los usuarios, dejando de lado la estructura fsica de
almacenamiento de la BD, pero detallando los tipos de datos, las relaciones existentes, las operaciones de usuario,
restricciones, entidades, etc. Ejemplo la relacin que existe entre dos tablas de un modelo, una de ellas Clientes y otra la de
ventas, en donde estarn probablemente relacionadas con un campo llamado Cliente_Id en donde har de clave primaria
en la Tabla de clientes y de clave fornea en la de ventas.
113. Qu es el DDL? Mencione una instruccin SQL que pertenezca a este grupo (1)
DDL significa Data Definition Languaje o en castellano Lenguaje de Definicin de datos, el cual nos permite definir
el esquema conceptual de la BD, permitiendo realizar un ABM de la estructura de un objeto del esquema o cambiar los
permisos relativos a estos, por ejemplo la instruccin CREATE TABLE, la cual nos permite crear una nueva entidad en la
BD.
114. Indique los tres niveles que tiene la arquitectura de una base de datos. Ejemplifique (1.5)
Los tres niveles son Nivel Interno, Nivel Conceptual y Nivel Externo o de Vistas.
Para el Nivel Interno, es la estructura de almacenamiento fsico de la BD y sus caminos de acceso.
Para el Nivel Conceptual deja de lado el detalle de la estructura de almacenamiento fsico de la BD y sus caminos de
accesos, pero detallando sus entidades, restricciones, operaciones de usuario, tipos de datos, etc., por ejemplo mostrando
la relacin que existe entre dos tablas de un modelo para su correcta utilizacin.
Para el nivel externo o de vistas, describe la parte de la BD que le interesa o le es inherente a un grupo de usuarios,
ocultando el resto de la misma a este grupo, por ejemplo mediante la utilizacin de vistas sobre determinadas entidades de
la BD.
En agregacin: ((A,B),C)
7. Mencione una restriccin de integridad e indique cmo se implementa en el modelo relacional (1)
Restricciones de integridad referencial: Esta restriccin se especifica entre dos relaciones, y sirve para mantener
la consistencia entre tuplas de las dos relaciones. O sea, establece que una tupla en una relacin que haga referencia a
otra relacin deber referirse a una tupla existente en esa relacin. Esta restriccin se implementa estableciendo una clave
fornea en una de las relaciones. Ejemplo, digo que para una tabla Clientes y otra tabla Ventas, el atributo cliente_id es
clave primaria de la tabla clientes y clave fornea en la tabla Ventas, as no podr existir ningn cliente_id en la tabla de
ventas que no exista en la tabla clientes, validando as la restriccin de integridad referencial.
22. Defina la operacin de select del lgebra relacional y mencione dos propiedades de la misma. (1.5)
Definicin:
Nombre de relacin: R
Condicin de seleccin: C
Tupla: T
(C)
(R)= {T / T R T satisface C}
Propiedades:
Conmutacin:
Cascada de seleccin:
(C1)
(C2)
(R)) =
(C2)
(C1)
(R) =
(R))
(C1)
(C2)
(Cn)
(R))))
(C)
(R)= {T / T R T satisface C}
Restriccin de Integridad de Entidades: Establece que ningn valor de la clave primaria puede ser nulo. Esto es
porque la PK identifica la tupla, si fuera nulo no podramos identificarlas, esto se implementa, declarando el
atributo o los atributos que conformarn la clave primaria en el momento del CREATE de la entidad.
Restriccin de Integridad Referencial: Se especifica entre dos relaciones y sirve para mantener la consistencia
entre tuplas de las dos relaciones. Esta restriccin se implementa estableciendo una clave fornea en una de las
relaciones. Ejemplo, digo que para una tabla Clientes y otra tabla Ventas, el atributo cliente_id es clave primaria
de la tabla clientes y clave fornea en la tabla Ventas, as no podr existir ningn cliente_id en la tabla de ventas
que no exista en la tabla clientes, validando as la restriccin de integridad referencial.
74. Defina la operacin de project del lgebra relacional. Cmo se traduce en un SQL esta operacin? (1.5)
Definicin:
Nombre de relacin: R
Lista de atributos: L
Tupla: T
(L)
(R)= {T(L) / T R }
Los atributos de clave fornea tienen el mismo dominio que los atributos de clave primaria de otro esquema de
relacin R, entonces se dice que los atributos de clave fornea hacen referencia a la relacin R.
Un valor de clave fornea en una tupla t1 de R1 ocurre como valor de clave primaria en alguna tupla t2 de una
R2, o bien es nulo.
(L)
(R)= {T(L) / T R }
Propiedades:
No es conmutativa
Cascada de Proyeccin:
(L1)
(L2)
(Ln)
(R)))) =
(Li)
(R) si
L1 inc L2 inc .. Ln
Al insertar un set de datos en una tabla la base de datos verifica en el catalogo de sistema que no se est
violando ninguna restriccin de dominio, de clave, de integridad referencial, de integridad de entidades, es
decir si son datos vlidos, y si el usuario posee los permisos correspondiente para realizar esa operacin.
Al eliminar una tupla, la base de datos verifica en el catalogo que no se est violando la restriccin de
integridad referencial, y si el usuario posee los permisos correspondiente para realizar esa operacin.
Al modificar un valor de clave primaria, se debe verificar en el catalogo, las mismas restricciones que para
realizar la insercin, dado que una modificacin de una clave primaria requiere de eliminar una tupla e
insertar otra nueva con las modificacin, y adems verificar si el usuario posee los permisos correspondiente
para realizar esa operacin.
28. Explique 2 usos que le da el generador de cdigo del SGBD al system catalog (2)
Un uso es buscar en el catalogo la definicin de los objetos relacionados y verificar que existen ya que sino el plan de
ejecucin no puede ser generado, otro uso es consultar las estadsticas para armar el mejor plan posible.
Pre compilado.
Desventajas:
No pueden ser migrados de un SGBD a otro, dado que puede no soportarlo, reduce la portabilidad.
68. Detalle el uso que el SGBD le da al system catalog en el momento de crear una tabla (2)
A travs del compilador DDL, en el momento de crear una tabla el SGBD inserta en el catalogo diferente
informacin que podr ser utilizada luego para diferentes situaciones. La informacin que se inserta es el nombre de la
tabla, nombre de los atributos, claves primarias, Claves Forneas, restricciones, relaciones, etc.
69. Cul es la diferencia entre un trigger y un stored procedure? (1)
La diferencia es que el trigger es disparado automticamente segn suceda algn evento en la base de datos, y
los Stored Procedure son ejecutados por el usuario en el momento que se desee.
96. Mencione dos permisos existentes sobre los stored procedures de una base de datos (1)
Los dos permisos pueden ser uno de CREATE PROCEDURE y el otro de ALTER PROCEDURE
121. Quin es el encargado de mantener actualizado el system catalog? (1)
El encargado de mantener actualizado el Catalogo del sistema es el Sistema Gestor de Base de Datos.
122. Detalle el uso que el SGBD le da al system catalog en el momento de validar una instruccin DML (2)
Eso va a depender del tipo de instruccin DML que se quiera validar, por ejemplo al insertar un set de datos en un
tabla de la base de datos, debe verificar que los datos a insertar cumplan con las restricciones de dominio, de clave, de
integridad referencial y de integridad de entidades, por ejemplo que respete el tipo de dato, que no se quieran insertar Nulos
en donde no es posible, etc.
Para la modificacin de un tupla, si esta involucra a la calve primaria, validar las mismas restricciones que se
comentaron anteriormente, dado que el proceso realiza un delete de la tupla a modificar y un insert con la nueva
informacin.
Si lo que se quiere validar es un Delete de una tupla, antes se debe verificar en el catalogo del sistema si no se
viola la restriccin de integridad referencial.
En definitiva el uso que le da el SGBD al Catalogo es el de validacin de diferentes restricciones segn la
instruccin DML a ejecutarse, adems de validar que sintcticamente sea correcta la instruccin DML.
77. Mencione dos ejemplos donde funcione mejor la optimizacin por costos que la por reglas (2)
La optimizacin por costos es ms apropiada para las consultas compiladas, en las que la optimizacin se efecta
en el momento de la compilacin y el cdigo de estrategia resultante se almacena y ejecuta en el momento de ejecucin.
Tambin es ms apropiada en el caso de consultas muy complejas y grandes, ya que determina el acceso ms
eficiente de una consulta, que en definitiva es el menos costoso en cuanto a la entrada y salida a disco.
78. En qu se diferencia la optimizacin por costos de la optimizacin por reglas? (2)
La optimizacin por reglas evala las sentencias SQL que est siendo ejecutada y elige que ndices utilizar, sin
considerar la distribucin estadstica de los datos en las tablas que estn siendo utilizadas. Tienden a evaluar cmo est
escrita cada consulta, para mejorar al mximo su ejecucin utilizando reglas heursticas.
La optimizacin por costos en cambio, usa estadsticas sobre los datos para determinar el camino de acceso
ms eficiente de una consulta dada, que en definitiva es el camino menos costoso en trminos de entrada y salida de disco.
13. Cul es la diferencia, desde el punto de vista de la organizacin fsica entre un ndice primario y un ndice
secundario? (1.5)
Un ndice primario:
Posee tanta cantidad de entradas como cantidad de bloques tenga el archivo de datos.
Es un ndice no denso.
Posee tanta cantidad de entradas como cantidad de registros o cantidad valores distintos tenga el campo ndice.
La insercin de nuevos registros en el archivo de datos es ms sencilla que los ndices primarios.
39. Qu es la selectividad de un ndice? (1)
La selectividad de un ndice es la relacin que hay entre el nmero de posibles valores en un ndice, y el nmero
total de registros. La mejor selectividad es 1, y ocurre cuando hay tantos valores posibles como registros presentes, que es
el caso de una clave primaria. La peor selectividad es la que tiende a 0.
42. Cul es la organizacin fsica con la que se almacenan los ndices en las bases de datos? (2)
Un ndice primario es un ndice especificado sobre el campo clave de ordenacin, es un archivo ordenado de
longitud fija y contiene dos campos, uno con el mismo tipo de datos que el campo clave de ordenamiento del archivo de
datos, y el segundo es un apuntador a un bloque de disco. Para cada entrada de ndice los valores de sus campos, son el
campo de la clave primaria del primer registro del bloque y el apuntador a ese bloque.
Un ndice secundario se puede especificar sobre cualquier campo del archivo que no sea de ordenacin, estos
tambin son archivos ordenados con dos campos, el primero es del mismo tipo que algn campo de no ordenamiento del
archivo de datos, denominado campo de indizacin, el segundo es el apuntador a registro, por lo tanto contiene una entrada
por cada registro. Como los registros del archivo de datos no estn ordenados, no podemos usar anclas de bloques.
Un ndice de agrupamiento es un ndice especificado sobre cualquier campo no clave de ordenacin, dicho campo
se llama campo de agrupamiento. Es un archivo ordenado con dos campos, el primero del mismo tipo que el campo de
agrupamiento, y el segundo el apuntador a bloque de archivo de datos que tiene un registro con ese valor, existiendo una
entrada por cada valor distinto del campo de agrupamiento.
55. Mencione dos casos en los que no sea recomendable crear un ndice (1)
Los Atributos tienen un nmero pequeo de valores posibles, a pesar de que la tabla tienen muchos datos.
Se hace referencia en muy pocos casos a ese atributo.
T1
T2
Read(X)
X=X-N
Read(X)
X=X+M
Write(X)
Write(X)
T2 tiene un x
desactualizado
emite operacin escribir, si TS_escritura(x) > TS_transaccin o TS_lectura > TS_transaccin entonces aborta,
revierte transaccin y rechaza la operacin, de lo contrario ejecuta la operacin escritura y reemplaza
TS_escritura(x) por TS_transaccin.
Emite operacin lectura, si TS_escritura(x) > TS_transaccin entonces aborta, revierte transaccin y rechaza la
operacin, de lo contrario ejecuta la operacin lectura y reemplaza TS_lectura(x) por el mayor de Ts_lectura(x) o
Ts_transaccin.
12. Cul es la diferencia entre el commit y el checkpoint? (1.5)
Una transaccin alcanza su commit cuando esta termin con xito y cualquier cambio ejecutado por esta
transaccin puede ser confirmada sin peligro en la BD y no se cancelar.
El chekpoint se escribe en la bitcora peridicamente cada vez que el sistema escribe en la BD en disco el efecto
de todas las operaciones de las transacciones confirmadas. Esto se hace para mejorar la performance y no se tenga que
estar guardando todo el tiempo en disco cada cambio que se haga en cada operacin que se ejecute y de esta manera
haya menos operaciones de entrada y salida. En este punto la base de datos baja todas las pginas de la memoria cache al
disco y las hace efectivas.
16. Una transaccin hace rollback porque produca un valor duplicado en una PK. Qu propiedad de las
transacciones es la que se aplica para producir el rollback? (2)
NIVEL DE
AISLAMIENTO
Lectura no
confirmada
Lectura confirmada
Lectura repetible
Serializable
Lectura
Sucia
Tipo de Problema
Lectura no
Lectura
repetible
fantasma
Si
No
No
No
Si
Si
No
No
Si
Si
Si
No
32. Defina la durabilidad de una transaccin y de un ejemplo donde se aplique esta propiedad (1)
La propiedad de durabilidad determina que los cambios aplicados a una Base de datos deben durar en el tiempo,
estos cambios no deben perderse por fallas posteriores.
Por ejemplo si se realiza un transferencia bancaria de dinero de una cuenta a otra, esta debe quedar registrada
por siempre en la cuenta destino y no debe perderse bajo ninguna circunstancia.
46. Defina la consistencia de una transaccin. De un ejemplo donde sea necesario aplicar esta propiedad (1)
La propiedad de consistencia de una transaccin describe que al ejecutar una transaccin la base de datos que
antes de esa ejecucin se encontraba en un estado de consistencia y ahora se encuentra en un estado inconsistente, debe,
cuando finaliza esa transaccin dejar en estado consistente a la base de datos. O sea parte de un estado consistente,
cuando se ejecuta pasa a inconsistente, y cuando finaliza debe volver al estado de consistencia. Por ejemplo un cliente de
un banco desea borrar los datos personales de la base, pero no dar de baja sus cuentas, esto no se podra realizar, dado
que la base de datos quedara inconsistente al violarse una restriccin de integridad referencial.
47. Qu es el rollback de una transaccin? (1)
El rollback de una transaccin es la accin que se realiza para deshacer todas las modificaciones que haya
realizado esa transaccin que por algn motivo no pudo terminar de realizarla. Este motivo puede ser un error durante el
procesamiento o simplemente que el usuario haya decidido cancelarla.
48. Explique el problema de la falsa modificacin. Cmo resuelve este problema el control de concurrencia por
timestamp? (2)
Esto ocurre cuando una transaccin T1 actualiza un elemento de la base de datos y sin hacer commit una
transaccin T2 utiliza ese elemento, realizando rollback luego la transaccin T1. El T2 en este caso debe volver a hacerse
dado que ley un dato incorrecto porque el T1 nunca hizo el commit.
T1
T2
Al Haber un rollback, el
T2 debe volver a
hacerse porque ley un
dato incorrecto(X) t1
nunca hizo commit
Read(X)
X=X-N
Write(X)
Read(X)
X=X+M
Write(X)
Commit
Rollback
Resolveramos aplicando un ordenamiento de transacciones por timestamp, haciendo serializable el plan de
ejecucin, poniendo en orden las transacciones segn sus valores de timestamp. El algoritmo debe asegurar, que para un
elemento X utilizado por ms de una transaccin en el plan, el orden con que se tiene acceso no viole la seriabilidad del
plan. Siempre que una transaccin intenta emitir una operacin de lectura o escritura, el algoritmo compara la marca de
tiempo de la transaccin con las marcas de tiempo de lectura o escritura del elemento para asegurar que no se viole el
orden de ejecucin por timestamp de las transacciones. Si la operacin viola dicho orden, entonces abortara. Lo que deber
verificar es si:
emite operacin escribir, si TS_escritura(x) > TS_transaccin o TS_lectura > TS_transaccin entonces aborta,
revierte transaccin y rechaza la operacin, de lo contrario ejecuta la operacin escritura y reemplaza
TS_escritura(x) por TS_transaccin.
Emite operacin lectura, si TS_escritura(x) > TS_transaccin entonces aborta, revierte transaccin y rechaza la
operacin, de lo contrario ejecuta la operacin lectura y reemplaza TS_lectura(x) por el mayor de Ts_lectura(x) o
Ts_transaccin.
49. Cundo se dice que un plan es recuperable? (1)
Un Schedule es recuperable si nunca es necesario deshacer una transaccin confirmada.
57. Supongamos que Ud. es el administrador de una base de Datos cmo resolvera la siguiente situacin.
Justifique su respuesta:
a) Hay varios usuarios que le vienen planteando que sus modificaciones se pierden. Por ejemplo cambiaron un
domicilio y cuando lo van a revisar la modificacin se perdi.
Est ocurriendo el problema de modificacin perdida, en donde dos transacciones estn interactuando sobre un
mismo elemento de la BD sin ningn control de concurrencia, para solucionar esto se debera implementar un mecanismo
de control de concurrencia como el timestamp o sharedlock segn sea conveniente.
b) En el sistema existe una tabla que se llama pedidos, pero el usuario Juan al intentar leerla no puede hacerlo.
Probablemente el usuario Juan no tiene permisos para SELECT, en el caso de corresponder se le otorgaran
dichos permisos.
60. En qu situaciones una transaccin puede abortar a causa de los controles de integridad referencial de la
Base de datos? (1.5)
Por ejemplo al querer hacer DELETE de una tupla t la cual es referenciada por otra tupla p ya que la clave
fornea de la P quedara desvinculada. Tambin, al hacer un UPDATE o INSERT de una tupla en una tabla donde ese
atributo es clave fornea de otra tabla y el valor a insertar o actualizar no existe en la tabla donde ese atributo es clave
primaria.
70. Defina el aislamiento de una transaccin y de un ejemplo donde se aplique esta propiedad (1)
La propiedad de aislamiento de una transaccin nos debe permitir ejecutar una transaccin sin interferir con otras
que estn utilizando el mismo o los mismos elementos, o sea que no se superpongan.
Por ejemplo dos clientes depositan dinero al mismo tiempo en una misma cuenta bancaria en dos sucursales
diferentes, esto no debe traer complicaciones, y se deben poder de realizar ambas al mismo momento (para el cliente)
71. Explique el problema de la falsa sumarizacin. Cmo resuelve este problema el control de concurrencia por
timestamp? (2)
Si una transaccin est calculando una suma sobre varios registros mientras otras transacciones estn
actualizando algunos de ellos, puede ser que la suma calcule algunos valores antes de que se actualicen y otros despus
de actualizarse.
T1
T2
Read(X)
X=X-N
Write(X)
Read(Y)
Read(X)
Read(Y)
Y=Y+N
Z=X+Y
Write(Y)
Write(Z)
Commit
Commit
emite operacin escribir, si TS_escritura(x) > TS_transaccin o TS_lectura > TS_transaccin entonces aborta,
revierte transaccin y rechaza la operacin, de lo contrario ejecuta la operacin escritura y reemplaza
TS_escritura(x) por TS_transaccin.
Emite operacin lectura, si TS_escritura(x) > TS_transaccin entonces aborta, revierte transaccin y rechaza la
operacin, de lo contrario ejecuta la operacin lectura y reemplaza TS_lectura(x) por el mayor de Ts_lectura(x) o
Ts_transaccin.
81. Qu es una transaccin? (1)
Una transaccin es una unidad lgica de procesamiento de la base de datos que incluye una o ms operaciones
de acceso a la base que es indivisible por ser atmica. Esto significa que se lleva a cabo en su totalidad o no se realiza.
82. De un ejemplo que involucre ms de una instruccin SQL donde sea necesario utilizar una transaccin. (1)
BEGIN_TRANSACTION
Delete from pedido where pedido_id = 30
Delete from Pedido_detalle where pedido_id = 30
COMMIT_TRANSACTION
83. Definicin de plan serializable. De un ejemplo de un plan y luego transfrmelo en serial. (1.5)
Un plan es serializable cuando un plan P de n transacciones es equivalente a un plan en serie de las mismas n
transacciones.
Schedule inicial
T1
READ(X)
Schedule Serializado
T2
READ(Y)
X=X+N
Y=Y+N
WRITE
(Y)
WRITE
(X)
T1
READ(X)
X=X+N
WRITE
(X)
T2
READ(Y)
Y=Y+N
WRITE
(Y)
88. Defina la atomicidad de una transaccin y de un ejemplo donde se aplique esta propiedad (1)
Una transaccin es atmica dado que los cambios en la base de datos que realice esa transaccin son realizados
en su totalidad o no son realizados. En una transferencia bancaria si transfiero $ 100 deben llegar los $100 y no parte, o no
debe llegar nada y rechazarse esa transferencia.
89. Se borraron datos de una tabla y la transaccin hizo commit, cmo puede recuperarse la informacin? (1.5)
A travs de la recuperacin de la ltima versin de la tabla guardada en el backup realizado, teniendo cuidado
que entre la ltima versin guardada y el recupero no se hayan realizado modificaciones en la misma, generando
inconsistencias.
93. En qu situacin el SGBD realiza un undo? (1)
Cuando se ejecuta el rollback en una transaccin. Entonces de esa forma se deshacen las operaciones
involucradas.
106. Explique las 4 propiedades que deben tener las transacciones. De ejemplos de la vida real para cada una de
ellas. (4)
La propiedad de durabilidad determina que los cambios aplicados a una Base de datos deben durar en el tiempo,
estos cambios no deben perderse por fallas posteriores.
Por ejemplo si se realiza un transferencia bancaria de dinero de una cuenta a otra, esta debe quedar registrada
por siempre en la cuenta destino y no debe perderse bajo ninguna circunstancia.
La propiedad de consistencia de una transaccin describe que al ejecutar una transaccin la base de datos que
antes de esa ejecucin se encontraba en un estado de consistencia y ahora se encuentra en un estado inconsistente, debe,
cuando finaliza esa transaccin dejar en estado consistente a la base de datos. O sea parte de un estado consistente,
cuando se ejecuta pasa a inconsistente, y cuando finaliza debe volver al estado de consistencia. Por ejemplo un cliente de
un banco desea borrar los datos personales de la base, pero no dar de baja sus cuentas, esto no se podra realizar, dado
que la base de datos quedara inconsistente al violarse una restriccin de integridad referencial.
Una transaccin es atmica dado que los cambios en la base de datos que realice esa transaccin son realizados
en su totalidad o no son realizados. En una transferencia bancaria si transfiero $ 100 deben llegar los $100 y no parte, o no
debe llegar nada y rechazarse esa transferencia.
La propiedad de aislamiento de una transaccin nos debe permitir ejecutar una transaccin sin interferir con otras
que estn utilizando el mismo o los mismos elementos, o sea que no se superpongan.
Por ejemplo dos clientes depositan dinero al mismo tiempo en una misma cuenta bancaria en dos sucursales
diferentes, esto no debe traer complicaciones, y se deben poder de realizar ambas al mismo momento (para el cliente)
107. Indicar cules de las siguientes afirmaciones son ciertas al final de la ejecucin de las siguientes
instrucciones: (1.5)
A = 5000
BEGIN TRANSACTION
A= 3000
B= A - 1000
COMMIT
A= 2000
a) El valor de A es 5000
b) El valor de A es 3000 y el de B 2000
c) El valor de A es 2000
d) Ninguna de las anteriores
108. Cundo dos planes son equivalentes? (1)
Dos planes son equivalentes si las operaciones que se aplican en cada uno de los elementos de esos
planes se aplican en el mismo orden en ambos planes.
Con el control de simultaneidad del lockeo optimista las operaciones de lectura no utilizan bloqueos de
lectura que bloquean las operaciones de modificacin de datos, en cambio el pesimista si utiliza
bloqueo de lectura para bloquear la modificacin de datos.
Similitudes:
19. Indique dos similitudes y dos diferencias entre el shared lock y el control por timestamp (2)
Diferencias:
El shared lock no evita el deadlock, en cambio el Timestamp si lo evita porque no existen bloqueos.
El timestamp utiliza la marca de tiempo (TS) para ordenar la ejecucin segn el plan en serie equivalente. El
Shared Lock permite que varias transacciones accedan a un elemento si es para leerlo, si es para escribirlo
debe poseer acceso exclusivo a l.
Similitudes:
18. Explique detalladamente cmo funciona el control de concurrencia por timestamp (1.5)
Este enfoque garantiza la seriabilidad del plan de ejecucin e implica el uso de Marcas de tiempo (Timestamp) de
las transacciones para ordenar la ejecucin de las mismas segn el plan en serie de las mismas.
Las marcas de tiempo son identificadores nicos que el SGBD crea para identificar una transaccin, por lo
general se asignan en el orden en que las transacciones se introducen en el sistema, por lo que se puede considerar como
el tiempo de inicio de una transaccin. Estas tcnicas no utilizan bloqueos, por lo tanto no puede haber deadlocks.
Funciona de la siguiente manera:
El timestamp (TS) hace una marca que tienen en cuenta la hora y almacena distintas versiones sobre
un elemento en intervalos de tiempo. Para cada registro de la base de datos se sabe cul es el timestamp de la ltima
transaccin que lo ley y que lo escribi. Cuando una transaccin comienza le asigna un TS, cuando esa transaccin quiere
acceder a modificar un dato, se fija que el TS de la ltima escritura sea menor al de la transaccin. Si esa transaccin
quiere acceder a leer un dato, ocurre lo mismo, se fija que el TS de la ltima escritura sea menor al de la transaccin. Si la
transaccin viola dicho orden abortara y se deber deshacer las operaciones realizadas de esa transaccin, si no viola este
orden entonces se asigna el nuevo valor al elemento y se escribe para ese elemento una nueva TS de escritura, si fuera
una lectura se asignara una TS de lectura.
33. Describa detalladamente dos pruebas que hara sobre un sistema para comprobar el funcionamiento del lockeo.
(2)
Una prueba sera realizar un insert de una tupla o un conjunto de tuplas en una tabla e inmediatamente realizar un
select sobre esa misma tabla. La otra prueba sera realizar un delete de una tupla o un conjunto de tuplas en una tabla e
inmediatamente realizar un select sobre esa misma tabla. En ambas situaciones el select debera quedar esperando hasta
que terminen el insert o el delete. Eso verificara el lockeo.
34. Explique detalladamente cmo funciona el control de concurrencia por shared lock (lockeo compartido
/exclusivo) (1.5)
El shared lock, posee tres operaciones. Ellas son bloque_lectura(X), bloqueo_escritura(X) y desbloqueo(X). Este
control de concurrencia bloquea al elemento en forma exclusiva cuando se trata de escritura, no permitiendo leer o escribir
con otra transaccin hasta que la primera desbloquee el elemento. Tambin para la lectura utiliza el bloqueo lectura, el cual
permitir a las dems transacciones de lectura utilizar el mismo elemento, pero bloqueara a la transaccin de escritura
hasta que las que estn bloqueando el elemento lo desbloqueen, o sea producir un bloqueo compartido de un elemento
para lectura.
T2 debe deshacer lo que haba hecho y en el prximo checkpoint la carga de nuevo como si fuera una nueva
transaccin, porque no conozco el final entonces no la puedo rehacer.
41. Se tiene una base de datos con actualizacin inmediata, muestre en un grafico en qu situacin tena que estar
t2 para que el SGBD tuviera que hacer un redo. (2)
En ambos casos T2 no alcanzo a hacer commit en el checkpoint y ambas se rehacen mediante el log
58. Se estaban efectuando simultneamente 3 transacciones independientes T1, T2 y T3, cuando se produjo una
cada del equipo.
- T1 lleg al commit
- T2 se interrumpi cuando solo haba realizado lecturas
- T3 llego a escribir pero no llego al commit
Analizar sobre que transaccin se hizo "undo", "redo" o nada cuando se recuper
(levant) el equipo con bitcora (logs) de actualizacin inmediata(2)
T1 Debe hacer un redo (rehacer la transaccin), dado que antes de la cada se logro realizar el commit de la transaccin, en
cuanto a T3 se deber realizar un undo (deshacer transaccin), dado que la transaccin no ha llegado a realizar commit, y
por ende no conozco como termina. En cuanto a T2 es solo lectura, no se hace nada porque no actualiza informacin,
simplemente no se ejecuta y listo.
66. Qu mtodos de back-up se encuentran disponibles en las bases de datos? Explique su funcionamiento. (2)
Los mtodos de backup son online u offline, incremental y lgico.
El online se hace un backup de la base en un momento dado, y se obtiene una copia de ese momento, durante el
tiempo que tarda en realizar el backup se suspenden los checkpoint, para evitar que el backup quede inconsistente. Luego
se realiza un backup del log, que contiene todos los cambios hasta la ltima transaccin realizada, despus de esto se
podr realizar un checkpoint.
EL Offline se realiza con la base de datos parada, se realiza copia de toda la base, es considerado el mtodo de
backup completo de la base de datos.
El incremental en el primer backup se realiza una copia completa de todos los datos, pero en los siguientes solo
se almacena los ficheros nuevos o modificados, esto reduce tanto el tiempo de la copia como el del trfico de la red.
El lgico consiste en copiar el contenido de la base de datos pero sin almacenar la posicin fsica de los datos, se
realiza un export que copia los datos y la definicin de la base de datos en un fichero, es simple, y su principal desventaja
es que el tiempo de recuperacin es mucho mayor que el del backup offline u online. Si el error por ejemplo viene dado por
un usuario que malogro accidentalmente una tabla puede ser ms fcil recuperar de un export que de un back completo
79. Si una transaccin NO tiene registrado commit en el log y (por algn motivo) se par el proceso, qu valores
tiene la base de datos en ese momento? (los anteriores a la transaccin, los nuevos, no es posible asegurar ni lo
uno ni lo otro) para el caso de actualizacin inmediata (2)
En el caso de la actualizacin inmediata a esta transaccin se debe realizar un undo, dado que no conocemos como
termina dicha transaccin y las escrituras ya fueron realizadas. En este caso en particular, en el momento de la cada
abrupta del sistema, si se hubiera ejecutado una transaccin de actualizacin antes de la cada, ya tendra los datos
nuevos porque la actualizacin inmediata no espera al commit de la transaccin para actualizar la base.
97. Cmo funciona detalladamente el mecanismo de back-up on-line? (2)
El backup online se efecta en el momento que se le indique comenzar con este procedimiento, en ese instante
se suspenden los checkpoint durante el tiempo que se tarde en realizar la copia, luego se realiza un backup del log el cual
contendr todos los cambios hasta la ltima actualizacin, una vez finalizado recin ah se habilita nuevamente los
checkpoint.
101. De un ejemplo de cmo funciona el recovery en el caso de una cada abrupta de la base de datos por un corte
de luz si la misma utiliza Inmediate Update y deferred Update (2)
Inmediate Update
T1 Listo.
T2 Y T3, se realiza un Undo/redo mediante el log, debido a que no alcanzaron a hacer el commit en el checkpoint
T4, T5 Se deshace (undo) porque no conozco como termina.
Deferred Update
T1 Listo. No hay necesidad de rehacer, dado que hicieron Commit antes del CheckPoint
T2 Y T3, mira el log y el checkpoint para rehacerla (Redo), dado que llegaron a hacer commit.
T4 Y T5 no existen porque no llegaron a hacer Commit
Debe conocer primero cual ser la cantidad de registros que se cargarn inicialmente, esto permitir proveer el
espacio necesario al momento de la carga inicial, otro parmetro que debe conocer es con que periodicidad y
aproximadamente con qu cantidad de registros se incrementar la tabla en cada carga, esto permitir calcular a largo
plazo el espacio que necesitar en la BD.
80. Compare la definicin de seguridad discrecional ( discretionary) con la mandatoria (mandatory)(2)
La seguridad discrecional es aquella que otorga permisos a los usuarios a nivel tablas, registros, o campos de
datos especficos en un determinado modo (lectura, actualizacin, escritura, borrado) un ejemplo de este tipo de seguridad
es la utilizacin de vistas.
La seguridad mandatoria se realiza a diferentes niveles especificando los datos y los usuarios en varias clases de
seguridad e implementando despus la poltica de seguridad apropiada para la organizacin. Por ejemplo se podrn
distinguir 4 niveles de seguridad TOP_SECRET, SECRET, CONFIDENCIAL, UNCLASIFIED, siendo TOPSECRETel mas
alto nivel de seguridad y UNCLASIFIED el ms bajo.
92. Mencione dos permisos que existen sobre los usuarios de una base de datos (1)
GRANT LOGON
GRANT SELECT
GRANT UPDATE
GRANT DELETE
100. Qu tipos de permisos existen sobre los objetos de una base de datos? (1.5)
TABLAS O VISTAS: Select, Update, Delete, Insert, Create, Drop, Alter
STORED PROCEDURE: Create, Drop, Execute.
TRIGGERS: Create, Drop
BASE DE DATOS: Create, Drop, Restore, BackUp
117. Qu se entiende por seguridad integrada entre la Base de datos y el Sistema Operativo? (2)
La base de datos le confa la autenticacin de los usuarios al sistema operativo, siendo as ms fcil de administrar.
XF + posee unicidad
No existe un Z inc X / ZF + minimalidad
Ejemplo:
R = (A,B,C,D,E)
F = (AB->C, BD->E, C->D)
AB+ = ABCDE
BD+ = BDE
C+= CD
AB+ = {A,B,C,D,E} = R -> AB ES CLAVE CANDIDATA
45. De un ejemplo de una relacin que se encuentre en segunda forma normal, pero no en tercera. (2)
Una dependencia funcional se encuentra en segundo forma normal, si adems de estar en 1FN, no posee
dependencias funcionales parciales, o sea es una dependencia funcional completa.
El caso que sera estar en 2FN pero no en 3FN es cuando no posee dependencias funcionales transitivas en los
atributos que no son clave, el ejemplo sera R={A,B,C,D}: AB Clave primaria => F={A,B -> C, C->D}, Se encuentra en 2FN
porque no hay dependencias funcionales parciales, y no se cumple 3FN porque existe dependencias funcionales transitivas
en atributos que no son clave.
51. Enuncie las reglas adicionales a los axiomas de Amstrong (1.5)
Pseudotransitividad, Descomposicion y Union
Descomposicion: x->yz entonces x->y y x -> z
Union: x-> y y x->z => x->yz
Pseudotransitividad: x->y y yz->w => xz->w
52. Se quieren crear 3 tablas: Pedidos, Renpedidos ( renglones de los pedidos ) y Artculos. Indique que
mecanismos de la BD le permiten obtener cada uno de los siguientes objetivos. Justifique su respuesta
a) Unicidad del nmero de Pedido
INDICE UNIQUE
b) Que no existan renpedidos sin su registro correspondiente en pedidos.
RESTRICCION DE INTEGRIDAD REFERENCIAL. FOREIGN KEY
c) Conocer quien insert cada registro y quien lo modific.
LOG DE ACTIVIDAD, O TRIGGERS DE AUDITORIA, se dispara cuando se produce el evento
d) Actualizar el monto total del pedido cada vez que se agrega o modifica un renpedido.
TRIGGER, se dispara cuando se produce el evento.
e) Controlar que la cantidad pedida sea mayor a cero.
CONSTRAINT CHECK Cant_Pedido > 0
f) Mejorar la performance de las consultas
CREAR INDICES PRIMARIOS Y SECUNDARIOS en los campos necesarios, UTILIZAR ESTADISTICAS
g) Resguardar la informacin para que en caso de catstrofe tengamos la informacin al ltimo minuto.
BACKUP ONLINE
h) Conocer los ndices que tiene cada una de las tablas
CATALOGO DEL SISTEMA
i) Impedir que existan pedidos sin su correspondiente renpedidos. (4.5)
Trigger que cree un renpedidos default para ese pedido.
62. Supongamos que tengo la siguiente tabla que indica la altura y el peso esperado para un beb en un cierto mes:
Meses Peso (en kg.) Altura (en cm.)
1
3
50
2
4
55
a) Cul es la clave primaria? Meses
b) Cules son las claves alternativas? {Meses,Peso} y {Meses,Altura}
c) Cules son FK? No posee
d) Cul es el dominio de cada atributo?
DOM(Meses) = {1,2,12}
DOM(Peso) = {3,4, }
DOM(Altura ={50,55,}
Qu reglas sera necesario crear sobre los campos?
Peso < Altura
e) En qu forma normal se encuentra?
Por qu? (1.5)
R= (Meses, Peso, Altura)
F={Meses->Peso, Meses-> Altura}
Meses+= Meses, Peso, Altura
Meses es clave candidata y superclave
Es 2FN dado que cumple con la 1FN en donde el dominio de todos los atributos deben ser atmicos y la
condicin propia de la 2FN, que no hay dependencias funcionales parciales.
Para 3FN se deben cumplir adems de la 2FN que X-> Y e Y inc X, y esta condicin no se cumple.
Pero si se cumple que Meses es superclave
Como no se cumple la condicin de que Altura y Peso es subconjunto de la clave Meses, entonces no es 3 FN.
72. Cul es la diferencia entre una dependencia funcional completa y una dependencia funcional parcial? (1)
Dependencia funcional completa: X->Y es df completa NO existe Z inc X / Z->Y. Ejemplo A, B->C
Dependencia funcional parcial: X->Y es df parcial existe un Z inc X / Z->Y. Ejemplo A, B->C y A->C
73. Definicin de Dependencia Funcional. De dos ejemplos. (1.5)
Es una restriccin sobre 2 conjuntos de atributos de la base de datos:
Sea R un esquema de relacin, x, y inc R:
X->Y para todo t1, t2 R
t1[X] = t2[X] -> t1[Y] = t2[Y]
Ejemplos
Todo lado derecho de la dependencia funcional debe poseer un nico atributo, o sea Dependencias
funcionales descompuestas segn la regla adicional de descomposicin de los axiomas de armstrong.
No debe poseer atributos redundantes el lado izquierdo de la dependencia funcional.
No debe poseer dependencias funcionales redundantes.