SlideShare una empresa de Scribd logo
ARCHIVOS SECUENCIALES INDEXADOS
Área de
índices
Área
principal
Archivo de
desbordamiento u
Overflow
1. ÁREA DE ÍNDICES:
LOS REGISTROS DE ESTA ÁREA ESTÁN FORMADOS POR DOS CAMPOS QUE
PERMITEN IDENTIFICAR CADA REGISTRO DE FORMA ÚNICA:
 EL PRIMERO CONTIENE UNA CLAVE DEL ÚLTIMO REGISTRO DE CADA BLOQUE.
 EL SEGUNDO CONTIENE EL APUNTADOR AL ARCHIVO PRINCIPAL.
POR EJEMPLO, SI SE QUIEREN GRABAR LOS ESTUDIANTES DE CIERTA ESCUELA EN UN ARCHIVO
SECUENCIAL INDEXADO, EL CAMPO ÍNDICE QUE SE PUEDE ELEGIR ES EL NOMBRE DEL
ESTUDIANTE (TAMBIÉN SE PUEDE ELEGIR EL NÚMERO DE CARNET DEL ESTUDIANTE).
2. ÁREA PRINCIPAL:
ES LA PARTE DEL FICHERO DONDE SE GUARDAN LOS REGISTROS
ORDENADOS POR EL VALOR DEL CAMPO “CLAVE”. CONTIENE UN CAMPO QUE
APUNTA AL ARCHIVO DE DESBORDAMIENTO EL CUAL SIRVE PARA INSERTAR
REGISTROS.
SU ACCESO SE REALIZA MEDIANTE DOS OPERACIONES:
 PRIMERO, BUSCANDO EN EL BLOQUE DEL REGISTRO.
 LUEGO ANALIZA SECUENCIALMENTE ESE BLOQUE HASTA LOCALIZAR EL REGISTRO
