1. JOSE LUIS SUMBA ZH.
ESCUELA SUPERIOR POLITÉCNICA DEL LITORAL
FACULTAD DE INGENIERÍA EN ELECTRICIDAD Y COMPUTACIÓN
DEBER #1
FIEC05355: SISTEMAS DE BASES DE DATOS II
Entrega: Miércoles 30 de Mayo, 2011
Problema 1(20 puntos)
Para responder las preguntas de la tarea utilice el esquema de la base de datos que se
muestra a continuación:
Proyectos (idProyecto, NombreProyecto, idCliente)
DetalleProyecto (idProyecto, idItem, idActividad, idEmpleado, fechaTrabajo,
tiempoUtilizado)
Clientes (idCliente, nombreCliente)
Actividades (idActividad, nombreActividad)
Empleados (idEmpleado, nombreEmpleado)
1. Su empresa requiere que su sistema mantenga el nombre del cliente desde el
momento en que se inicia un proyecto para un cliente. Un cliente después puede
cambiar su nombre. ¿Cómo lograr este requisito sin que se pierda este historial?
Explique y muestre el modelo completo desnormalizado.
Para lograr este requisito usamos redundancia, colocamos una columna con el nombre del
cliente en la tabla proyecto así cuando se actualice el nombre del cliente dicho cambio se
realizara en la tabla cliente pero no en la tabla proyecto.
Proyectos (idProyecto, NombreProyecto, idCliente, nombreCliente)
DetalleProyecto(idProyecto, idItem, idActividad, idEmpleado, fechaTrabajo,
tiempoUtilizado)
Clientes (idCliente, nombreCliente)
Actividades (idActividad, nombreActividad)
Empleados (idEmpleado, nombreEmpleado)
2. Usted tiene problemas de rendimiento con un informe que calcula el tiempo total
empleado en un proyecto. Este informe se ejecuta varias veces al día porque se realiza
el seguimiento de varios proyectos. ¿Cómo puede mejorar el rendimiento del informe?
Explique y muestre el modelo completo desnormalizado.
Se puede utilizar las tablas de reporte con las siguientes columnas:
idProyecto, NombreProyecto, fechaTrabajo, tiempoUtilizado.
Proyectos (idProyecto, NombreProyecto, idCliente, nombreCliente)
2. DetalleProyecto(idProyecto, idItem, idActividad, idEmpleado, fechaTrabajo,
tiempoUtilizado)
Clientes (idCliente, nombreCliente)
Actividades (idActividad, nombreActividad)
Empleados (idEmpleado, nombreEmpleado)
ReporteTiempo(idProyecto, NombreProyecto, fechaTrabajo, tiempoUtilizado.
)
3. ¿Cuales son algunos beneficios de la desnormalización?
Optimiza el rendimiento de lectura de una base de datos mediante la adición de datos
redundantes o por agrupación de datos.
Disminuir el tiempo para las consultas.
4. ¿Qué problemas pueden surgir cuando se decide introducir algo de
desnormalización en su modelo?
Problemas para la actualización de datos por existir redundancia.
Menos confiabilidad de la base sino se toma medidas para la actualización de datos.
Se necesita más recursos como espacio para la base de datos.
Problema 1(35 puntos)
Considere un disco con un tamaño de sector de 512 bytes, 100 sectores por pista, 2000
pistas por superficie, cinco discos de doble cara (es decir, 10 superficies). Los platos del
disco giran a 7.400 rpm (revoluciones/rotaciones por minuto). El tiempo promedio de
búsqueda (seek time) es de 8 ms (milisegundos).
Suponga que el tamaño del bloque es de 1024 bytes. Considere un archivo que contiene
100.000 registros de 200 bytes cada uno que se va a guardar en este disco y que ningún
registro puede abarcar dos bloques.
a) ¿Cuántos registros pueden caber en un solo bloque?
1024 bytes/ 200 bytes = 5 registros x bloque
b) ¿Cuántos bloques se necesitan para almacenar todo el archivo?
100.000/5 = 20.000 bloques
Son 100.000 registros y cada bloque puede almacenar 5 registros
c) ¿Cuántas pistas y cuántos cilindros se necesitan?
Tamaño del archivo= 100.000 x 200 = 20.000.000 bytes
Tamaño de pista= 100 x 512 = 51.200 bytes
Numero de pistas = 20.000.000 / 51.200
Numero de pistas = 391
3. Tamaño del cilindro = Tamaño de pista x Número de superficie
= 51.200 x 10 = 512.000
Número de cilindros = Tamaño de archivo / Tamaño de cilindro
= 20.000.000 / 512.000
= 40
d) ¿Cuántos registros se pueden almacenar en el disco?
Tamaño de superficie = Tamaño de pista x Número de pista
= 51.200 bytes x 2000 = 102.400.000
Tamaño de disco = Tamaño de superficie x Número de superficie.
= 102.400.000 x 10 = 1.024.000.000 bytes
Registros = 1.024.000.000 bytes / 200 bytes = 5.120.000
e) Suponga que las páginas del archivo se almacenan de forma secuencial en el disco,
con la página 1 en el bloque 1 del track 1 de la superficie de 1, la página 2 en el bloque
2 del track 1 de la superficie de 1, etc. ¿Qué página se almacena en el bloque 1 del
track 1 de la siguiente superficie (superficie 2)?
Para resolver este ejercicio es necesario entender cuando se considera que una página es la
siguiente.
Paginas secuenciales siguen este orden:
bloques en la misma pista, seguido por
bloques de un mismo cilindro, seguido por
bloques de cilindros adyacentes
Debemos encontrar cuantas páginas entran en una pista:
#paginas = Tamaño pista/Tamaño del bloque
#paginas = 51200/1024 = 50
La siguiente página será guardada en la superficie dos, se almacena la página 51.
f) ¿Cuál es el tiempo necesario para leer todo el archivo de forma secuencial?
7400 rpm = 123.3 rps => 1 revolución en 8.108ms
20.000.000 bytes/ 51.200 bytes = 391 pistas
En cada revolución lee una pista.
Tiempo de lectura del archivo = 391 x 8.108ms = 3.17 s.
4. g) ¿Cuál es el tiempo necesario para leer todo el archivo con E/Ss aleatorias? Suponga
que usted necesita leer cada página del archivo una vez y que cada acceso de página es
un acceso de bloques al azar.
Tiempo Acceso = T búsqueda + retraso de rotación + T transferencia
Tiempo de búsqueda = 0,008 segundos
Retraso rotacional:
→ 0,004 segundos
Tiempo de transferencia :
→ 0,00016 segundos
Tiempo Acceso = 0,008 + 0,004 + 0,00016 = 0.01216
20000 * 0.01216 = 243,2 segundos en leer todo el archivo con E/Ss
aleatorias
Problema 3 (45 puntos)
En este ejercicio, se comparará las políticas de reemplazo LRU, MRU y CLOCK para una
determinada carga de trabajo. Se asume lo siguiente:
• Suponga que hay cuatro frames que el administrador de búfer debe gestionar: P1, P2, P3 y
P4.
• Los cuatro frames están vacíos para empezar.
•Cuando el buffer pool tiene frames sin utilizar (por ejemplo, al principio, cuando los
cuatro frames están vacíos), pondrá datos leídos recientemente en el frame del extremo
izquierdo vacío (por ejemplo, si los frames 2 y 3 están libres, se utilizará el frame 2).
•Las páginas que se leen del disco están etiquetadas de la A a la G.
•Para cada acceso la página se separa “pinned” (pin_count++) y luego se desprende de
inmediato “unpinned” (pin_count--).
A continuación se presentan tres tablas para describir el contenido del buffer pool en cada
paso de tiempo. Una página se lee al comienzo de cada paso de tiempo. Usted debe
registrar, en la tabla, el contenido de cada página del buffer después de que la nueva página
se ha leído.
LRU MRU
Tiempo Página P1 P2 P3 P4 Tiempo Página P1 P2 P3 P4
Leída Leída
1 G G1 1 G G
2 F G1 F2 2 F G F
3 E G1 F2 E3 3 E G F E
4 D G1 F2 E3 D4 4 D G F E D
4 1 2 3
5 G G F E D 5 G G F E D
5. 6 C G3 C4 E1 D2 6 C C F E D
7 F G2 C3 F4 D1 7 F C F E D
8 E G1 C2 F3 E4 8 E C F E D
9 D D4 C1 F2 E3 9 D C F E D
10 C D3 C4 F1 E2 10 C C F E D
11 D D4 C3 F1 E2 11 D C F E D
12 B D3 C2 B4 E1 12 B C F E B
2 1 3 4
13 A D C B A 13 A C F E A
14 D D4 C1 B2 A3 14 D C F E D
3 4 1 2
15 F D F B A 15 F C F E D
# de páginas “reemplazadas”: 7 # de páginas “reemplazadas”: 4
CLOCK
Tiempo Página P1 P2 P3 P4
Leída
1 G G1
2 F G1 F1
3 E G1 F1 E1
4 D G1 F1 E1 D1
5 G G1 F1 E1 D1
G0 F0 E0 D0
6 C C1 F0 E0 D0
7 F C1 F1 E0 D0
8 E C1 F1 E1 D0
9 D C1 F1 E1 D1
10 C C1 F1 E1 D1
11 D C1 F1 E1 D1
C1 F0 E0 D0
12 B C0 B1 E0 D0
13 A C0 B1 A1 D0
14 D C0 B1 A1 D1
C0 B1 A1 D0
6. 15 F F1 B1 A1 D0
# de páginas “reemplazadas”: 4
En LRU: Los superíndices determinan la antigüedad de las páginas siendo 1 el más antiguo
En CLOCK: Los superíndices determinan el bit de referencia, 1 prendido y 0 apagado.
Las filas resaltadas de amarillo indican que se realizó un reemplazo.