Los datos en el disco duro

4,248 views

Published on

Published in: Education, Technology, Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
4,248
On SlideShare
0
From Embeds
0
Number of Embeds
1,887
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Los datos en el disco duro

  1. 1. Notas 03: Organización del disco José Andrés Cuartas MuñozJOSÉ CUARTAS BASES DE DATOS 1
  2. 2. Lo que veremos• Como se almacenan los datos en disco• Como se organizan los datos en la memoria JOSÉ CUARTAS BASES DE DATOS 2
  3. 3. Definiciones• Campos: Los campos son los elementos más primitivos de datos. Como enteros o cadenas de caracteres longitud fija(varchar), cadenas de caracteres de longitud variable• Registros: Los registros se componen de varios campos además de un encabezado. El encabezado contiene información sobre el registro, como fecha y hora, información del esquema, y ​longitud de registro.• Bloques: Los registros se almacenan generalmente dentro de los bloques. El bloque se compone de un encabezado del bloque,con información acerca de ese bloque y el resto es ocupado por uno o más registros.• Registros extendidos: En general, un o varios registro se almacena dentro de un bloque . Sin embargo, Si los registros son más largos que los bloques, entonces podemos separar el registro en varios fragmentos. Se debe tener en cuenta que debe haber un fragmento de cabecera para vincular los fragmentos del registro. JOSÉ CUARTAS BASES DE DATOS 3
  4. 4. Definiciones• BLOBS: valores muy grandes, como imágenes y videos, llamados BLOB (Grandes Objetos binarios). Estos valores deben ser almacenados a través de varios bloques. Dependiendo de los requisitos de acceso, puede ser deseable para mantener el BLOB en uno de los cilindros, para reducir el tiempo de acceso para el BLOB, o puede necesarias partir (stripe) el BLOB en varios discos, para la recuperacion en paralelo del contenido• Tablas de desborde Offset: Para apoyar a las inserciones y eliminaciones de registros, así como registros que cambian su longitud debido a la modificación de longitud variable campos, podemos poner en el encabezado del bloque una tabla de desbordamiento que tiene punteros a cada uno de los registros en el bloque.• Bloques de desbordamiento: También para apoyar la inserción y los registros de crecimiento, generando un vínculo a un bloque de desbordamiento o de la cadena de bloques, donde se mantienen algunos registros que pertenecen lógicamente en el primer bloque. Las direcciones de base de datos: Los datos administrada por un DBMS se encuentra entre varias dispositivos de almacenamiento, normalmente discos. Para localizar los bloques y los registros de este almacenamiento sistema, se puede utilizar direcciones físicas, que son una descripción de el número de dispositivo, un cilindro, pista, sector (s), y, posiblemente, dentro de un byte sector. También puede utilizar las direcciones lógicas, que son de carácter arbitrario cadenas que se traducen en direcciones físicas de una mesa de mapas. JOSÉ CUARTAS BASES DE DATOS 4
  5. 5. Definiciones• Punteros Swizzling: conversión de punteros, de su formato en disco a su formato en memoria, y viceversa.Cuando los bloques de disco se trajo a la memoria principal, el direcciones de base de datos deben ser traducidos a direcciones de memoria, si los punteros hay que seguir. La traducción se llama swizzling, y puede ser realiza de forma automática, cuando los bloques son llevados a la memoria, o bajo demanda, cuando un puntero es primero seguido.• tombstones(Desechos): Cuando se elimina un registro, los punteros que referencian este registro se pierden o cuelgan, generalmente se agrega un bit nulo para indicar que este registro fue eliminado. JOSÉ CUARTAS BASES DE DATOS 5
  6. 6. Relaciones de almacenamiento en el disco • ALAMCENAMOS: Atributos, tuplas, relaciones, atributos o campos son fijos o variables • Jeraquia de los datos fiscos  Campos registros bloques Bloques • Bloque es la unidad de tranferencia I/O. • Las relaciones de bases de datos mapean uno o mas bloques. JOSÉ CUARTAS BASES DE DATOS 6
  7. 7. Que son los valores que se almacenan? • Un salario • Un nombre • Una fecha • Una imagen Que se tiene disponible: Bytes 8 bits JOSÉ CUARTAS BASES DE DATOS 7
  8. 8. Representación: • Entero(Entero Corto): 2 bytes e.j., 35 es 00000000 00100011 • Real, punto flotante n bits para la mantissa(o significando), m para el exponente…. •(http://es.wikipedia.org/wiki/IEEE_coma_flotante) •(http://es.wikipedia.org/wiki/Coma_flotante) •(http://es.wikipedia.org/wiki/Significando) JOSÉ CUARTAS BASES DE DATOS 8
  9. 9. Representación: • Caracteres Varios esquemas de codificación sugeridos, el más popular el ascii (http://es.wikipedia.org/wiki/ASCII) Ejemplo: A: 1000001 a: 1100001 5: 0110101 LF: 0001010 JOSÉ CUARTAS BASES DE DATOS 9
  10. 10. Representación: • Booleaano e.j., Verdadero 1111 1111 falso 0000 0000• Aplicación especifica(los meses,colores) e.j., ROJO 1 VERDE 3 AZUL 2 AMARILLO 4 … se puede utilizar menos de 1 byte/codigo? Si, pero en casos de desepero... JOSÉ CUARTAS BASES DE DATOS 10
  11. 11. Representación:• Fechas e.j.: - Entero, # 1re dia Enero 1, 1900 - 8 caracteres, YYYYMMDD - 7 caracteres, YYYYDDD (Y=Año,M=Mes,D=Dia) (no YYMMDD! Porque?) http://es.wikipedia.org/wiki/Problema_del_a%C3%B1o_2000• Tiempo e.j. - Entero, segundos desde la media noche - caracteres, HHMMSSFF (H=Hora,M=minuto,S=Segundos,F=cantidad de digitos significativos de la fraccion de segundo) JOSÉ CUARTAS BASES DE DATOS 11
  12. 12. Se representa : • Cadena de caracteres – Terminada en nulos e.j., c a t – Longitud especificada e.j varchar e.j., 3 c a t - Longitud fija e.j char (utiliza caracteres comodines si no se ocupa el espacio) JOSÉ CUARTAS BASES DE DATOS 12
  13. 13. Se representa:• Cadenas de bits o cadenas binarias (Videos, textos, entre otros) Longitud Bits JOSÉ CUARTAS BASES DE DATOS 13
  14. 14. Punto clave•Valores de Longitud fija• Valores de longitud variable - Generalmente se da una longitud inicial JOSÉ CUARTAS BASES DE DATOS 14
  15. 15. TAMBIEN• Tipos de valores: Nos dice como se interpreta (+ el tamaños si es fijo) JOSÉ CUARTAS BASES DE DATOS 15
  16. 16. Informe Datosgeneral Registros Bloques Archivos Memoria JOSÉ CUARTAS BASES DE DATOS 16
  17. 17. Registro- Colección de datosrelacionados(llamados CAMPOS)E.j.: Registro de empleados: campo nombre, campo salario, campo fecha-de-ingreso, ... JOSÉ CUARTAS BASES DE DATOS 17
  18. 18. Tipos de registros:• Opciones principales: – FIJOS vs FORMATO VARIABLE – FIJOS vs LONGITUD VARIABLE JOSÉ CUARTAS BASES DE DATOS 18
  19. 19. Formato FijoUn ESQUEMA (no registro) contiene la siguiente información - # Campos - Tipo de cada campo - orden en el registro - Significado de cada campoLos esquemas se consultan cuando es necesario acceder a los componentes de un registro JOSÉ CUARTAS BASES DE DATOS 19
  20. 20. EJEMPLO: Formato y longitud fija Registro de empleado (1) E#, entero de 2 byte (2) E.nombre, 10 char. Esquema (3) Dept, codigo de 2 byte 55 n a t a l i a 02 Registro 83 j o s e 01 JOSÉ CUARTAS BASES DE DATOS 20
  21. 21. Formato variable• El registro en si contiene el formato “Auto descriptivo” JOSÉ CUARTAS BASES DE DATOS 21
  22. 22. EJEMPLO: Formato y longitud variable 2 5 I 46 4 S 4 F O RD Codigo para E.nombre Codigo identificación Tipo entero(integer) Tipo cadena(string) del campo E# # campos Long. cadena El codigo de los campos puede ser una cadena(String), E.j. Etiquetas JOSÉ CUARTAS BASES DE DATOS 22
  23. 23. El formato variable es util para:• Registros “Dispersos” (sparse records)• Campos repetitivos• Evolución de formatos Desaprovechan espacio... JOSÉ CUARTAS BASES DE DATOS 23
  24. 24. • EJEMPLO: registro de formato varible con campos repetitivos Empleado uno o mas hijos 3 E_nombre: Jose Hijo: yumi hijo: luna JOSÉ CUARTAS BASES DE DATOS 24
  25. 25. Nota: Los campos repetitivos no implican - Formato variable, ni - Tamaño variable Jose yumi luna --Definición: Los campos repetitivos pueden tener multiples valores en registros individuales. Los elementos son homogéneos, es decir, del mismo tipo de datos, arreglos, entre otros, estos se utilizan en las DB para relaciones varios-varios. • La clave es localizar el maximo numero de campos repetitivos (si no usan null) JOSÉ CUARTAS BASES DE DATOS 25
  26. 26. Varias variantes entre formato fijo- variable:Ejemplo: Incluir el tipo de registro en el registro 5 27 ....Tipo de registro Longitud del registroDice que seEspera(E.j. puntero al esquema) JOSÉ CUARTAS BASES DE DATOS 26
  27. 27. Descriptor de archivo- Datos que almacenan la descripción del registro, generalmente se ubican al comienzoPuede contener: - Tipo de registro - Longitud del registro - time stamp (tiempo del evento (http://es.wikipedia.org/wiki/Timestamp) - Otras cosas... JOSÉ CUARTAS BASES DE DATOS 27
  28. 28. Otros temas de interes:• Compresión – Transferir o almacenar la misma información empleando la menor cantidad de espacio. • En el registro - e.j. Seleccion de codigo • Colecciones de regsitro - e.j. Busca patrones comunes• Encriptación JOSÉ CUARTAS BASES DE DATOS 28
  29. 29. Compresión de registros• Selección de codigo – E.j secuencia como "AAAAAA", ocupan 6 bytes se podría almacenar simplemente "6A" que ocupa solo 2 bytes. • algoritmo de codificación por longitud de recorrido (RLE)• Collección de registros busqueda de patrones: – Antonietta Antonietta Antonietta Antonietta Antonina Antoniina Antonina Antonina JOSÉ CUARTAS BASES DE DATOS 29
  30. 30. Compresión de registros• Prefijo de compresión (en rojo).• Luego se buscan patrones comunes (etta y na) diferentes al prefijo y se replazan por una referencia de entrada. » Datos: Antonieta Antonieta Antonina Antonina... » Prefijo: Antoni Diccionario: [0] – eta, [1] – na Datos: [0] [0] [1] [1] JOSÉ CUARTAS BASES DE DATOS 30
  31. 31. Encriptación de registrosNuevoregistro E(r) r Procesador dbms confiable E(r1) E(r2) E(r3) E(r4) ...JOSÉ CUARTAS BASES DE DATOS 31
  32. 32. Encriptación de registrosBusqueda F(r)=x Procesador ?? dbms confiable E(r1) E(r2) E(r3) E(r4) ...JOSÉ CUARTAS BASES DE DATOS 32
  33. 33. Busqueda de clavesearch k=2 Q: k=2 A: [2, E(b2)] Procesador dbms confiable [1, E(b1)] [2, E(b2)] [3, E(b3)] [4, E(b4)] ... • cada registro es [k,b] • almacenamiento [k, E(b)] • cada busqueda para registros k=xJOSÉ CUARTAS BASES DE DATOS 33
  34. 34. Clave de cifradobusqueda k=2 Procesador Q: k’=E(2) A: [E(2), E(b2)] dbms confiable [E(1), E(b1)] [E(2), E(b2)] [E(3), E(b3)] [E(4), E(b4)] ... • cada registro es [k,b] • almacenamiento [k, E(b)] • cada busqueda para registros k=xJOSÉ CUARTAS BASES DE DATOS 34
  35. 35. TEMAS• Dificil realizar consultas por rango• El cifrado no es bueno• Lo mejor es usar encriptación que no siempre genera el mismo texto cifrado E(k, random(aleatorio)) k k E D simplificacion JOSÉ CUARTAS BASES DE DATOS 35
  36. 36. Como se busca? ???search A: [E(2,dhe), E(b2)] k=2 Q: k’=E(2) Procesador [E(2, lkz), E(b4)] dbms confiable [E(1, abc), E(b1)] [E(2, dhe), E(b2)] [E(3, nft), E(b3)] [E(2, lkz), E(b4)] ... • cada registro es [k,b] • almacena [E(k, rand), E(b)] • puede buscar registros con k=E(x,???)?JOSÉ CUARTAS BASES DE DATOS 36
  37. 37. Solución?• Desarrollar nuevas funciones para desencriptar: D(f(k1), E(k2, rand)) es verdad si k1=k2 Q: chequear si D(f(2),*) es verdaderobusqueda A: [E(2,dhe), E(b2)] k=2 [E(2, lkz), E(b4)] Procesador dbms confiable [E(1, abc), E(b1)] [E(2, dhe), E(b2)] [E(3, nft), E(b3)] [E(2, lkz), E(b4)] ... JOSÉ CUARTAS BASES DE DATOS 37
  38. 38. Temas?• No puede hacer igualdad de predicados• Dificil construir indices JOSÉ CUARTAS BASES DE DATOS 38
  39. 39. Siguiente: el lugar de los registros en elbloque(Unidad de transferencia entre el disco yla memoria, se componen de paginas) Los bloques son la división de una pista(disco duro) realizada por el sistema operativo durante el formateo, estos se separan por un espacio de tamaño fijo - este espacio incluye información de control de la identificación del siguiente bloqueBloques ... un archivo JOSÉ CUARTAS BASES DE DATOS 39
  40. 40. siguiente: Ubicacion de registro dentro del bloque Se asume bloques de longitud fijaBloques ... Un archivo Se asume un solo archivo JOSÉ CUARTAS BASES DE DATOS 40
  41. 41. Temas :almacenamiento de registro dentro de bloques(1) Separacion de registros(2) Registros: Extendidos vs. No extendidos(3) Secuencial(4) Direccionamiento a un registro JOSÉ CUARTAS BASES DE DATOS 41
  42. 42. (1) Separacion de registros Bloque R1 R2 R3 (a) No nesecitan ser separados – registros tamaño fijo. (b) Marcado especial (c) Dar la longitud de registro (or offsets) - con cada registro - dentro del encabezado del bloque JOSÉ CUARTAS BASES DE DATOS 42
  43. 43. (2) Extendidos vs. No extendidos• No extendidos: los registros deben ser de un bloque max. bloque 1 bloque 2 R1 R2 R3 R4 R5 ...• extendidos bloque 1 bloque 2 R3 R3 R7 R1 R2 (a) (b) R4 R5 R6 (a) ... JOSÉ CUARTAS BASES DE DATOS 43
  44. 44. Con registros extendidos: R3 R3 R7 R1 R2 (a) (b) R4 R5 R6 (a) nesecitan un indicador Nesecitan un indicador (“un puntero”o referencia) de donde continua del registro parcial (+ de donde procedia?) que direccione a lo faltante JOSÉ CUARTAS BASES DE DATOS 44
  45. 45. Extendidos vs. No extendidos: • No extendidos son muy simples, pero pueden desperdician espacio… • Extendidos es escencial si Tamaño del registro > Tamaño del bloque JOSÉ CUARTAS BASES DE DATOS 45
  46. 46. (3) secuencial • Ordenan los registros dentro del archivo (y bloque) por algun valor clave Archivo secuencial ( En orden) • Porque la secuencia? Tipicamente realiza una lectura de registros de manera eficiente (e.j., al realizar joins) JOSÉ CUARTAS BASES DE DATOS 46
  47. 47. Opciones de secuencia(a) Registros contiguos fisicamente (asignación contigua o directa) (a) Rapida lectura (b) Dificil expanción R1 Siguie. (R1) ...(b) Ligado o encadenado(asignación enlazada) (a) Maneja apuntadores, facilita la expanción. (b) Lentitud en la lectura R1 Siguie. (R1) JOSÉ CUARTAS BASES DE DATOS 47
  48. 48. Opciones de secuencia (c) Area de desbordamiento ( overflow ). modo indexado Registros en R1 secuencia R2 R3 R4 R5 JOSÉ CUARTAS BASES DE DATOS 48
  49. 49. Opciones de secuencia (c)Area de desbordamiento ( overflow ). Encabe. Registro en R1 R2.1 secuencia R2 R1.3 R3 R4.7 R4 R5 JOSÉ CUARTAS BASES DE DATOS 49
  50. 50. (4) Direccionamiento a un registro • Como se referencia los bloque o registros? Rx • Fisico/Direccionamiento directo • Logico/Direccionamiento indirecto • Mixto/Enfoque en estructura Varias opciones: Fisico(Directo) indirecto JOSÉ CUARTAS BASES DE DATOS 50
  51. 51. Fisico ID DispositivoE.j., Direccion de # Cilindro ID Bloque registro = # Pista o ID # Bloque desborde en el bloque JOSÉ CUARTAS BASES DE DATOS 51
  52. 52. Totalmente indirectoE.j., ID de registro es una cadena de bit arbitraria tabla de mapeo mapeorec ID Dir. Rec ID r fisica. Dir. a JOSÉ CUARTAS BASES DE DATOS 52
  53. 53. Que se entrega a cambio Flexibilidad Costo Mover registros Direccionamiento indirecto (para eliminación, inserción) Fisico Direccionamiento indirecto Muchas opciones… JOSÉ CUARTAS BASES DE DATOS 53
  54. 54. Enfoque estructurado / Mixto E.j: Indirecto en bloqueDireccion(tabla) registro: (direccion bloque fisico, id-registro dentro del bloque) encabezado(punteros)Un bloque: Espacio libre R3 R4 R1 R2 JOSÉ CUARTAS BASES DE DATOS 54
  55. 55. Bloque de encabezado – datos dedescripcion de un bloquePude contener: - ID de archivo (o RELACIÓN o ID de DB) - ID de este bloque - Registro de directorio - Puntero a espacio libre - Tipo de bloque (e.j. contiene regs tipo 4; es sobreflujo, …) - Puntero a otros bloques “hey punteros” - Tiempo y fecha... JOSÉ CUARTAS BASES DE DATOS 55
  56. 56. Otros temas(1) Inserción/Eliminación(2) Administración de Buffer(3) Comparación de esquemas JOSÉ CUARTAS BASES DE DATOS 56
  57. 57. ELIMINACIÓN Bloque Rx JOSÉ CUARTAS BASES DE DATOS 57
  58. 58. Opciones:(a) Inmediatamente recupera el espacio(b) Marcado como eliminado – Sepueden nesecitar la cadena de registros eliminados (para re-uso) – Nesecidad posible de marca: • Caracteres especiales • Campo eliminado • Mapeo JOSÉ CUARTAS BASES DE DATOS 58
  59. 59. Como de costumbre, ventajas y desventajas...• Como es de costoso mover un registro para liberar un espacio y luego reutilizar el espacio liberado?• Cuanto espacio se desperdicia? – e.j., eliminar registros, eliminar campos, espacio de registro libres,... JOSÉ CUARTAS BASES DE DATOS 59
  60. 60. Preocupa la eliminación Puntero colgante o perdido R1 ?Soluciones 1. No preocupación 2. Use “Tombstone”(Lapida) Por ejemplo, dejar "marcado" el mapa o la vieja ubicación. JOSÉ CUARTAS BASES DE DATOS 60
  61. 61. Solución#2: Tombstones o desechosE.j., Dejar “Marcado” en el mapa o la vieja ubicación • ids FisicosUn bloque este espacio este se puede reusar no se reusa JOSÉ CUARTAS BASES DE DATOS 61
  62. 62. Solución#2 : Tombstones o desechosE.j., Dejar “Marcado” en el mapa o la vieja ubicación • IDs logicos mapeo ID LOC Nunca se reusa 7788 ID 7788 o el espacio en el mapa... JOSÉ CUARTAS BASES DE DATOS 62
  63. 63. InsertarCaso sencillo : registros no secuenciales Inserte el nuevo registro al final del archivo o en un espacio eliminado Si el registro es de tamaño variable, no es facil... JOSÉ CUARTAS BASES DE DATOS 63
  64. 64. InsertarCaso complicado: registros en secuencia si el espacio libre esta cerca, no hay problema... O se utiliza la idea de tabla de desbordamiento... JOSÉ CUARTAS BASES DE DATOS 64
  65. 65. Problemas interesantes:• Cuánto espacio libre se reserva en cada bloque, pista, cilindro?• Como reorganizo el archivo + sobre flujo? JOSÉ CUARTAS BASES DE DATOS 65
  66. 66. Espacio libreJOSÉ CUARTAS BASES DE DATOS 66
  67. 67. Administración de buffer• Porque LRU es malo tarea• Pinned Bloques• Doble buffer Notas02• Swizzling (conversión o transformación) JOSÉ CUARTAS BASES DE DATOS 67
  68. 68. Swizzling o punteros de conversión y reduccion Memoria DiscoBloque 1 Bloque 1 Bloque 2 Reg A JOSÉ CUARTAS BASES DE DATOS 68
  69. 69. Swizzling o punteros de conversión Memoria DiscoBloque 1 Bloque 1Bloque 2 Bloque 2 Reg A Reg A JOSÉ CUARTAS BASES DE DATOS 69
  70. 70. Almacenamiento Filas vs Columnas• Se asume que los campos de los registros estan almacenados contiguamente (alma. en filas)...• Otra opción es almacenar los campos en conjunto (alma. En columnas) JOSÉ CUARTAS BASES DE DATOS 70
  71. 71. ALMACENAMIENTO EN FILAS• Ejemplo: La orden (factura) consiste de – id, cust, prod, store, price, date, qtyid1 cust1 prod1 store1 price1 date1 qty1id2 cust2 prod2 store2 price2 date2 qty2id3 cust3 prod3 store3 price3 date3 qty3 JOSÉ CUARTAS BASES DE DATOS 71
  72. 72. ALMACENAMIENTO EN COLUMNAS• Ejemplo: La orden(factura) consiste de – id, cust, prod, store, price, date, qty id1 cust1 id1 prod1 id1 price1 qty1 id2 cust2 id2 prod2 id2 price2 qty2 id3 cust3 id3 prod3 id3 price3 qty3 id4 cust4 id4 prod4 id4 price4 qty4 ... ... ... ... ... ... ... ids puede o no puede ser almacenado de forma explícita JOSÉ CUARTAS BASES DE DATOS 72
  73. 73. Almacenamiento Filas vs Columnas• Ventajas de almacenamiento en columnas – Almacenamiento mas compacto – Eficientes lectura en operaciones de mineria de datos• Ventajas de almacenamiento en filas – escritura (multiples campos de un registro) mas eficiente – Eficiente lecturas para acceso de registros (OLTP) JOSÉ CUARTAS BASES DE DATOS 73
  74. 74. Interesantes documentos de lectura:• Mike Stonebreaker, Elizabeth (Betty) ONeil, Pat O’Neil, Xuedong Chen, et al. " C-Store: A Column-oriented DBMS," Presentado en la conferencia VLDB,Septiembre 2005.• http://www.cs.umb.edu/%7Eponeil/ vldb05_cstore.pdf JOSÉ CUARTAS BASES DE DATOS 74
  75. 75. Temas:Flexibilidad Utilización de espacioComplejidad Desempeño JOSÉ CUARTAS BASES DE DATOS 75
  76. 76. Evaluación estrategia,parametros:-> uso del espacio para los datosesperados-> Tiempo esperado para - busqueda de registros dada una clave - Busqueda de registros con la siguiente clave - Insertar registros - Añadir registros - Eliminar registros - actualizar registros - Leer todos los archivos - Reorganizar archivos JOSÉ CUARTAS BASES DE DATOS 76
  77. 77. EjemploComo se diseña un sistema de almacenamiento? (Para una DB relacional, bajo nivel) – Registros de longitud variable? – extendidos? – Que tipo de datos? – Formatos fijos? – IDs Registros ? – secuencial? – Como manejar eliminaciones? JOSÉ CUARTAS BASES DE DATOS 77
  78. 78. Siguiente Como encontrar un registro rapidamente, dada una clave JOSÉ CUARTAS BASES DE DATOS 78

×