archivos-multillave

Anuncio
INTRODUCCION
En el presente trabajo se habla de una forma de
organización de archivos llamada Multillave la cual consta
de un llave primaria y uno o más llaves secundarias. Este
tipo de organización es utilizada en grandes sistemas de
base de datos. Su capacidad de manejo para acceso de
datos a través de múltiples trayectorias la hace la forma
de organización más importante para los sistemas que hoy
en día se utilizan en grandes empresas. Las formas de
organización antes mencionadas se utilizan para diferentes
aplicaciones en distintos ámbitos mientras que la multillave
podría sustituir a cualquiera de las anteriores y ser útil en
cualquier situación que se presente.
ORGANIZACIÓN DE ARCHIVOS MULTILLAVE
La organización de un archivo define la forma en la que
los registros se disponen sobre el soporte al
almacenamiento, o también se define la organización como
la forma en que se estructuran los datos en un archivo.
En este tipo de archivo se permite el acceso directo
por más de una llave y también la representación de
conjuntos. Añadir una llave secundaria a un archivo de
registros homogéneos aumenta los procesos de
mantenimiento del archivo y complica la estructura de
datos, pero se obtienen ventajas muy importantes para el
procesamiento de datos.
Un enfoque para poder manejar diferentes tipos de
accesos a una colección de registros es tener un solo
archivo de datos con múltiples trayectorias de acceso.
Ahora, se tendrá una sola copia del registro de datos por
actualizar, y el problema de sincronización de
actualizaciones causado por la duplicación de registros,
desaparecerá. A este enfoque se le llama organización de
archivos multillave.
El concepto de acceso por multillave es generalmente
implantado mediante la construcción de multiíndices que
proporcionan diferentes trayectorias de acceso a los
registros. También pueden ser múltiples listas ligadas a
través de los registros.
El método más adecuado para instrumentar un archivo
multillave depende del uso real de los datos y de los tipos
de manejo de archivos multillave disponibles.
En este tipo de organización se utilizan varias llaves
de las cuales se distinguen dos por ser las más
importantes: la llave primaria y la llave secundaria. Si un
campo de llave se usa para determinar la estructura de
almacenamiento de los datos del archivo, éste es llamado
llave primaria (o principal) del archivo la cual es única para
ese registro, todas las demás llaves de acceso son llamadas
llaves secundarias, nos dan otra trayectoria para llegar a
los datos del registro. Muchos sistemas de información
interactiva requieren del manejo de archivos multillave. Por
ejemplo en un sistema bancario, en el cual hay varios tipos
de usuarios, todos tienen la necesidad de accesar a los
mismos datos por eso se necesitan varias llaves para cada
uno de los casos.
Existen varias técnicas que son utilizadas para
implantar estos archivos.
La mayoría de estos métodos están basados en la
construcción de índices para proporcionar acceso directo
mediante el valor de las llaves.
Se distinguen dos métodos para proporcionar trayectorias
de acceso adicional hacia los archivos de registros de
datos:
a).- Archivo invertido.
b).- Archivo Multilista
Archivo Invertido
Un método fundamental para proporcionar el
encadenamiento entre un índice y los registros del archivo
es llamado inversión. Un índice de inversión de llaves
contiene todo los valores que la llave tiene presente en los
registros del archivo. Cada uno de los valores de la llave en
el índice de inversión apunta a todos los registros que
tienen el valor correspondiente. El archivo de datos se dice
que ésta invertido sobre esa llave.
Un archivo invertido es una tabla similar al índice de
un libro, su estructura básica es la siguiente:
1.Los
registros
apuntadores(direcciones).
originales
sin
contener
2.- El índice o directorio que contiene ciertos valores de
los campos, seguidos de una lista de apuntadores a los
registros caracterizados por esos valores de campos.
El concepto de inversión se refiere a llevar un campo
hacia el archivo índice. Una de las grandes ventajas de las
organizaciones invertidas sobre otras organizaciones es su
capacidad para satisfacer varios tipos de consulta, que
involucran a los valores de los campos invertidos, sin tener
que recopilar los propios registros del archivo.
Un archivo completamente invertido tiene un índice de
inversión para cada campo de datos. Si un archivo no está
completamente invertido, pero tiene al menos un índice de
inversión, se dice que es un archivo parcialmente invertido.
La inversión como enfoque para proporcionar acceso
multillave ha sido utilizado como una base para las
estructuras físicas de bases de datos
en sistemas
comerciales disponibles para la administración de bases de
datos(sistemas como el DB2 de IBM y Oracle, sistema
2000 de Intel, etc.).
Ventajas del Archivo Invertido
 Procesamiento directo de conjuntos
 Se pueden agregar o borrar llaves secundarias de
