SlideShare una empresa de Scribd logo
1 de 78
Notas 03: Organización del disco


        José Andrés Cuartas Muñoz


JOSÉ CUARTAS     BASES DE DATOS     1
Lo que veremos

• Como se almacenan los datos en disco
• Como se organizan los datos en la memoria




  JOSÉ CUARTAS    BASES DE DATOS              2
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
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
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
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
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
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
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
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
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
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
Se representa:
• Cadenas de bits o cadenas binarias
 (Videos, textos, entre otros)



                  Longitud        Bits




   JOSÉ CUARTAS          BASES DE DATOS   13
Punto clave

•Valores de Longitud fija

• Valores de longitud variable
         - Generalmente se da una longitud inicial




 JOSÉ CUARTAS         BASES DE DATOS                 14
TAMBIEN

• Tipos de valores: Nos dice como se
                    interpreta
                    (+ el tamaños si es
                    fijo)




  JOSÉ CUARTAS   BASES DE DATOS           15
Informe                Datos
general
                    Registros

                     Bloques

                     Archivos

                     Memoria
   JOSÉ CUARTAS   BASES DE DATOS   16
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
Tipos de registros:

• Opciones principales:
  – FIJOS vs FORMATO VARIABLE
  – FIJOS vs LONGITUD VARIABLE




  JOSÉ CUARTAS   BASES DE DATOS   18
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
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
Formato variable

• El registro en si contiene el formato
  “Auto descriptivo”




  JOSÉ CUARTAS   BASES DE DATOS           21
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
El formato variable es util para:

• Registros “Dispersos” (sparse records)
• Campos repetitivos
• Evolución de formatos


            Desaprovechan espacio...




   JOSÉ CUARTAS         BASES DE DATOS     23
• 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
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
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
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
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
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
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
Encriptación de registros
Nuevo
registro
                      E(r)
   r     Procesador
                                       dbms
          confiable

                                       E(r1)
                                       E(r2)
                                       E(r3)
                                       E(r4)
                                        ...




JOSÉ CUARTAS          BASES DE DATOS           31
Encriptación de registros

Busqueda
 F(r)=x Procesador     ??
                                       dbms
          confiable

                                       E(r1)
                                       E(r2)
                                       E(r3)
                                       E(r4)
                                        ...




