miércoles, 21 de marzo de 2012
Archivos secuenciales indexados
<div class="prezi-player"><style type="text/css" media="screen">.prezi-player { width: 550px; } .prezi-player-links { text-align: center; }</style><object id="prezi_aeiseo8m-mhx" name="prezi_aeiseo8m-mhx" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="550" height="400"><param name="movie" value="http://prezi.com/bin/preziloader.swf"/><param name="allowfullscreen" value="true"/><param name="allowscriptaccess" value="always"/><param name="bgcolor" value="#ffffff"/><param name="flashvars" value="prezi_id=aeiseo8m-mhx&lock_to_path=0&color=ffffff&autoplay=no&autohide_ctrls=0"/><embed id="preziEmbed_aeiseo8m-mhx" name="preziEmbed_aeiseo8m-mhx" src="http://prezi.com/bin/preziloader.swf" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="550" height="400" bgcolor="#ffffff" flashvars="prezi_id=aeiseo8m-mhx&lock_to_path=0&color=ffffff&autoplay=no&autohide_ctrls=0"></embed></object><div class="prezi-player-links"><p><a title="Archivos secuenciales indexados" href="http://prezi.com/aeiseo8m-mhx/archivos-secuenciales-indexados/">Archivos secuenciales indexados</a> on <a href="http://prezi.com">Prezi</a></p></div></div>
Pseudocodigo
Introducción:
Se denomina sistema de gestión de la base de datos (SGDB o DBMS, del
inglés “Data Base Management System”) al conjunto de software destinado a la
creación, control y manipulación de la información de una base de datos.
Concretamente, Un DBMS debe permitir la realización de las siguientes tareas:
• Acceso a los datos desde algún lenguaje de alto nivel.
• Interrogación (o recuperación de la información) directa en modo
conversacional.
• Definición del esquema de la base y de los distintos subesquemas.
• Organización física de la base de datos y recuperación tras fallos del sistema.
Un Sistema de Gestión de Base de Datos, al igual que el sistema operativo,
proporciona servicios tanto a los usuarios como a otros programas. A menudo,
cuando el usuario piensa que está utilizando directamente el Sistema de Gestión, lo que realmente hace es usar un programa que le proporciona una interfaz de usuario para trabajar con él.
Procesamiento
Las operaciones con archivos de acceso directo son las usuales, ya vistas
anteriormente, aunque teniendo en cuenta que para cualquier acceso a un registro inicialmente hay que buscar en la tabla de índices una clave igual a la
correspondiente al elemento que se desea (para obtener la dirección de la clave y poder acceder el registro correspondiente) y que desde el punto de vista del programador, solo existen los registros alcanzables a través de los índices que existen en cada momento.
En un soporte direccionable -normalmente un disco-, cada posición se localiza por su dirección absoluta-número de pistas y número de sector en el disco-. Los archivos de acceso directo manipulan direcciones relativas en lugar de absolutas, lo que hace al programa independiente de la posición absoluta del archivo en el soporte. La función de conversión transformará las claves en direcciones relativas.
Suponiendo que existen N posiciones disponibles para el archivo, la conversión de clave producirá una dirección relativa en el rango 1 a N. En el caso en que dos registros distintos produzcan la misma dirección, se dice que se produce una colisión que por otro lado son inevitables y que se controlan mediante dos métodos básicos (sobre los que no insistiremos más):
Buscar una nueva dirección libre en el mismo espacio del archivo.
Asignar el registro a la primera posición libre de la zona de excedentes.
Procesos de escritura de registros
El proceso de introducción de datos en un archivo directo o aleatorio, que
en un abuso de lenguaje llamaremos creación, consiste en ir introduciendo los
sucesivos registros en el soporte que los va a contener y en la detección obtenida resultante del algoritmo de conversión. Si al introducir un registro se encuentra ocupada la dirección, el nuevo registro deberá ir a la zona de sinónimos o de excedentes, sobre cuyos detalles ya hemos dicho que no entraríamos.
Bastará con saber que estos archivos necesitan dos zonas de almacenamiento, la principal constituida por registros de longitud constante y la de sinónimos donde secuencialmente se almacenan aquellos registros cuyas claves coinciden o son direcciones sinónimas de registros grabados en la zona principal.
Veamos un algoritmo que desarrolla este proceso de escritura:
algoritmo escri-reg
inicio
abrir archivo
leer registro
mientras < > FF hacer
calcular dirección mediante algoritmos de conversión
escribir ”dirección libre S/N”
leer respuesta
si respuesta = “S”
entonces
grabar registros
sino
buscar espacio en área de sinónimos
grabar registro
fin_si
leer registro
fin_mientras
fin
Consulta
A partir de la entrada del número o números de registros a consultar. Las
operaciones a realizar son:
• definir clave del registro buscado.
• aplicar algoritmo de conversión clave a dirección.
• lectura del registro ubicado en la dirección obtenida.
• comparación de las claves de los registros leído y buscado.
• exploración secuencial del área de excedentes, si no se encuentra el registro en este área es que no existe.
Veamos un esquema que facilita el proceso de consulta:
mientras < > EOF hacer
leer registro R
ir a subprograma de obtención de la dirección
leer registro S
si R=S
entonces
llamar_a subprograma consulta
sino
leer área de sinónimos
si FF en área de sinónimos ¨{no hay ningún sinónimo}
entonces
escribir “registro no existe”
sino llamar_a subprograma consulta
fin_si
fin_si
fin_mientras
Altas
Para dar de alta a un registro, se debe introducir su número de orden y contenido.
La inserción de un registro en el archivo, supone utilizar un campo adicional,
alta/baja del registro, SW (interruptor) que tome el valor 1 ó 0, según que el
registro esté dado de alta o de baja, ya que como veremos a continuación, la baja es solo de carácter lógico y es posible que demos de alta un registro que ya existe, pero que fue dado de baja anteriormente.
El algoritmo para llevar a cabo el procedimiento de dar de alta es:
algoritmo altas
inicio
SW = 0
repetir
leer” número de registro a dar de alta”. NR
si 1 0) o (numElemIndice = n) entonces
//Ya está o índice lleno
si_no
//Alta en área de datos
//Buscar hueco libre mediante una función HASH
NRR hash(R.código)
leer(A, RAux, NRR)
mientras RAux.estado = 1 hacer
NRR NRR mod MaxReg + 1
leer(A, RAux, NRR)
fin_mientras
//Graba el registro en el área de datos,
//marcándolo como ocupado (R.estado = 1)
R.estado 1
escribir(A, NRR,R,)
//Alta en el índice
Ind[0].clave R.código
Ind[0].NRR NRR
i n
mientras Ind[i].clave > Ind[0].clave hacer
Ind[i+1] Ind[i]
i i – 1
fin_mientras
Ind[i+1] Ind[0]
n n + 1
fin_si
fin_procedimiento
//El procedimiento Baja da una baja lógica en el área de datos
//y elimina la entrada en el área de índices
//El argumento R contiene el código del producto a dar de baja
procedimiento Baja(ref AProductos:A; valor RProducto:R; ref vIndice:Ind;
ref entero:n)
var
entero : p,i
inicio
p buscar(Ind,R,n)
si p = 0 entonces
//No está
si_no
//Dar una baja lógica en el área de datos
leer(A,Ind[p].NRR,R)
R.estado 2
escribir(A,Ind[p].NRR,R)
//Eliminar del índice
desde i p hasta n-1 hacer
Ind[i] Ind[i+1]
fin_desde
n n - 1
fin_si
fin_procedimiento
//El procedimiento Modificar, modifica un registro en el área de datos.
//El índice no cambia, ya que el código del producto no se puede modificar
//El argumento R contiene el código del producto a modificar y los campos modificados
procedimiento Modificar(ref AProductos:A; valor RProducto:R; valor vIndice:Ind;
valor entero:n)
var
entero : p
inicio
p buscar(Ind,R,n)
si p = 0 entonces
//No está
si_no
escribir(A,Ind[p].NRR,R)
fin_si
fin_procedimiento
Acceso a los registros
El acceso directo (por ejemplo para una consulta) se realiza mediante una búsqueda binaria en el área de índices y accediendo de forma directa al registro a partir de su NRR.
procedimiento Consulta(ref AProductos:A; valor RProducto:R; valor vIndice:Ind;
valor entero:n)
var
entero : p
inicio
p buscar(Ind,R,n)
si p = 0 entonces
//No está
si_no
leer(A,Ind[p].NRR,R)
//Procesar el registro (por ejemplo, presentarlo por pantalla)
escribir(R.código,R.desc,R.stock)
fin_si
fin_procedimiento
El acceso secuencial se realiza accediendo secuencialmente a la tabla de índices y leyendo de forma directa el registro en el área de datos a partir de su NRR.
procedimiento Listado(ref AProductos:A; valor RProducto:R; valor vIndice:Ind;
valor entero:n)
var
entero : i
inicio
desde i 1 hasta n hacer
leer(A,Ind[i].NRR,R)
//Procesar el registro (por ejemplo, presentarlo por pantalla)
escribir(R.código,R.desc,R.stock)
fin_desde
fin_procedimiento
Se denomina sistema de gestión de la base de datos (SGDB o DBMS, del
inglés “Data Base Management System”) al conjunto de software destinado a la
creación, control y manipulación de la información de una base de datos.
Concretamente, Un DBMS debe permitir la realización de las siguientes tareas:
• Acceso a los datos desde algún lenguaje de alto nivel.
• Interrogación (o recuperación de la información) directa en modo
conversacional.
• Definición del esquema de la base y de los distintos subesquemas.
• Organización física de la base de datos y recuperación tras fallos del sistema.
Un Sistema de Gestión de Base de Datos, al igual que el sistema operativo,
proporciona servicios tanto a los usuarios como a otros programas. A menudo,
cuando el usuario piensa que está utilizando directamente el Sistema de Gestión, lo que realmente hace es usar un programa que le proporciona una interfaz de usuario para trabajar con él.
Procesamiento
Las operaciones con archivos de acceso directo son las usuales, ya vistas
anteriormente, aunque teniendo en cuenta que para cualquier acceso a un registro inicialmente hay que buscar en la tabla de índices una clave igual a la
correspondiente al elemento que se desea (para obtener la dirección de la clave y poder acceder el registro correspondiente) y que desde el punto de vista del programador, solo existen los registros alcanzables a través de los índices que existen en cada momento.
En un soporte direccionable -normalmente un disco-, cada posición se localiza por su dirección absoluta-número de pistas y número de sector en el disco-. Los archivos de acceso directo manipulan direcciones relativas en lugar de absolutas, lo que hace al programa independiente de la posición absoluta del archivo en el soporte. La función de conversión transformará las claves en direcciones relativas.
Suponiendo que existen N posiciones disponibles para el archivo, la conversión de clave producirá una dirección relativa en el rango 1 a N. En el caso en que dos registros distintos produzcan la misma dirección, se dice que se produce una colisión que por otro lado son inevitables y que se controlan mediante dos métodos básicos (sobre los que no insistiremos más):
Buscar una nueva dirección libre en el mismo espacio del archivo.
Asignar el registro a la primera posición libre de la zona de excedentes.
Procesos de escritura de registros
El proceso de introducción de datos en un archivo directo o aleatorio, que
en un abuso de lenguaje llamaremos creación, consiste en ir introduciendo los
sucesivos registros en el soporte que los va a contener y en la detección obtenida resultante del algoritmo de conversión. Si al introducir un registro se encuentra ocupada la dirección, el nuevo registro deberá ir a la zona de sinónimos o de excedentes, sobre cuyos detalles ya hemos dicho que no entraríamos.
Bastará con saber que estos archivos necesitan dos zonas de almacenamiento, la principal constituida por registros de longitud constante y la de sinónimos donde secuencialmente se almacenan aquellos registros cuyas claves coinciden o son direcciones sinónimas de registros grabados en la zona principal.
Veamos un algoritmo que desarrolla este proceso de escritura:
algoritmo escri-reg
inicio
abrir archivo
leer registro
mientras < > FF hacer
calcular dirección mediante algoritmos de conversión
escribir ”dirección libre S/N”
leer respuesta
si respuesta = “S”
entonces
grabar registros
sino
buscar espacio en área de sinónimos
grabar registro
fin_si
leer registro
fin_mientras
fin
Consulta
A partir de la entrada del número o números de registros a consultar. Las
operaciones a realizar son:
• definir clave del registro buscado.
• aplicar algoritmo de conversión clave a dirección.
• lectura del registro ubicado en la dirección obtenida.
• comparación de las claves de los registros leído y buscado.
• exploración secuencial del área de excedentes, si no se encuentra el registro en este área es que no existe.
Veamos un esquema que facilita el proceso de consulta:
mientras < > EOF hacer
leer registro R
ir a subprograma de obtención de la dirección
leer registro S
si R=S
entonces
llamar_a subprograma consulta
sino
leer área de sinónimos
si FF en área de sinónimos ¨{no hay ningún sinónimo}
entonces
escribir “registro no existe”
sino llamar_a subprograma consulta
fin_si
fin_si
fin_mientras
Altas
Para dar de alta a un registro, se debe introducir su número de orden y contenido.
La inserción de un registro en el archivo, supone utilizar un campo adicional,
alta/baja del registro, SW (interruptor) que tome el valor 1 ó 0, según que el
registro esté dado de alta o de baja, ya que como veremos a continuación, la baja es solo de carácter lógico y es posible que demos de alta un registro que ya existe, pero que fue dado de baja anteriormente.
El algoritmo para llevar a cabo el procedimiento de dar de alta es:
algoritmo altas
inicio
SW = 0
repetir
leer” número de registro a dar de alta”. NR
si 1
//Ya está o índice lleno
si_no
//Alta en área de datos
//Buscar hueco libre mediante una función HASH
NRR hash(R.código)
leer(A, RAux, NRR)
mientras RAux.estado = 1 hacer
NRR NRR mod MaxReg + 1
leer(A, RAux, NRR)
fin_mientras
//Graba el registro en el área de datos,
//marcándolo como ocupado (R.estado = 1)
R.estado 1
escribir(A, NRR,R,)
//Alta en el índice
Ind[0].clave R.código
Ind[0].NRR NRR
i n
mientras Ind[i].clave > Ind[0].clave hacer
Ind[i+1] Ind[i]
i i – 1
fin_mientras
Ind[i+1] Ind[0]
n n + 1
fin_si
fin_procedimiento
//El procedimiento Baja da una baja lógica en el área de datos
//y elimina la entrada en el área de índices
//El argumento R contiene el código del producto a dar de baja
procedimiento Baja(ref AProductos:A; valor RProducto:R; ref vIndice:Ind;
ref entero:n)
var
entero : p,i
inicio
p buscar(Ind,R,n)
si p = 0 entonces
//No está
si_no
//Dar una baja lógica en el área de datos
leer(A,Ind[p].NRR,R)
R.estado 2
escribir(A,Ind[p].NRR,R)
//Eliminar del índice
desde i p hasta n-1 hacer
Ind[i] Ind[i+1]
fin_desde
n n - 1
fin_si
fin_procedimiento
//El procedimiento Modificar, modifica un registro en el área de datos.
//El índice no cambia, ya que el código del producto no se puede modificar
//El argumento R contiene el código del producto a modificar y los campos modificados
procedimiento Modificar(ref AProductos:A; valor RProducto:R; valor vIndice:Ind;
valor entero:n)
var
entero : p
inicio
p buscar(Ind,R,n)
si p = 0 entonces
//No está
si_no
escribir(A,Ind[p].NRR,R)
fin_si
fin_procedimiento
Acceso a los registros
El acceso directo (por ejemplo para una consulta) se realiza mediante una búsqueda binaria en el área de índices y accediendo de forma directa al registro a partir de su NRR.
procedimiento Consulta(ref AProductos:A; valor RProducto:R; valor vIndice:Ind;
valor entero:n)
var
entero : p
inicio
p buscar(Ind,R,n)
si p = 0 entonces
//No está
si_no
leer(A,Ind[p].NRR,R)
//Procesar el registro (por ejemplo, presentarlo por pantalla)
escribir(R.código,R.desc,R.stock)
fin_si
fin_procedimiento
El acceso secuencial se realiza accediendo secuencialmente a la tabla de índices y leyendo de forma directa el registro en el área de datos a partir de su NRR.
procedimiento Listado(ref AProductos:A; valor RProducto:R; valor vIndice:Ind;
valor entero:n)
var
entero : i
inicio
desde i 1 hasta n hacer
leer(A,Ind[i].NRR,R)
//Procesar el registro (por ejemplo, presentarlo por pantalla)
escribir(R.código,R.desc,R.stock)
fin_desde
fin_procedimiento
miércoles, 29 de febrero de 2012
viernes, 17 de febrero de 2012
archivos secuenciales
Aqui se mostrara la utilizacion de algun archivos secuenciales tales como el c#, java, delphi etc.
martes, 14 de febrero de 2012
mapa mental archivos secuenciales
Archivos secuenciales
Mapa mental acerca de archivos secuenciales, caracteristicas, algunas de las tareas como tambien las ventajas y desventajas.
miércoles, 8 de febrero de 2012
Formatos de archivo de secuencias
En este ensayo se habla acerca de los archivos secuenciales, sus caracteristicas, asi como los diferentes formatos y el lugar de su aplicacion.
Formatos de Archivos Secuenciales.ju
martes, 31 de enero de 2012
QUE SON LOS ARCHIVOS CVS Y XML?
INSTITUTO TECNOLOGICO SUPERIOR DE LERDO
ADMINISTRACION Y ORGANIZACION DE DATOS
TRABAJO: QUE SON LOS ARCHIVOS CVS Y XML?
NOM-JUDITH ITZEL REQUEJO HERNANDEZ
NÚM.-CONTROL: 10231237
01/02/2012
QUE SON LOS ARCHIVOS CSV?
CSV significa 'Valores Separados por Comas' ('Comma-Separated-Values') y es
un formato común para intercambiar texto.
El formato de archivo CSV (*.csv) guarda únicamente el texto y los valores
como aparezcan en las celdas de la hoja de cálculo activa. Todas las filas y
todos los caracteres en cada celda se guardarán. Las columnas de datos se
separan mediante comas y cada fila termina en un retorno de carro. Si una
celda contiene una coma, el contenido de la celda se escribirá entre comillas
dobles.
Si las celdas presentan fórmulas en vez de valores, éstas se convertirán como
texto. Todo el formato, gráficos, objetos y cualquier otro contenido de la hoja de
cálculo se perderán. El símbolo del euro se convertirá en signo de interrogación.
El formato CSV es muy sencillo y no indica un juego de caracteres concreto, ni cómo van situados los bytes, ni el formato para el salto de línea. Estos puntos deben indicarse muchas veces al abrir el fichero.
Ejemplo:
987,juan,87345,10 norte 342
876,pedro,43649,8 oriente 342
123,jorge,03342,av. libertad 23
69,vicente,61560,valencia nº183
18,lorenzo,06490,sol nº 18
19,lucía,06480,luna nº 8
876,pedro,43649,8 oriente 342
123,jorge,03342,av. libertad 23
69,vicente,61560,valencia nº183
18,lorenzo,06490,sol nº 18
19,lucía,06480,luna nº 8
Cuando el mismo texto contiene comas es aconsejable usar un delimitador. De esta manera se diferencian los separadores de columna de las comas del mismo texto. Habitualmente se usan comillas.¿Cómo puedo crear un archivo .csv?
Existen varias formas de crear un archivo .csv. La más común es utilizar un programa de hoja de cálculo, como Microsoft Excel. (En Microsoft Excel, selecciona Archivo > Guardar como... y, a continuación, "CSV (delimitado por comas) (*.csv)" en el selector desplegable "Guardar como tipo".)
Existen varias formas de crear un archivo .csv. La más común es utilizar un programa de hoja de cálculo, como Microsoft Excel. (En Microsoft Excel, selecciona Archivo > Guardar como... y, a continuación, "CSV (delimitado por comas) (*.csv)" en el selector desplegable "Guardar como tipo".)
BIBLIOGRAFIA:
Artículo CSV de Wikipedia: http://es.wikipedia.org/wiki/CSV
QUE SON LOS ARCHIVOS XML?
Cuando pensamos en "datos estructurados" pensamos en cosas tales como hojas de cálculo, libretas de direcciones, parámetros de configuración, transacciones financieras, dibujos técnicos, etc. Los programas que producen esta clase de datos a menudo también los guardan en disco, por lo que pueden usar tanto un formato binario como un formato texto. El último formato te permite, si es necesario, ver los datos sin el programa que los ha producido. XML consiste en una serie de reglas, pautas, convenciones, como quieras llamarlas, para planificar formatos texto para tales datos, de manera que produzcan archivos que sean fácilmente generados y leídos (por un ordenador) que son inequívocos, y que evitan escollos comunes como la falta de extensibilidad, falta de soporte para la internacionalización o localismo, y la dependencia de una determinada plataforma
XML (Extensible Markup Language, lenguaje de marcado extensible) es una forma de reutilizar datos en un archivo o de automatizar el proceso de sustitución de datos en un archivo con datos de otro archivo. XML utiliza etiquetas para describir partes de un archivo, por ejemplo, un encabezado o un artículo. Estas etiquetas marcan los datos de manera que se pueden almacenar en un archivo XML y se puedan gestionar adecuadamente cuando se exporten a otros archivos. Piense en XML como un mecanismo de conversión de datos. XML etiqueta el texto de la etiqueta y otro contenido en un archivo de forma que las aplicaciones puedan reconocer y presentar los datos.
Lenguaje extensible
XML se considera un lenguaje extensible porque cada uno crea sus propias etiquetas XML. Se puede crear una etiqueta para cada tipo de información que se desee reutilizar. Las etiquetas XML no contienen información acerca de cómo se deben mostrar los datos ni sobre el formato que deben tener. Las etiquetas XML sirven estrictamente para identificar contenido.
En InCopy, por ejemplo, se puede crear una etiqueta Título1 y asignarla a cada título de primer nivel de un documento. Después de guardar un documento como archivo XML, el contenido de Título1 se puede importar y utilizar (en cualquier aplicación que pueda leer XML) como página Web, catálogo impreso, directorio, lista de precios o tabla de base de datos.
InCopy es una de las muchas aplicaciones que pueden producir y utilizar XML. Después de etiquetar contenido en un archivo de InCopy, guarde y exporte el archivo como XML de manera que se pueda reutilizar en otro archivo de InCopy o InDesign o en otra aplicación.
En InCopy, se pueden crear etiquetas XML y partes de etiquetas de un documento incluso si no se tiene experiencia con XML. InCopy gestiona la programación de XML más allá de lo que se ve y crea el XML automáticamente al exportar un documento en un formato XML.
Importante: no confunda las etiquetas XML con el texto etiquetado de InCopy.
Estructura de los datos XML
El elemento es la base de los datos XML; un elemento es un dato que se ha etiquetado. En los archivos XML, los elementos se anidan dentro de otros elementos para crear una estructura jerárquica de los datos.
Puede ver la estructura de los datos XML en el panel Estructura, en el que se muestran la jerarquía y la secuencia de los elementos. En la estructura XML, los elementos secundarios se encuentran dentro de elementos principales que, a su vez, también pueden ser elementos secundarios. O bien, visto en la otra dirección, los elementos principales contienen elementos secundarios que, a su vez, pueden ser elementos principales de otros elementos secundarios.
Ejemplo:
un ejemplo simple seria como se muestra a continuación:
<?xml version=" 1.0 " encoding=" UTF-8 " standalone= " yes "?>
<ficha>
<nombre> Gabriel </nombre>
<apellido> Molina </apellido>
<direccion> Alfredo Vargas #36 </direccion>
</ficha>
Siguiendo este ejemplo de estructura básica de XML podemos generar una base de datos en este sistema.
<?xml version=" 1.0 " encoding=" UTF-8 " standalone= " yes "?>
<ficha>
<nombre> Gabriel </nombre>
<apellido> Molina </apellido>
<direccion> Alfredo Vargas #36 </direccion>
</ficha>
Siguiendo este ejemplo de estructura básica de XML podemos generar una base de datos en este sistema.
BIBLIOGRAFIA:
Suscribirse a:
Comentarios (Atom)