manera dinámica
 Las llaves únicas son fáciles de procesar
Desventajas del Archivo Invertido
 Usa una estructura más compleja que las listas
encadenadas
 Dificultad para mantener registros índice de longitud
variable
 Puede ser muy lento
Archivo Multilista
Otro enfoque básico para suministrar la conexión
entre un índice y el archivo de registros de datos, se llama
organización multilista. Este enfoque ha sido la base para
estructuras físicas en muchos sistemas de administración
de base de datos jerárquicos y de redes disponibles
comercialmente.
Igual que un archivo invertido, un archivo multilista
mantiene un índice para cada llave secundaria. Existe una
entrada en el índice de llave secundaria para cada valor
que, la llave secundaria, tiene en este momento en ele
archivo de datos.
La organización multilista difiere de la de inversión en que,
mientras que la entrada en el índice de inversión para un
valor de llave tiene un apuntador a cada registro de datos
con ese valor de llave, la entrada en el índice de multilista
para un valor de llave tiene sólo un apuntador al primer
registro de datos con ese valor de llave. Este registro de
datos contiene un apuntador al siguiente registro de datos
con ese valor de llave, y así sucesivamente. Luego hay una
lista ligada de registros de datos para cada valor de la llave
secundaria.
Los encadenamientos en multilistas normalmente son
bidireccionales y ocasionalmente son circulares, para
mejorar la eficiencia de actualización. Una característica
del enfoque multilista es que las entradas del índice pueden
ser de longitud fija. Cada valor está asociado con un solo
apuntador.
Ventajas del Archivo Multilista
 Puede ser muy eficiente
 Búsqueda en listas puede ser reducida
 Flexible
Desventajas del Archivo Multilista
 Estructura compleja
 Programación más extensa