DESEADO.
3. ÁREA DE DESBORDAMIENTO U OVERFLOW:
TRAS COMPLETAR EL ÁREA PRIMARIA, LOS REGISTROS AÑADIDOS
POSTERIORMENTE QUE NO PUEDEN SER REALIZADAS EN EL ÁREA PRIMARIA,
SERÁN ENVIADOS AL ÁREA DE OVERFLOW.
EN ESTE LOS REGISTROS SE PRESENTAN COMO UNA LISTA ENCADENADA, EN
QUE EL PUNTERO AL PRÓXIMO REGISTRO ESTÁ COMPUESTO POR LA PISTA Y EL
LUGAR QUE OCUPA EL REGISTRO DENTRO DE LA PISTA.
ESTA LISTA SE MANTIENE ORDENADA POR CLAVE.
1)
2)
3)
EJEMPLO:
VENTAJAS
BÚSQUEDA MAS RÁPIDAS GRACIAS A LA UTILIZACIÓN DE UN ÍNDICE.
SE PUEDEN ACTUALIZAR LOS REGISTROS EN EL MISMO FICHERO NUEVO PARA
EL PROCESO DE ACTUALIZACIÓN.
INCONVENIENTES
OCUPA MÁS ESPACIO EN EL DISCO QUE LOS FICHEROS SECUENCIALES,
DEBIDO AL USO DEL ÁREA DE ÍNDICES.
TIENDE TENDENCIAS A QUE AUMENTE EL TIEMPO MEDIO DE ACCESO A LOS
REGISTROS, CUANDO SE PRODUCEN MUCHAS ALTAS NUEVAS CON CLAVES
QUE HAY QUE INTERCALAR ENTRE LAS EXISTENCIAS, YA QUE AUMENTA EL ÁREA
DE OVERFLOW.
PROCESO DE UN ARCHIVO SECUENCIAL
INDEXADO
AL DISEÑAR UN ARCHIVO SECUENCIAL INDEXADO, LO PRIMERO QUE
HAY QUE DECIDIR ES CUÁL VA A SER EL CAMPO CLAVE. LOS REGISTROS HAN
DE SER GRABADOS EN ORDEN SECUENCIAL, Y SIMULTÁNEAMENTE A LA
GRABACIÓN DE LOS REGISTROS, EL SISTEMA CREA LOS ÍNDICES EN ORDEN
SECUENCIAL ASCENDENTE DEL CONTENIDO DEL CAMPO CLAVE.
SE DESARROLLAN LAS OPERACIONES (ALTAS, BAJAS, CONSULTAS…) PARA UN
ARCHIVO CON ESTA ORGANIZACIÓN. TAMBIÉN ES NECESARIO CONSIDERAR EL
INICIO Y LA SALIDA DE LA APLICACIÓN QUE PROCESA UN ARCHIVO INDEXADO,
PARA CARGAR Y DESCARGAR, RESPECTIVAMENTE LA TABLA DE ÍNDICES.
TIPOS DE DATOSSE DECLARAN DOS TIPOS DE ESTRUCTURAS PARA REPRESENTAR EL REGISTRO DE
DATOS Y EL ÍNDICE RESPECTIVAMENTE:
STRUCT ESTUDIANTE {
INT CARNET;
STRING NOMBRE; };
STRUCT INDEX{
INT CARNET;
INT POSICION; };
CREACIÓN
ESTA DECLARACIÓN DE LA VARIABLE PARA SWITCH CONTIENE LA VARIABLE PARA
ALMACENAR DATOS DE LA ESTRUCTURA ESTUDIANTE Y LA VARIABLE PARA
ALMACENAR INDICE Y ALMACENAR TEMPORALMENTE (AUX), DURANTE LA
BUSQUEDA.
INT MAIN(){
INT OPCION, BUS;
ESTUDIANTE ALUMNO, AUXI;
INDEX INDICE, AUX;
 A CONTINUACIÓN SE ABRE UN DO WHILE PARA REPETIR EL MENÚ CADA VEZ QUE SEA NECESARIO PARA REALIZAR LAS DISTINTAS OPERACIONES DEL
PROGRAMA.
DO{
SYSTEM("CLS");
 DECLARAMOS EL ARCHIVO PARA ALMACENAR DATOS DEL ÁREA PRINCIPAL.
OFSTREAM DAT("DATOS.TXT", IOS::BINARY | IOS::APP);
 DECLARAMOS EL ARCHIVO PARA ALMACENAR DATOS Y CLAVE DEL ÁREA DE ÍNDICE.
OFSTREAM IND("INDEX.TXT", IOS::BINARY| IOS::APP);
 DECLARAMOS EL ARCHIVO PARA BUSCAR DATOS .
IFSTREAM INDIC("INDEX.TXT", IOS::BINARY);
REMOVE("DATOS.TXT");
 SE COLOCA UN COUT CON LA INTENCIÓN DE COLOCAR UN TEXTO DE BIENVENIDA A TODO USUARIO QUE EJECUTE EL PROGRAMA.
COUT<<"*** BIENVENIDOS ***"<<ENDL<<ENDL;
 SE CREA LOS COUT RESPECTIVOS PARA MOSTRAR UN MENÚ DE OPCIONES PARA EL SWITCH QUE HEMOS DECLARADO ANTERIORMENTE ASI A LA
HORA DE EJECUTAR EL PROGRAMA, EL USUARIO PUEDA SELECCIONAR LA OPCIÓN QUE NECESITE.
COUT<<"1.INGRESAR DATOS DE ESTUDIANTE"<<ENDL;
COUT<<"2.BUSCAR DATOS DE ESTUDIANTE"<<ENDL;
COUT<<"3.BORRAR REGISTROS"<<ENDL;
COUT<<"4.SALIR DEL PROGRAMA"<<ENDL;
 EN LAS SIGUIENTES LÍNEAS COLOCAMOS UN COUT, CON LA INTENCIÓN DE MOSTRAR EN LA CONSOLA UN TEXTO INDICANDO LA SELECCIÓN DE UNA
OPCIÓN. LUEGO SE AGREGA UN CIN PARA INDICARDONDE SE ALMACENA LA OPCIÓN QUE SE ESCRIBA O INDIQUE.
COUT<<ENDL<<"SELECCIONE UNA OPCION: ";
CIN>>OPCION;
COUT<<ENDL;
 ESTE IF ES PARA QUE ENTRE AL SWITCH SOLO SI VA A SER USADO CON LA CONDICIÓN QUE EL NÚMERO DE OPCIÓN ESTE ENTRE 1 (INGRESAR) Y 3
(BORRAR).
IF(OPCION>0&& OPCION<4){
 INICIODEL SWITCH.
SWITCH(OPCION){
 INICIA CON OPCIÓN UNO EN CASO DE SER SELECCIONADO PARA INGRESAR DATOS.
CASE 1:
 ESTA CONDICIÓN SIRVE PARA VER SI LOS ARCHIVOS A LOS CUALES VAMOS A ESCRIBIR SE ABREN CORRECTAMENTE.
IF(!DAT&& !IND){
COUT<<"ERRORAL ABRIRARCHIVO"<<ENDL;
}ELSE{
EN CASO DE QUE SE EJECUTE O SE ABRA EL ARCHIVO SIN NINGÚN PROBLEMA ENTRARÍA AL SIGUIENTE PASO.
EN ESTAS LÍNEAS DE CÓDIGO SE HACE USO DEL COUT QUE MUESTRA EN LA CONSOLA EL TEXTO DANDO
INSTRUCCIONES SOBRE EL INGRESO DEL CARNET Y EL CIN PARA ALMACENAR LA INFORMACIÓN EN LA VARIABLE
ALUMNO. ESTO HACE QUE PODAMOS INGRESAR DATOS Y ALMACENARLOS EN LA VARIABLE ALUMNO.
COUT<<"INGRESE CARNET: ";
CIN>>ALUMNO.CARNET;
COUT<<ENDL;
EN LAS SIGUIENTES LÍNEAS ABRIMOS UN WHILE LLAMANDO Y DETERMINANDO LA CANTIDAD DE BITES QUE OCUPA
CADA BLOQUE DE INFORMACIÓN.
WHILE(!INDIC.EOF()){
INDIC.READ((CHAR*)&AUX, SIZEOF(STRUCT INDEX));
 CREAMOS UN IF.
IF (ALUMNO.CARNET==AUX.CARNET){
COUT<<"ELARCHIVOYAEXISTE,POSICION:"<<AUX.POSICION;
COUT<<ENDL;
BUS=10;
 CIERRA IF
}
 CIERRA WHILE
}
 CIERRA ARCHIVO INDCDE BUSQUEDA
INDIC.CLOSE();
 ABRIMOS UN IF .
IF(BUS!=10){
 A CONTINUACIÓN SE CREAN LAS SIGUIENTES LÍNEAS DE CÓDIGO PARA PODER PEDIR, INGRESAR Y ALMACENAR LA INFORMACIÓN DE CADA ALUMNO.
COUT<<"INGRESENOMBRE:";
CIN>>ALUMNO.NOMBRE;
COUT<<ENDL;
COUT<<"INGRESEEDAD:";
CIN>>ALUMNO.EDAD;
COUT<<ENDL;
COUT<<"INGRESECARRERA:";
CIN>>ALUMNO.CARRERA;
COUT<<ENDL;
 EN LA SIGUIENTE LÍNEA PERSISTIMOS LA ESTRUCTURA EN EL ARCHIVO CREADO PARA DATOS.
DAT.WRITE((CHAR*) &ALUMNO, SIZEOF(STRUCT ESTUDIANTE));
 EN ESTA LÍNEA SE CUMPLE CON LA FUNCIÓN DE COLOCAR EL CURSO AL FINAL DEL ARCHIVO PARA VER LA UBICACIÓN.
DAT.SEEKP(0,IOS::END);
 SE LE ASIGNA A LA VARIABLE INDICE EL VALOR DEL CAMPO CLAVE.
INDICE.CARNET=ALUMNO.CARNET;
 SE DETERMINA LA POSICIÓN DIVIDIENDO ENTRE EL TAMAÑO DEL ARCHIVO PARA ASI NOS DA VALORES DESDE 1
INDICE.POSICION=DAT.TELLP()/SIZEOF(STRUCT ESTUDIANTE);
 PERSISTIMOS LA ESTRUCTURA DEL INDICE EN EL ARCHIVO.
IND.WRITE((CHAR*) &INDICE,SIZEOF(STRUCT INDEX));
ESTÁ LÍNEA NOS MUESTRA LA POSICIÓN EN LA QUE SE GUARDA LA ESTRUCTURA.
COUT<<"GUARDADOEN POSICION:"<<"["<<INDICE.POSICION<<"]"<<ENDL;
ASÍ MISMO SE DEBE DE CERRAR AMBOS ARCHIVOS AL YA HABER TERMINADO DE INGRESAR DATOS Y HABER GUARDADO LA
ESTRUCTURA Y ESTO SE LOGRA HACIENDOLO DE LA SIGUIENTE FORMA:
DAT.CLOSE();
IND.CLOSE(); }
LA SIGUIENTE LÍNEA SOLO DETIENE EL PROGRAMA Y EL BREAK FINALIZA EL CASO.
SYSTEM("PAUSE"); BREAK;
Y CERRAMOS IF EN CASE 1.
}
EMPIEZA EL CASO 2 EL DE BÚSQUEDA DE ARCHIVO.
CASE 2:
SE COLOCA UNA VARIABLE QUE GUARDA LO QUE QUERAMOS BUSCAR. EN ESTE CASO LA CLAVE VA A SER EL CARNET.
INT BUSCAR;
COUT<<"ESCRIBA CARNET DE ALUMNO A BUSCAR:";
CIN>>BUSCAR;
ABRIMOS UN WHILE QUE VA A REPETIR MIENTRAS NO SEA EL FINAL DEL ARCHIVO.
WHILE(!INDIC.EOF()){
LA SIGUIENTE LÍNEA PERMITE QUE SE LEA EL ARCHIVO Y GUARDA EN VARIABLE AUX.
INDIC.READ((CHAR*)&AUX,SIZEOF(STRUCTINDEX));
SE ABRE UN IF COMPARANDO SI LO QUE SE BUSCA ES IGUAL A LO DE LA VARIABLE AUX.
IF (BUSCAR==AUX.CARNET){
SI FUERE IGUAL SE ESCRIBIRÍA LO EN LA CONSOLA LO SIGUIENTE Y SI NO FUERE ASÍ SIGUE HASTA ENCONTRARLO .
COUT<<ENDL<<"POSICION:"<<AUX.POSICION;
COUT<<ENDL<<ENDL;
COLOCAMOS UNA VARIABLE DE TIPO IFSTREAM PARA LEER EL ARCHIVO , EN EL CUAL SE ENCUENTRA LA INFORMACIÓN QUE
BUSCAMOS.
IFSTREAM DATO("DATOS.TXT", IOS::BINARY);
BUS=AUX.POSICION-1;
DATO.SEEKG(SIZEOF(STRUCTESTUDIANTE)*BUS, IOS::BEG);
DATO.READ((CHAR*)&AUXI, SIZEOF(STRUCTESTUDIANTE));
EN LAS SIGUIENTES LÍNEAS LLAMAMOS A CADA VARIABLE DE ALUMNO PARA PODER
MOSTRAR LA INFORMACIÓN DEL ALUMNO QUE INDIQUE EL USUARIO.
COUT<<"CARNET: "<<AUXI.CARNET<<ENDL;
COUT<<"NOMBRE: "<<AUXI.NOMBRE<<ENDL;
COUT<<"EDAD: "<<AUXI.EDAD<<ENDL;
COUT<<"CARRERA: "<<AUXI.CARRERA<<ENDL;
DATO.CLOSE();
LUEGO DEBEMOS DE DETENER EL PROGRAMA POR UN MOMENTO Y ESO LO LOGRAMOS
COLOCANDO LA SIGUIENTE LÍNEA.
SYSTEM("PAUSE");
COMO SIGUIENTE PASO CERRAMOS IF COMPARACIÓN
}
CERRAMOS WHILE DE FINAL DEL ARCHIVO.
}
AL FINALIZAR LA OPERACIÓN SE CIERRA EL ARCHIVO PARA LA BÚSQUEDA.
INDIC.CLOSE();
SE CIERRA EL CASA DOS.
BREAK;
EMPIEZA EL CASO 3 QUE NOS PERMITIRÁ ELIMINAR DATOS.
CASE 3:
BUS=0;
IF(BUS==0){
SE CREAN VARIABLES DE TIPO IFSTREAM PARA LECTURA CON LA INTENCIÓN DE ABRIR
LOS ARCHIVOS DE DATOS E INDÍCE Y PODER REALIZAR EL PROCESO DE ELIMINACIÓN DE
DATOS.
IFSTREAM ELIMINAR("DATOS.TXT", IOS::BINARY);
IFSTREAM ELIM_IND("INDEX.TXT", IOS::BINARY);
OFSTREAM TEMPORAL("TEMP.TXT", IOS::BINARY | IOS::OUT);
OFSTREAM TEMP_IND("TEMPI.TXT", IOS::BINARY | IOS::OUT);
CREAMOS UN IF EL CUAL NOS MOSTRARA DOS OPCIONES INDICÁNDONOS SI HAY ERROR AL ABRIR EL
ARCHIVO O DE LO CONTRARIO PASARÍA A LA BÚSQUEDA DE LA INFORMACIÓN QUE VA A ELIMINARSE.
IF(!ELIMINAR || !ELIM_IND){
COUT<<"ERROR AL ABRIR EL ARCHIVO"<<ENDL;
}ELSE{
COUT<<"INGRESE EL NUMERO DE CARNET DEL ALUMNO QUE DESEA BORRAR: ";
CIN>>OPCION;
WHILE(!ELIMINAR.EOF()){
ELIMINAR.READ((CHAR*) &AUXI, SIZEOF(STRUCT ESTUDIANTE));
A CONTINUACIÓN CREAMOS UN IF PARA MOSTRAR UN TEXTO EN LA CONSOLA INDICANDO LA ELIMINACIÓN DEL
ARCHIVO DEL ÁREA PRINCIPAL..
IF(AUXI.CARNET==OPCION){
COUT<<"EL ARCHIVO SE HA ELIMINADODE DATOS"<<ENDL;
}ELSE{
TEMPORAL.WRITE((CHAR*)&AUXI,SIZEOF(STRUCT ESTUDIANTE));
}
}
A CONTINUACIÓN SE REALIZA EL PROCESO PARA LA ELIMINACIÓN DE LOS DATOS EN EL ÁREA DE ÍNDICE.
WHILE(!ELIM_IND.EOF()){
ELIM_IND.READ((CHAR*)&AUX, SIZEOF(STRUCTINDEX));
IF(AUX.CARNET==OPCION){
COUT<<"EL ARCHIVO SE HA ELIMINADODE INDICE"<<ENDL;
}ELSE{
TEMP_IND.WRITE((CHAR*)&AUX,SIZEOF(STRUCT INDEX));
}
}
}
EN LAS SIGUIENTES LÍNEAS FINALIZAMOS EL PROCESO DE ELIMINACIÓN DE DATOS.
ELIMINAR.CLOSE();
TEMPORAL.CLOSE();
ELIM_IND.CLOSE();
TEMP_IND.CLOSE();
}
REMOVE("DATOS.TXT");
REMOVE("INDEX.TXT");
RENAME("TEMP.TXT", "DATOS.TXT");
RENAME("TEMPI.TXT", "INDEX.TXT");
LA SIGUIENTE LÍNEA DETIENE EL PROGRAMA UN MOMENTO.
SYSTEM("PAUSE"); BREAK;
DEFAULT:BREAK;
 CERRAMOS SWITCH.
}
 CERRAMOS IF PARA ENTRAR A SWITCH
}
} WHILE(OPCION>0&& OPCION!=4);
 LA CONDICIÓN DEL DO WHILE ES QUE SE VA A REPETIR EL MENÚ MIENTRAS LA VARIABLE OPCIÓN SE MAYOR A CERO(0) Y TAMBIÉN SEA DIFERENTE DE 4, EN CASO SEA 0
O CUATRO SE SALE DEL PROGRAMA
SYSTEM("PAUSE");
 AQUÍ FINALIZA EL PROGRAMA
}

