SIStema de INFormación


SISINF es una herramienta en cuyo diseño fue considerada la problemática actual de los sistemas computacionales, y le han sido incorporadas aquellas características que le permiten ofrecer a los usuarios un medio fácil y efectivo para el desarrollo, operación y mantenimiento de sistemas de información computacionales, así como una forma segura y eficiente de operarlos.

SISINF es una herramienta probada y usada con éxito en gran variedad de empresas, aplicaciones y sistemas de cómputo.

SISINF es una herramienta respaldada por una organización de expertos que le brindarán soporte y asesoría continua e inmediata para su mejor uso.

Temario

    1. Características generales
      1.1 Características de la base de datos
      1.2 Características del lenguaje
      1.3 Características de operación

    2. Descripción técnica del lenguaje SISINF
      2.1 Módulos para el desarrollo de sistemas
        2.1.1 Módulo DBD
        2.1.2 Módulo CLS
        2.1.3 Módulo ELS
        2.1.4 Módulo DS
        2.1.5 Módulo GPS
      2.2 Módulos para el mantenimiento y administración de sistemas
        2.2.1 Módulo CPS
        2.2.2 Módulo CAS
        2.2.3 Módulo RECA
        2.2.4 Sistema de Documentación
        2.2.5 Módulo RESP

    3. Descripción técnica del banco de datos
      3.1 Definiciones básicas
      3.2 Estructura de la base de datos
      3.3 Acceso a la base de datos
        3.3.1 A través de la estructura jerárquica
        3.3.2 A través de directorios (llaves)
        3.3.3 Relación entre archivos
      3.4 Valores máximos


1. Características generales

El éxito de SISINF está apoyado en una serie de características de diseño, funcionamiento y operación, entre las cuales destacan las siguientes:

1.1 Características de la base de datos:
Estructura jerárquica de múltiples niveles, con acceso directo por varias llaves, múltiples y sencillas, y con versatilidad en las formas de acceso a todos los niveles. Una combinación perfecta de una estructura jerárquica con un acceso similar a la de una estructura relacional. Definición en forma muy sencilla de la base de datos; se hace una vez, aunque se puede modificar en cualquier momento. Todos los programas hacen referencia a la misma definición. Instrucciones de acceso a la base de datos muy fácil de usar. La base de datos puede usarse simultáneamente por múltiples usuarios, para consulta y actualización. Esto introduce complejidad en la programación. SISINF controla y coordina el acceso en forma transparente para el usuario. Los algoritmos de acceso están basados en las técnicas más actuales de estructuras de información y manejo de memoria, dando como resultado procesos rápidos y eficientes.

1.2 Características del lenguaje:
Los programas contienen solamente instrucciones. Las definiciones se hacen en la base de datos. Las instrucciones, mensajes, manuales, etc. son en español. Cada instrucción es en realidad un comando que internamente lleva a cabo varias operaciones (como validaciones, despliegue de errores, apertura de archivos, etc.). Así, un programa necesita de muy pocas instrucciones para llevar a cabo una tarea, por lo que la programación y el mantenimiento de sistemas son simples y rápidos. El lenguaje es 100% independiente de hardware, por lo que los programas se pueden llevar sin ningún cambio de una máquina a otra. El sistema integrado de documentación facilita el desarrollo y mantenimiento de sistemas computacionales.

1.3 Características de operación:

  • La interacción con el sistema operativo está totalmente a cargo de SISINF, relevando al usuario en el uso de controles o comandos especiales.
  • Sistema integrado de seguridad, para preservar la confidencialidad e integridad de la información.
  • Sistema integrado de contabilidad, para auxiliar a la administración de sistemas.
  • Reconstructor de archivos dañados por fallas de hardware o software que puede ser lanzado de forma automática o manual.
  • Sistema de registro de errores para agilizar la corrección de errores de programación.


2. Descripción técnica del lenguaje SISINF