¿Con acceso de una llave?
Organización
Multillave
¿ Con acceso secuencial
únicamente?
Organización
Secuencial
¿ Con acceso directo
únicamente?
Organización
Relativa o Directa
Organización
Secuencial Indexada
Pseudocódigo de programa
program arbolbin;
uses fdelay, crt;
type
ptr = ^nodo;
nodo = record
numero : integer;
nombre : string[10];
race : integer;
ida, der: ptr
end;
var
num, opcion: integer;
alumno: ptr; ith: file of nodo;
resp, desea: char;
nom: string[10]; carre: integer;
procedure insertar (var p: ptr; x: integer; name:string; prof: integer);
begin
if p = nil then
begin
new (p);
p^.numero:= x;
p^.nombre:= name;
p^.race:= prof;
p^.ida:=nil;
p^.der:=nil;
seek(ith, p^.numero);
write(ith, p^);
seek(ith, p^.race);
write(ith, p^);
end
else
if x < p^.numero then
insertar (p^.ida, x,name,prof)
else
insertar (p^.der, x,name,prof);
end;
procedure pornum (p : Ptr);
begin
if P <> nil then
begin
pornum (P^.Ida);
writeln(P^.numero,'..');
pornum (p^.der);
end
end;
procedure porcar (p : Ptr);
begin
if P <> nil then
begin
porcar (P^.ida);
writeln(P^.race,'..');
porcar (p^.der);
end
end;
begin
clrscr;
assign(ith, 'delith.dat');
reset(ith);
new(alumno);
alumno:=nil;
repeat
clrscr;
gotoxy(25,9); writeln('ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»');
gotoxy(25,10);writeln('º 1.-INSERCION
º ');
gotoxy(25,11);writeln('º 2.-INDICES
º ');
gotoxy(25,13);writeln('ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹ ');
gotoxy(25,14);writeln('º 3.-SALIR
º ');
gotoxy(25,15);writeln('ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ ');
gotoxy(25,17);writeln('OPCION:');gotoxy(33,17);readln(resp);
if resp = '1' then
begin
repeat
clrscr;
writeln('Cual es su numero de control?');
readln(num);
writeln('Cual es su nombre?');
readln(nom);
writeln('En que carrera esta?');
readln(carre);
insertar (alumno, num, nom, carre);
writeln('¨Quieres insertar otro registro?');
readln(desea);
until desea = 'n';
end;
if resp = '2' then
begin
clrscr;
writeln('***1.-por numero***');
writeln('***2.-por carrera***');
readln(opcion);
clrscr;
if opcion = 1 then
pornum (alumno);
if opcion = 2 then
porcar (alumno);
end;
readln;
until resp = '3';
end.
Pseudocodigo de Programa
program multicrea;
uses fdelay, crt;
type
ptr = ^nodo;
nodo = record
numero : integer;
nombre : string[10];
race : string[5];
ida, der: ptr
end;
var
num, opcion: integer;
alumno: ptr; ith: file of nodo;
resp, desea: char;
nom, carre: string[10];
begin
clrscr;
assign(ith, 'delith.dat');
rewrite(ith);
close(ith);
end.
Pseudocodigo de Programa
program arbolbin;
uses fdelay, crt;
type
ptr = ^nodo;
nodo = record
numero : integer;
nombre : string[10];
race : integer;
ida, der: ptr
end;
var
num, opcion: integer;
alumno: ptr; ith: file of nodo;
resp, desea: char;
nom: string[10]; carre: integer;
begin
clrscr;
assign(ith, 'delith.dat');
reset(ith);
writeln('escribe el numero para ir directo o 100 para salir');
readln(num);
while num < 100 do
begin
seek(ith, num);
read(ith, alumno^);
writeln('numero de control******nombre******carrera');
writeln(' ',alumno^.numero,'
',alumno^.nombre,'
writeln('teclea otro numero o 100 para salir');
readln(num);
end;
',alumno^.race);
writeln('escribe el numero de carrera para ir directo o 10 para salir');
readln(carre);
while carre < 10 do
begin
seek(ith, carre);
read(ith, alumno^);
writeln('numero de control*******nombre******carrera');
writeln(' ',alumno^.numero,'
',alumno^.nombre,'
',alumno^.race);
writeln('teclea otro numero ');
readln(carre);
end;
end.
CONCLUSIONES
Este tipo de organización es la mejor para cualquier
sistema comercial por que nos permite el acceso directo
por más de una llave y eso nos da rapidez en el
procesamiento y recuperación de datos. Podemos darnos
cuenta de que a la hora de programarlo llega a hacer un
proceso muy repetitivo de estructuras y muy tedioso para
el programador. También nos dimos cuenta que a nivel
escolar el uso de esta organización no es muy común ya que
la mayoría de los estudiantes huyen de la complejidad del
código de programación. Para poder dominar estos archivos
se deben de tener muy buenas bases en estructuras de
datos anteriores además de manejar apropiadamente un
lenguaje que facilite su creación ya que en algunos el
trabajo se vuelve casi imposible de realizar .
BIBLIOGRAFIA
“ESTRUCTURA DE DATOS Y
ORGANIZACIÓN DE ARCHIVOS”
AUTOR: Mary E. S. Loomis
EDITORIAL: Prentice Hall
“ ARCHIVOS, ORGANIZACIÓN Y
PROCEDIMIENTOS”
AUTOR: César E. Rose Gómez
EDITORIAL: Computec
Descargar