Este documento resume los conceptos fundamentales sobre cómo se organizan los datos en el disco. Explica que los datos se almacenan en campos, registros, bloques y archivos, con campos como la unidad más pequeña y archivos como la más grande. Describe diferentes formatos de registro como fijo y variable, y cómo se representan diferentes tipos de datos como enteros, cadenas y fechas. También cubre temas como compresión, encriptación y cómo se buscan los datos en el disco.
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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. Se representa:
• Cadenas de bits o cadenas binarias
(Videos, textos, entre otros)
Longitud Bits
JOSÉ CUARTAS BASES DE DATOS 13
14. Punto clave
•Valores de Longitud fija
• Valores de longitud variable
- Generalmente se da una longitud inicial
JOSÉ CUARTAS BASES DE DATOS 14
15. TAMBIEN
• Tipos de valores: Nos dice como se
interpreta
(+ el tamaños si es
fijo)
JOSÉ CUARTAS BASES DE DATOS 15
16. Informe Datos
general
Registros
Bloques
Archivos
Memoria
JOSÉ CUARTAS BASES DE DATOS 16
17. Registro- Colección de datos
relacionados(llamados CAMPOS)
E.j.: Registro de empleados:
campo nombre,
campo salario,
campo fecha-de-ingreso, ...
JOSÉ CUARTAS BASES DE DATOS 17
18. Tipos de registros:
• Opciones principales:
– FIJOS vs FORMATO VARIABLE
– FIJOS vs LONGITUD VARIABLE
JOSÉ CUARTAS BASES DE DATOS 18
19. Formato Fijo
Un ESQUEMA (no registro) contiene la siguiente
información
- # Campos
- Tipo de cada campo
- orden en el registro
- Significado de cada campo
Los esquemas se consultan cuando es necesario
acceder a los componentes de un registro
JOSÉ CUARTAS BASES DE DATOS 19
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. Formato variable
• El registro en si contiene el formato
“Auto descriptivo”
JOSÉ CUARTAS BASES DE DATOS 21
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. 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. • 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. 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. Varias variantes entre formato
fijo- variable:
Ejemplo: Incluir el tipo de registro en el registro
5 27 ....
Tipo de registro Longitud del registro
Dice que se
Espera
(E.j. puntero al esquema)
JOSÉ CUARTAS BASES DE DATOS 26
27. Descriptor de archivo- Datos que almacenan la
descripción del registro, generalmente se ubican al comienzo
Puede 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. 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. 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. 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
33. Busqueda de clave
search
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=x
JOSÉ CUARTAS BASES DE DATOS 33
34. Clave de cifrado
busqueda
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=x
JOSÉ CUARTAS BASES DE DATOS 34
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. 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. 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 verdadero
busqueda 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. Temas?
• No puede hacer igualdad de predicados
• Dificil construir indices
JOSÉ CUARTAS BASES DE DATOS 38
39. Siguiente: el lugar de los registros en el
bloque(Unidad de transferencia entre el disco y
la 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 bloque
Bloques ...
un archivo
JOSÉ CUARTAS BASES DE DATOS 39
40. siguiente: Ubicacion de registro dentro del bloque
Se asume bloques
de longitud fija
Bloques ...
Un archivo Se asume un solo archivo
JOSÉ CUARTAS BASES DE DATOS 40
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. (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. (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. 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. 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. (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. 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. 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. 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. (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. Fisico
ID Dispositivo
E.j., Direccion de # Cilindro
ID Bloque
registro = # Pista
o ID # Bloque
desborde en el bloque
JOSÉ CUARTAS BASES DE DATOS 51
52. Totalmente indirecto
E.j., ID de registro es una cadena de bit
arbitraria
tabla de mapeo
mapeo
rec ID Dir.
Rec ID
r fisica. Dir.
a
JOSÉ CUARTAS BASES DE DATOS 52
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. Enfoque estructurado / Mixto E.j: Indirecto en bloque
Direccion(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. Bloque de encabezado – datos de
descripcion de un bloque
Pude 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
57. ELIMINACIÓN
Bloque
Rx
JOSÉ CUARTAS BASES DE DATOS 57
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. 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. 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. Solución#2: Tombstones o desechos
E.j., Dejar “Marcado” en el mapa o la vieja ubicación
• ids Fisicos
Un bloque
este espacio este se puede reusar
no se reusa
JOSÉ CUARTAS BASES DE DATOS 61
62. Solución#2 : Tombstones o desechos
E.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. Insertar
Caso 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. Insertar
Caso 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. 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
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. Swizzling o punteros de conversión y
reduccion
Memoria Disco
Bloque 1 Bloque 1
Bloque 2
Reg A
JOSÉ CUARTAS BASES DE DATOS 68
69. Swizzling o punteros de conversión
Memoria Disco
Bloque 1 Bloque 1
Bloque 2 Bloque 2
Reg A Reg A
JOSÉ CUARTAS BASES DE DATOS 69
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. ALMACENAMIENTO EN FILAS
• Ejemplo: La orden (factura) consiste de
– id, cust, prod, store, price, date, qty
id1 cust1 prod1 store1 price1 date1 qty1
id2 cust2 prod2 store2 price2 date2 qty2
id3 cust3 prod3 store3 price3 date3 qty3
JOSÉ CUARTAS BASES DE DATOS 71
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. 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. Interesantes documentos de lectura:
• Mike Stonebreaker, Elizabeth (Betty)
O'Neil, 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. Temas:
Flexibilidad Utilización de espacio
Complejidad Desempeño
JOSÉ CUARTAS BASES DE DATOS 75
76. Evaluación estrategia,parametros:
-> uso del espacio para los datos
esperados
-> 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. Ejemplo
Como 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