El lenguaje computacional SISINF está compuesto de módulos, esto es, programas independientes con tareas específicas. La combinación de estos módulos conforma en sí al lenguaje, dividiéndose éstos en dos categorías, los empleados para el desarrollo de sistemas y aquellos intencionados para la administración y mantenimiento de sistemas.

2.1 Módulos para el desarrollo de sistemas Son los módulos básicos de Sisinf que intervienen más directamente en las fases de diseño y operación de un sistema computacional.

2.1.1 Módulo DBD  (Compilador del Banco de Datos de SISINF)
A través del módulo DBD se define la estructura que tendrán los archivos que forman la base de datos de un sistema.

Cada archivo de la base de datos tiene una estructura jerárquica, integrada por recurrentes, o sea tipos de registros; a su vez cada registro está compuesto por un conjunto de campos de información.

Para la DBD se cuenta con el lenguaje de definición de datos, que posee las instrucciones para definir cada archivo, su estructura, tipos de registros, y los campos que lo integran.

Las instrucciones que definen a una base de datos se alimentan a DBD a través de un archivo texto creado con un editor común; DBD revisa que tales instrucciones estén correctamente especificadas y que la definición de cada archivo sea completa; a partir de esto, DBD genera los esquemas internos de los archivos de la base de datos, que serán usados posteriormente al compilarse los programas que hagan referencia a tales archivos.

El proceso de definición de una base de datos se ilustra en el siguiente diagrama:

2.1.2 Módulo CLS (Compilador del Lenguaje Sisinf)
A través del módulo CLS se definen los procesos que se llevarán a cabo en el sistema de información, y que actuarán sobre la base de datos previamente definida.

La unidad elemental de proceso en SISINF es el programa. Cada programa puede atender uno o varios tipos de transacciones dentro de uno o varios archivos de la base de datos, pretendiendo que cada programa sea una función de un proceso, es decir, una unidad congruente de operaciones sobre una entidad de información. Así, un proceso complejo puede integrarse por la ejecución de una secuencia de programas.

Para usar CLS se cuenta con el lenguaje de manipulación de datos, que provee las instrucciones generales para:

  • Manejar la base de datos.
  • Manejar archivos secuenciales.
  • Manejar terminales.
  • Manejar escritura de reportes.
  • Manipular información alfanumérica, numérica, de tipo fechas, imágenes y audio.
  • Efectuar operaciones aritméticas.
  • Comunicarse con programas hechos en otros lenguajes.

2.1.3 Módulo ELS (Ejecutor del Lenguaje Sisinf)
La ejecución de los programas en SISINF se hace a través del módulo ELS, el cual es un monitor interpretador del seudo-código generado por el compilador CLS para cada programa. Se encarga, entre otras cosas, de:

  • Efectuar las operaciones de manipulación de datos y aritméticas, validaciones, verificaciones y manejo de fechas.
  • Controlar el acceso a los archivos de la base de datos, incluyendo la coordinación de acceso por múltiples usuarios.
  • Controlar las operaciones de lectura y escritura en terminales, impresoras y archivos secuenciales.
  • Establecer la comunicación necesaria con el sistema operativo.
En el siguiente diagrama se ilustra el proceso de ejecución de un programa:

2.1.4 Módulos DS (Desarrollador Sisinf)
El módulo DS permite desarrollar sistemas de una forma más amigable y eficiente, seleccionando la clave de acceso que se desea emplear la cual a su vez está ligada a una DBD y los programas que la emplean. Además de poder controlar de manera gráficas todas las opciones y parámetros del lenguaje.



Así, por ejemplo, se puede indicar la DBD y el programa sobre el cual se desea trabajar en Archivos y las funciones que se le desean aplicar sobre estos archivos en Función, para luego solo seleccionar la opción de Ejecutar para hacer de esto una tarea repetitiva.