Más contenido relacionado

La actualidad más candente

Sentencias sql
Sentencias sql Sentencias sql
Sentencias sql
Cristian Villalva
 
DDL oracle - base de datos
DDL oracle - base de datosDDL oracle - base de datos
DDL oracle - base de datos
Luis Bando
 
Comandos del-ddl-y-del-dml-liz
Comandos del-ddl-y-del-dml-lizComandos del-ddl-y-del-dml-liz
Comandos del-ddl-y-del-dml-liz
Bolivar Castillo
 
Bases de datos módulo 3 el lenguaje sql
Bases de datos módulo 3 el lenguaje sqlBases de datos módulo 3 el lenguaje sql
Bases de datos módulo 3 el lenguaje sql
FreddyRomana
 
Informixsql
InformixsqlInformixsql
Informixsql
Jesus Cortes
 
Consultas Sql
Consultas SqlConsultas Sql
Consultas Sql
Cristian Villalva
 
Sql comamdo
Sql comamdoSql comamdo
Sql comamdo
dmonges
 
USO DE SENTECIAS SQL
USO DE SENTECIAS SQLUSO DE SENTECIAS SQL
USO DE SENTECIAS SQL
Jorge Porras
 
Aprenda SQL Server
Aprenda SQL ServerAprenda SQL Server
Aprenda SQL Server
Silva Alvarado Fabian
 
Comandos ddl y dml
Comandos ddl y dmlComandos ddl y dml
Comandos ddl y dml
Gerardo
 
Slideshare
SlideshareSlideshare
Slideshare
ROXANAANDRANGO
 
Capitulo 2 de acces 2007 (2010 11) web
Capitulo 2  de acces 2007  (2010 11) webCapitulo 2  de acces 2007  (2010 11) web
Capitulo 2 de acces 2007 (2010 11) web
ALECOXSDB
 
SQL-DDL
SQL-DDLSQL-DDL
SQL-DDL
bdatos
 
2. creación de tablas 2007
2. creación de tablas 20072. creación de tablas 2007
2. creación de tablas 2007
yenifer1995
 
SQL: DDL, DML y SQL
SQL: DDL, DML y SQLSQL: DDL, DML y SQL
SQL: DDL, DML y SQL
Carmen Soler
 
Tecnologia barras
Tecnologia  barrasTecnologia  barras
Tecnologia barras
isaacsimancabertelisb
 
Unidad 6 Lenguaje Sql 4 (Consultas Dml Avanzado)
Unidad 6 Lenguaje Sql 4 (Consultas Dml Avanzado)Unidad 6 Lenguaje Sql 4 (Consultas Dml Avanzado)
Unidad 6 Lenguaje Sql 4 (Consultas Dml Avanzado)
Sergio Sanchez
 
Tarea sql
Tarea sqlTarea sql
Tarea sql
Marcos Ca
 
APRENDER MYSQL
APRENDER MYSQLAPRENDER MYSQL
APRENDER MYSQL
cycastro2
 
Curso oracle por temas
Curso oracle por temasCurso oracle por temas
Curso oracle por temas
Fabian Isidoro Quino
 

La actualidad más candente (20)

Sentencias sql
Sentencias sql Sentencias sql
Sentencias sql
 
DDL oracle - base de datos
DDL oracle - base de datosDDL oracle - base de datos
DDL oracle - base de datos
 
Comandos del-ddl-y-del-dml-liz
Comandos del-ddl-y-del-dml-lizComandos del-ddl-y-del-dml-liz
Comandos del-ddl-y-del-dml-liz
 
Bases de datos módulo 3 el lenguaje sql
Bases de datos módulo 3 el lenguaje sqlBases de datos módulo 3 el lenguaje sql
Bases de datos módulo 3 el lenguaje sql
 
Informixsql
InformixsqlInformixsql
Informixsql
 
Consultas Sql
Consultas SqlConsultas Sql
Consultas Sql
 
Sql comamdo
Sql comamdoSql comamdo
Sql comamdo
 
USO DE SENTECIAS SQL
USO DE SENTECIAS SQLUSO DE SENTECIAS SQL
USO DE SENTECIAS SQL
 
Aprenda SQL Server
Aprenda SQL ServerAprenda SQL Server
Aprenda SQL Server
 
Comandos ddl y dml
Comandos ddl y dmlComandos ddl y dml
Comandos ddl y dml
 
Slideshare
SlideshareSlideshare
Slideshare
 
Capitulo 2 de acces 2007 (2010 11) web
Capitulo 2  de acces 2007  (2010 11) webCapitulo 2  de acces 2007  (2010 11) web
Capitulo 2 de acces 2007 (2010 11) web
 