JOSÉ CUARTAS          BASES DE DATOS           32
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
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
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
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
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
Temas?
• No puede hacer igualdad de predicados
• Dificil construir indices




  JOSÉ CUARTAS   BASES DE DATOS       38
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
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
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
(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
(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
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
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
(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
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
Opciones de secuencia
 (c) Area de desbordamiento ( overflow ).
       modo indexado
 Registros en          R1
 secuencia             R2
                       R3
                       R4
                       R5




    JOSÉ CUARTAS       BASES DE DATOS       48
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
(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
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
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
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
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
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
Otros temas

(1) Inserción/Eliminación
(2) Administración de Buffer
(3) Comparación de esquemas




  JOSÉ CUARTAS   BASES DE DATOS   56
ELIMINACIÓN

                 Bloque

                      Rx




  JOSÉ CUARTAS    BASES DE DATOS   57
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
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
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
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
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
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
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
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
Espacio
                libre




JOSÉ CUARTAS             BASES DE DATOS   66
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
Swizzling o punteros de conversión y
 reduccion
            Memoria                       Disco

Bloque 1                                       Bloque 1




                                               Bloque 2
                                       Reg A




     JOSÉ CUARTAS     BASES DE DATOS               68
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
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
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
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
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
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
Temas:

Flexibilidad           Utilización de espacio




Complejidad            Desempeño




   JOSÉ CUARTAS   BASES DE DATOS                75
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
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
Siguiente

 Como encontrar un registro
 rapidamente, dada una clave




 JOSÉ CUARTAS   BASES DE DATOS   78

Más contenido relacionado

Similar a Organización de datos en disco

Sql server 2005 (bda)henrry
Sql server 2005 (bda)henrrySql server 2005 (bda)henrry
Sql server 2005 (bda)henrryHENRRYDAVIDS1
 
Presentacion power designer
Presentacion power designerPresentacion power designer
Presentacion power designerMario Puerres
 
Tipos de-datos-power-designer
Tipos de-datos-power-designerTipos de-datos-power-designer
Tipos de-datos-power-designerYle Quintana
 
Tipos de datos power designer
Tipos de datos power designer Tipos de datos power designer
Tipos de datos power designer myriangabriela
 
Tipos de-datos-power-designer
Tipos de-datos-power-designerTipos de-datos-power-designer
Tipos de-datos-power-designerBelén García
 
Tipos de datos power designer
Tipos de datos power designerTipos de datos power designer
Tipos de datos power designerPablo Alberto
 
Bases de Datos - Parte 8/10 Memoria secundaria
Bases de Datos - Parte 8/10 Memoria secundariaBases de Datos - Parte 8/10 Memoria secundaria
Bases de Datos - Parte 8/10 Memoria secundariaCarlos Castillo (ChaTo)
 
Variables de Power designer
Variables de Power designerVariables de Power designer
Variables de Power designerLiz Ocampo
 
Etc2 0304 memorias
Etc2 0304 memoriasEtc2 0304 memorias
Etc2 0304 memoriasChaRly Cv
 
TIPO DE DATOS EN ORACLE
TIPO DE DATOS EN ORACLETIPO DE DATOS EN ORACLE
TIPO DE DATOS EN ORACLEEder Celis
 
Microcomputadoras al detalle
Microcomputadoras al detalleMicrocomputadoras al detalle
Microcomputadoras al detalledsolana
 
Tipos de Variables de Power Designer-
Tipos de Variables de Power Designer-Tipos de Variables de Power Designer-
Tipos de Variables de Power Designer-Aula38TICSII
 
Unidad II_ Tipo de Datos Oracle.pptx
Unidad II_ Tipo de Datos Oracle.pptxUnidad II_ Tipo de Datos Oracle.pptx
Unidad II_ Tipo de Datos Oracle.pptxCarlosSandovalMedina
 
Oracle Características y tipos de datos
Oracle Características y tipos de datos Oracle Características y tipos de datos
Oracle Características y tipos de datos jerson rojas lopez
 
Zaires informe presentacion visual
Zaires informe presentacion visualZaires informe presentacion visual
Zaires informe presentacion visualEEM7
 

Similar a Organización de datos en disco (20)

Sql server 2005 (bda)henrry
Sql server 2005 (bda)henrrySql server 2005 (bda)henrry
Sql server 2005 (bda)henrry
 
Presentacion power designer
Presentacion power designerPresentacion power designer
Presentacion power designer
 
Tipos de-datos-power-designer
Tipos de-datos-power-designerTipos de-datos-power-designer
Tipos de-datos-power-designer
 
Tipos de datos power designer
Tipos de datos power designer Tipos de datos power designer
Tipos de datos power designer
 
Tipos de-datos-power-designer
Tipos de-datos-power-designerTipos de-datos-power-designer
Tipos de-datos-power-designer
 
Tipos de-datos-power-designer
Tipos de-datos-power-designerTipos de-datos-power-designer
Tipos de-datos-power-designer
 
Tipos de datos power designer
Tipos de datos power designerTipos de datos power designer
Tipos de datos power designer
 
Tipos de Datos de Oracle
Tipos de Datos de OracleTipos de Datos de Oracle
Tipos de Datos de Oracle
 
Bases de Datos - Parte 8/10 Memoria secundaria
Bases de Datos - Parte 8/10 Memoria secundariaBases de Datos - Parte 8/10 Memoria secundaria
Bases de Datos - Parte 8/10 Memoria secundaria
 
Variables de Power designer
Variables de Power designerVariables de Power designer
Variables de Power designer
 
Etc2 0304 memorias
Etc2 0304 memoriasEtc2 0304 memorias
Etc2 0304 memorias
 
TIPO DE DATOS EN ORACLE
TIPO DE DATOS EN ORACLETIPO DE DATOS EN ORACLE
TIPO DE DATOS EN ORACLE
 
Microcomputadoras al detalle
Microcomputadoras al detalleMicrocomputadoras al detalle
Microcomputadoras al detalle
 
Manual80x86
Manual80x86Manual80x86
Manual80x86
 
Tipos de Variables de Power Designer-
Tipos de Variables de Power Designer-Tipos de Variables de Power Designer-
Tipos de Variables de Power Designer-
 
Unidad II_ Tipo de Datos Oracle.pptx
Unidad II_ Tipo de Datos Oracle.pptxUnidad II_ Tipo de Datos Oracle.pptx
Unidad II_ Tipo de Datos Oracle.pptx
 
Oracle Características y tipos de datos
Oracle Características y tipos de datos Oracle Características y tipos de datos
Oracle Características y tipos de datos
 
Zaires informe presentacion visual
Zaires informe presentacion visualZaires informe presentacion visual
Zaires informe presentacion visual
 
Bd oracle
Bd oracleBd oracle
Bd oracle
 
Tipos de datos oracle
Tipos de datos oracleTipos de datos oracle
Tipos de datos oracle
 

Más de josecuartas

Seguridad en el almacenamiento de las bases de datos
Seguridad en el almacenamiento de las bases de datosSeguridad en el almacenamiento de las bases de datos
Seguridad en el almacenamiento de las bases de datosjosecuartas
 
Anti patrones SQL, Modelo conceptual
Anti patrones SQL, Modelo conceptualAnti patrones SQL, Modelo conceptual
Anti patrones SQL, Modelo conceptualjosecuartas
 
Tableros de control o Dashboard
Tableros de control o DashboardTableros de control o Dashboard
Tableros de control o Dashboardjosecuartas
 
Visualizacion de datos
Visualizacion de datosVisualizacion de datos
Visualizacion de datosjosecuartas
 
Calidad de datos
Calidad de datosCalidad de datos
Calidad de datosjosecuartas
 
De los datos a la información
De los datos a la informaciónDe los datos a la información
De los datos a la informaciónjosecuartas
 
Datos semiestructurados Xml
Datos semiestructurados XmlDatos semiestructurados Xml
Datos semiestructurados Xmljosecuartas
 
Sql DML Lenguaje de manipulación de datos
Sql DML Lenguaje de manipulación de datos Sql DML Lenguaje de manipulación de datos
Sql DML Lenguaje de manipulación de datos josecuartas
 
Bases de datos temporales
Bases de datos temporalesBases de datos temporales
Bases de datos temporalesjosecuartas
 
Transformar modelo entidad relacion a modelo logico
Transformar modelo entidad relacion a modelo logicoTransformar modelo entidad relacion a modelo logico
Transformar modelo entidad relacion a modelo logicojosecuartas
 
índices en bases de datos
índices en bases de datosíndices en bases de datos
índices en bases de datosjosecuartas
 
Sql DDL Lenguaje de definición de datos
Sql DDL Lenguaje de definición de datosSql DDL Lenguaje de definición de datos
Sql DDL Lenguaje de definición de datosjosecuartas
 
Seguridad en bases de datos
Seguridad en bases de datosSeguridad en bases de datos
Seguridad en bases de datosjosecuartas
 
Digramas de venn aplicado en las bases datos
Digramas de venn aplicado en las bases datosDigramas de venn aplicado en las bases datos
Digramas de venn aplicado en las bases datosjosecuartas
 
Bases de datos avanzado NOSQL
Bases de datos avanzado NOSQLBases de datos avanzado NOSQL
Bases de datos avanzado NOSQLjosecuartas
 
Disco duro bases datos
Disco duro bases datosDisco duro bases datos
Disco duro bases datosjosecuartas
 
Fuga de información
Fuga de informaciónFuga de información
Fuga de informaciónjosecuartas
 
Patrones de arquitectura Software(Capa de Datos)
Patrones de arquitectura Software(Capa de Datos)Patrones de arquitectura Software(Capa de Datos)
Patrones de arquitectura Software(Capa de Datos)josecuartas
 
Sql dinamico14042011
Sql dinamico14042011Sql dinamico14042011
Sql dinamico14042011josecuartas
 

Más de josecuartas (20)

Seguridad en el almacenamiento de las bases de datos
Seguridad en el almacenamiento de las bases de datosSeguridad en el almacenamiento de las bases de datos
Seguridad en el almacenamiento de las bases de datos
 
Anti patrones SQL, Modelo conceptual
Anti patrones SQL, Modelo conceptualAnti patrones SQL, Modelo conceptual
Anti patrones SQL, Modelo conceptual
 
Tableros de control o Dashboard
Tableros de control o DashboardTableros de control o Dashboard
Tableros de control o Dashboard
 
Visualizacion de datos
Visualizacion de datosVisualizacion de datos
Visualizacion de datos
 
Calidad de datos
Calidad de datosCalidad de datos
Calidad de datos
 
De los datos a la información
De los datos a la informaciónDe los datos a la información
De los datos a la información
 
Datos semiestructurados Xml
Datos semiestructurados XmlDatos semiestructurados Xml
Datos semiestructurados Xml
 
Sql DML Lenguaje de manipulación de datos
Sql DML Lenguaje de manipulación de datos Sql DML Lenguaje de manipulación de datos
Sql DML Lenguaje de manipulación de datos
 
Bases de datos temporales
Bases de datos temporalesBases de datos temporales
Bases de datos temporales
 
Transformar modelo entidad relacion a modelo logico
Transformar modelo entidad relacion a modelo logicoTransformar modelo entidad relacion a modelo logico
Transformar modelo entidad relacion a modelo logico
 
índices en bases de datos
índices en bases de datosíndices en bases de datos
índices en bases de datos
 
Sql DDL Lenguaje de definición de datos
Sql DDL Lenguaje de definición de datosSql DDL Lenguaje de definición de datos
Sql DDL Lenguaje de definición de datos
 
Seguridad en bases de datos
Seguridad en bases de datosSeguridad en bases de datos
Seguridad en bases de datos
 
Digramas de venn aplicado en las bases datos
Digramas de venn aplicado en las bases datosDigramas de venn aplicado en las bases datos
Digramas de venn aplicado en las bases datos
 
Bases de datos avanzado NOSQL
Bases de datos avanzado NOSQLBases de datos avanzado NOSQL
Bases de datos avanzado NOSQL
 
Disco duro bases datos
Disco duro bases datosDisco duro bases datos
Disco duro bases datos
 
Fuga de información
Fuga de informaciónFuga de información
Fuga de información
 
Patrones de arquitectura Software(Capa de Datos)
Patrones de arquitectura Software(Capa de Datos)Patrones de arquitectura Software(Capa de Datos)
Patrones de arquitectura Software(Capa de Datos)
 
SQL avanzado
SQL avanzadoSQL avanzado
SQL avanzado
 
Sql dinamico14042011
Sql dinamico14042011Sql dinamico14042011
Sql dinamico14042011
 

Último

Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arteRaquel Martín Contreras
 
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...JAVIER SOLIS NOYOLA
 
Manual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfManual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfMaryRotonda1
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMarjorie Burga
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxAna Fernandez
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Carlos Muñoz
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.José Luis Palma
 
GLOSAS Y PALABRAS ACTO 2 DE ABRIL 2024.docx
GLOSAS  Y PALABRAS ACTO 2 DE ABRIL 2024.docxGLOSAS  Y PALABRAS ACTO 2 DE ABRIL 2024.docx
GLOSAS Y PALABRAS ACTO 2 DE ABRIL 2024.docxAleParedes11
 
Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadAlejandrino Halire Ccahuana
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIACarlos Campaña Montenegro
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
6° SEM30 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
6° SEM30 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx6° SEM30 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
6° SEM30 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docxCeciliaGuerreroGonza1
 
30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdfgimenanahuel
 
programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo  para eventoprograma dia de las madres 10 de mayo  para evento
programa dia de las madres 10 de mayo para eventoDiegoMtsS
 
codigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinacodigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinavergarakarina022
 
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxLINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxdanalikcruz2000
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFAROJosé Luis Palma
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxjosetrinidadchavez
 

Último (20)

Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arte
 
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
 
Manual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfManual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdf
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grande
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docx
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.
 
GLOSAS Y PALABRAS ACTO 2 DE ABRIL 2024.docx
GLOSAS  Y PALABRAS ACTO 2 DE ABRIL 2024.docxGLOSAS  Y PALABRAS ACTO 2 DE ABRIL 2024.docx
GLOSAS Y PALABRAS ACTO 2 DE ABRIL 2024.docx
 
Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdad
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
 
6° SEM30 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
6° SEM30 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx6° SEM30 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
6° SEM30 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
 
Unidad 4 | Teorías de las Comunicación | MCDI
Unidad 4 | Teorías de las Comunicación | MCDIUnidad 4 | Teorías de las Comunicación | MCDI
Unidad 4 | Teorías de las Comunicación | MCDI
 
30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf
 
Power Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptxPower Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptx
 
programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo  para eventoprograma dia de las madres 10 de mayo  para evento
programa dia de las madres 10 de mayo para evento
 
codigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinacodigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karina
 
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxLINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
 

Organización de datos en disco

  • 1. Notas 03: Organización del disco José Andrés Cuartas Muñoz JOSÉ CUARTAS BASES DE DATOS 1
  • 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
  • 31. Encriptación de registros Nuevo registro E(r) r Procesador dbms confiable E(r1) E(r2) E(r3) E(r4) ... JOSÉ CUARTAS BASES DE DATOS 31
  • 32. Encriptación de registros Busqueda F(r)=x Procesador ?? dbms confiable E(r1) E(r2) E(r3) E(r4) ... JOSÉ CUARTAS BASES DE DATOS 32
  • 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
  • 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. 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
  • 66. Espacio libre JOSÉ CUARTAS BASES DE DATOS 66
  • 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
  • 78. Siguiente Como encontrar un registro rapidamente, dada una clave JOSÉ CUARTAS BASES DE DATOS 78