Esto es muy útil en la etapa de desarrollo de un sistema ya que en dicha etapa se realizan a menudo operaciones repetitivas de edición, compilación y prueba. Note que también se tienen las opciones de compilar solo cambios, o de recompilar todo. Herramientas muy prácticas en sistemas grandes, donde es fácil perder la perspectiva de cuales han sido los programas modificados que requieren ser compilados.

Igualmente la opción de compilar los programas que hacen referencia a un archivo incluido puede resultar de gran ayuda, al no tener que llevar una bitácora de cuales son los programas que incluyan ese archivo.

Por otro lado el módulo DS ofrece la posibilidad de administrar ciertos recursos y parámetros empleados por los diferentes módulos de SISINF, tanto en forma de menús como en un solo desplegado gráfico:

2.1.5 Módulo GPS (Generador de Programas Sisinf)
El módulo GPS permite generar programas en el lenguaje SISINF de manera automática, basándose en los archivos generados durante la compilación de DBD; Se lee de terminal la primer inicial del programa, y se genera el archivo LISTXX.SIS con la lista de programas.

Los programas generados con este módulo, utilizan las facilidades de las últimas versiones de SISINF, y aunque en algunos casos se requiera de completar los programas por condiciones tales como validaciones especiales, en su mayoría, serán programas terminados o que con cambios mínimos, operan de forma satisfactoria.

Las opciones son:

PS

Pasar archivo permanente (banco de datos) a secuencial.
Esta opción permite generar los programas para pasar la información de un archivo o todos los archivos definidos en una DBD, a archivos secuenciales y viceversa.

AB

Altas, bajas, modificaciones y consultas.
Esta opción permite generar este tipo de programas para un recurrente de un archivo, para todos los recurrentes de un archivo o para todos los recurrentes de todos los archivos definidos en una DBD.

RR

Reporte con la información de un recurrente de un archivo.
Genera los programas para formar un reporte con la información de un recurrente o de todos los recurrentes de un archivo o de todos los archivos de una DBD.

TR

Temporal externo con la información de un recurrente de un archivo.
Permite generar un programa que pase los datos de un recurrente a un temporal externo, con el fin de exportarlo a otra aplicación o institución.

DP

Generador de datos de prueba.
Esta opción forma programas que generen datos secuenciales a los archivos que se le indique, con la finalidad de poder hacer pruebas de volumen a los sistemas.


NOTA: No se incluyen los campos tipo IMAGEN, TEXTO y AUDIO.



2.2 Módulos para el mantenimiento y administración de sistemas
Existen módulos adicionales que soportan la operación de sistemas de información hechos en SISINF. Se listan a continuación los de mayor importancia:

2.2.1 Módulo CPS (Cuentas y Parámetros de Sisinf)
A través del módulo CPS el administrador del sistema puede asignar y cambiar cuentas y claves de acceso de SISINF a cada usuario que lo requiera. A cada cuenta se le pueden definir ciertas características como lo son:

  • Su nivel de seguridad, lo que le permitirá accesar o no ciertos campos protegidos en la base de datos.
  • Los módulos de SISINF que puede usar, así por ejemplo un usuario no podrá compilar programas.
  • Características operativas adicionales.

Adicionalmente, cada módulo de SISINF al terminar de usarse por un usuario, genera un registro de contabilidad de uso, en el que se indica, entre otras cosas, el número de cuenta que usó, el nombre del módulo que empleó, la fecha y hora, los recursos empleados, etc. Estos datos pueden ser explotados a través de programas de SISINF y dar información valiosa para la administración del sistema.

2.2.2 Módulo CAS (Consultar Archivos Sisinf)
Cuando el usuario desea hacer una consulta a la base de datos, y no hay un programa que la soporte, se puede recurrir al módulo CAS. Este módulo permite obtener la información deseada de la base de datos y dar los resultados ya sea en la terminal o en un reporte escrito por la impresora. El módulo CAS puede ser usado inclusive por personas que no sepan programar.