SQL-DDL
SQL-DDLSQL-DDL
SQL-DDL
 
2. creación de tablas 2007
2. creación de tablas 20072. creación de tablas 2007
2. creación de tablas 2007
 
SQL: DDL, DML y SQL
SQL: DDL, DML y SQLSQL: DDL, DML y SQL
SQL: DDL, DML y SQL
 
Tecnologia barras
Tecnologia  barrasTecnologia  barras
Tecnologia barras
 
Unidad 6 Lenguaje Sql 4 (Consultas Dml Avanzado)
Unidad 6 Lenguaje Sql 4 (Consultas Dml Avanzado)Unidad 6 Lenguaje Sql 4 (Consultas Dml Avanzado)
Unidad 6 Lenguaje Sql 4 (Consultas Dml Avanzado)
 
Tarea sql
Tarea sqlTarea sql
Tarea sql
 
APRENDER MYSQL
APRENDER MYSQLAPRENDER MYSQL
APRENDER MYSQL
 
Curso oracle por temas
Curso oracle por temasCurso oracle por temas
Curso oracle por temas
 

Destacado

SBC Klimaattechnisch ontwerpen
SBC Klimaattechnisch ontwerpenSBC Klimaattechnisch ontwerpen
SBC Klimaattechnisch ontwerpenJohan Talboom
 
Репутация в поиске. Дизайн и реклама 2016
Репутация в поиске. Дизайн и реклама 2016Репутация в поиске. Дизайн и реклама 2016
Репутация в поиске. Дизайн и реклама 2016
sslash65
 
quotes
quotesquotes
quotes
jagadish0504
 
ITW Hotelier India 201609
ITW Hotelier India 201609ITW Hotelier India 201609
ITW Hotelier India 201609
Achille Forler
 
JAFAR-CV-NA-1
JAFAR-CV-NA-1JAFAR-CV-NA-1
JAFAR-CV-NA-1
Jafar Bashir
 
Integrales impropias-jose-flores (1)
Integrales impropias-jose-flores (1)Integrales impropias-jose-flores (1)
Integrales impropias-jose-flores (1)
jose_fb
 
Evidencia de competencia de investigación
Evidencia de competencia de investigaciónEvidencia de competencia de investigación
Evidencia de competencia de investigación
Clau Hdez
 
Zeider^J Robert Resume (09-30-16)
Zeider^J Robert Resume (09-30-16)Zeider^J Robert Resume (09-30-16)
Zeider^J Robert Resume (09-30-16)
Robert Zeider
 
Villa Crastan Comune di Pontedera. Interventi e linee di intervento.
Villa Crastan Comune di Pontedera. Interventi e linee di intervento. Villa Crastan Comune di Pontedera. Interventi e linee di intervento.
Villa Crastan Comune di Pontedera. Interventi e linee di intervento.
Comune di Pontedera
 

Destacado (10)

SBC Klimaattechnisch ontwerpen
SBC Klimaattechnisch ontwerpenSBC Klimaattechnisch ontwerpen
SBC Klimaattechnisch ontwerpen
 
Репутация в поиске. Дизайн и реклама 2016
Репутация в поиске. Дизайн и реклама 2016Репутация в поиске. Дизайн и реклама 2016
Репутация в поиске. Дизайн и реклама 2016
 
134x125-Blue
134x125-Blue134x125-Blue
134x125-Blue
 
quotes
quotesquotes
quotes
 
ITW Hotelier India 201609
ITW Hotelier India 201609ITW Hotelier India 201609
ITW Hotelier India 201609
 
JAFAR-CV-NA-1
JAFAR-CV-NA-1JAFAR-CV-NA-1
JAFAR-CV-NA-1
 
Integrales impropias-jose-flores (1)
Integrales impropias-jose-flores (1)Integrales impropias-jose-flores (1)
Integrales impropias-jose-flores (1)
 
Evidencia de competencia de investigación
Evidencia de competencia de investigaciónEvidencia de competencia de investigación
Evidencia de competencia de investigación
 
Zeider^J Robert Resume (09-30-16)
Zeider^J Robert Resume (09-30-16)Zeider^J Robert Resume (09-30-16)
Zeider^J Robert Resume (09-30-16)
 
Villa Crastan Comune di Pontedera. Interventi e linee di intervento.
Villa Crastan Comune di Pontedera. Interventi e linee di intervento. Villa Crastan Comune di Pontedera. Interventi e linee di intervento.
Villa Crastan Comune di Pontedera. Interventi e linee di intervento.
 

Similar a Archivos secuenciales indexados

Archivos secuenciales indexados UMG grupo 3
Archivos secuenciales indexados UMG grupo 3Archivos secuenciales indexados UMG grupo 3
Archivos secuenciales indexados UMG grupo 3
Krlos Mendez Lp
 
Archivos secuenciales-indexados C++
Archivos secuenciales-indexados C++Archivos secuenciales-indexados C++
Archivos secuenciales-indexados C++
EdsonRc
 
funcion de archivo secuencial
funcion de archivo secuencial funcion de archivo secuencial
funcion de archivo secuencial
Jose Andres Berganza Ortiz
 
Archivossin
ArchivossinArchivossin
Archivossin
Erick Po
 
Archivos secuenciales indexados
Archivos secuenciales indexadosArchivos secuenciales indexados
Archivos secuenciales indexados
Alan Orellana Polanco
 
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
HugoGutierrez99
 
Colegio nacional Conocoto - Lety
Colegio nacional Conocoto - LetyColegio nacional Conocoto - Lety
Colegio nacional Conocoto - Lety
Leticia Fernandez
 
Sesion 13-c#
Sesion 13-c#Sesion 13-c#
Sesion 13-c#
Roberto Garcia
 
Tutorial Básico VULCAN 7.5
Tutorial Básico VULCAN 7.5Tutorial Básico VULCAN 7.5
Tutorial Básico VULCAN 7.5
Cristian Ahumada Torrejón
 
(86)resumen visual basic
(86)resumen visual basic(86)resumen visual basic
(86)resumen visual basic
Ivan Ramirez Iglesias
 
Plantilla ic con formularios
Plantilla ic con formulariosPlantilla ic con formularios
Plantilla ic con formularios
sebastas07
 
Access kattyayo
Access kattyayoAccess kattyayo
Access kattyayo
Katty Multilokita Ayo
 
plantilla icontec
plantilla icontecplantilla icontec
plantilla icontec
sebastas07
 
Trabajo de la emperesa
Trabajo de la emperesaTrabajo de la emperesa
Trabajo de la emperesa
danielpacangel
 
Trabajo de la emperesa
Trabajo de la emperesa Trabajo de la emperesa
Trabajo de la emperesa
Alejito Parrado
 
Trabajo de la emperesa
Trabajo de la emperesaTrabajo de la emperesa
Trabajo de la emperesa
Alejito Parrado
 
Trabajo de la emperesa
Trabajo de la emperesaTrabajo de la emperesa
Trabajo de la emperesa
danielpacangel
 
5
55
power
powerpower
EG LBDC
EG LBDCEG LBDC
EG LBDC
ELGORDOLBDC
 

Similar a Archivos secuenciales indexados (20)

Archivos secuenciales indexados UMG grupo 3
Archivos secuenciales indexados UMG grupo 3Archivos secuenciales indexados UMG grupo 3
Archivos secuenciales indexados UMG grupo 3
 
Archivos secuenciales-indexados C++
Archivos secuenciales-indexados C++Archivos secuenciales-indexados C++
Archivos secuenciales-indexados C++
 
funcion de archivo secuencial
funcion de archivo secuencial funcion de archivo secuencial
funcion de archivo secuencial
 
Archivossin
ArchivossinArchivossin
Archivossin
 
Archivos secuenciales indexados
Archivos secuenciales indexadosArchivos secuenciales indexados
Archivos secuenciales indexados
 
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
 
Colegio nacional Conocoto - Lety
Colegio nacional Conocoto - LetyColegio nacional Conocoto - Lety
Colegio nacional Conocoto - Lety
 
Sesion 13-c#
Sesion 13-c#Sesion 13-c#
Sesion 13-c#
 
Tutorial Básico VULCAN 7.5
Tutorial Básico VULCAN 7.5Tutorial Básico VULCAN 7.5
Tutorial Básico VULCAN 7.5
 
(86)resumen visual basic
(86)resumen visual basic(86)resumen visual basic
(86)resumen visual basic
 
