Base de Datos

5,981 views

Published on

Diapositivas Base de Datos II

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
5,981
On SlideShare
0
From Embeds
0
Number of Embeds
25
Actions
Shares
0
Downloads
75
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Base de Datos

  1. 1. BASES DE DATOS II Profesor Guillermo Baquerizo P.
  2. 2. <ul><li>BÚSQUEDA Y EXTRACCIÓN DE REGISTROS </li></ul><ul><li>Si se examina un registro individual, es conveniente identificarlo con una clave o llave respecto de los demás, la cual se basa en el contenido del registro. </li></ul><ul><li>Cuando se busca un registro se debe definir una forma estándar para el manejo de claves. A esta forma se le denomina forma canónica . </li></ul><ul><li>Una forma canónica para una clave es la representación única para esa clave que se ajusta a algún tipo de regla. </li></ul>CONCEPTOS FUNDAMENTALES DE ESTRUCTURAS DE ARCHIVOS
  3. 3. <ul><li>BÚSQUEDA SECUENCIAL </li></ul><ul><li>Una medida de la eficiencia de este método está basada en el número de comparaciones requeridas para realizar la búsqueda. </li></ul><ul><li>Si el registro está al inicio, sólo se necesitará un intento. </li></ul><ul><li>Si el registro está al final, se necesitarán n intentos, siendo n la cantidad de registros. </li></ul><ul><li>En promedio se necesitarán n /2 intentos hasta realizar la búsqueda secuencial. </li></ul>CONCEPTOS FUNDAMENTALES DE ESTRUCTURAS DE ARCHIVOS
  4. 4. <ul><li>BÚSQUEDA BINARIA </li></ul><ul><li>La restricción es que los registros deben estar previamente ordenados. </li></ul><ul><li>En cada nuevo intento se decide buscar en la mitad del arreglo y así recursivamente. </li></ul><ul><li>Si n es la cantidad de registros y ésta es igual a 1024 </li></ul><ul><ul><li>Para la búsqueda secuencial se necesitarán 512 intentos en promedio. </li></ul></ul><ul><ul><li>Para la búsqueda binaria se necesitará en el peor de los casos un total de 10 iteraciones. </li></ul></ul>CONCEPTOS FUNDAMENTALES DE ESTRUCTURAS DE ARCHIVOS
  5. 5. <ul><li>BÚSQUEDA SECUENCIAL vs. BÚSQUEDA BINARIA </li></ul><ul><li>Mientras mayor sea el número de registros, la BS será más ineficiente que la BB. </li></ul><ul><li>La búsqueda secuencial tiene un orden O(n) </li></ul><ul><li>La búsqueda binaria tiene un orden O(log 2 n) </li></ul>CONCEPTOS FUNDAMENTALES DE ESTRUCTURAS DE ARCHIVOS
  6. 6. <ul><li>BÚSQUEDA SECUENCIAL MEJORADA </li></ul><ul><li>Si el dispositivo de almacenamiento es de acceso directo se puede colocar al inicio del registro y leerlo. </li></ul><ul><li>El orden para este caso será O(1). </li></ul><ul><li>Es necesario disponer del NRR (número relativo de registro) para poder acceder directamente. </li></ul><ul><li>Para algunos lenguajes el NRR comienza en 0, el siguiente en 1 y así sucesivamente. </li></ul>CONCEPTOS FUNDAMENTALES DE ESTRUCTURAS DE ARCHIVOS
  7. 7. <ul><li>SOBRECARGA POR DATOS USADOS PARA CONTROL </li></ul><ul><li>Suponga que se tiene una unidad de disco con referencia a direcciones por bloques con 20000 bytes por pista, y que la cantidad de espacio dedicada a los sub-bloques y los huecos entre bloques es equivalente a 300 bytes por bloque. </li></ul><ul><li>¿Cuántos registros pueden almacenarse por pista? </li></ul><ul><ul><li>Si el factor de bloque es 10 </li></ul></ul><ul><ul><li>Si el factor de bloque es 60 </li></ul></ul>Dispositivos de almacenamiento DISCOS MAGNÉTICOS
  8. 8. <ul><li>SOBRECARGA POR DATOS USADOS PARA CONTROL </li></ul><ul><li>Si hay 10 registros de 100 bytes por bloque y cada bloque almacena 1000 bytes de datos y emplea 300 + 1000, o 1300 bytes de espacio de la pista, tomando en cuenta la sobrecarga de datos de control. El número de bloques que pueden entrar en una pista se puede expresar como: </li></ul><ul><li>20000/1300 = 15 </li></ul><ul><ul><li>De modo que se pueden almacenar 15 bloques, o 150 registros, por pista. (Nótese que se tiene que redondear hacia abajo el resultado, debido a que un bloque no puede distribuirse en 2 pistas). </li></ul></ul>Dispositivos de almacenamiento DISCOS MAGNÉTICOS
  9. 9. <ul><li>SOBRECARGA POR DATOS USADOS PARA CONTROL </li></ul><ul><li>b) Si hay 60 registros de 100 bytes por bloque y cada bloque almacena 6000 bytes de datos y emplea 300 + 6000, o 6300 bytes de espacio de la pista, tomando en cuenta la sobrecarga de datos de control. El número de bloques que pueden entrar en una pista se puede expresar como: </li></ul><ul><li>20000/6300 = 3 </li></ul><ul><ul><li>De modo que se pueden almacenar 3 bloques, o 180 registros, por pista. (Nótese que se tiene que redondear hacia abajo el resultado, debido a que un bloque no puede distribuirse en 2 pistas). </li></ul></ul>Dispositivos de almacenamiento DISCOS MAGNÉTICOS
  10. 10. <ul><li>SOBRECARGA POR DATOS USADOS PARA CONTROL </li></ul><ul><li>Está claro que un factor de bloque mayor puede dar paso a un uso más eficiente al almacenamiento. Cuando los bloques son grandes se requieren menos para contener un archivo, de tal forma que es menor el espacio consumido por los 300 bytes de sobrecarga que acompañan a cada bloque. </li></ul><ul><li>¿Se puede concluir de este ejemplo que los factores de bloque grandes siempre conducen a una utilización más eficiente del almacenamiento? No necesariamente, recuerde el problema de la fragmentación interna. </li></ul>Dispositivos de almacenamiento DISCOS MAGNÉTICOS
  11. 11. <ul><li>COSTO DE ACCESO A UN DISCO </li></ul><ul><li>Los factores que intervienen en la suma total del tiempo necesario para acceder a un archivo que se encuentra en un disco fijo se puede dividir en 3 operaciones físicas distintas: </li></ul><ul><ul><li>Tiempo de desplazamiento: Considere que si las posiciones de inicio y fin para cada acceso son aleatorias, el desplazamiento promedio atraviesa una tercera parte del número total de pistas </li></ul></ul><ul><ul><li>Retraso por rotación </li></ul></ul><ul><ul><li>Tiempo de transferencia </li></ul></ul>Dispositivos de almacenamiento DISCOS MAGNÉTICOS
  12. 12. <ul><li>COSTO DE ACCESO A UN DISCO </li></ul><ul><ul><li>Tiempo de desplazamiento: Es el tiempo requerido para mover el brazo de acceso hasta el cilindro adecuado. Depende de la distancia que tenga que recorrer el brazo. </li></ul></ul><ul><ul><ul><li>Si se accede en forma secuencial al archivo y éste está comprimido en varios cilindros consecutivos, el desplazamiento se realiza sólo después de que todas las pistas del cilindro han sido procesadas, y aun así la cabeza de lectura/escritura necesitará moverse a lo ancho de una pista tan sólo. </li></ul></ul></ul><ul><ul><ul><li>Si por el contrario, se accede en forma aleatoria a sectores de 2 archivos que están almacenados en los extremos opuestos de un disco, el desplazamiento resulta muy caro. </li></ul></ul></ul>Dispositivos de almacenamiento DISCOS MAGNÉTICOS
  13. 13. <ul><li>COSTO DE ACCESO A UN DISCO </li></ul><ul><ul><li>Tiempo de desplazamiento: Implica varias operaciones un tanto lentas. Entre las más importantes se consideran: </li></ul></ul><ul><ul><ul><li>El tiempo inicial de arranque (s) </li></ul></ul></ul><ul><ul><ul><li>El tiempo que toma recorrer los cilindros que se deben cruzar una vez que el brazo de acceso adquiere su velocidad normal. </li></ul></ul></ul><ul><ul><ul><li>Si (n) indica el número de cilindros por atravesar, entonces las contribuciones de esos 2 valores pueden aproximarse por medio de una función lineal de la forma: </li></ul></ul></ul><ul><ul><ul><li>f(n) = m*n + s </li></ul></ul></ul><ul><ul><ul><li>donde m es una constante que depende de la unidad de disco en cuestión. </li></ul></ul></ul>Dispositivos de almacenamiento DISCOS MAGNÉTICOS
  14. 14. <ul><li>COSTO DE ACCESO A UN DISCO </li></ul><ul><ul><li>Suponga que 2 fabricantes le han proporcionado las siguientes funciones asociadas a los tiempos de desplazamiento: </li></ul></ul><ul><ul><ul><li>f(n) = 0.3n + 20 [mseg] </li></ul></ul></ul><ul><ul><ul><li>f(n) = 0.1n + 3 [mseg] </li></ul></ul></ul><ul><ul><ul><li>Se observa claramente que </li></ul></ul></ul><ul><ul><ul><li>la segunda arranca más rápido </li></ul></ul></ul><ul><ul><ul><li>y atraviesa las pistas más velozmente. </li></ul></ul></ul>Dispositivos de almacenamiento DISCOS MAGNÉTICOS
  15. 15. <ul><li>COSTO DE ACCESO A UN DISCO </li></ul><ul><ul><li>Retraso por rotación: Se refiere al tiempo que transcurre para que en el disco que gira el sector que se desea quede bajo la cabeza de lectura/escritura. </li></ul></ul><ul><ul><ul><li>Por lo general, los discos giran a una velocidad aproximada de 3600 rpm, lo que significa una revolución cada 16.7 mseg. </li></ul></ul></ul><ul><ul><ul><li>En promedio, el retraso por rotación es la mitad de una revolución, o cerca de 8.3 mseg. </li></ul></ul></ul>Dispositivos de almacenamiento DISCOS MAGNÉTICOS
  16. 16. <ul><li>COSTO DE ACCESO A UN DISCO </li></ul><ul><ul><li>Tiempo de transferencia: Una vez que los datos que se desean están bajo la cabeza de lectura/escritura, se pueden transferir. Viene dado por la expresión: </li></ul></ul><ul><ul><li>F= (# de bytes por transferir)/(# de bytes por pista) </li></ul></ul><ul><ul><li>Tiempo de transferencia = F * Tiempo de rotación </li></ul></ul>Dispositivos de almacenamiento DISCOS MAGNÉTICOS
  17. 17. <ul><li>ORGANIZACIÓN DE DATOS </li></ul><ul><li>No se requieren direcciones para identificar la ubicación de los datos porque el acceso en la cinta es secuencial. </li></ul><ul><li>La posición lógica de un byte dentro del archivo corresponde directamente con su posición física relativa al inicio del archivo. </li></ul><ul><li>Una cinta común puede tener 9 pistas y el último de ellos ser utilizado para la paridad. </li></ul><ul><ul><li>Paridad par: número par de unos </li></ul></ul><ul><ul><li>Paridad impar: número impar de unos </li></ul></ul>Dispositivos de almacenamiento CINTAS MAGNÉTICAS
  18. 18. <ul><li>ESTIMACIÓN DE REQUERIMIENTOS DE LONGITUD DE UNA CINTA </li></ul><ul><li>Sean los parámetros: </li></ul><ul><ul><li>b: Longitud física de un bloque de datos </li></ul></ul><ul><ul><li>g: Longitud de un hueco entre bloques </li></ul></ul><ul><ul><li>n: Número de bloques de datos </li></ul></ul><ul><li>El requerimiento de espacio (s) para almacenar el archivo es: </li></ul><ul><ul><li>s = n*(b + g) </li></ul></ul>Dispositivos de almacenamiento CINTAS MAGNÉTICAS
  19. 19. <ul><li>ESTIMACIÓN DE TIEMPOS DE TRANSMISIÓN </li></ul><ul><li>Sean los parámetros: </li></ul><ul><ul><li>Densidad de la cinta: Usualmente viene dada en bpi (bits por pulgada, por sus siglas en inglés) </li></ul></ul><ul><ul><li>Velocidad de la cinta: Usualmente viene dada en ips (pulgadas por segundo, por sus siglas en inglés) </li></ul></ul><ul><ul><li>Tamaño del hueco entre bloques </li></ul></ul><ul><li>Se puede calcular: </li></ul><ul><ul><li>Tasa nominal: en base a los datos del fabricante </li></ul></ul><ul><ul><li>Tasa efectiva: en base a la densidad de grabado efectiva </li></ul></ul>Dispositivos de almacenamiento CINTAS MAGNÉTICAS
  20. 20. Índices <ul><li>Un índice para un archivo es como un índice en un libro. </li></ul><ul><li>Es más pequeño que el libro. </li></ul><ul><li>Las palabras están en orden de búsqueda. </li></ul><ul><li>Si buscamos un tópico específico primero buscamos en el índice, encontramos las páginas y finalmente vamos a las páginas reales en el libro. </li></ul>
  21. 21. Definición formal de índices <ul><li>“ Un índice se define para un atributo de una relación. Se guarda para cada valor de este atributo las direcciones de todos los bloques que contienen tuplas con ese valor para dicho atributo.” </li></ul><ul><li>Un índice es una estructura de datos que facilita el proceso de respuesta a una consulta minimizando el número de accesos al disco. </li></ul><ul><li>Los valores en un índice se mantienen “con cierto orden” de modo que se puede buscar rápidamente. </li></ul>
  22. 22. Clasificación de los índices <ul><li>En base al número de datos relacionados pueden ser: </li></ul><ul><ul><li>Densos y Escasos </li></ul></ul><ul><li>En base al tipo de organización: </li></ul><ul><ul><li>Indices primarios e </li></ul></ul><ul><ul><li>Indices secundarios </li></ul></ul>
  23. 23. Indices densos <ul><li>Existe un registro de índice para cada valor de la llave de búsqueda El registro contiene el valor de la llave y un puntero al registro. </li></ul><ul><li>Se accede directamente al elemento que se busca y a través del puntero recuperamos los datos asociados. </li></ul>
  24. 25. Indices escasos <ul><li>Una llave va asociada a un bloque de información </li></ul><ul><li>Registros sólo para algunos valores claves. </li></ul><ul><li>Se busca en base al registro más cercano y luego se realiza la búsqueda secuencial. </li></ul><ul><li>Finalmente se recupera la información asociada al dato buscado. </li></ul>
  25. 26. Indices densos vs escasos <ul><li>Búsqueda en densos es más rápida que la búsqueda en los escasos. </li></ul><ul><li>En dispersos se utiliza menos espacio para almacenamiento de índices y ventajas en inserciones y borrados </li></ul><ul><li>Compromiso del programador: equilibrio </li></ul>
  26. 28. Índices primarios <ul><li>Se basan principalmente en archivos ordenados secuencialmente. </li></ul><ul><li>Se denomina índice primario cuando el archivo de datos asociado se encuentra ordenado en base a la llave de búsqueda. </li></ul>
  27. 29. Indices secundarios <ul><li>Mantienen una organización externa asociado a otros datos. </li></ul><ul><li>Permite hacer referencia a una misma estructura. </li></ul><ul><li>Un índice mantiene la llave de búsqueda y el otro índice la organización del archivo. </li></ul>
  28. 30. Indices secundarios (cont...) <ul><li>Crea un índice adicional que puede ser seleccionado dependiendo del criterio de búsqueda utilizado. </li></ul><ul><li>Aceleran la búsqueda en base a campos que no sean la clave primaria, pero dificultan la actualización y el mantenimiento del índice agregando un tiempo adicional de procesamiento. </li></ul>
  29. 32. Buckets en índices secundarios <ul><li>Se busca reducir el número de lecturas para las consultas. </li></ul><ul><li>El índice mantiene sólo un puntero correspondiente a cada llave apuntando hacia el bucket que contiene los punteros a todos los registros de búsqueda. </li></ul><ul><li>Se maneja como una estructura de bloques de información. </li></ul>
  30. 34. Mejora a los índices <ul><li>Se emplea indexación de múltiples niveles: </li></ul><ul><ul><li>Se realiza para evitar la lectura de múltiples segmentos de índice. </li></ul></ul><ul><ul><li>El índice externo se mantiene en memoria principal. </li></ul></ul><ul><ul><li>La búsqueda puede hacerse con menos acceso a memoria secundaria. </li></ul></ul><ul><ul><li>Se puede repetir el esquema en varios niveles. </li></ul></ul><ul><ul><li>Los índices en todos los niveles deben ser actualizados en la inserción o borrado de un registro en el archivo. </li></ul></ul>
  31. 36. Indexación vs Dispersión <ul><li>Para consultas de recuperación de información con un valor específico resulta mejor el uso de dispersión, pues no depende del tamaño del archivo. </li></ul><ul><li>Los índices pueden tomar un tiempo logarítmico con respecto al tamaño total de la BD. </li></ul>
  32. 37. Indexación vs dispersión (cont...) <ul><li>Para consultas de recorridos de rango (desde un valor X hasta un valor Y), el índice tiene mejores resultados pues es fácil ubicar los puntos de partida y final. </li></ul><ul><li>El uso de dispersión falla al tener un rango muy grande pues debe calcular constantemente el valor de ubicación de la llave. </li></ul>
  33. 38. ¿Cómo y cuando seleccionar un índice? <ul><li>Analizar las consultas más habituales, en la práctica. </li></ul><ul><li>Determinar cuáles son las más costosas en cuanto a tiempo e identificar los atributos de la consulta. </li></ul><ul><li>Cuidado con la cantidad: muchos índices significan mucho tiempo adicional en inserciones y eliminaciones. </li></ul>
  34. 39. Evaluación de los índices <ul><li>No existe una técnica definida como la mejor, todos los índices deben ser evaluados en base a estos criterios: </li></ul><ul><ul><li>Tipo de acceso.- encontrar un registro específico con una llave particular o se utiliza un rango. </li></ul></ul><ul><ul><li>Tiempo de acceso.- El tiempo que requiere para encontrar un elemento específico.  </li></ul></ul><ul><ul><li>Tiempo de inserción.- El tiempo que se necesita para agregar un nuevo item al archivo de datos. Así como el tiempo de actualización del índice. </li></ul></ul>
  35. 40. Evaluación de los índices (cont...) <ul><ul><li>Tiempo de eliminación.- El tiempo requerido para eliminar un registro, incluyendo el tiempo de búsqueda. </li></ul></ul><ul><ul><li>Espacio adicional.- Espacio extra requerido para el mantenimiento del índice. </li></ul></ul>

×