La operación de CAS en una consulta se divide en dos etapas: la primera sirve para determinar la información que el usuario desea obtener; la segunda es la ejecución de la consulta en la base de datos.

Para la primera etapa, CAS guía al usuario en forma interactiva, indicándole la información que se tiene disponible; este proceso se hace de lo general a lo particular, es decir, del nivel de archivos, pasando por ‘grupos de información’, hasta llegar a campos específicos de información. El usuario puede seleccionar uno o varios campos, y con ellos se pueden hacer selecciones y/o calcular sumarizaciones o porcentajes.

En la segunda etapa, siguiendo las indicaciones del usuario, CAS consulta la base de datos y extrae la información requerida, haciendo las operaciones de selección y aritméticas que se requieran en la consulta.


Aquí, por ejemplo, en la versión 1.0 simplificada para Windows, se ilustra como CAS obtiene el nombre de los campos contenidos en el archivo CLIENT de la base de datos. El usuario selecciona el #Cliente y el nombre corto como valores de consulta, limitando la búsqueda a #Cliente entre 0 y 100 y que el Nombre corto contenga la secuencia “Empr”. Finalmente se seleccionan como salida, esto es para el reporte, los campos Razón social, Dirección, Código postal, etc.

2.2.3 Módulo RECA (Reconstructor de Archivos)
El módulo RECA es útil cuando se desea:

  • Hacer un cambio en la estructura de la base de datos (agregar nuevos campos, agregar recurrentes, etc.).
  • Cambiar la capacidad máxima de un archivo (disminuirla o aumentarla).
  • Recuperar espacio físico perdido por dar de baja registros de la base de datos.
  • Restaurar un archivo dañado por fallas de equipo, corriente eléctrica, software, etc.
  • Quitar información.
La acción del reconstructor es la de formar un archivo físico nuevo equivalente al archivo dado como entrada, pero sin destruir a éste último. Para efectuar el proceso, el reconstructor se basa en la definición del esquema del archivo, producida por DBD, indicada por el usuario. El reconstructor puede ser ejecutado de manera automática o manual.

2.2.4 Sistema de Documentación
El SISTEMA DE DOCUMENTACIÓN, integrado al módulo CPS, es una herramienta útil para el administrador del sistema, así como para los diseñadores y programadores. Para usarlo, los diseñadores y programadores deben agregar a sus codificaciones, tanto en la DBD como en los programas, las líneas de documentación necesarias, así como ciertas instrucciones de documentación. Esta información se almacena en la base de datos, que puede ser consultada por medio de los programas de SISINF que forman parte del sistema de documentación. El usuario puede obtener de este sistema, entre otras cosas:

  • Los programas que hacen referencia a una DBD.
  • Los programas que constituyen un sistema.
  • Los programas que integran un módulo de un sistema.
  • Los programas que usan cierto archivo permanente, un recurrente del archivo, una tabla o un archivo temporal.
  • Los niveles y números de seguridad de un programa.
  • La estructura gráfica de los archivos permanentes.
  • La documentación general de cada sistema, módulo o programa.
Adicionalmente el usuario puede hacer programas en SISINF para obtener otro tipo de reportes o consultas, usando la base de datos para documentación ya existente.

2.2.5 Módulo RESP
Este módulo trabaja en forma directa con el sistema operativo, su tarea principal consiste en determinar los archivos y usuarios del sistema y obtener estadísticas de estos puntos, cancelar usuarios, determinar registros bloqueados y finalmente obtener información de la estructura interna de un permanentes.



3. Descripción técnica del banco de datos


3.1 Definiciones básicas:

  • Una BASE DE DATOS es un conjunto de uno o varios archivos, cada uno de los cuales representa una entidad de información, y los cuales pueden estar relacionados entre sí por medio de campos simples o grupo de llaves.
  • Un ARCHIVO es una estructura jerárquica de recurrentes o tipos de registro, cada uno de los cuales es un conjunto de instancias o ocurrencias de información homogénea.
  • Cada tipo de RECURRENTE representa información que se diferencía substancialmente de otra en otros recurrentes, y es recurrente porque generalmente hay varias ocurrencias de este tipo de información.
  • El recurrente principal de cada archivo, o REGISTRO MAESTRO, será aquel del cual dependerán todos los demás recurrentes de dicho archivo.