Plantilla ic con formularios
Plantilla ic con formulariosPlantilla ic con formularios
Plantilla ic con formularios
 
Access kattyayo
Access kattyayoAccess kattyayo
Access kattyayo
 
plantilla icontec
plantilla icontecplantilla icontec
plantilla icontec
 
Trabajo de la emperesa
Trabajo de la emperesaTrabajo de la emperesa
Trabajo de la emperesa
 
Trabajo de la emperesa
Trabajo de la emperesa Trabajo de la emperesa
Trabajo de la emperesa
 
Trabajo de la emperesa
Trabajo de la emperesaTrabajo de la emperesa
Trabajo de la emperesa
 
Trabajo de la emperesa
Trabajo de la emperesaTrabajo de la emperesa
Trabajo de la emperesa
 
5
55
5
 
power
powerpower
power
 
EG LBDC
EG LBDCEG LBDC
EG LBDC
 

Último

COMPARACION DE PRECIOS TENIENDO COMO REFERENTE LA OSCE
COMPARACION DE PRECIOS TENIENDO COMO REFERENTE LA OSCECOMPARACION DE PRECIOS TENIENDO COMO REFERENTE LA OSCE
COMPARACION DE PRECIOS TENIENDO COMO REFERENTE LA OSCE
jhunior lopez rodriguez
 
Uso de equipos de protección personal.pptx
Uso de equipos de protección personal.pptxUso de equipos de protección personal.pptx
Uso de equipos de protección personal.pptx
OmarPadillaGarcia
 
Infografía operaciones básicas construcción .pdf
Infografía operaciones básicas construcción .pdfInfografía operaciones básicas construcción .pdf
Infografía operaciones básicas construcción .pdf
Carlos Pulido
 
METODOLOGIA DE TRAZO Y REPLANTEO EN TOPOGRAFIA
METODOLOGIA DE TRAZO Y REPLANTEO EN TOPOGRAFIAMETODOLOGIA DE TRAZO Y REPLANTEO EN TOPOGRAFIA
METODOLOGIA DE TRAZO Y REPLANTEO EN TOPOGRAFIA
LuisCiriacoMolina
 
SISTEMA AUTOMATIZADO DE LIMPIEZA PARA ACUARIOS
SISTEMA AUTOMATIZADO DE LIMPIEZA PARA ACUARIOSSISTEMA AUTOMATIZADO DE LIMPIEZA PARA ACUARIOS
SISTEMA AUTOMATIZADO DE LIMPIEZA PARA ACUARIOS
micoltadaniel2024
 
PRACTICA 2 EDAFOLOGÍA TEXTURA DEL SUELO.pptx
PRACTICA 2 EDAFOLOGÍA TEXTURA DEL SUELO.pptxPRACTICA 2 EDAFOLOGÍA TEXTURA DEL SUELO.pptx
PRACTICA 2 EDAFOLOGÍA TEXTURA DEL SUELO.pptx
ANGELJOELSILVAPINZN
 
Sistemas eléctricos de potencia y transmisión
Sistemas eléctricos de potencia y transmisiónSistemas eléctricos de potencia y transmisión
Sistemas eléctricos de potencia y transmisión
MichaelLpezOrtiz
 
EXPOSICIÓN NTP IEC 60364-1 - Orlando Chávez Chacaltana.pdf
EXPOSICIÓN NTP IEC 60364-1 - Orlando Chávez Chacaltana.pdfEXPOSICIÓN NTP IEC 60364-1 - Orlando Chávez Chacaltana.pdf
EXPOSICIÓN NTP IEC 60364-1 - Orlando Chávez Chacaltana.pdf
hugodennis88
 
S09 PBM-HEMORRAGIAS 2021-I Grabada 1.pptx
S09 PBM-HEMORRAGIAS 2021-I Grabada 1.pptxS09 PBM-HEMORRAGIAS 2021-I Grabada 1.pptx
S09 PBM-HEMORRAGIAS 2021-I Grabada 1.pptx
yamilbailonw
 
Infografia - Hugo Hidalgo - Construcción
Infografia - Hugo Hidalgo - ConstrucciónInfografia - Hugo Hidalgo - Construcción
Infografia - Hugo Hidalgo - Construcción
MaraManuelaUrribarri
 
OPERACIONES BÁSICAS (INFOGRAFIA) DOCUMENTO
OPERACIONES BÁSICAS (INFOGRAFIA) DOCUMENTOOPERACIONES BÁSICAS (INFOGRAFIA) DOCUMENTO
OPERACIONES BÁSICAS (INFOGRAFIA) DOCUMENTO
GERARDO GONZALEZ
 
PRIMERA Y SEGUNDA LEY DE LA TERMODINÁMICA
PRIMERA Y SEGUNDA LEY DE LA TERMODINÁMICAPRIMERA Y SEGUNDA LEY DE LA TERMODINÁMICA
PRIMERA Y SEGUNDA LEY DE LA TERMODINÁMICA
carmenquintana18
 
METRADOS_Y_PRESUPUESTO_EN_SISTEMA_DRYWALL_24-05.pdf
METRADOS_Y_PRESUPUESTO_EN_SISTEMA_DRYWALL_24-05.pdfMETRADOS_Y_PRESUPUESTO_EN_SISTEMA_DRYWALL_24-05.pdf
METRADOS_Y_PRESUPUESTO_EN_SISTEMA_DRYWALL_24-05.pdf
Augusto César Dávila Callupe
 
DIAPOSITIVA DE LA NORMA ISO 22000 EXPOSICI�N.pptx
DIAPOSITIVA DE LA NORMA ISO 22000 EXPOSICI�N.pptxDIAPOSITIVA DE LA NORMA ISO 22000 EXPOSICI�N.pptx
DIAPOSITIVA DE LA NORMA ISO 22000 EXPOSICI�N.pptx
KeylaArlethTorresOrt
 
diagrama de flujo. en el área de ingeniería
diagrama de flujo. en el área de ingenieríadiagrama de flujo. en el área de ingeniería
diagrama de flujo. en el área de ingeniería
karenperalta62
 
Informe Municipal provincial de la ciudad de Tacna
Informe Municipal provincial de la ciudad de TacnaInforme Municipal provincial de la ciudad de Tacna
Informe Municipal provincial de la ciudad de Tacna
BrusCiriloPintoApaza
 
Las operaciones básicas en la construcción.
Las operaciones básicas en la construcción.Las operaciones básicas en la construcción.
Las operaciones básicas en la construcción.
MaraManuelaUrribarri
 
AE 34 Serie de sobrecargas aisladas_240429_172040.pdf
AE  34 Serie de sobrecargas aisladas_240429_172040.pdfAE  34 Serie de sobrecargas aisladas_240429_172040.pdf
AE 34 Serie de sobrecargas aisladas_240429_172040.pdf
sebastianpech108
 
Operaciones Básicas creadora Veronica Maiz
Operaciones Básicas creadora Veronica MaizOperaciones Básicas creadora Veronica Maiz
Operaciones Básicas creadora Veronica Maiz
carolina838317
 
PPT suelos ensayo Proctor - laboratorio 4.pdf
PPT suelos ensayo Proctor - laboratorio 4.pdfPPT suelos ensayo Proctor - laboratorio 4.pdf
PPT suelos ensayo Proctor - laboratorio 4.pdf
EgorRamos1
 

Último (20)

COMPARACION DE PRECIOS TENIENDO COMO REFERENTE LA OSCE
COMPARACION DE PRECIOS TENIENDO COMO REFERENTE LA OSCECOMPARACION DE PRECIOS TENIENDO COMO REFERENTE LA OSCE
COMPARACION DE PRECIOS TENIENDO COMO REFERENTE LA OSCE
 
Uso de equipos de protección personal.pptx
Uso de equipos de protección personal.pptxUso de equipos de protección personal.pptx
Uso de equipos de protección personal.pptx
 
Infografía operaciones básicas construcción .pdf
Infografía operaciones básicas construcción .pdfInfografía operaciones básicas construcción .pdf
Infografía operaciones básicas construcción .pdf
 
METODOLOGIA DE TRAZO Y REPLANTEO EN TOPOGRAFIA
METODOLOGIA DE TRAZO Y REPLANTEO EN TOPOGRAFIAMETODOLOGIA DE TRAZO Y REPLANTEO EN TOPOGRAFIA
METODOLOGIA DE TRAZO Y REPLANTEO EN TOPOGRAFIA
 
