Professional Documents
Culture Documents
y mtodos de acceso
Objetivos
Conocer diferentes tcnicas para colocar los
registros de un fichero en el disco
Entender la teora y aplicacin de las tcnicas de
dispersin (hashing) interna y externa
Conocer cmo usar dispersin para facilitar la
expansin dinmica de ficheros
Comprender la teora y aplicacin de los ndices
primarios, secundarios y de agrupamiento
Distinguir entre ndices densos y no densos
Identificar y comprender las ventajas e
inconvenientes de cada tcnica de organizacin de
ficheros
1
Estructuras de almacenamiento
y mtodos de acceso
Contenidos
1. Conceptos generales de organizacin de ficheros
2. Organizacin primaria
1.
2.
3.
4.
5.
Ficheros no ordenados
Ficheros ordenados
Ficheros mixtos
Ficheros dispersos
rboles B y otras estructuras de datos
3. Organizacin secundaria
1. ndices ordenados de un solo nivel
2. ndices de mltiples niveles
Localizarla en disco
Copiarla a la memoria principal
Procesarla
Reescribirla en disco (si se modific)
3
NOMBRE
:
:
:
:
:
:
NSS
SALARIO
CDIGO_ PUESTO
DEPARTAMENTO
FECHA_ CONTRATO
end;
4
Tiempo(localizacin&transferencia)
>Tiempo(procesamiento CPU)
Bsqueda
+ Retardo Rotacional
+ Transferencia
Cuello de botella
La solucin...
estructurar los ficheros para minimizar el n de
transferencias de bloques necesarias para
localizar y transferir datos del disco a memoria principal
6
Fichero mixto
Contiene registros de diferente tipo
Aumenta la eficiencia de operaciones de reunin
Fichero mixto
7
(y 2)
r / fbl bloques
Puede utilizarse organizacin extendida o no extendida:
Organizacin extendida si el tamao medio de los registros es
grande, pues se reduce el espacio desperdiciado por bloque
10
Operaciones de actualizacin
Insertar, eliminar o modificar registros
Registro Actual:
El localizado ms recientemente en el bfer (memoria
intermedia)
11
Mtodo de acceso:
Conjunto de programas que permite realizar operaciones
sobre los datos de un fichero
Proporciona acceso a los datos; hace uso de las estructuras
de acceso (si existen)
Organizacin primaria
Fichero no ordenado (montculo o montn)
Registros almacenados al final del fichero, en orden
de insercin
Insercin muy eficiente
Bsqueda lineal
Eliminacin fsica o por marca
Reorganizacin para recuperar espacio desocupado
O aprovechar huecos para nuevos registros
Modificacin de un registro
Si longitud variable, puede provocar eliminacin + insercin
Organizacin primaria
Fichero ordenado (secuencial)
Registros almacenados de forma ordenada segn
valores de cierto campo
campo de ordenacin
Si el campo es clave, se le llama clave de ordenacin
Organizacin primaria
Fichero ordenado (2)
Insercin
supone encontrar posicin correcta para el registro y
abrirle espacio mediante desplazamiento de registros
(costoso!)
Modificacin
Si la condicin de bsqueda se basa en el campo de
ordenacin, usar bsqueda binaria. Si no, bsqueda lineal
Si el campo modificado es el de ordenacin, el nuevo valor
puede provocar su cambio de ubicacin: eliminacin +
insercin
17
Organizacin primaria
Fichero ordenado (y 3)
Fichero secuencial encadenado
Registros ordenados de forma lgica (no fsica)
Uso de punteros
Mayor flexibilidad
Estructuras de datos para implementar este tipo de
ficheros
Listas lineales
Listas mltiples
Anillos o listas circulares
rboles binarios de bsqueda
18
Organizacin primaria
Fichero Mixto
Almacena registros de diferente tipo
Los registros provienen de distintas tablas ...
Estn relacionadas mediante una o varias columnas
Clave externa y clave candidata
En el fichero...
Los registros relacionados estn fsicamente adyacentes
clave del fichero mixto: campos comunes de los registros
Organizacin
primaria
Ejemplo de
uso de
un
fichero
mixto
vs.
dos
ficheros
individuale
s
(DEPTNO)
20
Organizacin primaria
Fichero de direccionamiento calculado
(Hashing)
Permite acceso rpido a registros segn una
condicin de bsqueda de igualdad sobre un solo
campo
Campo de dispersin (columna de dispersin)
Si es clave del fichero, se llama clave de dispersin
Funcin de dispersin h
Se aplica al valor k del campo de dispersin de un registro
(fila)
Y produce la direccin del bloque de disco en el que est el
registro
La localizacin del registro dentro del bloque se hace en el
bfer
21
Organizacin primaria
Fichero de direccionamiento calculado
(2)
Ejemplos de funciones h
Mdulo:
h(k) = k mod M
Plegado:
Si k=k1k2k3k4, h(k)=k1k2k3k4 , { + , xor }
Truncamiento: h(k) = k1k3
22
Organizacin primaria
Fichero de direccionamiento calculado
(3)
Dispersin Interna
Espacio de direcciones destino
Conjunto de M registros
Un array de M posiciones en memoria principal
Funcin de dispersin h
Traduce el valor del campo de dispersin en un entero [0,
M-1]
Colisin
Al aplicar h a un registro que se desea insertar en el fichero,
se obtiene una direccin ocupada
El nuevo registro es un sinnimo
23
Organizacin primaria
Fichero de direccionamiento calculado
(4)
Dispersin Interna
Tcnicas de resolucin de colisiones
Direccionamiento abierto
Bsqueda secuencial de una posicin vaca
Encadenamiento
Uso de listas de sinnimos en un rea de desbordamiento
Dispersin mltiple
Aplicacin de una segunda funcin h
Si se produce colisin, se aplica direccionamiento abierto
Organizacin primaria
Fichero de direccionamiento calculado
(5)
Dispersin Externa
Espacio de direcciones destino
Conjunto de cubetas
Cubeta=grupo de registros del fichero (1 o ms bloques
contiguos)
Funcin de dispersin h
Traduce el valor del campo de dispersin en un nmero de
cubeta
El descriptor de fichero contiene, para cada cubeta, la
correspondencia nmero de cubeta direccin en disco
25
Organizacin primaria
Fichero de direccionamiento calculado
(6)
Dispersin Externa
Bsqueda o Localizacin
Acceso directo si condicin de bsqueda basada en campo de
dispersin el ms rpido: 1 acceso a bloque
Si no, bsqueda lineal
Lectura ordenada
Costosa: h no suele mantener registros ordenados
Eliminacin
Sacarlo de la cubeta y ocupar espacio con un sinnimo
O sacarlo de la lista de desbordamiento (si estaba ah)
Modificacin
Si la condicin de bsqueda se basa en el campo de dispersin,
usar h para localizar registro. Si no, bsqueda lineal
Si el campo modificado es el de dispersin, el nuevo valor
puede provocar su cambio de cubeta: eliminacin + insercin
26
Organizacin primaria
Fichero de direccionamiento calculado
(7)
Dispersin Externa
Asigna al fichero una cantidad de espacio fija
M cubetas
Cada cubeta con capacidad para m registros
Espacio disponible = m*M registros
Nmero real de registros r
Si r
Organizacin primaria
Fichero de direccionamiento calculado
(8)
Dispersin Dinmica
Representacin del resultado de la funcin de
dispersin h como una cadena de bits
Valor de direccionamiento calculado del registro
Organizacin primaria
Fichero de direccionamiento calculado
(9)
En el directorio...
Varias posiciones pueden contener la misma direccin de
cubeta
La profundidad local d de cada cubeta indica el n de bits
considerados: determina su contenido
29
Organizacin primaria
Fichero de direccionamiento calculado
(10)
30
Organizacin primaria
Fichero de direccionamiento calculado
(y 11)
Inconveniente (leve!)
Necesarios 2 accesos a bloque para localizar un registro
31
Organizacin secundaria:
Ficheros de ndices
Un ndice es una estructura de acceso adicional
Almacenado en disco
Utilizado junto con el fichero de datos (fichero principal)
Fichero principal estructurado segn una organizacin
primaria
Organizacin secundaria
ndices ordenados de un nivel
El fichero de ndice contiene un conjunto de entradas
Cada entrada incluye dos campos, para almacenar...
Un valor de los almacenados en el campo de indexacin
Un puntero al registro que contiene dicho valor
o al bloque que lo contiene
Organizacin secundaria
ndice primario
Sobre ficheros con registros ordenados segn los
valores de un campo clave
El campo de indexacin es dicha clave de ordenamiento
El ndice es un fichero ordenado con...
Una entrada por cada bloque de fichero principal (ndice no
denso)
Bloques de ndice
Organizacin secundaria
ndice de agrupamiento
Sobre ficheros con registros ordenados segn los
valores de un campo no clave
El campo de indexacin es dicho campo de
agrupamiento
El ndice es un fichero ordenado con...
Una entrada por cada valor distinto del campo de
agrupamiento
del fichero principal (ndice no denso)
Cada entrada tiene longitud fija y 2 campos:
Valor distinto del campo de indexacin (= de
agrupamiento)
Puntero al primer bloque en que aparece dicho valor
35
Organizacin secundaria
ndice secundario sobre campo clave
Sobre un campo que es clave del fichero principal, y
que
no marca la ordenacin de los registros de datos
El campo de indexacin es dicho campo: clave secundaria
El ndice es un fichero ordenado con...
Una entrada por cada registro del fichero principal (ndice
denso)
36
Organizacin secundaria
ndice secundario sobre campo no clave
Sobre un campo que no es clave del fichero principal,
y que
no marca la ordenacin de los registros de datos
El campo de indexacin es dicho campo
Opciones
para
crear
el ndice,
fichero
ordenado
Una entrada
por cada
registro
del fichero
principal
(ndice
con...
denso)
entradas de longitud fija y 2 campos: valor y puntero a
registro
Una
valores
entradarepetidos
por valor distinto
del
de indexacin (no
del campo
decampo
indexacin
denso)
37
Organizacin secundaria
ndice de mltiples niveles
Se construye partiendo del ndice sobre el fichero principal de
datos en disco (ndice de nivel base), mediante
creacin sucesiva de ndices primarios sobre
ndices
El ndice de nivel base puede ser de cualquier tipo, si
ste...
tiene entradas de longitud fija y
almacena valores distintos del campo de indexacin
38
Organizacin secundaria
Tipos de ficheros en funcin de su
indexacin
Fichero totalmente invertido
Tiene un ndice secundario sobre cada uno de sus campos
Los registros nuevos se insertan al final del fichero (no
ordenado!)
40
41
ndices
ndices
ndices
ndices
bitmap
particionados
basados en funciones
de dominio
(2)
ndice Secundario
Basado en una columna con valores no nicos
(3)
ndice compuesto
CREATE INDEX Indice_Nombres_Director
ON Director ( apellido1 ASC, apellido2 ASC, nombre DESC ) ;
El ndice incrementa la velocidad de las consultas que acceden
por...
apellido1
apellido1 y apellido2
apellido1 y apellido2 y nombre
Pero el SGBD no usar el ndice para consultas que acceden por...
apellido2
nombre
apellido2 y nombre
44
(4)
(y 5)
integridad correspondiente
46
Sobre
47
48
Ventajas
Acelera la ejecucin de las reuniones entre las tablas
registros relacionados estn en el mismo bloque menos accesos a
bloque
53
>
58
Ejercicio
59
60
Estructuras lgicas de
almacenamiento
Segmento
Segmento
Segmento
Segmento
datos
de ndices
de rollback
temporal
61
62
63
Tablas y extensiones
CREATE TABLE Alumnos () TABLESPACE TS_DATOS
PCTFREE 20 PCTUSED 40
STORAGE (INITIAL 20K NEXT 30K MINEXTENTS 1
MAXEXTENTS 10 PCTINCREASE 0);
64
Clusters
CREATE CLUSTER CL_1(clave number(4)) SIZE 512
TABLESPACE TS_DATOS PCTFREE 20 STORAGE(..);
CREATE TABLE Alumno (.) CLUSTER CL1_(a1);
65
Clusters
CREATE CLUSTER Emp_Dept (departamento CHAR(4)) SIZE 512;
CREATE TABLE Departamento {
codigo CHAR (4) PRIMARY KEY,
) CLUSTER Emp_Dept(codigo);
CREATE TABLE EmpleadoFijo {
nss CHAR(12) PRIMARY KEY,
.
dpto CHAR (4) NOT NULL REFERENCES Departamento(codigo)
) CLUSTER Emp_Dept(dpto);
CREATE INDEX
66
Dispersin
CREATE CLUSTER Direcciones (codpostal
NUMBER(5))
SIZE 2k
HASH IS MOD(codpostal, 101)
HASHKEYS 1000;
67