FILES DE ALTO NIVEL PARA DBMS1

Anuncio
ORGANIZACION DE
FILES DE
ALTO
NIVEL
PARA
DBMS
1. Instruccion Read : Los Metodos Basicos del S.O. de Acceso, Automaticamente Localizan y
Transfieren el Registro deseado al Area de. Datos del Programa. Se limitan solo a
Recuperaciones Via Clave Primaria (no usada con frecuencia en una Base de Datos ).
2. Tipos de
Los mas comúnmente usados para recuperar información son:
Busquedas
1. Recuperacion Basada en Clave Primaria : Recupera un Record basándose en el Valor
de la Clave Primaria.
Ej.:
Display Name, Class Where S-ID =150
2. Recuperacion Basada en Clave Secundaria : Recupera un Record basandose en el
valor de un Campo designado como Secundario ( puede ser cualquier Campo). Se pueden
Localizar Varios Records como resultado de una recuperacion en una clave secundaria.
Ejemplo:
Display Name, Where AGE = 20.
3. Recuperacion Basada en Claves Multiples : Especifica en la Búsqueda mas de Una
Clave en la Condicion de Consulta;
Ejemplo:
Display Name, Where Class =541 and AGE = 20.
. Son las Mas Comunes en las Recuperaciones en Bases de Datos, no se restringen a un solo
valor, pero en Lenguajes de Alto Nivel Requieren un Gran -Esfuerzo de Programacion.
. Las Organizaciones Anteriores ( Secuencial , Directa , etc. ) no son Adecuadas Para
Recuperaciones Sobre la Clave Secundaria.
.Una Organizacion de Alto Nivel ( usada por los DBMS ) se llaman a veces "Organizacion de
Archivos Secundarias", ya que esta Construida sobre sus propios Metodos de Acceso para
consultas de claves multiples y tambien pueden usar todos Metodos Basicos de Acceso del S.O.
B.
ESTRUCTURAS DE ALTO NIVEL USADAS EN DBMS
l. Organizacion Inversa de archivos
2. Organizacion Multilista de archivos
3. Organizacion Multianillo de archivos.
C.
ORGANIZACION INVERSA DE ARCHIVOS
. En un File Inverso se crea un Indice para un File Directo o Secuencial Indexado
basado en los valores de los campos Clave-Secundaria.
.Todo Indice contiene un Valor Clave-Secundaria y Señaladores hacia Las
Direcciones de los Records que contienen el Valor de la Clave Secundaria,
asociandose este Valor con la Direccion del record y Puede estar Asociado con mas
de una Direccion de Registro.
. Un File Inverso se puede Indexar en uno o mas Campos Clave Secundaria, se crea
un Indice para cada Clave Secundaria Declarada.
1. Tipos de Indices:
- El Campo Clave Secundaria sobre el cual se crea un Indice se llama, "Clave
Inversa o Clave Indexada". Se dice que el Campo es Inverso para la Recuperacion
por Clave Inversa.
- Cada Entrada del Indice Clave Consiste en un Valor de Clave Secundaria y un
conjunto de Señaladores a los Records de Datos. Un Señalador puede contener una
Direccion Relativa, una Direccion Fisica o una Clave Principal de los Records Objeto.
- Dirección Relativa: Cuando el campo señalador en el indice valor clave contiene
…Direcciones Relativas. Ej. Entrada 1 del indice indica que los records 1,4,5
contienen el valor 541 en el campo CLASS
- Un Señalador Simbolico es un Identificador de Registro, pero no una Direccion de
Registro. Si se escoje como identificador de registro , la primera entrada del indice en
el indice valor clave contendria: 541  150, 164, 172(valores de claves prim. De los
records 1,4,5) los cuales a s u vez se traducen a su direccion de registro via
distribución o busqueda de indices (hashing).
- Un Valor de Clave Primaria puede usarse como Señalador Simbolico al Identificar de
forma unica a un Record del File.
- Direcciones Fisicas: Se usan dentro del Campo Señalador para Accesar Directamente
Records sin tener que traducir la Direccion . La Desventaja de las Direcciones Reales es
que los Valores del Señalador Depende del Dispositivo  Recrear Indices si la Data
Migra de Un Disco a Otro.
En el Indice Nombre-Clave existe la entrada Nombre clave –Inversa y un señalador a la
primera entrada del indice Valor –Clave
Ejems: listar nombres de estudiantes de 21 años;
- Los Distintos Indices en una Organizacion Inversa Juntos Forman un Directorio.
- Indice Denso : Cuando este Incluye
cada Valor Clave Posible en un Conjunto
Indexado. ( Cuando todos los Valores de las Claves Inversas estan incluidas en el Indice ).
Se dice que una Clave Inversa esta Parcialmente Indexada si solo algunos de sus
Valores Clave estan Incluidos en el Indice Valor - Clave, los Valores Clave que estan
Indexados son aquellos Usados en las Condiciones de Busqueda. Un Indice
Parcialmente Indexado se llama "Indice Disperso".
`
Para un indice con gran cantidad de elementos Busqueda Secuencial sobre el Indice
no es muy Eficiente El Indice se Organiza como Estructura de Varios Niveles..
Grado de Inversion : Se refiere al Nivel de Totalidad de Inversion expresada por el
Numero de Campos y lo Extenso de los Valores de los Campos Invertidos Inversion
de 0%  No se Invirtio Ningun Campo Clave en un Registro .
VSAM de IBM y AAM de SIEMMENS crean Indices Inversos Automaticamente si se
Declaran Claves Secundarias sobre las Organizaciones Secuencial Indexada y Directa.
- Manejo de Indices : Al Insertar, Borrar o Actualizar Records, las Entradas
Afectadas de un Indice deben Modificarse por el Sistema, tal que el Indice
Proporcione las Trayectorias de Datos Correctos.
1) Inserción
Si se va a agregar al archivo el registro que contiene 191 542 DAVID 30 de la figura, en la dirección relativa 8, se
debe modificar el índice valor-clave para incorporar los valores insertados en los dos campos clave inversa, AGE
y CLASS.
Los dos valores de clave inversa del registro nuevo son 30 para AGE y 542 para CLASS. Ya existe la entrada
CLASS 542, así que la dirección del registro nuevo, 8, debe incluirse en el campo señalador correspondiente. Sin
embargo, AGE 30 debe insertarse como una nueva entrada en el índice. Después de la adición, las entradas
afectadas en el índice contendrán:
Señalador de registro Señalador de registro
Valor clave secundaria _______(antes)_______
♦
•
542
2, ó, 7
30
ninguno
(después)_____
2, ó, 7, 8
8
2) Eliminación
Si se va a eliminar un registro de un archivo, cada señalador dirigido a este registro se debe borrar. Supóngase que el registro
152 542 CAROL 20, con dirección relativa 2 se debe eliminar. Las entradas afectadas del índice serán:
Señalador de registro
Señalador de registro
._______(antes)_______
542
2, 6,7
•
•
20
1, 2, 5, 6
Valor clave secundaría
______(después)_____
6,7
•
1, 5, 6
La dirección relativa del registro eliminado, se ha quitado de las entradas antes indexadas.
Un registro eliminado se marca como tal, pero no se le remueve físicamente del archivo de datos. Sin embargo, las entradas
afectadas en el índice también se deben actualizar porque algunas consultas se responden solamente barriendo el directorio.
Por ejemplo, la siguiente petición puede responderse analizando las entradas del índice en la figura 3.5 sin necesidad de
accesar al archivo.
Contar el número de estudiantes donde CLASS = 541 y AGE = 20.
Las entradas importantes de índice son:
541
20
1,4,5
1,2,5,6
Por las entradas del índice, es evidente que sólo los registros 1 y 5 cumplen las condiciones de búsqueda. Por lo tanto, la
respuesta a la búsqueda es 2 y eso se descubre sólo a partir de los índices.
3) Actualizaciones
Supóngase que "Vera" va a transferirse de la Clase CLASS 541 a la 542. El registro correspondiente en la dirección relativa
1 del archivo, se cambia como sigue:
Antes:
Después:
150
150
541
542
Vera
Vera
20
20
Las entradas de índice afectadas en el índice valor clave son CLASS 541 y 542:
Valores clave Señalador (antes)
Señalador (después)
541 ._
1, 4, 5
4, 5
5422, ó, 7
1, 2, 6, 7
No es necesario cambiar ninguna de las entradas en el índice nombre clave.
Estableciendo un Indice
Una de las complicaciones en la implantación y
mantenimiento de un índice inverso es que las entradas del
índice son de longitud variable.
Por ejemplo, algunas de las entradas pueden contener un
solo señalador, en tanto que otras pueden tener gran
cantidad de ellos.
Si se crea un archivo índice que contenga sólo registros de
longitud fija, el tamaño del registro debe ser lo suficientemente grande como para que quepa el máximo número
de señaladores en una entrada de índice.
Consecuentemente, se desperdiciará mucho espacio de
almacenamiento en aquellas entradas que contienen sólo
un número pequeño de señaladores.
Más aún, las inserciones de nuevos registros pueden
requerir la inserción de nuevos señaladores en algunos
campos.
Es difícil predecir el número máximo de señaladores que se
necesitarán en el campo señalador.
Ademas, muchos compiladores pueden manejar sólo
registros de longitud fija en archivos secuenciales
índexados o en archivos dirigidos.
En este caso, el índice inverso debe implementarse como
registros de longitud fija. Como en otras decisiones de
implementación, deben hacerse concesiones entre
flexibilidad y espacio desperdiciado.
Considérese el ejemplo de la figura. Para convertir el
archivo índice en registros de longitud fija, se asignan tres
espacios de señalador para cada registro de índice y una
bandera para indicar si es que vienen más señaladores en
el siguiente registro índice.
Como lo muestra la figura siguiente, la entrada clave AGE
20 se ha separado en dos registros. La bandera en el
primer registro índice para AGE 20 contiene Y, indicando
que siguen más señaladores.
La bandera del siguiente registro contiene N que denota el
final de señaladores para esa entrada.
Para la creación de una organización inversa de archivos se
requiere de los siguientes requisitos principales:
i)
ii)
Espacio de almacenamiento extra para índices
Mantenimiento de los índices cuando se efectúen las
operaciones de inserción, borrado o actualización en
el archivo.
Un archivo índice por sí solo puede ser tan grande como
uno de datos sí involucra un alto grado de inversión.
Por tanto, no deben crearse índices para campos de datos
que tengan posibilidad de uso en condiciones de búsqueda.
Muchos DBMS permiten al usuario escoger campos clavesecundaria para la inversión.
La elección de campos por invertir depende de su posible
uso en alguna condición de búsqueda.
Tabla :Indice valor clave con registros de longitud fija
Valores clave
secundaria
541
542
543
20
20
21
25
Señalador 1 Señalador 2
1
4
2
6
3
1
2
6
3
7
4
-
Señalador 3
5
7
5
-
i
Bandera
N
N
N
Y
N
N
N
ÍNDICE PARA UN ARCHIVO INVERTIDO IMPLANTADO CON REGISTROS DE
LONGITUD FIJA.
(El campo FLAG se usa para indicar si existen más señaladores asociados con el mismo
valor clave secundaria contenidos en el siguiente registro indexado .)
541
542
543
541
541
542
642
VERA
CAROL
FRED
GREG
JOHN
ANN
PAUL
20
20
21
25
20
20
21
EJEMPLO DE CONSULTA SOBRE CLAVES MÚLTIPLES,
Sólo se accesan las entradas que satisfacen ambas condiciones (esto es, AGE 21
CLASS 542).
Si el campo no es inverso pero se usa para búsqueda, eí DBMS
buscará secuencíalmente el archivo hasta encontrar el registro
deseado.
Por lo tanto, antes de invertir un campo, debe compararse la
eficiencia en el acceso con el costo extra de crear y mantener íos
índices.
Consultas sobre claves múltiples en un archivo inverso
Una vez creados los índices inversos en un archivo de datos, se
pueden efectuar consultas sobre claves múltiples vía sus valores de
clave inversa.
Supóngase que se va a efectuar la siguiente búsqueda:
Display NAME where CLASS = 542 and AGE = 21.
Se buscan las entradas de índice para AGE 21 y CLASS 542 para
encontrar direcciones de registros que satisfagan ambas
condiciones. Se efectúa una operación AND en las dos condiciones
de la manera siguiente:
Campo
AGE 21:
CLASS 542:
AGE AND CLASS
Direcciones
3,7
2,6,7
7
El único registro que satisface ambas condiciones está en la
dirección relativa siete.
Esta dirección se usa entonces para accesar aí registro objeto. Así,
como respuesta a la búsqueda sólo se accesa un registro.
En consultas sobre claves múltiples, distintas condiciones son
conjuntadas mediante el uso de operadores relaciónales.
Si las condiciones de búsqueda se unen con OR en lugar de AND,
el resultado final será la unión de todos los registros que satisfagan
una o ambas condiciones.
Por ejemplo, la siguiente búsqueda se contesta por medio de la
unión de los señaladores con las entradas CLASS 542 y AGE 21:
542 or AGE = 21.
Display ÑAME where
Campo
AGE 21:
CLASS 542:
AGE OR CLASS
CLASS - 542
Direcciones
3,7
2,6,7
2,3,6,7
Cuatro registros cumplen con la condición de búsqueda y la
respuesta es Carol, Fred, Ann y Paul.
Descargar