SISTEMA AUTOMATIZADO DE LIMPIEZA PARA ACUARIOS
SISTEMA AUTOMATIZADO DE LIMPIEZA PARA ACUARIOSSISTEMA AUTOMATIZADO DE LIMPIEZA PARA ACUARIOS
SISTEMA AUTOMATIZADO DE LIMPIEZA PARA ACUARIOS
 
PRACTICA 2 EDAFOLOGÍA TEXTURA DEL SUELO.pptx
PRACTICA 2 EDAFOLOGÍA TEXTURA DEL SUELO.pptxPRACTICA 2 EDAFOLOGÍA TEXTURA DEL SUELO.pptx
PRACTICA 2 EDAFOLOGÍA TEXTURA DEL SUELO.pptx
 
Sistemas eléctricos de potencia y transmisión
Sistemas eléctricos de potencia y transmisiónSistemas eléctricos de potencia y transmisión
Sistemas eléctricos de potencia y transmisión
 
EXPOSICIÓN NTP IEC 60364-1 - Orlando Chávez Chacaltana.pdf
EXPOSICIÓN NTP IEC 60364-1 - Orlando Chávez Chacaltana.pdfEXPOSICIÓN NTP IEC 60364-1 - Orlando Chávez Chacaltana.pdf
EXPOSICIÓN NTP IEC 60364-1 - Orlando Chávez Chacaltana.pdf
 
S09 PBM-HEMORRAGIAS 2021-I Grabada 1.pptx
S09 PBM-HEMORRAGIAS 2021-I Grabada 1.pptxS09 PBM-HEMORRAGIAS 2021-I Grabada 1.pptx
S09 PBM-HEMORRAGIAS 2021-I Grabada 1.pptx
 
Infografia - Hugo Hidalgo - Construcción
Infografia - Hugo Hidalgo - ConstrucciónInfografia - Hugo Hidalgo - Construcción
Infografia - Hugo Hidalgo - Construcción
 
OPERACIONES BÁSICAS (INFOGRAFIA) DOCUMENTO
OPERACIONES BÁSICAS (INFOGRAFIA) DOCUMENTOOPERACIONES BÁSICAS (INFOGRAFIA) DOCUMENTO
OPERACIONES BÁSICAS (INFOGRAFIA) DOCUMENTO
 
PRIMERA Y SEGUNDA LEY DE LA TERMODINÁMICA
PRIMERA Y SEGUNDA LEY DE LA TERMODINÁMICAPRIMERA Y SEGUNDA LEY DE LA TERMODINÁMICA
PRIMERA Y SEGUNDA LEY DE LA TERMODINÁMICA
 
METRADOS_Y_PRESUPUESTO_EN_SISTEMA_DRYWALL_24-05.pdf
METRADOS_Y_PRESUPUESTO_EN_SISTEMA_DRYWALL_24-05.pdfMETRADOS_Y_PRESUPUESTO_EN_SISTEMA_DRYWALL_24-05.pdf
METRADOS_Y_PRESUPUESTO_EN_SISTEMA_DRYWALL_24-05.pdf
 
DIAPOSITIVA DE LA NORMA ISO 22000 EXPOSICI�N.pptx
DIAPOSITIVA DE LA NORMA ISO 22000 EXPOSICI�N.pptxDIAPOSITIVA DE LA NORMA ISO 22000 EXPOSICI�N.pptx
DIAPOSITIVA DE LA NORMA ISO 22000 EXPOSICI�N.pptx
 
diagrama de flujo. en el área de ingeniería
diagrama de flujo. en el área de ingenieríadiagrama de flujo. en el área de ingeniería
diagrama de flujo. en el área de ingeniería
 
Informe Municipal provincial de la ciudad de Tacna
Informe Municipal provincial de la ciudad de TacnaInforme Municipal provincial de la ciudad de Tacna
Informe Municipal provincial de la ciudad de Tacna
 
Las operaciones básicas en la construcción.
Las operaciones básicas en la construcción.Las operaciones básicas en la construcción.
Las operaciones básicas en la construcción.
 
AE 34 Serie de sobrecargas aisladas_240429_172040.pdf
AE  34 Serie de sobrecargas aisladas_240429_172040.pdfAE  34 Serie de sobrecargas aisladas_240429_172040.pdf
AE 34 Serie de sobrecargas aisladas_240429_172040.pdf
 
Operaciones Básicas creadora Veronica Maiz
Operaciones Básicas creadora Veronica MaizOperaciones Básicas creadora Veronica Maiz
Operaciones Básicas creadora Veronica Maiz
 
PPT suelos ensayo Proctor - laboratorio 4.pdf
PPT suelos ensayo Proctor - laboratorio 4.pdfPPT suelos ensayo Proctor - laboratorio 4.pdf
PPT suelos ensayo Proctor - laboratorio 4.pdf
 