3.2 Estructura de la base de datos:
Como en toda jerarquía, hay un recurrente principal o raíz, que en SISINF se denomina REGISTRO MAESTRO, o R0, del cual dependen directamente los recurrentes de primer nivel. De estos dependen los de segundo nivel y así sucesivamente, hasta 30 niveles máximos.

La estructura física de los archivos, esto es, la relación física entre el registro maestro y sus dependientes y en general la relación entre dependientes, es soportada y mantenida por SISINF en forma automática y transparente para el usuario.

Por ejemplo, si se requiere representar de manera sencilla un archivo de clientes y un archivo de bancos, se puede tener:


Con lo anterior se está expresando que el registro maestro del archivo de clientes contiene la información general de un cliente, y que cada cliente puede tener cero, uno o varios pedidos; a su vez un pedido puede constar de cero, uno o varios artículos. Igualmente puede tener cero, una o varias facturas, y cada factura puede tener cero, uno o varios renglones, así como pagos parciales. Similarmente el registro maestro del archivo de bancos contiene la información general de un banco, y cada banco puede tener cero, una o varias cuentas, las cuales a su vez pueden tener cero, uno o varios movimientos de depósitos y retiros.



3.3 Acceso a la base de datos:
El acceso a la base de datos de SISINF es a nivel de archivo, es decir, se selecciona el archivo por su nombre. Un programa puede estar usando uno o varios archivos al mismo tiempo.

Para el acceso a la información de un archivo, SISINF proporciona las siguientes dos estrategias:

3.3.1 A través de la estructura jerárquica:
Esta estrategia permite tener acceso a las ocurrencias de un tipo de recurrente. Para ello es necesario primero accesar el registro padre, es decir, aquel del cual depende el recurrente.

Estando en el registro en cuestión, ya sea maestro o recurrente, se puede navegar a través de cualquiera de los recurrentes que dependen de él, aún en forma simultánea. Repitiendo el proceso, se puede llegar a todos los registros de niveles inferiores.

Las ocurrencias de un recurrente que pertenecen a un mismo padre, forman la lista lineal en la que los registros aparecen en el orden en que fueron insertados. La instrucción de BUSCAR RECURRENTE permite recorrer la lista, con las siguientes opciones:
INF.

Se posiciona al inicio de la lista

SUP.

Se posiciona al final de la lista

ANT.

Recorre desde el último registro accesado hacia delante

SIG.

Recorre desde el último registro accesado hacia atrás

ORD.

Recorre la lista ordenada por ciertos campos


Si en la instrucción se especifican variables, se hace una búsqueda secuencial en el sentido indicado, hasta encontrar aquel registro que tenga valores iguales a los de las variables indicadas.


3.3.2 A través de directorios (llaves):
SISINF brinda al usuario la facilidad de establecer accesos directos a los archivos, a través de la declaración de directorios, conocidos como grupos de llaves; cada archivo puede tener varios directorios, en cualquier nivel, cada uno de los cuales establece un medio de acceso diferente para el archivo.

Para tener un directorio el usuario selecciona uno o varios campos de un tipo de recurrente, para que juntos constituyan la LLAVE DE ACCESO. La declaración de directorios se hace al declarar el archivo en la DBD.

Cada valor de la llave en un directorio está acompañado de apuntadores al registro de datos, ya sea maestro o recurrente, que contiene la información referenciada, permitiendo así el acceso directo a la información, sin necesidad de hacer el acceso a través de toda la estructura jerárquica.

Al usar directorios para accesar un recurrente dependiente, automáticamente se accesan también el o los registros de niveles superiores de los que depende el registro accesado.