Archivos secuenciales indexados

  • 3. 1. ÁREA DE ÍNDICES: LOS REGISTROS DE ESTA ÁREA ESTÁN FORMADOS POR DOS CAMPOS QUE PERMITEN IDENTIFICAR CADA REGISTRO DE FORMA ÚNICA:  EL PRIMERO CONTIENE UNA CLAVE DEL ÚLTIMO REGISTRO DE CADA BLOQUE.  EL SEGUNDO CONTIENE EL APUNTADOR AL ARCHIVO PRINCIPAL. POR EJEMPLO, SI SE QUIEREN GRABAR LOS ESTUDIANTES DE CIERTA ESCUELA EN UN ARCHIVO SECUENCIAL INDEXADO, EL CAMPO ÍNDICE QUE SE PUEDE ELEGIR ES EL NOMBRE DEL ESTUDIANTE (TAMBIÉN SE PUEDE ELEGIR EL NÚMERO DE CARNET DEL ESTUDIANTE).
  • 4. 2. ÁREA PRINCIPAL: ES LA PARTE DEL FICHERO DONDE SE GUARDAN LOS REGISTROS ORDENADOS POR EL VALOR DEL CAMPO “CLAVE”. CONTIENE UN CAMPO QUE APUNTA AL ARCHIVO DE DESBORDAMIENTO EL CUAL SIRVE PARA INSERTAR REGISTROS. SU ACCESO SE REALIZA MEDIANTE DOS OPERACIONES:  PRIMERO, BUSCANDO EN EL BLOQUE DEL REGISTRO.  LUEGO ANALIZA SECUENCIALMENTE ESE BLOQUE HASTA LOCALIZAR EL REGISTRO DESEADO.
  • 5.
  • 6. 3. ÁREA DE DESBORDAMIENTO U OVERFLOW: TRAS COMPLETAR EL ÁREA PRIMARIA, LOS REGISTROS AÑADIDOS POSTERIORMENTE QUE NO PUEDEN SER REALIZADAS EN EL ÁREA PRIMARIA, SERÁN ENVIADOS AL ÁREA DE OVERFLOW. EN ESTE LOS REGISTROS SE PRESENTAN COMO UNA LISTA ENCADENADA, EN QUE EL PUNTERO AL PRÓXIMO REGISTRO ESTÁ COMPUESTO POR LA PISTA Y EL LUGAR QUE OCUPA EL REGISTRO DENTRO DE LA PISTA. ESTA LISTA SE MANTIENE ORDENADA POR CLAVE.
  • 9. VENTAJAS BÚSQUEDA MAS RÁPIDAS GRACIAS A LA UTILIZACIÓN DE UN ÍNDICE. SE PUEDEN ACTUALIZAR LOS REGISTROS EN EL MISMO FICHERO NUEVO PARA EL PROCESO DE ACTUALIZACIÓN.
  • 10. INCONVENIENTES OCUPA MÁS ESPACIO EN EL DISCO QUE LOS FICHEROS SECUENCIALES, DEBIDO AL USO DEL ÁREA DE ÍNDICES. TIENDE TENDENCIAS A QUE AUMENTE EL TIEMPO MEDIO DE ACCESO A LOS REGISTROS, CUANDO SE PRODUCEN MUCHAS ALTAS NUEVAS CON CLAVES QUE HAY QUE INTERCALAR ENTRE LAS EXISTENCIAS, YA QUE AUMENTA EL ÁREA DE OVERFLOW.
  • 11. PROCESO DE UN ARCHIVO SECUENCIAL INDEXADO AL DISEÑAR UN ARCHIVO SECUENCIAL INDEXADO, LO PRIMERO QUE HAY QUE DECIDIR ES CUÁL VA A SER EL CAMPO CLAVE. LOS REGISTROS HAN DE SER GRABADOS EN ORDEN SECUENCIAL, Y SIMULTÁNEAMENTE A LA GRABACIÓN DE LOS REGISTROS, EL SISTEMA CREA LOS ÍNDICES EN ORDEN SECUENCIAL ASCENDENTE DEL CONTENIDO DEL CAMPO CLAVE.
  • 12. SE DESARROLLAN LAS OPERACIONES (ALTAS, BAJAS, CONSULTAS…) PARA UN ARCHIVO CON ESTA ORGANIZACIÓN. TAMBIÉN ES NECESARIO CONSIDERAR EL INICIO Y LA SALIDA DE LA APLICACIÓN QUE PROCESA UN ARCHIVO INDEXADO, PARA CARGAR Y DESCARGAR, RESPECTIVAMENTE LA TABLA DE ÍNDICES.
  • 13. TIPOS DE DATOSSE DECLARAN DOS TIPOS DE ESTRUCTURAS PARA REPRESENTAR EL REGISTRO DE DATOS Y EL ÍNDICE RESPECTIVAMENTE: STRUCT ESTUDIANTE { INT CARNET; STRING NOMBRE; }; STRUCT INDEX{ INT CARNET; INT POSICION; };
  • 14. CREACIÓN ESTA DECLARACIÓN DE LA VARIABLE PARA SWITCH CONTIENE LA VARIABLE PARA ALMACENAR DATOS DE LA ESTRUCTURA ESTUDIANTE Y LA VARIABLE PARA ALMACENAR INDICE Y ALMACENAR TEMPORALMENTE (AUX), DURANTE LA BUSQUEDA. INT MAIN(){ INT OPCION, BUS; ESTUDIANTE ALUMNO, AUXI; INDEX INDICE, AUX;
  • 15.  A CONTINUACIÓN SE ABRE UN DO WHILE PARA REPETIR EL MENÚ CADA VEZ QUE SEA NECESARIO PARA REALIZAR LAS DISTINTAS OPERACIONES DEL PROGRAMA. DO{ SYSTEM("CLS");  DECLARAMOS EL ARCHIVO PARA ALMACENAR DATOS DEL ÁREA PRINCIPAL. OFSTREAM DAT("DATOS.TXT", IOS::BINARY | IOS::APP);  DECLARAMOS EL ARCHIVO PARA ALMACENAR DATOS Y CLAVE DEL ÁREA DE ÍNDICE. OFSTREAM IND("INDEX.TXT", IOS::BINARY| IOS::APP);  DECLARAMOS EL ARCHIVO PARA BUSCAR DATOS . IFSTREAM INDIC("INDEX.TXT", IOS::BINARY); REMOVE("DATOS.TXT");
  • 16.  SE COLOCA UN COUT CON LA INTENCIÓN DE COLOCAR UN TEXTO DE BIENVENIDA A TODO USUARIO QUE EJECUTE EL PROGRAMA. COUT<<"*** BIENVENIDOS ***"<<ENDL<<ENDL;  SE CREA LOS COUT RESPECTIVOS PARA MOSTRAR UN MENÚ DE OPCIONES PARA EL SWITCH QUE HEMOS DECLARADO ANTERIORMENTE ASI A LA HORA DE EJECUTAR EL PROGRAMA, EL USUARIO PUEDA SELECCIONAR LA OPCIÓN QUE NECESITE. COUT<<"1.INGRESAR DATOS DE ESTUDIANTE"<<ENDL; COUT<<"2.BUSCAR DATOS DE ESTUDIANTE"<<ENDL; COUT<<"3.BORRAR REGISTROS"<<ENDL; COUT<<"4.SALIR DEL PROGRAMA"<<ENDL;  EN LAS SIGUIENTES LÍNEAS COLOCAMOS UN COUT, CON LA INTENCIÓN DE MOSTRAR EN LA CONSOLA UN TEXTO INDICANDO LA SELECCIÓN DE UNA OPCIÓN. LUEGO SE AGREGA UN CIN PARA INDICARDONDE SE ALMACENA LA OPCIÓN QUE SE ESCRIBA O INDIQUE. COUT<<ENDL<<"SELECCIONE UNA OPCION: "; CIN>>OPCION; COUT<<ENDL;
  • 17.  ESTE IF ES PARA QUE ENTRE AL SWITCH SOLO SI VA A SER USADO CON LA CONDICIÓN QUE EL NÚMERO DE OPCIÓN ESTE ENTRE 1 (INGRESAR) Y 3 (BORRAR). IF(OPCION>0&& OPCION<4){  INICIODEL SWITCH. SWITCH(OPCION){  INICIA CON OPCIÓN UNO EN CASO DE SER SELECCIONADO PARA INGRESAR DATOS. CASE 1:  ESTA CONDICIÓN SIRVE PARA VER SI LOS ARCHIVOS A LOS CUALES VAMOS A ESCRIBIR SE ABREN CORRECTAMENTE. IF(!DAT&& !IND){ COUT<<"ERRORAL ABRIRARCHIVO"<<ENDL; }ELSE{
  • 18. EN CASO DE QUE SE EJECUTE O SE ABRA EL ARCHIVO SIN NINGÚN PROBLEMA ENTRARÍA AL SIGUIENTE PASO. EN ESTAS LÍNEAS DE CÓDIGO SE HACE USO DEL COUT QUE MUESTRA EN LA CONSOLA EL TEXTO DANDO INSTRUCCIONES SOBRE EL INGRESO DEL CARNET Y EL CIN PARA ALMACENAR LA INFORMACIÓN EN LA VARIABLE ALUMNO. ESTO HACE QUE PODAMOS INGRESAR DATOS Y ALMACENARLOS EN LA VARIABLE ALUMNO. COUT<<"INGRESE CARNET: "; CIN>>ALUMNO.CARNET; COUT<<ENDL; EN LAS SIGUIENTES LÍNEAS ABRIMOS UN WHILE LLAMANDO Y DETERMINANDO LA CANTIDAD DE BITES QUE OCUPA CADA BLOQUE DE INFORMACIÓN. WHILE(!INDIC.EOF()){ INDIC.READ((CHAR*)&AUX, SIZEOF(STRUCT INDEX));
  • 19.  CREAMOS UN IF. IF (ALUMNO.CARNET==AUX.CARNET){ COUT<<"ELARCHIVOYAEXISTE,POSICION:"<<AUX.POSICION; COUT<<ENDL; BUS=10;  CIERRA IF }  CIERRA WHILE }  CIERRA ARCHIVO INDCDE BUSQUEDA INDIC.CLOSE();
  • 20.  ABRIMOS UN IF . IF(BUS!=10){  A CONTINUACIÓN SE CREAN LAS SIGUIENTES LÍNEAS DE CÓDIGO PARA PODER PEDIR, INGRESAR Y ALMACENAR LA INFORMACIÓN DE CADA ALUMNO. COUT<<"INGRESENOMBRE:"; CIN>>ALUMNO.NOMBRE; COUT<<ENDL; COUT<<"INGRESEEDAD:"; CIN>>ALUMNO.EDAD; COUT<<ENDL; COUT<<"INGRESECARRERA:"; CIN>>ALUMNO.CARRERA; COUT<<ENDL;
  • 21.  EN LA SIGUIENTE LÍNEA PERSISTIMOS LA ESTRUCTURA EN EL ARCHIVO CREADO PARA DATOS. DAT.WRITE((CHAR*) &ALUMNO, SIZEOF(STRUCT ESTUDIANTE));  EN ESTA LÍNEA SE CUMPLE CON LA FUNCIÓN DE COLOCAR EL CURSO AL FINAL DEL ARCHIVO PARA VER LA UBICACIÓN. DAT.SEEKP(0,IOS::END);  SE LE ASIGNA A LA VARIABLE INDICE EL VALOR DEL CAMPO CLAVE. INDICE.CARNET=ALUMNO.CARNET;  SE DETERMINA LA POSICIÓN DIVIDIENDO ENTRE EL TAMAÑO DEL ARCHIVO PARA ASI NOS DA VALORES DESDE 1 INDICE.POSICION=DAT.TELLP()/SIZEOF(STRUCT ESTUDIANTE);  PERSISTIMOS LA ESTRUCTURA DEL INDICE EN EL ARCHIVO. IND.WRITE((CHAR*) &INDICE,SIZEOF(STRUCT INDEX));
  • 22. ESTÁ LÍNEA NOS MUESTRA LA POSICIÓN EN LA QUE SE GUARDA LA ESTRUCTURA. COUT<<"GUARDADOEN POSICION:"<<"["<<INDICE.POSICION<<"]"<<ENDL; ASÍ MISMO SE DEBE DE CERRAR AMBOS ARCHIVOS AL YA HABER TERMINADO DE INGRESAR DATOS Y HABER GUARDADO LA ESTRUCTURA Y ESTO SE LOGRA HACIENDOLO DE LA SIGUIENTE FORMA: DAT.CLOSE(); IND.CLOSE(); } LA SIGUIENTE LÍNEA SOLO DETIENE EL PROGRAMA Y EL BREAK FINALIZA EL CASO. SYSTEM("PAUSE"); BREAK; Y CERRAMOS IF EN CASE 1. }
  • 23. EMPIEZA EL CASO 2 EL DE BÚSQUEDA DE ARCHIVO. CASE 2: SE COLOCA UNA VARIABLE QUE GUARDA LO QUE QUERAMOS BUSCAR. EN ESTE CASO LA CLAVE VA A SER EL CARNET. INT BUSCAR; COUT<<"ESCRIBA CARNET DE ALUMNO A BUSCAR:"; CIN>>BUSCAR; ABRIMOS UN WHILE QUE VA A REPETIR MIENTRAS NO SEA EL FINAL DEL ARCHIVO. WHILE(!INDIC.EOF()){ LA SIGUIENTE LÍNEA PERMITE QUE SE LEA EL ARCHIVO Y GUARDA EN VARIABLE AUX. INDIC.READ((CHAR*)&AUX,SIZEOF(STRUCTINDEX));
  • 24. SE ABRE UN IF COMPARANDO SI LO QUE SE BUSCA ES IGUAL A LO DE LA VARIABLE AUX. IF (BUSCAR==AUX.CARNET){ SI FUERE IGUAL SE ESCRIBIRÍA LO EN LA CONSOLA LO SIGUIENTE Y SI NO FUERE ASÍ SIGUE HASTA ENCONTRARLO . COUT<<ENDL<<"POSICION:"<<AUX.POSICION; COUT<<ENDL<<ENDL; COLOCAMOS UNA VARIABLE DE TIPO IFSTREAM PARA LEER EL ARCHIVO , EN EL CUAL SE ENCUENTRA LA INFORMACIÓN QUE BUSCAMOS. IFSTREAM DATO("DATOS.TXT", IOS::BINARY); BUS=AUX.POSICION-1; DATO.SEEKG(SIZEOF(STRUCTESTUDIANTE)*BUS, IOS::BEG); DATO.READ((CHAR*)&AUXI, SIZEOF(STRUCTESTUDIANTE));
  • 25. EN LAS SIGUIENTES LÍNEAS LLAMAMOS A CADA VARIABLE DE ALUMNO PARA PODER MOSTRAR LA INFORMACIÓN DEL ALUMNO QUE INDIQUE EL USUARIO. COUT<<"CARNET: "<<AUXI.CARNET<<ENDL; COUT<<"NOMBRE: "<<AUXI.NOMBRE<<ENDL; COUT<<"EDAD: "<<AUXI.EDAD<<ENDL; COUT<<"CARRERA: "<<AUXI.CARRERA<<ENDL; DATO.CLOSE(); LUEGO DEBEMOS DE DETENER EL PROGRAMA POR UN MOMENTO Y ESO LO LOGRAMOS COLOCANDO LA SIGUIENTE LÍNEA. SYSTEM("PAUSE");
  • 26. COMO SIGUIENTE PASO CERRAMOS IF COMPARACIÓN } CERRAMOS WHILE DE FINAL DEL ARCHIVO. } AL FINALIZAR LA OPERACIÓN SE CIERRA EL ARCHIVO PARA LA BÚSQUEDA. INDIC.CLOSE(); SE CIERRA EL CASA DOS. BREAK;
  • 27. EMPIEZA EL CASO 3 QUE NOS PERMITIRÁ ELIMINAR DATOS. CASE 3: BUS=0; IF(BUS==0){ SE CREAN VARIABLES DE TIPO IFSTREAM PARA LECTURA CON LA INTENCIÓN DE ABRIR LOS ARCHIVOS DE DATOS E INDÍCE Y PODER REALIZAR EL PROCESO DE ELIMINACIÓN DE DATOS. IFSTREAM ELIMINAR("DATOS.TXT", IOS::BINARY); IFSTREAM ELIM_IND("INDEX.TXT", IOS::BINARY); OFSTREAM TEMPORAL("TEMP.TXT", IOS::BINARY | IOS::OUT); OFSTREAM TEMP_IND("TEMPI.TXT", IOS::BINARY | IOS::OUT);
  • 28. CREAMOS UN IF EL CUAL NOS MOSTRARA DOS OPCIONES INDICÁNDONOS SI HAY ERROR AL ABRIR EL ARCHIVO O DE LO CONTRARIO PASARÍA A LA BÚSQUEDA DE LA INFORMACIÓN QUE VA A ELIMINARSE. IF(!ELIMINAR || !ELIM_IND){ COUT<<"ERROR AL ABRIR EL ARCHIVO"<<ENDL; }ELSE{ COUT<<"INGRESE EL NUMERO DE CARNET DEL ALUMNO QUE DESEA BORRAR: "; CIN>>OPCION; WHILE(!ELIMINAR.EOF()){ ELIMINAR.READ((CHAR*) &AUXI, SIZEOF(STRUCT ESTUDIANTE));
  • 29. A CONTINUACIÓN CREAMOS UN IF PARA MOSTRAR UN TEXTO EN LA CONSOLA INDICANDO LA ELIMINACIÓN DEL ARCHIVO DEL ÁREA PRINCIPAL.. IF(AUXI.CARNET==OPCION){ COUT<<"EL ARCHIVO SE HA ELIMINADODE DATOS"<<ENDL; }ELSE{ TEMPORAL.WRITE((CHAR*)&AUXI,SIZEOF(STRUCT ESTUDIANTE)); } }
  • 30. A CONTINUACIÓN SE REALIZA EL PROCESO PARA LA ELIMINACIÓN DE LOS DATOS EN EL ÁREA DE ÍNDICE. WHILE(!ELIM_IND.EOF()){ ELIM_IND.READ((CHAR*)&AUX, SIZEOF(STRUCTINDEX)); IF(AUX.CARNET==OPCION){ COUT<<"EL ARCHIVO SE HA ELIMINADODE INDICE"<<ENDL; }ELSE{ TEMP_IND.WRITE((CHAR*)&AUX,SIZEOF(STRUCT INDEX)); } } }
  • 31. EN LAS SIGUIENTES LÍNEAS FINALIZAMOS EL PROCESO DE ELIMINACIÓN DE DATOS. ELIMINAR.CLOSE(); TEMPORAL.CLOSE(); ELIM_IND.CLOSE(); TEMP_IND.CLOSE(); } REMOVE("DATOS.TXT"); REMOVE("INDEX.TXT"); RENAME("TEMP.TXT", "DATOS.TXT"); RENAME("TEMPI.TXT", "INDEX.TXT"); LA SIGUIENTE LÍNEA DETIENE EL PROGRAMA UN MOMENTO. SYSTEM("PAUSE"); BREAK;
  • 32. DEFAULT:BREAK;  CERRAMOS SWITCH. }  CERRAMOS IF PARA ENTRAR A SWITCH } } WHILE(OPCION>0&& OPCION!=4);  LA CONDICIÓN DEL DO WHILE ES QUE SE VA A REPETIR EL MENÚ MIENTRAS LA VARIABLE OPCIÓN SE MAYOR A CERO(0) Y TAMBIÉN SEA DIFERENTE DE 4, EN CASO SEA 0 O CUATRO SE SALE DEL PROGRAMA SYSTEM("PAUSE");  AQUÍ FINALIZA EL PROGRAMA }