El uso de directorios para accesar un archivo es a través de la instrucción BUSCAR DISCO, en la que se especifica, entre otras cosas, el directorio a usar, la forma de usar el directorio, y si es aplicable, el o los valores específicos de la llave que se desea encontrar.

Las formas de usar un directorio, conocidas como OPCIONES DE BÚSQUEDA, son:

SEC.

Recorre el directorio en forma secuencial ascendente

PRIN.

Dado un valor o conjunto de valores de la llave, localiza el primer registro que tenga un valor igual en el directorio.

NO-PRIN.

Dado un valor o conjunto de valores de la llave, localiza el siguiente registro que tenga un valor igual en el directorio.

APROX.

Dado un valor o conjunto de valores de la llave, localiza al primer registro que tenga un valor igual o mayor en el directorio.

BUSC.

Certifica exclusivamente la existencia de un valor dado en el directorio, no actualiza apuntadores.

ULT.

Se posiciona al final de un directorio.




3.3.3 Relación entre archivos:
SISINF permite igualar variables de un archivo en otro archivo, brindando con esto la facilidad de poder relacionar los archivos entre sí. De esta manera, tomando el ejemplo anterior del archivo de clientes y del archivo de bancos, si establecemos que el R3 (facturas) del archivo de clientes tiene un campo que corresponde al número de factura, y lo igualamos en el recurrente R2 (depósitos) del archivo de bancos, esto nos dará como resultado que al consultar los depósitos de una cuenta, podremos establecer el número de factura al que corresponde, si aplica, para cada uno de ellos, y claro está, de qué cliente se trata e inclusive de qué pedido.

El código correspondiente en SISINF para esta simple consulta sería algo como lo siguiente:

--- Iniciar el valor de BAN-NUM-CUENTA ----

---

BUSCAR DISCO BANCO EJECUTA 20 PRIN-G2 BAN-NUM-CUENTA

LEER DISCO BANCO BAN-NOM-BANCO

OPCION DISCO BANCO INICIO-R2

10     

BUSCAR RECURRENTE BANCO 2 EJECUTA 20 ANT.

LEER DISCO BANCO CLT-NUM-FACTURA BAN-DEP-FECHA

BUSCAR DISCO CLIENT EJECUTA 999 PRIN-G3 CLT-NUM-FACTURA

LEER DISCO CLIENT CLT-RAZ-SOCIAL

--- Manipular información que se acaba de leer ---

---

EJECUTA 10

20

--- Continuar con otras instrucciones ---

---

Donde los campos:

BAN-NUM-CUENTA

Se declaró en R1 del archivo de bancos como campo llave número 2.

BAN-NOM-BANCO

Se declaró en R0 del archivo de bancos como campo simple.

BAN-DEP-FECHA

Se declaró en R2 del archivo de bancos como campo simple.

CLT-NUM-FACTURA

Se declaró en R3 del archivo de clientes como campo llave número 3, y se igualó en R2 del archivo bancos como campo simple.

CLT-RAZ-SOCIAL

Se declaró en R0 del archivo de clientes como campo simple.




3.4 Valores máximos:
A continuación se enumeran algunos de los valores máximo permitidos en SISINF para así reflejar el alcance que puede tener:

Descripción Valor máximo

Archivos por DBD

200

Tablas por DBD

100

Áreas con nombre por DBD

50

Grupos de llaves por archivo

10

Variables en un grupo de llaves

20

Recurrentes por archivo

30

Niveles de seguridad en un archivo

20

Variables por recurrente

125 (úmero de dependientes)

Archivos por programa

20

Tablas por programa

20

Variables por programa

400

Temporales por programa

20

Niveles de seguridad por programa

20

Variables en SUBPROGRAMA

50

Vectores por programa

10

Rutinas por programa

20

Áreas por programa

64

Variables por área

70

Etiquetas por programa

1000