228
1 Programming Bases in Maninframe

Curso Cobol Básico

Embed Size (px)

Citation preview

  • *

    Programming Bases in Maninframe

  • *

    Mdulo Bsico

  • *

    Tpico 310 - Coding a COBOL ProgramTpico 320 - Editing a ProgramTpico 330 - File ProcessingTpico 340 - Formatting Data Tpico 350 - COBOL Arithmetic and Program LogicTpico 360 - Multimodular Programming and CopybooksTpico 370 - Table ProcessingTpico 380 - Galaxy Expense Processing SystemMdulo Bsico

  • *Tpico 310 - Coding a COBOL ProgramOBJETIVOS.Identificar las cuatro diferentes secciones y divisiones de COBOL.

    Diferenciar entre un prrafo, una sentencia, una instruccin.

    Codificar los comentarios de un programa COBOL.

    Codificar las cuatro divisiones de un programa en COBOL.

  • *Tpico 310 - Coding a COBOL Program

  • *Tpico 310 - Coding a COBOL ProgramWorking-Storage Section.Record Layout. Estructura de los cada uno de los campos que forman los registros de los archivos tratados en el programa.Lneas y encabezados de reporte (lines and Headings).Definicin de constantes / variables que integran cada una de las lneas que corresponden a los ttulos, cabeceras, lneas de detalle, totales, etc., de un reporte.Flags/Switches.Elementos de datos condicionales que indican verdadero o falso.Contadores/Acumuladores.Se refieren a una variable usada guardar el contenido del conteo o adicin de elementos.

  • *Tpico 310 - Coding a COBOL ProgramWorking-Storage Section.Constantes y literales.Son variables que contienen un valor fijo, el cual no cambiar durante el proceso del programa. Por ejemplo: ttulos, etiquetas de columnas, etc. Variables de trabajo (Scratch Area).Son variables que se encuentran involucradas en clculos intermedios o en el proceso del programa. Por ejemplo: Una variable en la que en cada cambio de registro se vaya guardando el resultado de una operacin.

  • *Tpico 310 - Coding a COBOL ProgramProcedure Division.Prrafo Mainline Principal.Generalmente se le asigna el nmero de prrafo 1000.Orden de ejecucin de los procesos principales.Manejo y control del programa principal, paso y recepcin del control de otros programas.Stop Run - finalizacin de programas.Prrafo Housekeeping Inicio. Generalmente se le asigna el nmero de prrafo 2000.Incializacin de variables de trabajo (acumuladores, contadores, etc). En ste prrafo se realiza la apertura inicial de archivos

  • *Tpico 310 - Coding a COBOL ProgramProcedure Division.Prrafo Process Proceso.Generalmente se le asigna el nmero de prrafo 3000.Ejecucin del procedimiento principal del programaPrrafo Wraup-Up Final.Generalmente se le asigna el nmero de prrafo 8000.Cerrado de archivos usados durante la ejecucin.

  • *Prrafos principales ****************************************************************** * PROCEDURE DIVISION * ****************************************************************** PROCEDURE DIVISION. 1000-MAINLINE. PERFORM 2000-HOUSEKEEPING THRU 2000-HOUSEKEEPING-EXIT.

    PERFORM 3000-PROCESS-TABLE THRU 3000-PROCESS-TABLE-EXIT.

    PERFORM 8000-WRAP-UP THRU 8000-WRAP-UP-EXIT.

    STOP RUN.

    Tpico 310 - Coding a COBOL Program

  • ******************************************************************** 3100-LOAD-REG-EXP-DTLS ******************************************************************* 3100-LOAD-REG-EXP-DTLS. PERFORM 9910-READ-REG-EXP THRU 9910-READ-REG-EXP-EXIT.

    IF NOT-END-OF-REG-EXP SET LS-TBL-IDX UP BY 1

    MOVE WS-REGE-REG-NUM TO LS-TBL-REG-NUM(LS-TBL-IDX) MOVE WS-REGE-EXP-DT-J TO LS-TBL-EXP-DT-J(LS-TBL-IDX) MOVE WS-REGE-EXP-TIME TO LS-TBL-EXP-TIME(LS-TBL-IDX) MOVE WS-REGE-EXP-CODE TO LS-TBL-EXP-CODE(LS-TBL-IDX) MOVE WS-REGE-EXP-AMT TO LS-TBL-EXP-AMT(LS-TBL-IDX) END-IF.

    3100-LOAD-REG-EXP-DTLS-EXIT. EXIT.Tpico 310 - Coding a COBOL Program

  • *Tpico 310 - Coding a COBOL ProgramPrrafos en COBOLComentarios.Se codifican a partir de columna 7 y comienzan con *Mximo hasta la columna 72Cabecera - inicio y finalizacin de un prrafo.Se codifican a partir de la columna 8.Nombrados de acuerdo a un orden lgico, mximo 35 caracteresEl prrafo de finalizacin marca la terminacin del prrafo. El nombre debe tener el mismo nombre de inicio con terminacin -EXIT.El prrafo de terminacin no es requerido.

  • *Tpico 310 - Coding a COBOL ProgramPrrafos en COBOLSentenciasColeccin de instrucciones que realizan un paso en el programa.Se codifican a partir de la columna 12.Una instruccin es un comando de COBOL (verbo) que realiza una funcin especfica.Las sentencias terminan con un punto, las instrucciones no.

  • *Mdulo Bsico

    Tpico 310 - Coding a COBOL ProgramTpico 320 - Editing a ProgramTpico 330 - File ProcessingTpico 340 - Formatting Data Tpico 350 - COBOL Arithmetic and Program LogicTpico 360 - Multimodular Programming and CopybooksTpico 370 - Table ProcessingTpico 380 - Galaxy Expense Processing System

  • *Tpico 320 - Editing a ProgramOBJETIVOS.Conocimiento del software para la edicin de programas.

    Conocimiento de los comandos de edicin.

    Compilacin y ejecucin de un programa COBOL.

    Edicin y correccin de errores sintcticos y lgicos.

  • *Tpico 320 - Editing a ProgramCodificacin de programasComandos de edicinComandos en lnea.Se teclean en la parte izquierda de la pantalla sobre la columna de nmeros. i - inserta lneas in - inserta el nmero de lneas especificado (n) d - borra lneas dn - inserta el nmero de lneas especificado (n) c - copia la lnea indicada cn - copia el nmero de lneas indicado (n) m- mueve la lnea indicada mn - mueve el nmero de lneas indicado (n) r - repite la lnearn - repite la linea el nmero de veces indicado o - sobrescribe la lnea cols - visualiza regla para posicin de columnas. Todos estos comandos con excepcin de COLS, pueden ser utilizados con bloques de lneas, repitiendo el comando al inicio y al fin del prrafo.

  • *Tpico 320 - Editing a ProgramCodificacin de programasComandos de edicinComandos primarios.Realizan funciones de utilidad y se teclean en la lnea de comando.CANCEL - se sale del programa sin salvar los cambiosSAVE - Salva los cambios realizados al programaFIND - Comando de bsqueda FIND carcter [ALL,FIRST,LAST,NEXT,PREV]CHANGE - Sustitucin de caracteres o cadenas de caracteres. CHANGE palabra_vieja palabra_nueva [ALL]

  • *Tpico 320 - Editing a ProgramCodificacin de programasComandos de edicinComandos generales.Teclas de funcin. Configurados de acuerdo con las teclas de funcin.PF1 - Ayuda de tutorialPF2 - Divisin de pantallasPF3 - EXITPF4 - Se sale de la actual operacin y regresa al men principalPF5 - Repite el ltimo comando FINDPF6 - Ejecuta el comando CHANGE al ejecutar FINDPF7 - Desplaza la pantalla hacia arribaPF8 - Desplaza la pantalla hacia abajoPF10 - Desplaza la pantalla hacia la izquierdaPF11 - Desplaza la pantalla hacia la derecha

  • *Tpico 320 - Editing a ProgramCompilacin de programasRevisin de sintaxis.Revisin de cada una de las sentencias escritas en el cdigo fuentesDepuracin de erroresErrores de puntuacinErrores ortogrficosErrores de campos no definidos en Working StorageCodificacin de columnas inapropiadasGeneracin de cdigo objeto.Se encuentra en lenguaje maquina.

  • *Mdulo Bsico

    Tpico 310 - Coding a COBOL ProgramTpico 320 - Editing a ProgramTpico 330 - File ProcessingTpico 340 - Formatting Data Tpico 350 - COBOL Arithmetic and Program LogicTpico 360 - Multimodular Programming and CopybooksTpico 370 - Table ProcessingTpico 380 - Galaxy Expense Processing System

  • *Tpico 330 - File ProcessingOBJETIVOS.Generacin de la seccin de File Description y sentencias SELECT/ASSIGN para los archivos usados en el programa.

    Codificacin de la estructura de los registros de entrada y salida en la Working Storage.

    Utilizacin de banderas en un programa COBOL.

    Codificacin de la Procedure Divsion en un programa.

  • *Tpico 330 - File ProcessingTipos de archivosArchivos Secuenciales.OrganizacinDeben ser accedidos en orden secuencial.Para realizacin de bsquedas, son accedidos frecuentemente en un orden especifico, en base a un campo especfico. Acceso.El acceso es secuencial es mas rpido que el acceso directo cuando se requiere de un procesamiento de todos los registros contenidos en el archivo, ya que el tiempo de procesamiento no involucra un acceso adicional al archivo del ndice. Dispositivos de almacenamiento.Cualquier dispositivo (cintas, discos, etc).

  • *Tpico 330 - File ProcessingTipos de archivos (Cont.)Archivos de Acceso Directo.Deben ser accedidos a travs de un ndice.Organizacin. Son accedidos a travs de un archivo especial llamado ndice, el cual est formado por dos campos: un apuntador(direccin) y el campo llave.Acceso.Son de rpido acceso cuando se accede a travs del campo llave.No pueden ser accedidos desde cinta debido a la naturaleza de estos.Su acceso puede ser secuencial indexadoDispositivos de acceso.Cualquier dispositivo de acceso, excepto cintas.

  • *Tpico 330 - File ProcessingEnvironment Division.Esta seccin describe el entorno que requiere el programa, as como caractersticas de los archivos tales como : nombre, localizacin y organizacin.Existen dos secciones:Configuration Section. Donde se especifican de forma informativa la computadora en se desarrolla y compila, as como la computadora donde se ejecuta:SOURCE-COMPUTER. OBJECT-COMPUTER.

  • *Tpico 330 - File ProcessingEnvironment Division (Cont.).Input-Output Section. Describe las caractersticas de cada uno de los archivos que sern usados por el programa tanto de entrada como de salida. Esto es definido en la subseccin de File Control:En archivos secuenciales:SELECT nombre-interno-archivoASSIGN TO nombre-externoORGANIZATION IS estructura-archivo [SEQUENTIAL]ACCESS MODE IS acceso-archivo. [SEQUENTIAL]En archivos de acceso directo (indexados):SELECT nombre-interno-archivoASSIGN TO nombre-externoORGANIZATION IS estructura-archivo [SEQUENTIAL, INDEXED]ACCESS MODE IS acceso-archivo [RANDOM, SEQUENTIAL]RECORD KEY IS llave-acceso.

  • *Tpico 330 - File ProcessingData Division.Reglas Nombres internos de archivos:El nombre asignado a cada archivo debe ser nico.Pueden contener slo letras, dgitos o guiones.Deben contener al menos un carcter de A - Z.No pueden contener guiones al inicio del nombre.La longitud mxima del nombre es de 30 caracteres.No puede ser una palabra reservada de COBOL

  • *Tpico 330 - File ProcessingData Division.En esta divisin se define con mayor detalle las caractersticas de los archivos utilizados por los programas.Esta divisin consta de dos secciones:FILE SECTION. Contiene informacin de cada uno de los archivos de entrada y salida que requiere el programa de acuerdo con lo siguiente.FD nombre-interno-archivo LABEL RECORDS ARE tipo-dispositivo [STANDARD, OMITTED] BLOCK CONTAINS n RECORDS [n, 0] RECORD CONTAINS n CHARACTERS [n] DATA RECORD IS name-record.01 name-record PIC X(##).

  • *Tpico 330 - File ProcessingData Division.FILE SECTION (Cont.)LABEL RECORDS ARE [STANDARD,OMITTED].Es usada para indicar si se tratan de discos cintas (STANDARD), o bien, si el archivo ser impreso (OMITTED).BLOCK CONTAINS n RECORDSIndica el nmero de registros que pueden ser ledos con un espacio entre cada registro (no bloqueados), o bien, en grupos con un espacio entre cada nmero determinado de registros (bloqueado). Esta definicin puede ser omitida, ya que slo puede ser indicada para archivos bloqueados. Se asigna 0 para que la que sea asignado por la maquina en el momento de la ejecucin.Para archivos que sern impresos se omite.

  • *Tpico 330 - File ProcessingData Division.Registros no bloqueados

    Registros bloqueadosESPACIORECORDRECORDRECORDRECORDRECORDRECORD3 REGISTROS3 REGISTROSESPACIO

  • *Tpico 330 - File ProcessingData Division.FILE SECTION (cont..)RECORD CONTAINS n CHARACTERSIndica el nmero de caracteres por registro.DATA RECORD IS name-record.Indica el nombre del registro asociado al archivo, puede ser opcional.La definicin de este registro se encuentra en la Working-Storage Section, en la parte de Record Layout.

    WORKING-STORAGE SECTION. En esta seccin se definen todos los datos que sern procesados por el programa y reserva espacio de memoria para dichos datos.

  • *Tpico 330 - File ProcessingDefinicin de datos.Definicin de datos. Los tipos de datos pueden ser:Numricos. Para nmeros. Se identifica a travs del caracter 9.Alfanumricos. Para letras, nmeros y smbolos especiales. Son identificados a travs del caracter X. Alfabticos. Utilizado para letras. Son identificados a travs del carcter A.Los datos son definidos con la clusula PIC seguida del tipo de dato y la longitud de este. Por ejemplo: 05 WS-NUMERO PIC 9(25). 05 WS-NOMBRE PIC X(25). 05 WS-NOMBRE PIC A(25).

  • *Tpico 330 - File ProcessingDefinicin de datos.La definicin de registro de datos puede ser realizada a travs de agrupacin de datos, los cuales se encuentran definidos por niveles. Por ejemplo:01 IN-EMP-REC. 05 IN-EMP-NUMPIC 9(5). 05 IN-EMP-NAME. 10 IN-EMP-NAM PIC X(6). 10 IN-EMP-APPPIC X(6). 05 IN-EMP-CODEPIC X(1).

    165432165432154321IN-EMP-REC5661Tamao del registro = 18 bytes1er. Nivel2do. Nivel3er. Nivel

    Nm. EmpleadoNombreC12345Molly Hayes1

  • *Tpico 330 - File ProcessingDefinicin de datos.Dcimales implcitos. Este tipo de datos no reservan memoria para el punto dcimal, con lo que no ocupa espacio.El punto dcimal implicto es indicado con V en los campos numricos. Por Ejemplo:

    05 IN-EMP-CODEPIC 9(3)V9951401

  • *Secciones en Working-Storage Section.Definicin del registro (Record Layout). Estructura de cada uno de los campos que forman los registros de los archivos tratados en el programa. Estos se encuentran mencionados a nivel de FD, en el nivel 01.

    Tpico 330 - File Processing

    ****************************************** DATA DIVISION ***************************************** DATA DIVISION. FILE SECTION. FD SEM-RPT-INPUT-FILE LABEL RECORDS ARE STANDARD BLOCK CONTAINS 0 RECORDS RECORD CONTAINS 37 CHARACTERS DATA RECORD IS INPUT-REC. 01 INPUT-REC PIC X(37). ******************************************* * WORKING-STORAGE SECTION ******************************************* WORKING-STORAGE SECTION. 01 WORKING-AREA. ******************************************* * RECORD LAYOUTS ******************************************* 05 IN-SEMINAR-REC. 10 IN-EMP-NUMBER PIC 9(5). 10 IN-EMP-NAME. 15 IN-NAME-FIRST PIC X(6). 15 IN-NAME-LAST PIC X(6). 10 IN-EMP-CODE PIC 9. 10 IN-EMP-PHONE PIC 9(7). 10 IN-EMP-CONTACT PIC X(12).

  • *Tpico 330 - File ProcessingSecciones en Working-Storage Section.Lneas y encabezados de reportes (Lines and Headings).Definicin de constantes /variables que integran cada una de las lneas que corresponden a los ttulos, cabeceras, lneas de detalle, totales, etc., de un reporte.

    ********************************************************* * WORKING-STORAGE SECTION ********************************************************* WORKING-STORAGE SECTION. 01 WORKING-AREA. ********************************************************* * REPORT LINES & HEADINGS ********************************************************* 05 REPORT-LINES. 10 RPT-HEADING1. 15 FILLER PIC X VALUE SPACES. 15 FILLER PIC X(3) VALUE 'RPT'. 15 FILLER PIC X(38) VALUE SPACES. 15 FILLER PIC X(19) VALUE 'TITULO'. 15 FILLER PIC X(71) VALUE SPACES.

  • *Tpico 330 - File ProcessingSecciones en Working-Storage Section.Flags/Switches.Elementos de datos condicionales que indican verdadero o falso.El nivel reservado para definir las condiciones de un switch es 88.Cada clusula debe ir acompaada con la palabra VALUE. ******************************************************* * WORKING-STORAGE SECTION * ******************************************************* WORKING-STORAGE SECTION. 01 WORKING-AREA. .... ******************************************************* * FLAGS AND SWITCHES * ******************************************************* 05 SWITCHES. 10 SW-END-OF-FILE PIC X. 88 END-OF-FILE VALUE 'Y'. 88 NOT-END-OF-FILE VALUE 'N'.

  • *Tpico 330 - File ProcessingSecciones en Working-Storage Section.Flags/Switches (Cont.)La condicin de un switch es activada mediante la instruccin SET. ****************************************************************** * 9910-READ-REG-EXP * ****************************************************************** 9910-READ-REG-EXP. INITIALIZE INPUT-REC. READ INPUT-FILE INTO WS-REGE-REG-EXP AT END SET END-OF-FILE TO TRUE. 9910-READ-REG-EXP-EXIT. EXIT.

  • *Tpico 330 - File ProcessingSecciones en Working-Storage Section.Contadores / Acumuladores.Se refieren a una variable usada guardar el contenido del conteo o adicin de elementos. **************************************************************** * WORKING-STORAGE SECTION * **************************************************************** WORKING-STORAGE SECTION. 01 WORKING-AREA. .... ****************************************************************** * COUNTERS AND ACCUMULATORS * ****************************************************************** 05 COUNTERS. 10 CTR-CUENTA-LINEAS PIC S9(2) COMP-3. 10 CTR-CUENTA-PAGINAS PIC S9(3) COMP-3. 05 ACCUMULATORS. 10 ACC-TOTAL-SALDO PIC S9(2) COMP-3. 10 ACC-TOTAL-CUENTA PIC S9(3) COMP-3.

  • *Tpico 330 - File ProcessingSecciones en Working-Storage Section.Constantes.Se refieren a una variable usada para guardar el contenido de un valor que nunca cambiar durante el proceso del programa.Estos son indicados con la sentencia VALUE, despus de haber especificado el PIC del contador o acumulador.En caso de que la constante sea una literal sta se pondr entre comillas simples. Por ejemplo: PGM380 **************************************************************** * WORKING-STORAGE SECTION * **************************************************************** WORKING-STORAGE SECTION. 01 WORKING-AREA. ****************************************************************** * LITERALS AND CONSTANTS * ****************************************************************** 05 CONSTANTS. 10 CTE-ADD-ONE PIC 9 VALUE 1. 10 CTE-MAX-IDX PIC 9(3) VALUE 100.

  • *Tpico 330 - File ProcessingDiagrama de Proceso para procesamiento de archivos y generacin de listados

    2000-Inicio(Housekeeping)- Apertura (OPEN) de archivos de entrada y salida- Incializacin de switches (SET sw-xxx TO TRUE)- Incializacin de variables de trabajo y lineas de detalle (INITIALIZE).- Lectura inicial de archivos (READ)

    1000-Principal (Mainline)

    3000-Proceso (Process)(UNTIL end-of-file) - Manipulacin de los datos ledos de archivos (MOVE xxxxx TO zzzzzz)

    - Escritura al archivo de salida (WRITE)

    - Lectura del siguiente registro (READ)

    8000-Fin(Wrap-up)- Cierre de archivos usados por el programa (CLOSE)

  • *Tpico 330 - File ProcessingSentencia: PERFORMSu funcin es pasar el control a un prrafo especfico. Despus de ejecutar las instrucciones de aquel prrafo, el control es devuelto al prrafo que realiz la llamada.

    Esta sentencia es acompaada de la clusula THRU, la cual permite identificar la ltima lnea a ejecutar del prrafo.

    Para indicar el final del prrafo se utiliza la clusula EXIT.

    PERFORM nombre-parrafo THRU nombre-prrafo-EXIT.

  • *Sentencia: PERFORM (Cont.)Tpico 330 - File ProcessingPasa el controlDevuelveEl control

    1000-MAINLINE.

    PERFORM 2000-HOUSEKEEPING THRU 2000-HOUSEKEEPING-EXIT. PERFORM 2000-PROCESS THRU 2000-PROCESS-EXIT. ... ... 2000-HOUSEKEEPING.

    OPEN INPUT INPUT-FILE OUTPUT OUTPUT-FILE.

    READ INPUT-FILE INTO WS-INPUT-FILE AT END SET END-OF-FILE TO TRUE.

    2000-HOUSEKEEPING-EXIT. EXIT.

  • *Sentencia: PERFORM La clusula UNTIL es utilizada por la sentencia PERFORM para indicar que el prrafo debe ser ejecutado hasta cumplir una determinada condicin.

    PERFORM nombre-parrafo THRU nombre-parrafo-EXIT UNTIL condicion.Por ejemplo:

    PERFORM 2100-INIT-TABLE THRU 2100-INIT-TABLE-EXIT UNTIL WS-CONTADOR EQUAL TO CTE-CINCO.Tpico 330 - File Processing

  • *Sentencia: OPEN La sentencia OPEN permite abrir los archivos que requiere un programa adems de :

    Indicar al sistema cules son los archivos que sern accedidos por el programaIdentificar cules archivos sern usados para entrada de datos y cules sern archivos de salida de datos.

    Generalmente es codificada al inicio del programa.Su sintaxis es:Archivos de lectura OPEN INPUT nombre-archivo Archivos de escritura OPEN OUTPUT nombre-archivo Adicin de registros OPEN EXTEND nombre-archivoTpico 330 - File Processing

  • *Sentencia: OPEN En caso de tener varios archivos de lectura o escritura se codificara as:

    Tpico 330 - File Processing

    LECTURAESCRITURAOPEN INPUT File-name1 File-name2 File-name3 . . File-namen.OPEN OUTPUT File-name1 F ile-name2 File-name3 . . File-namen.

    LECTURA-ESCRITURAOPEN INPUT File-name1 File-name2 File-name3 OUTPUT File-nameX . . File-namen.

  • *Sentencia: INITIALIZEPermite la inicializacin de campos ya sea de grupo o elementales.Los campos alfanumricos son inicializados con espacios.Los campos numricos son inicializados con ceros.Su sintaxis: INITIALIZE nombre-campo

    Tpico 330 - File Processing

    05 WS-CLIENTE. 10 WS-CODIGO PIC 9(5). 10 WS-NOMBRE PIC X(30).INITIALIZE WS-CLIENTE. INITIALIZE WS-CODIGO WS-NOMBRE.

  • *Sentencia: MOVELa sentencia MOVE coloca una copia del dato contenido en un campo-1 a un campo-2.Su sintaxis: MOVE campo-1 TO campo-2

    Por ejemplo:

    Tpico 330 - File Processing

    Campos elementalesCampos a nivel grupoMOVE campo-1 TO campo-2 campo-3 campo-4.MOVE grupo-1 TO grupo-2.

  • *Sentencia: MOVE (Cont.)El truncamiento de los datos depende de la longitud del campo al que son informados:Los campos alfanumricos son alineados hacia la derechaLos campos numricos son alineados hacia la izquierdaEjemplo1.Cuando el campo receptor es ms pequeo

    Tpico 330 - File Processing

    AlfanumricosNumricosWS-NOMBRE PIC X(5).

    RPT-NOMBRE PIC X(3). WS-CODIGO PIC 9(5).

    RPT-CODIGO PIC 9(3).

    CARLA

    CAR

    54321

    321

  • *Sentencia: MOVE (Cont.)Ejemplo 2.Cuando el campo receptor es ms grande

    Tpico 330 - File Processing

    AlfanumricosWS-NOMBRE PIC X(5).

    RPT-NOMBRE PIC X(8).

    NumricosWS-CODIGO PIC 9(5).

    RPT-CODIGO PIC 9(8).

    CARLA

    CARLA

    54321

    00054321

  • *Sentencia: MOVE (Cont.)Ejemplo 3.Cuando el campo que enva es un numrico con decimales implcitos y el que recibe es un numrico con dos decimales.

    Tpico 330 - File Processing

    NumricosWS-IMPLICITO PIC 9(2)V99.

    WS-DECIMAL PIC 9(2).99.

    2345

    23.45

  • *Sentencia: READPermite leer los registros de un archivo.Su sintaxis:READ nombre-archivo INTO nombre-registroAT END SET END-OF-FILE TO TRUE.La sentencia READ lee el registro del archivo especificado cuyo nombre es el mismo que el asignado en la seccin de FD.Los datos del registro son transferidos a travs de la sentencia INTO en la definicin del registro que ha sido definido en la WS para el archivo.Para controlar el fin de archivo en base a una condicin es utilizada la clusula AT END. Tpico 330 - File Processing

  • *Sentencia: READ (Cont.)Ejemplo :

    READ INPUT-FILE INTO REC-INPUT AT END SET END-OF-FILE TO TRUE. Tpico 330 - File Processing

    DATA DIVISION.FILE SECTION.******************************** INPUT FILE ********************************FD INPUT-FILE LABEL RECORDS ARE STANDARD BLOCK CONTAINS 0 RECORDS RECORDS CONTAINS 37 CHARACTERS DATA RECORD IS INPUT-REC.01 INPUT-REC X(37).WORKING-STORAGE SECTION.01 WS-WORK-AREA.****************************************** RECORD LAYOUT *****************************************+ 05 REC-INPUT. 10 REC-NUMBER PIC 9(5). 10 REC-NAME PIC X(12). 10 REC-CODE PIC 9. 10 REC-PHONE PIC 9(7). 10 REC-CONTACT PIC X(12).

  • *Sentencia: WRITE (Cont.)Esta sentencia permite escribir el contenido de la memoria a un dispositivo de salida (archivo, cinta, etc.).Sintaxis: WRITE OUTPUT-REC

    A travs de esta sentencia se puede escribir el contenido de un registro a un dispositivo de salida (archivo, cinta, etc.).Su sintaxis:WRITE OUTPUT-REC FROM REC-DATATpico 330 - File Processing

  • *Sentencia: WRITE (Cont.)La clusula AFTER ADVANCING es usada con el WRITE para el control de lneas de espaciamiento antes de imprimir la siguiente lnea del reporte o comenzar a imprimir en una nueva pgina.Su sintaxis:WRITE OUTPUT-REC FROM REC-DATA AFTER ADVANCING [ n LINES] [PAGE]

    Tpico 330 - File Processing

  • *Sentencia: WRITE (Cont.) MOVE REC-INPUT TO RPT-LINE

    WRITE OUTPUT-REC FROM RPT-LINE AFTER ADVANCING WS-TWO LINES. Tpico 330 - File Processing

    DATA DIVISION.FILE SECTION.******************************** OUTPUT FILE ********************************FD OUTPUT-FILE LABEL RECORDS ARE OMITTED RECORDS CONTAINS 132 CHARACTERS DATA RECORD IS OUTPUT-REC.01 OUTPUT-REC X(132).WORKING-STORAGE SECTION.01 WS-WORK-AREA.***************************************** REPORT LINES AND HEADINGS **************************************** 05 RPT-LINE PIC X(132).

  • *Sentencia: CLOSEEsta sentencia permite cerrar los archivos de entrada y salida usados durante el proceso del programa.Su sintaxis:CLOSE file-name1 file-name2 file-namen.Ejemplo: CLOSE INPUT-FILE OUTPUT-FILE.Tpico 330 - File Processing

  • *Mdulo Bsico

    Tpico 310 - Coding a COBOL ProgramTpico 320 - Editing a ProgramTpico 330 - File ProcessingTpico 340 - Formatting Data Tpico 350 - COBOL Arithmetic and Program LogicTpico 360 - Multimodular Programming and CopybooksTpico 370 - Table ProcessingTpico 380 - Galaxy Expense Processing System

  • *Tpico 340 - Formatting DataOBJETIVOS.Distinguir entre un dato variable y un dato constante.Usar herramientas especiales de edicin para hacer la informacin del reporte ms fcil de leer y entender.Transformar un dato no formateado en uno usado para la lnea de un reporte.Explicar el proceso del flujo de un programa que lee un registro a partir de un archivo, formatea los datos y genera un reporte.Explicar el propsito de la funcin de la clusula REDEFINES.

  • *Tpico 340 - Formatting DataTipos de lneas en un reporteTtulos/HeadingsLneas deDetalleLnea de mensajesLneas deTotalesSubttulos/Subheadings

    PGM999 REPORTE DE EMPLEADOS 15/05/02NOMBREPUESTOCOMPAA CLIENTE_ CODIGO _GASTOS_LARA CARLOSPBANCOBANCOMERX9889$ 765.13LOPEZ RAFAELSJC PENNYJ8181$ 123.48MENDEZ ANAPHOSPITALIMSSI7878$ 763.00SALGADO MARIASJC PENNYJ8181$ 825.98TOTAL$2,477.59

    *** FIN DE REPORTE ***

  • *Tpico 340 - Formatting DataTipos de informacin en un reporte.Constante. El valor del dato no cambia durante el tiempo de ejecucin. Por ejemplo, ttulos, subttulos, etc.La declaracin de constantes est dada a travs de las clusulas FILLER y VALUE en la Working-Storage. Por ejemplo: 05 REPORT-LINES. 10 RPT-HEADING1. 15 FILLER PIC X VALUE SPACES. 15 FILLER PIC X(6) VALUE 953940. 15 FILLER PIC X(38) VALUE SPACES. 15 FILLER PIC X(17) VALUE 'REPORTE DE PRUEBA'. 15 FILLER PIC X(70) VALUE SPACES.

  • *Tpico 340 - Formatting DataTipos de informacin en un reporte.Existen algunas clusulas simblicas que permiten asignar valores de acuerdo a la naturaleza del campo:Asignar espacios a todas las posiciones de un campo alfanumrico: SPACE, SPACESAsigna ceros a todas las posiciones de un campos numrico: ZERO, ZEROS, ZEROES.La clusula VALUE ALL permite indicar que el valor asignado ocupar todas las posiciones del campo. 05 REPORT-LINES. 10 RPT-SUBHEADING1. 15 FILLER PIC X VALUE SPACES. 15 FILLER PIC X(15) VALUE ALL '-. 15 FILLER PIC 9(6) VALUE ZEROES.

  • *Tpico 340 - Formatting DataTipos de informacin en un reporte.Variable.Cambia su informacin durante la ejecucin del programa, por ejemplo, las lneas de detalle, los totales, etc.Los datos variables no pueden ser asignados a un FILLER.No se asigna generalmente un valor a los datos variables.

  • *Tpico 340 - Formatting DataEdicin de campos.

    Tipo de edicinCampo fuenteEdicionCampo sineditarCampo editadoEdicin de DecimalesPIC 9(999)V99PIC 999.9908457084.57Eliminacin de ceros a la izquierdaPIC 99999.99PIC ZZZZ9.9900544.75544.75ComasPIC 9(7)V99PIC Z,ZZZ,ZZ9.99000056788473500991000455679055754907567.884,735,009.004,556.79557,549.07Signo $ fijoPIC 9(7)V99PIC $Z,ZZZ,ZZ9.99000056788473500991000455679055754907$ 567.88$4,735,009.00$ 4,556.79$ 557,549.07

  • *Tpico 340 - Formatting DataEdicin de campos.

    Tipo de edicinCampo fuenteEdicionCampo sineditarCampo editadoSigno $ flotantePIC 9(7)V99PIC $$,$$$,$$9.99000056788473500991000455679055754907$567.88$4,735,009.00$4,556.79$557,549.07Adicin de cerosPIC 9(4)PIC Z,ZZ9,000005454,000Insercin de blancosPIC 9(6)PIC 99B99B9901019106019201 01 9106 01 92 Adicin de Signo +PIC S9(4)PIC +Z,ZZ9+3456+0005-0032+3,456+ 5- 32PIC S9(4)PIC Z,ZZ9++3456+0005-00323,456+ 5+32-

  • *Tpico 340 - Formatting DataEdicin de campos.

    Tipo de edicinCampo fuenteEdicionCampo sineditarCampo editadoAdicin de Signo +(Cont.)PIC S9(4)PIC ++,++9+3456+0005-0032+3,456 +5-32Adicin de Signo -PIC S9(4)PIC -Z,ZZ9+3456+0005-00323,456 5- 32PIC S9(4)PIC Z,ZZ9-+3456+0005-00323,456 5 32-PIC S9(4)PIC --,--9+3456+0005-00323,456 5-32

  • *Tpico 340 - Formatting DataEdicin de campos.

    Tipo de edicinCampo fuenteEdicionCampo sineditarCampo editadoAdicin de smbolos contables:CR - PositivoDB - NegativoPIC S9(4)V99PIC $Z,ZZ9.99CR+164589-164589$1,645.89CR $1,645.89 PIC S9(4)V99PIC $Z,ZZ9.99DB+164589-164589 $1,645.89$1,645.89DBPIC S9(4)V99PIC $Z,ZZ9.99BCR+164589-164589 $1,645.89 CR $1,645.89 PIC S9(4)V99PIC $Z,ZZ9.99BDB+164589-164589 $1,645.89 $1,645.89 DBAsteriscosPIC S9(5)V99PIC $**,***.**

    ERROR ERROR00000000005380037475014855001234567 $********* $****53.80 $*3,747.50 $*4,855.00 $*2,345.67

  • *Tpico 340 - Formatting DataEdicin de campos.Consideraciones importantes en la edicin de datos:En la eliminacin de ceros y signo $.Un campo no puede contener slo Z $Las Zs y $ no pueden ser codificados a la derecha de un 9 punto decimal.El campo debe contener al menos un caracter 9 a la derecha del signo $.Insercin de blancosPueden ser usados para campos numricos y alfanumricosSignos + y -Cuando se coloca en el formato del campo el signo +, se imprime + si el valor es positivo y - si el valor es negativo. Cuando se coloca en el formato del campo el signo - ste slo es impreso en valores negativos. Signos CR y DBEl signo CR aparece slo cuando el valor es positivo y el DB slo cuando se trata de una cantidad negativa.

  • *Edicin de campos.Consideraciones importantes en la edicin de datos:Asteriscos.Pueden ser codificados a la derecha del punto decimal. Los asteriscos aparecern an cuando el valor sea cero.Las comas son reemplazadas por asteriscos.Pueden llegar a truncar un dgito del campo, ya que siempre imprimir al menos un asterisco. Tpico 340 - Formatting Data

  • *Clusula: REDEFINESEsta clusula es usada para conservar el espacio de memoria, usando mas de una definicin de registro para representar el mismo espacio de memoria.Los campos pueden ser redefinidos por campos a su mismo nivel y no pueden ser utilizados en niveles 88.No se les puede asignar clusulas VALUE.Su sintaxis: campo-2 REDEFINES campo-1Tpico 340 - Formatting Data

    NOMBRETITULOINDUSTRIA

    NOMBRETITULOCVE_CLIENTECLIENTEESTATUSGASTOS

  • *Clusula: REDEFINES

    ************************************************************* RECORD LAYOUTS ************************************************************* 10 EMP-REC. 15 EMP-NOMBRE PIC X(12). 15 EMP-TITULO PIC X. 15 EMP-INDUSTRIA PIC X(29). 10 PTR-REC REDEFINES EMP-REC. 15 PTR-NOMBRE PIC X(12). 15 PTR-TITULO PIC X. 15 PTR-CVE-CLIENTE PIC X(8). 15 PTR-CLIENTE PIC X(1O). 15 PTR-ESTATUS PIC X(6). 15 PTR-GASTOS PIC 9(3)V99.Tpico 340 - Formatting Data

  • *Creacin del formato de un reporte.Procesos principales para la creacin de un reporte.Lectura del archivo de entrada. En donde se lee el registro de entrada al campo campos que definen dicho registro.Edicin o formateo de los campos. Lo cual involucra mover cada campo del registro de entrada a su correspondiente campo en la lnea de detalle del reporte.Impresin del reporte. Involucra la escritura de la lnea de detalle del reporte.Tpico 340 - Formatting Data

  • *

    Tpico 310 - Coding a COBOL ProgramTpico 320 - Editing a ProgramTpico 330 - File ProcessingTpico 340 - Formatting Data Tpico 350 - COBOL Arithmetic and Program LogicTpico 360 - Multimodular Programming and CopybooksTpico 370 - Table ProcessingTpico 380 - Galaxy Expense Processing System.Mdulo Bsico

  • *OBJETIVOS.Describir qu es un campo compactado, cundo y cmo usarlo.Codificar correctamente campos numricos (display, signados y compactados)Describir el uso de los comandos: ADD, SUBSTRACT, MULTIPLY, DIVIDE, COMPUTE.Definir y distinguir entre estructuras alternativas e iterativasCodificar estructuras iterativasExplicar la lgica de los IF anidados.Tpico 350 - COBOL Arithmetic and Program Logic

  • *Campos numricos.Tipos de campos numricos.Display. Impresos en pantallas, reportes.Tpico 350 - COBOL Arithmetic and Program Logic

    Formato de campoEjemploMemoria OcupadaPIC 99PIC 99VPIC 9(3)V992525321352 bytes2 bytes5 bytes

  • *Campos numricos.Tipos de campos numricos.Signados.Presentan el carcter S el cual indica la presencia de un signo de operacin. Pueden tomar valores positivos o negativos.

    Regularmente son usados para clculos o procesos internos.Tpico 350 - COBOL Arithmetic and Program Logic

    Formato de campoValor AlmacenableMemoria OcupadaPIC S99PIC S99VPIC S9(3)V99+25-25+321.352 bytes2 bytes5 bytes

  • *Campos numricos.Tipos de campos numricos.Signados (Cont.)Reservan un espacio en memoria para el signo, sin embargo, el campo sigue ocupando la misma cantidad de memoria.

    Por ejemplo : Tpico 350 - COBOL Arithmetic and Program Logic

    Valor a guardar : -9385Definicin: S9(6)Representacin: 00938N

    Valor del signo en HexadecimalValorPositivoNegativo0123456789{ABCDEFGHI}JKLMNOPQR

  • *Campos numricos.Tipos de campos numricos.Compactados.Contienen dos dgitos por espacio de memoria o espacio de almacenamiento. Son usados para clculos aritmticos.Tpico 350 - COBOL Arithmetic and Program LogicTotal bytes de memoria = 4 (No. Dgitos + 1) / 2

    Valor a guardar : -12345.67Definicin: S9(5)V99 COMP-3Representacin: 4V}

    1357246D

  • *Campos numricos.Tratamiento de datos entre campos numricos.El mover valores entre campos numricos, implica que si uno de los campos es signado, el otro tambin lo sea, ya que de lo contrario se truncara el signo, o bien se asumira +.Tpico 350 - COBOL Arithmetic and Program Logic

    PIC S9(3) PIC +999MOVE CAMPO-ORIGEN TO CAMPO-RECEPTOR -025 -025 CORRECTO PIC S9(3) PIC 999MOVE CAMPO-ORIGEN TO CAMPO-RECEPTOR -025 025INCORRECTO PIC 9(3) PIC +999MOVE CAMPO-ORIGEN TO CAMPO-RECEPTOR 025 +025INCORRECTO

  • *Campos numricos.Tratamiento de datos entre campos numricos.No se puede mover a nivel de grupo, un campo numrico a uno compactado directamente.Tpico 350 - COBOL Arithmetic and Program Logic

    Definicin en Working Storage.Tratamiento en Procedure DivisionCorrecto /incorrecto10 WS-DATE. 05 WS-AA PIC 99. 05 WS-MM PIC 99. 05 WS-DD PIC 99.10 WS-DATE-COMP PIC 9(6) COMP-3.MOVE WS-DATE TO WS-DATE-COMPINCORRECTO

  • *Campos numricos.Tratamiento de datos entre campos numricos (Cont.)Tpico 350 - COBOL Arithmetic and Program Logic

    Definicin en Working Storage.Tratamiento en Procedure DivisionCorrecto /incorrecto10 WS-DATE. 05 WS-AA PIC 99. 05 WS-MM PIC 99. 05 WS-DD PIC 99.10 WS-DATE-TEMP PIC 9(6).10 WS-DATE-COMP PIC 9(6) COMP-3.MOVE WS-DATE TO WS-DATE-TEMPMOVE WS-DATE-TEMP TO WS-DATE-COMPCORRECTO10 WS-DATE. 05 WS-AA PIC 99. 05 WS-MM PIC 99. 05 WS-DD PIC 99.10 WS-DATE-RED REDEFINES WS-DATE PIC 9(6).10 WS-DATE-COMP PIC 9(6) COMP-3.MOVE WS-DATE-RED TO WS-DATE-COMPCORRECTO

  • *Verbos aritmticos.ADD. Adicin de valores. ADD campo-1 campo-2 campo-N TO campo-z

    SUBTRACT. Sustraccin de valores.SUBTRACT campo-1 campo-2 campo-N FROM campo-z

    MULTIPLY. Multiplicacin de valores. El resultado es almacenado en los campos especificados por la instruccin BY.MULTIPLY campo-1 BY factor-1 factor-2 factor-N Tpico 350 - COBOL Arithmetic and Program Logic

    MULTIPLYABYBC2310Resultado2620

  • *Verbos aritmticos.DIVIDE. Divisin de valores. DIVIDE dividendo BY divisor GIVING cociente

    DIVIDE divisor INTO dividendo-1 dividendo-2

    Tpico 350 - COBOL Arithmetic and Program Logic

    DIVIDEABYBGIVINGC1025

    DIVIDEAINTOB21025

  • *Verbos aritmticos.DIVIDE. Divisin de valores (cont). DIVIDE divisor INTO dividendo GIVING cociente REMAINDER residuoTpico 350 - COBOL Arithmetic and Program Logic

    DIVIDEAINTOBGIVINGCREMAINDERD52343

  • *Verbos aritmticos.GIVING. Asigna el valor de la operacin al campo especificado.

    ADD campo-1 TO campo-z GIVING campo-sumaSUBTRACT campo-1 FROM campo-z GIVING campo-restaMULTIPLY campo-1 BY factor-1 GIVING campo-multDIVIDE dividendo BY divisor GIVING cociente

    DIVIDE divisor INTO dividendo GIVING cociente REMAINDER residuo

    Tpico 350 - COBOL Arithmetic and Program Logic

  • *Verbos aritmticos.ROUNDED. Redondea el valor del clculo de la operacin. El valor es redondeado al siguiente superior cuando el valor truncado es mayor o igual a 5 El valor no es redondeado cuando el valor truncado es menor a 5 ADD campo-1 TO campo-z ROUNDED SUBTRACT campo-X FROM campo-z ROUNDEDMULTIPLY campo-1 BY fator GIVING campo-store ROUNDED

    Tpico 350 - COBOL Arithmetic and Program Logic

  • *Sentencia: COMPUTEEsta sentencia permite realizar operaciones aritmticas sin necesidad de recurrir a los verbos aritmticos.La sentencia COMPUTE utiliza los siguientes smbolos para especificar la operacin:+ Suma-Resta*Multiplicacin/Divisin**Exponenciacin( )Parntesis para jerarqua de operacionesTpico 350 - COBOL Arithmetic and Program Logic

  • *Sentencia: COMPUTELas prioridades de los signos para realizar las operaciones son:( )Parntesis**Exponenciacin * , / Multiplicacin, Divisin+, - Suma, RestaLas sentencias son evaluadas de izquierda a derecha dependiendo del operando.Ejemplos.COMPUTE A = A + B + CCOMPUTE A = (B*(C - D))

    Tpico 350 - COBOL Arithmetic and Program Logic

  • *Sentencia: COMPUTE USO DE COMPUTE USO DE VERBOS

    Tpico 350 - COBOL Arithmetic and Program Logic

    COMPUTE A = (B * (C - D))SUBTRACT D FROM C GIVING E

    MULTIPLY B * E GIVING A

  • *Estructuras lgicas Existen dos tipos de estructuras lgicas:Alternativas. Es una sentencia condicional con una o ms opciones. La opcin realizada depende de la condicin que resulte verdadera. Son codificadas con sentencias IF.Iterativas. Son sentencias condicionales que ocurren dentro de otra sentencia condicional.Las estructuras alternativas e iterativas se clasifican en los siguientes tipos:Simples. Se valida una condicin verdadera o falsa.Compuestas. Son aquellas que validan mas de una condicin antes de tomar una opcin. Cuando son usadas las clusulas AND y OR en estas estructuras se evalan todos los ANDs y despus los ORs de izquierda a derecha.Anidadas. Son estructuras alternativas / iterativas que tienen que realizar dentro de otra estructura alternativas /iterativas.

    Tpico 350 - COBOL Arithmetic and Program Logic

  • *Estructuras lgicas Estructuras Alternativas.

    Tpico 350 - COBOL Arithmetic and Program Logic

    Alternativas SimplesAlternativas AnidadasIF condicin-1 accinELSE accin-alternativaEND-IF.IF condicin-1 accin-1 IF condicin-2 accin-2 ELSE accin-3 END-IF END-IF.

    Alternativas CompuestasIF condicin-1 [AND, OR] condicin-2 accin-1ELSE accin-alternativaEND-IF.

  • *Estructuras lgicas Estructuras Alternativas - Clusulas.La sentencia NEXT SENTENCE indica la continuacin del proceso en la sentencia que se encuentra inmediatamente despus del siguiente punto, en caso de que la condicin no se cumpla.Esta sentencia es opcional.

    Tpico 350 - COBOL Arithmetic and Program Logic

    IF WS-A = CTE-CIEN ADD CTE-UNO TO ACC-TOTALELSE NEXT SENTENCEEND-IF.MOVE CTE-CIEN TO WS-A IF WS-A = CTE-CIEN ADD CTE-UNO TO ACC-TOTALEND-IF.MOVE CTE-CIEN TO WS-A

  • *Estructuras lgicas Estructuras Alternativas - Clusulas.La sentencia CONTINUE indica la continuacin del proceso en la siguiente sentencia que se encuentra. Esta sentencia es opcional.

    IF WS-A = CTE-CIEN IF SW-PRIMERA-VEZ PERFORM 9900-ESCRIBE-CAB THRU 9900-ESCRIBE-CAB-EXIT ELSE CONTINUE END-IF PERFORM 9800-ESCRIBE-DETALLE THRU 9800-ESCRIBE-DETALLE-EXITELSE MOVE ZEROES TO WS-BEND-IF.MOVE CTE-CIEN TO WS-ATpico 350 - COBOL Arithmetic and Program Logic

  • *Estructuras lgicas Estructuras Alternativas - Condiciones.Tipos de condiciones:Condiciones de nombre. Son aquellas que evalan si un elemento es verdadero o falso (switches)Condiciones de relacin. Se refiere a las condiciones que comparan un elemento con otro.Tpico 350 - COBOL Arithmetic and Program Logic

    AfirmativasNegativasGREATER THANLESS THANEQUAL TOGREATER THAN OR EQUAL TOLESS THAN OR EQUAL TO NOT GREATER THANNOT LESS THANNOT EQUAL TONOT GREATER THAN OR EQUAL TONOT LESS THAN OR EQUAL TO

  • *Estructuras lgicas Estructuras Alternativas - Condiciones.Condiciones de clase. Son aquellas usadas para datos que requieren ser validados antes de ser procesados. Se encuentran clasificadas en tres tipos:Numricas. Para caracteres numricos. IF field IS NUMERICAlfanumricas. Para caracteres alfanumricos tales como letras, nmeros y smbolos especiales, excepto algunos caracteres de control especiales.IF field IS ALPHANUMERICAlfabticas. Para caracteres alfabticos, espacios en blanco. Slo puede ser usado si el campo fue declarado como alfabtico.IF field IS ALPHABETICTpico 350 - COBOL Arithmetic and Program Logic

  • *Estructuras lgicas Estructuras Iterativas.Tpico 350 - COBOL Arithmetic and Program Logic

    Iterativas SimplesIterativas CompuestasPERFORM nombre-prrafo THRU nombre-prrafo-exit UNTIL condicin . PERFORM nombre-prrafo THRU nombre-prrafo-exit UNTIL condicin-1 [AND,OR] condicin-2 .

  • *Estructuras lgicas Estructuras Iterativas.PROCESO-CLIENTES PERFORM LECTURA-CLIENTE THRU LECTURA-CLIENTE-EXIT UNTIL END-OF-FILE.

    LECTURA-CLIENTE PERFORM DETALLE-CLIENTE THRU DETALLE-CLIENTE-EXIT UNTIL SW-CLIENTE-OK.

    DETALLE-CLIENTE PERFORM PROCESA-ORDENES THRU PROCESA-ORDENES-EXIT UNTIL NO-MAS-ORDENES

    Tpico 350 - COBOL Arithmetic and Program Logic

  • *Verbo EVALUATEEn el caso de requerir evaluar al mismo tiempo ms de tres condiciones distintas, es posible utilizar la sentencia EVALUATE.Sintaxis.EVALUATE [identificador-1/ TRUE] WHEN condicin-1 accin-1 WHEN condicin-2 accin-2 WHEN condicin-n accin-n WHEN OTHER accin-y END-EVALUATE.Tpico 350 - COBOL Arithmetic and Program Logic

  • *

    Tpico 310 - Coding a COBOL ProgramTpico 320 - Editing a ProgramTpico 330 - File ProcessingTpico 340 - Formatting Data Tpico 350 - COBOL Arithmetic and Program LogicTpico 360 - Multimodular Programming and CopybooksTpico 370 - Table ProcessingTpico 380 - Galaxy Expense Processing SystemMdulo Bsico

  • *OBJETIVOS.Descripcin y funcin de los programas multimodulares.

    Diferencia entre un programa no modular y un programa modular.

    Descripcin de comandos de control entre programas.

    Descripcin y funcin de copybooks.Tpico 360 - Multimodular Programming and Copybooks

  • *Programas Modulares.Caractersticas:Son programas que se encuentran divididos en funciones. No realizan todo su proceso dentro del mismo programa, ya que hacen uso de uno o ms programas para realizar ciertas funciones.

    Tipos de programas modulares.Programa principal (Calling program). Son aquellos que requieren de invocar a otro programa que realiza una funcin especfica.Subrutina o subprograma (Called program). Estos mdulos requieren de otro programa para realizar una funcin especfica y no pueden ser ejecutados por si mismos.

    Tpico 360 - Multimodular Programming and Copybooks

  • *Programas Modulares.Comunicacin entre mdulos.Tpico 360 - Multimodular Programming and CopybooksPGM A

    CALL SUBX USING PARMSSUBX

    GOBACKCALLING PROGRAMCALLED PROGRAM

  • *Programas Modulares.Comunicacin entre mdulos.Programa principal (Calling module). Se comunica a travs de la siguiente sentencia:

    CALL nombre-modulo USING parmetro-comunicacin1 parmetro-comunicacin2 parmetro-comunicacin3.

    Los parmetros de comunicacin son declarados en la Working Storage.

    Si la llamada a la rutina es en forma dinmica, el submodulo no es includo durante la compilacin del programa principal, con lo que no es necesario recompilar el programa principal por cada modificacin realizada a la rutina, a menos que esto involucre algn cambio en los parmetros de comunicacin. Tpico 360 - Multimodular Programming and Copybooks

  • *Programas Modulares.Comunicacin entre mdulos.Subrutina (Called module). Los parmetros de comunicacin son declarados en la Linkage Section, en donde slo se pasa la direccin de los datos y la informacin actual de estos.Se comunica a travs de la siguiente clusula en la cabecera de la Procedure Division:

    PROCEDURE DIVISION USING parmetro-comunicacin1 parmetro-comunicacin2 parmetro-comunicacin3.Devuelve el control al programa principal con la clusula GOBACK.Tpico 360 - Multimodular Programming and Copybooks

  • *Programas Modulares.Ventajas:Complejidad y tamao. Las funciones pueden ser organizadas en pequeos mdulos.Manejo del proyecto. Varios mdulos pueden ser programados al mismo tiempo.Mantenimiento. Cuando funciones son codificadas en mdulos separados, el cdigo de una funcin en particular se encuentra en un solo lugar.Consideraciones de lenguaje. Debido a que los lenguajes son traducidos a lenguaje maquina cuando son compilados, cada modulo puede ser codificado en el lenguaje ms apropiado. El uso de memoria. Un programa modular requiere menos memoria que un programa no modular.Desventajas:Cambios a los programas. Se requiere conocer el tipo de llamada que se tiene a los mdulos a partir de los programas principales, para no afectar los procesos que dependan de stos. Generacin excesiva de mdulos. En caso de no conocer completamente las funciones que existen pueden duplicarse mdulos.Tpico 360 - Multimodular Programming and Copybooks

  • *Copybooks.Un copybook es un pedazo de cdigo, que puede slo ser usado cuando es incluido como parte de un programa, conteniendo variables o funciones. Se encuentran almacenados en diversas libreras.No pueden ser ejecutados por ningn programa, ni por si mismos.Puede ser usado en la Working Storage o Procedure Division.Su sintaxis:COPY nombre-copybook.Sus ventajas:Reducen el tiempo de codificacin de programacinFcil mantenimiento ya que slo existe una sola copia del cdigoTpico 360 - Multimodular Programming and Copybooks

  • *Mdulo Bsico

    Tpico 310 - Coding a COBOL ProgramTpico 320 - Editing a ProgramTpico 330 - File ProcessingTpico 340 - Formatting Data Tpico 350 - COBOL Arithmetic and Program LogicTpico 360 - Multimodular Programming and CopybooksTpico 370 - Table ProcessingTpico 380 - Galaxy Expense Processing System

  • *Tpico 370 - Table ProcessingOBJETIVOS.Definir una tabla interna y externa en la Working Storage Section.

    Codificar la lgica de la carga de una tabla externa.

    Codificar la lgica para realizar una bsqueda serial y una bsqueda binaria en una tabla.

  • *Tpico 370 - Table ProcessingDefinicin de Tablas Una tabla es un conjunto de valores almacenados en una posicin de almacenamiento consecutivo y con un nombre de dato asignado.Componentes de una tabla:Entrada. Consiste de uno mas campos (rengln). Todas las entradas tienen el mismo nombre y son accedidas por su posicin relativa en la tabla.Indice. El cual mantiene la posicin relativa de la entrada que est siendo accedida.

    campoentrada

    Nm. de cuentaCuenta ClienteFecha apertura4567Jones, B.0703895847Kline, M.0706898977Zim, J.070989

    Indice123

  • *Tpico 370 - Table ProcessingDefinicin de TablasTablas internas.Son almacenadas en la memoria de los programas.Son codificadas dentro de los programas, cuando stas contienen pocos datos que raramente cambiarn.Los elementos necesarios para definir una tabla interna son:Los datos que contendr la tabla.Definicin de la tabla.Los verbos utilizados para la definicin de una tabla son:REDEFINESOCCURSINDEXED BY

  • *Tpico 370 - Table ProcessingDefinicin de TablasTablas internas (Cont.) Tabla de datos Definicin de la tabla en Working Storage

    MesDaEnero31Febrero28Marzo31Abril30Mayo31Junio30Julio31Agosto31Septiembre30Octubre31Noviembre30Diciembre31

    05 MESES. 10 FILLER PIC X(12) VALUE 'ENERO 31'. 10 FILLER PIC X(12) VALUE 'FEBRERO 28'. 10 FILLER PIC X(12) VALUE 'MARZO 31'. 10 FILLER PIC X(12) VALUE 'ABRIL 30'. 10 FILLER PIC X(12) VALUE 'MAYO 31'. 10 FILLER PIC X(12) VALUE 'JUNIO 30'. 10 FILLER PIC X(12) VALUE 'JULIO 31'. 10 FILLER PIC X(12) VALUE 'AGOSTO 31'. 10 FILLER PIC X(12) VALUE 'SEPTIEMBRE30'. 10 FILLER PIC X(12) VALUE 'OCTUBRE 31'. 10 FILLER PIC X(12) VALUE 'NOVIEMBRE 31'. 10 FILLER PIC X(12) VALUE 'DICIEMBRE 31'.

  • *Tpico 370 - Table ProcessingDefinicin de TablasTablas internas (Cont.)

    05 TABLA-MESES REDEFINES MESES. 10 MESES-ENTRADA OCCURS 12 TIMES INDEXED BY MESES-INDEX. 15 TBL-MES PIC X(10). 15 TBL-DIA PIC X(02).

    Los ndices son campos numricos, no pueden ser display ni compactados. Slo pueden ser usados con sentencias SET PERFORM.Inicializar un ndice: SET ndice TO 1.Incrementar un ndice: SET ndice UP BY 1.

  • *Tpico 370 - Table ProcessingDefinicin de TablasTablas externas.Son almacenadas fuera de los programas en discos y en otros medios externos.Son almacenadas externamente cuando: Son muy grandes. Contendrn informacin que cambia frecuentemente . Sern accedidas por otros programas.Cuando las tablas externas son usadas frecuentemente por el programa son cargadas en la Working Storage.

  • *Tpico 370 - Table ProcessingDefinicin de TablasTablas externas.

    05 TABLA-CUENTAS. 10 CUENTAS OCCURS 250 TIMES INDEXED BY CUENTAS-INDEX. 15 NUMERO PIC 9(04). 15 NUM-CLIENTE PIC X(15). 15 FECHA-APERTURA PIC 9(06)4567 Jones,B. 0703895847 Kline,M. 0706898977 Zim,J. 070989 . . . . . .

    Nm. de cuentaCuenta ClienteFecha apertura4567Jones, B.0703895847Kline, M.0706898977Zim, J.070989

  • *Tpico 370 - Table ProcessingDefinicin de TablasLgica de carga de una tabla externa.

  • *Tpico 370 - Table ProcessingDefinicin de TablasBeneficio del uso de tablas.El uso de tablas internas evita el acceso a datos desde un dispositivo externo, hacindolo ms eficiente en el caso de tratarse de una cantidad de datos pequea.

    El uso de tablas externas permite que ms de un programa pueda usarlas, reduciendo el tiempo de desarrollo y el esfuerzo de mantenimiento, adems de asegurar la integridad de la informacin que se maneja.

  • *Tpico 370 - Table ProcessingMtodos de bsquedas en tablasBsqueda Serial.Cada rengln de la tabla es accedido en forma secuencial hasta que el registro cumple con la condicin especificada o se llaga al fin de la tabla.Los datos de la tabla pueden encontrarse en cualquier orden.Al realizar una bsqueda secuencial, el ndice debe comenzar en 1.

    SET index TO 1.SEARCH entrada-tabla AT END accin-1WHEN condicin accin-2 END-SEARCH.

  • *Tpico 370 - Table ProcessingMtodos de bsquedas en tablasBsqueda Binaria.Este mtodo de bsqueda es utilizado en tablas muy grandes y slo cuando estn ordenadas por un campo llave en forma ascendente, descendente o llevan una secuencia especifica. Los argumentos son comparados con el valor del campo llave localizado a la mitad de la tabla. Durante ste proceso se va descartando la primera o segunda mitad de la tabla dependiendo del valor del argumento, hasta encontrar o finalizar la lectura.Reglas:La tabla debe estar ordenada de acuerdo al campo llave en forma ascendente o descendente.El valor del campo llave debe ser un valor numrico que permita usar un criterio de ascendente o descendente.La divisin de la tabla se hace de acuerdo a los renglones que contengan informacin.

  • *Tpico 370 - Table ProcessingMtodos de bsquedas en tablasBsqueda Binaria (Cont.)La definicin de la tabla tiene una clusula extra:[ASCENDING, DESCENDING] KEY IS campo-llave

    05 TABLA-CUENTAS. 10 CUENTAS OCCURS 250 TIMES ASCENDING KEY IS NUMERO INDEXED BY CUENTAS-INDEX. 15 NUMERO PIC 9(04). 15 NUM-CLIENTE PIC X(15). 15 FECHA-APERTURA PIC 9(06)

  • *Tpico 370 - Table ProcessingMtodos de bsquedas en tablasBsqueda Binaria (Cont.)En ste tipo de bsqueda no es necesario iniciar el ndice en 1, ya que la sentencia determina el valor de ste.

    SEARCH ALL entrada-tabla AT END accin-1WHEN condicin accin-2 END-SEARCH.

  • *Tpico 370 - Table ProcessingProcesamiento de Tablas. Para realizar la lectura secuencial de una tabla sin utilizar SEARCH, el proceso lgico sera:

  • *Tpico 370 - Table ProcessingProcesamiento de Tablas - Tablas bidimensionales. WORKING-STORAGE SECTION.. 01 REGION PIC 9(1).01 TRIMESTRE PIC 9(1).

    01 TABLA-VENTAS. 05 DATOS-TRIMESTRE OCCURS 4 TIMES. 10 DATOS-REGION OCCURS 4 TIMES. 15 IMPORTE PIC 9(5).

    PROCEDURE DIVISION......... PERFORM 1100-IMPRIMIR-TABLA THRU 1100-IMPRIMIR-TABLA-EXIT VARYING TRIMESTRE FROM 1 BY 1 UNTIL TRIMESTRE GREATER THAN CTE-FOUR ......1100-IMPRIMIR-TABLA. PERFORM 1120-MOVER-DATOS THRU 1120-MOVER-DATOS VARYNG REGION FROM 1 BY 1 UNTIL REGION GREATER THAN CTE-FOUR

    MOVE IMPORTE(TRIMESTRE,REGION) TO SALIDA.

    REGIONTRIMESTRE12341234

  • *Tpico 370 - Table ProcessingProcesamiento de Tablas - Tablas bidimensionales.Reglas de uso para la clusula OCCURS:La clusula OCCURS no puede usarse con elementos a nivel 77.El mximo de ocurrencias permitido hasta el momento son 7 dimensiones.Los subndices pueden ser constantes enteras o variables enteras. Sus valores deben ser positivos; no pueden ser cero o negativo.Los subndices deben estar dentro de parntesis y deben estar separados por comas.

  • *Mdulo Bsico

    Tpico 310 - Coding a COBOL ProgramTpico 320 - Editing a ProgramTpico 330 - File ProcessingTpico 340 - Formatting Data Tpico 350 - COBOL Arithmetic and Program LogicTpico 360 - Multimodular Programming and CopybooksTpico 370 - Table ProcessingTpico 380 - Galaxy Expense Processing System

  • *Tpico 380 - Galaxy Expense Processing System OBJETIVOS.Aprender la funcionalidad de un programa batch.

    Identificar la entradas y salidas de un programa en COBOL.

    Codificacin de programas batch.

    Manejo de archivos indexados.

  • *Tpico 380 - Galaxy Expense Processing System Archivos Indexados.Se encuentran organizados por un rea de ndices y otra de datos, haciendo referencia a un campo clave.

    El acceso a los registros se realiza localizando en el ndice la posicin de memoria, para despus acceder a sta y encontrar el registro correspondiente, sin necesidad de recorrer toda el rea de datos.

    SELECT nombre-interno-archivo ASSIGN TO nombre-externo ORGANIZATION IS INDEXED ACCESS MODE IS [RANDOM, SEQUENTIAL] RECORD KEY IS llave-acceso. El almacenamiento de los archivos indexados es realizado slo en discos.

  • *Tpico 380 - Galaxy Expense Processing System Archivos Indexados.El nombre del campo llave debe estar definido en el registro de FD.

    FD nombre-interno-archivo LABEL RECORDS ARE STANDARD BLOCK CONTAINS 0 RECORDS RECORDS CONTAINS n CHARACTERS.01 nombre-lgico-registro. 05 llave-acceso PIC X(##). 05 FILLER PIC X(##).

    El total de caracteres n debe ser igual a la suma de la longitud de los campos definidos en el nombre lgico del registro.

  • *Tpico 380 - Galaxy Expense Processing System Archivos Indexados.Modo de acceso SECUENCIAL.Mientras que los archivos secuenciales son ledos de acuerdo al orden en que fueron escritos, los archivos indexados son ledos en el orden determinado por el campo clave, primero es ledo el campo clave ms pequeo.En el modo de acceso SECUENCIAL slo se permite apertura de INPUT, OUTPUT .La apertura de INPUT en modo de acceso SECUENCIAL de archivos indexados se realiza de la siguiente forma: READ nombre-archivo-interno INTO nombre-lgico-registro AT END SET END-OF-FILE TO TRUE. El final del archivo se detecta en el ndice y no en los datos.

  • *Tpico 380 - Galaxy Expense Processing System Archivos Indexados.Modo de acceso SECUENCIAL (Cont.).En caso de querer posicionarse a partir de un valor de ndice especfico se utiliza la sentencia START. START nombre-archivo-interno KEY [=,>,=] dato-clave INVALID KEY accin.La apertura de OUTPUT en modo de acceso SECUENCIAL se realiza: WRITE nombre-archivo-interno FROM detalle-datos INVALID KEY accin.

  • *Tpico 380 - Galaxy Expense Processing System Archivos Indexados.Modo de acceso RANDOM.Los archivos indexados con acceso RANDOM permiten recuperar cualquier registro indicando slo el valor de la clave a buscar.Slo se permite de apertura INPUT, OUTPUT, I-O .La apertura de INPUT slo permite la lectura de los registros, con lo que en modo de acceso RANDOM de archivos indexados se realiza: MOVE valor-campo-llave TO llave-acceso.READ nombre-archivo-interno INTO nombre-lgico-registro AT END SET END-OF-FILE TO TRUE.

  • *Tpico 380 - Galaxy Expense Processing System Archivos Indexados.Modo de acceso RANDOM (Cont.).La adicin en apertura de I-O se realiza:MOVE valor-campo-llave TO llave-acceso.WRITE nombre-archivo-interno FROM detalle-datos INVALID KEY accin.Al adicionar el registro, se realiza una bsqueda automtica sobre el ndice, para localizar la posicin donde se deba aadir el nuevo registro, comprobando adicionalmente que la clave no se encuentre duplicada.

  • *Tpico 380 - Galaxy Expense Processing System Archivos Indexados.Modo de acceso RANDOM (Cont.).La modificacin en apertura I-O se realiza:MOVE valor-campo-llave TO llave-acceso.REWRITE nombre-archivo-interno FROM detalle-datos INVALID KEY accin.El borrado en apertura I-O se realiza:MOVE valor-campo-llave TO llave-acceso.DELETE nombre-archivo-interno INVALID KEY accin.

  • *Tpico 380 - Galaxy Expense Processing System Archivos Indexados.Modo de acceso RANDOM (Cont.).La lectura en apertura I-O se realiza:MOVE valor-campo-llave TO llave-acceso.READ nombre-archivo [INTO layout-registro] INVALID KEY accin.

  • *Tpico 380 - Galaxy Expense Processing System Codificacin de un programa batch que realizar lo siguiente:Lee un archivo de gastos (Expense Transaction) en el que se valida lo siguiente:La existencia de cada uno de estos registros en el archivo de registro de gastos (Registrant Expense).El formato de cada uno de los campos que integra el registro del archivo de gastos.La existencia del cdigo de gasto y nmero de registro en los archivos Expense Decode y Registrant Expense respectivamente.Se genera de salida un archivo de errores y se modifica el archivo Registrant Expense con la informacin del archivo expense Transaction.

  • *

    Mdulo Especfico

  • *Mdulo Especfico

    Tpico 410 - Data Storage & Data Base Management System

    Tpico 420 - Accesing Data in a Data Base

    Tpico 430 - Accessing Data from within a Program.

    Estndares de programacin SQL.

  • *Tpico 410 - Data Storage & Data Base Management SystemOBJETIVOS.Definir una Base de Datos.Identificar los diferentes tipos de Bases de Datos.Definir un Sistema Manejador de Base de Datos.Describir funciones, ventajas y desventajas de un Manejador de Base de Datos.Describir las ventajas de una Base de datos relacional.Explicar las caractersticas bsicas del Sistema Manejador de Bases de Datos DB2.

  • *Tpico 410 - Data Storage & Data Base Management SystemSistemas Manejadores de Bases de Datos y Bases de Datos.Conceptos.Base de Datos. Coleccin de archivos que contienen datos.

    Manejador de Base de datos (DBMS). Es un grupo de programas especialmente escritos que pueden localizar datos existentes en una Base de datos.

  • *Tpico 410 - Data Storage & Data Base Management SystemSistemas Manejadores de Bases de Datos y Bases de Datos.Tipos de Organizacin.Fsica.Los datos deben ser almacenados en una posicin especifica de la Base de Datos.Los datos tienen un tamao asociado, el cual debe ser tomado en cuenta cuando son almacenados. Ejemplo:

    DatosLibros de una bibliotecaPosicin de los datos dentro de la base da datosPiso o ubicacin donde se encuentra el libro.Tamao de los datos (nmero de bytes)Caractersticas fsicas del libro

  • *Tpico 410 - Data Storage & Data Base Management SystemSistemas Manejadores de Bases de Datos y Bases de Datos.Tipos de Organizacin.Fsica (cont.)El almacenamiento de las bases de datos es externa a la Working Storage de un programa COBOL.Las principales caractersticas del almacenamiento externo de datos son:Pueden ser accedidos rpidamente.El acceso a los datos puede ser limitado a los datos que slo quieran consultarse.Acceder a ciertos datos que puedan ser restringidos a los usuarios.Requiere menos espacio de memoria en la Working Storage.La informacin se encuentra disponible para mltiples usuarios.

  • *Tpico 410 - Data Storage & Data Base Management SystemSistemas Manejadores de Bases de Datos y Bases de Datos.Tipos de Organizacin.Lgica. Se refiere a las relaciones lgicas entre los datos que estn siendo almacenados en la Base de datos, sin necesidad de conocer su actual posicin en memoria o fsica en la Base de datos.Elementos de la Organizacin lgica:Entidad. Trmino usado para refererirse a un objeto en particular que es representado en una Base de datos.Relacin. Es la correspondencia que existe entre las Bases de Datos. Ocurrencias. Mientras una entidad se refiere a un objeto almacenado en una base de datos, las ocurrencias se refieren a una entidad especifica.

  • *Tpico 410 - Data Storage & Data Base Management SystemSistemas Manejadores de Bases de Datos y Bases de Datos.Tipos de Organizacin.Lgica (cont.)

  • *Tpico 410 - Data Storage & Data Base Management SystemSistemas Manejadores de Bases de Datos y Bases de Datos.Tipos de Organizacin.Lgica (cont.)

  • *Tpico 410 - Data Storage & Data Base Management SystemSistemas Manejadores de Bases de Datos y Bases de Datos.Tipos de Organizacin.Lgica (cont.) Representacin de una entidad que pertenece a otra entidad.

  • *Tpico 410 - Data Storage & Data Base Management SystemSistemas Manejadores de Bases de Datos y Bases de Datos.Tipos de Relaciones entre entidades.Uno a uno. Significa que a un padre le pertenece un hijo.

  • *Sistemas Manejadores de Bases de Datos y Bases de Datos.Tipos de Relaciones entre entidades.Uno a muchos. Esta relacin existe cuando a un padre le pertenece ms de un hijo, y cada hijo tiene slo un padre.Tpico 410 - Data Storage & Data Base Management System

  • *Sistemas Manejadores de Bases de Datos y Bases de Datos.Tipos de Relaciones entre entidades.Muchos a muchos. Esta relacin existe cuando a un padre le pertenecen ms de un hijo, y cada hijo le corresponden mltiples padres.Tpico 410 - Data Storage & Data Base Management System

  • *Sistemas Manejadores de Bases de Datos y Bases de Datos.Tipos de Bases de Datos.Las bases de datos se catalogan de acuerdo al tipo de relacin que existe entre sus datos.JerrquicasNetworkRelacionalTpico 410 - Data Storage & Data Base Management System

  • *Sistemas Manejadores de Bases de Datos y Bases de Datos.Tipos de Bases de Datos.Jerrquicas. Este tipo de base de datos, establece una relacin de arriba - abajo entre los datos. Esta basada en una relacin uno a uno o uno a muchos.

    Tpico 410 - Data Storage & Data Base Management System

  • *Sistemas Manejadores de Bases de Datos y Bases de Datos.Tipos de Bases de Datos.Desventajas del tipo de Bases de Datos jerrquicas. Estructura rgida. Estructura Compleja. Las relaciones son limitadas. Tpico 410 - Data Storage & Data Base Management System

  • *Sistemas Manejadores de Bases de Datos y Bases de Datos.Tipos de Bases de Datos.Red (Network). Este tipo de base de datos, no restringe la relacin por lo que pueden establecerse relaciones desde uno a uno, uno a muchos y muchos a muchos.El trmino de relacin owner-member, es el mismo concepto de la relacin padre-hijo.El modelo de Red es ms flexible que el jerrquico ya que permite la relacin muchos a muchos, adems de ser apropiada para el rpido procesamiento de altos volmenes de informacin. FrancsSaln 233Hora 12:00BiologaSaln 405Hora 18:00Tpico 410 - Data Storage & Data Base Management SystemArteSaln 12BHora 09:00MikeBenMatemticasSaln 202Hora 15:00ComputadorasSaln 122Hora 08:00DanJulieQumicaSaln 506Hora 13:00

  • *Sistemas Manejadores de Bases de Datos y Bases de Datos.Tipos de Bases de Datos.Desventajas.No permite la manipulacin de datos por usuarios inexpertos. Es una estructura esttica, una vez definidas las relaciones no pueden ser cambiadas tan fcilmente, y son de alta complejidad.

    Tpico 410 - Data Storage & Data Base Management System

  • *Sistemas Manejadores de Bases de Datos y Bases de Datos.Tipos de Bases de Datos.Relacional. Es un modelo de almacenamiento en tablas, que estn compuestas de renglones y columnas.La relacin padre-hijo no existe en este tipo de Bases de datos, estas son mantenidas a travs de la unin de columnas comunes (CROSS REFERENCE).

    Tpico 410 - Data Storage & Data Base Management SystemCROSS REFERENCE

    No-Emp.TarifaHrs. Trab.ExtraImpuestoSAID, FRANK5.3525015%DAVIS, JACKIE8.2542225%KOBREEK, NANCY2.5062225%BOVEN,MARY4.5012017%

    No-Emp.AntigedadF.Nac.UniversidadSAID, FRANK147-12-1956UNIVERSISDADCALIFORNIADAVIS, JACKIE121-03-1959COLEGIOCARLLENGTONKOBREEK, NANCY513-12-1959COLEGIOSMITHBOVEN,MARY154-08-1950COLEGIOLAKE

  • *Sistemas Manejadores de Bases de Datos y Bases de Datos.Tipos de Bases de Datos.Ventajas. Fcil uso. Por el manejo de columnas y renglones.Estructura de naturaleza dinmica. La cual puede ser modificada en cualquier momento para adicionar una columna, no causando gran impacto como lo sera en una estructura jerrquica o de red.Fcil acceso a usuarios sin experiencia y desarrollo para sistemas sofisticados.Desventajas.Son menos estructuradasEl tiempo de procesamiento es ms lentoNo pueden manejar grandes cantidades de transacciones

    Tpico 410 - Data Storage & Data Base Management System

  • *Sistemas Manejadores de Bases de Datos y Bases de Datos.Tipos de Bases de Datos.

    Tpico 410 - Data Storage & Data Base Management System

    Tipo de Base de DatosEstructura PredefinidaVista EstticaRelacin Entidad Padre-hijoRendimientoJerrquicaSiSiUno a unoUno a muchos- Muy rpido- Manejo de alto volumen de transaccionesNetworkSiSiUno a unoUno a muchosMuchos a muchos- Rpido- Manejo de alto volumen de transaccionesRelacionalNoNoRelaciones no definidas- Acceso medio- Manejo de volumen de transacciones medio.

  • *Sistemas Manejadores de Bases de Datos y Bases de Datos.Manejador de Base de Datos (DBMS).Es un software que permite la comunicacin entre los programas orientados al negocio y la base de datos.Un DBMS permite concentrarse en las relaciones entre las diferente entidades de los datos, sin ser necesario conocer la organizacin de los datos.

    Tpico 410 - Data Storage & Data Base Management System

  • *Sistemas Manejadores de Bases de Datos y Bases de Datos.Funciones de un DBMS.Almacenamiento de datos. Controla el almacenamiento fsico de las Bases de datos.

    Acceso de datos. Controla cmo son accedidos los datos fsicamente.

    Mantenimiento de los datos. Esta incluye el mantenimiento de los datos como: actualizacin, insercin, borrado de datos.Tpico 410 - Data Storage & Data Base Management System

  • *Sistemas Manejadores de Bases de Datos y Bases de Datos.Ventajas de un DBMS.Velocidad. Los datos pueden ser accedidos rpidamente.Seguridad. El acceso a datos especiales es controladoReduce la redundancia de datos. Los datos slo pueden ser almacenados una vez.Datos compartidos. Ms de una persona puede acceder a los mismos datos.Integridad de los datos. Puede ser mantenida exacta y consistentemente.Almacenamiento lgico de los datos. No es necesario conocer dnde se encuentran los datos almacenados, es suficiente hacer referencia lgica a los datos.Tpico 410 - Data Storage & Data Base Management System

  • *Mdulo Especfico

    Tpico 410 - Data Storage & Data Base Management System.

    Tpico 420 - Accesing Data in a Data Base.

    Tpico 430 - Accessing Data from within a Program.

    Estndares de programacin SQL.

  • *Tpico 420 - Accessing Data in a Data BaseOBJETIVOS.Escribir queries bsicos de SQL usando el comando SELECT y sus variaciones.

    Escribir queries usando la combinacin bsica con AND y OR

    Mantenimiento y modificacin de tablas usando comandos de INSERT, UPDATE, DELETE.

  • *Tpico 420 - Accessing Data in a Data BaseIntroduccin a SQLSQL (Structure Query Lenguage). Es un lenguaje de manipulacin de datos, el cual al ser utilizado en combinacin con un manejador de base de datos permite acceder y manipular datos, as como definir datos (DB2).Los datos contenidos en las tablas de la Base de datos son accedidos a travs de QUERIES, que son sentencias casi en lenguaje ingls.

  • *Introduccin a DB2.Las bases de datos relacionales comienzan a tener mayor auge en 1980, llegando a reemplazar a las bases de datos jerrquicas.DB2 es una herramienta usada en las DBMS, corre bajo el sistema operativo MVS de IBM. Caractersticas de DB2.Utiliza lenguaje SQL (Structure Query Language), para acceder a los datos. En este lenguaje se distinguen dos sublenguajes:Data Definition Language (DDL). Provee la definicin o descripcin de las tablas de las bases de datos. Manipula la estructura de las tablas.Data Manipulation Language (DML). Realiza la manipulacin o procesamiento de las tablas. Permite el acceso, actualizacin y mantenimiento de los datos.Tpico 420 - Accessing Data in a Data Base

  • *Introduccin a DB2.Trminos de DB2.Tabla. Es similar a un archivo, se encuentra compuesta de columnas y renglones.

    Tpico 420 - Accessing Data in a Data BaseCOLUMNASRENGLONES

    NombreDireccinRegistro-policaCHOCO, DAN B.465 JEFFERSON RD. MANSFIELD, CA.YESBISHOP, MARY34 SUNSET DR. BROOKVIEW, CA.YESJONES, JACK5213 ROCKET ROAD, MYTOWN, CA.NO

  • *Introduccin a DB2.Trminos de DB2.Vista. Es una representacin alternativa de los datos de una o ms tablas.Tpico 420 - Accessing Data in a Data BaseTABLAVISTA

    NombreDireccinRegistro-policaCHOCO, DAN B.465 JEFFERSON RD. MANSFIELD, CA.YESBISHOP, MARY34 SUNSET DR. BROOKVIEW, CA.YESJONES, JACK5213 ROCKET ROAD, MYTOWN, CA.NO

    NombreDireccinCHOCO, DAN B.465 JEFFERSON RD. MANSFIELD, CA.

  • *Introduccin a DB2.Trminos de DB2.Query. Es una sentencia SQL usada para acceder los datos de las tablas en una Base de datos.Tpico 420 - Accessing Data in a Data Base

  • *Tpico 420 - Accessing Data in a Data BaseTrminos de Bases de datos

    Trminos de Bases de Datos EstndarTrminos de Bases de Datos Relacionales1. Base de datos - Es una coleccin de archivos que contienen datos

    2. Archivo de datos - Es una coleccin de registros

    3. Registro - Es un conjunto de campos.

    4. Campos 1. Base de datos Relacional - es una coleccin de tablas

    2. Tabla - Es una coleccin de renglones y columnas.

    3. Rengln - es un conjunto de valores de una columnas

    4. Columnas

  • *Tpico 420 - Accessing Data in a Data BaseFunciones bsicas de SQL.Son cuatro las funciones que permite realizar SQL.Seleccionar (acceder) datos de las tablas (SELECT).Insertar o adicionar datos a las tablas (INSERT).Actualizar, modificar o dar mantenimiento a las tablas (UPDATE).Eliminar o borrar datos de las tablas (DELETE).

  • *Tpico 420 - Accessing Data in a Data BaseFunciones Bsicas de SQL

    Tabla de Presidentes

    PRE_NOMBREPRE_NACPRE_ANTIPRE_EDADPRE_SEXOPRE_OFICENGEL L C1900879MTORONTOLOPEZ R A1927246FMADRIDJOHNSON S L1918565FTORONTONEWTON D W19235-MCHICAGOFORD S B19232-MNEW YORKCARTIER J M19344-FGENOVARYAN J R19218-MLONDRES

  • *Tpico 420 - Accessing Data in a Data BaseFunciones bsicas de SQL - SELECT.La sentencia SELECT permite acceder y seleccionar los datos de la tabla.

    SELECT [*][nombre_columna1,nombre_columnaN][n] FROM tabla WHERE condicin.

  • *Tpico 420 - Accessing Data in a Data BaseFunciones bsicas de SQL - SELECT.

    Seleccin de todas las columnas de una tabla.

    Evitar el uso de * a menos que se requiera, ya que ste implica tiempo de procesamiento.Los nombres de las columnas son conectados a travs de _.

    QUERYRESULTADO DEL QUERYSELECT * FROM PRESIDENTES

  • *Tpico 420 - Accessing Data in a Data BaseFunciones bsicas de SQL - SELECT.

    Selecciona los datos de las columnas especificadas por su nombre.

    Los nombres de las columnas deben ser separados por comas.El orden de las columnas aparece de acuerdo al especificado en el query.

    QUERYRESULTADO DEL QUERYSELECT PRE_NOMBRE, PRE_SEXO FROM PRESIDENTES

  • *Tpico 420 - Accessing Data in a Data BaseFunciones bsicas de SQL - SELECT.

    Selecciona los datos de las columnas especificadas por su posicin.

    El orden de las columnas aparece de acuerdo al especificado en el query.

    QUERYRESULTADO DEL QUERYSELECT 5,1FROM PRESIDENTES

  • *Tpico 420 - Accessing Data in a Data BaseFunciones bsicas de SQL - SELECT DISTINCT.La sentencia SELECT DISTINCT permite seleccionar datos de la tabla y eliminar de la seleccin aquellos duplicados.

    SELECT DISTINCT nombre_columna FROM tabla WHERE condicin.

  • *Tpico 420 - Accessing Data in a Data BaseFunciones bsicas de SQL - SELECT DISTINCT.Seleccin de una columna

    Seleccionando dos columnas

    QUERYRESULTADO DEL QUERYSELECT DISTINCT PRE_SEXO FROM PRESIDENTES

    QUERYRESULTADO DEL QUERYSELECT DISTINCT PRE_SEXO, PRE_OFIC FROM PRESIDENTES

  • *Tpico 420 - Accessing Data in a Data BaseFunciones bsicas de SQL - WHERE.Permite establecer condiciones especificas de la seleccin de datos.SELECT nombre-columnaFROM tablaWHERE nombre_columna1 [=, >,
  • *Tpico 420 - Accessing Data in a Data BaseFunciones bsicas de SQL - WHERE.Distincin de valores numricos y alfanumricos

    ValorRepresentacin AlfanumricaRepresentacin Numrica123

    ABC

    $123

    1.2

    1-2123

    ABC

    $123

    1.2

    1-2123

    No aplica

    No aplica

    1.2

    No aplica

    ValorEntre comillasBsquedaAlfanumricos

    NumricosSI

    NoTienen que ser idntico el carcter indicado al buscado

    Los valores pueden ser equivalentes.

  • *Tpico 420 - Accessing Data in a Data BaseFunciones bsicas de SQL - ORDER BY.La clusula ORDER BY permite especificar el orden en el que deben ser listados los datos accedidos. SELECT nombre-columnaFROM tablaORDER BY [nombre_columna, N]

  • *Tpico 420 - Accessing Data in a Data BaseFunciones bsicas de SQL - ORDER BY.Ordenacin por una columna

    QUERYRESULTADO DEL QUERYSELECT PRE_NOMBRE, PRE_SEXO, PRE_OFIC FROM PRESIDENTESORDER BY PRE_NOMBRE

  • *Tpico 420 - Accessing Data in a Data BaseFunciones bsicas de SQL - ORDER BY.Ordenacin por ms de una columna

    QUERYRESULTADO DEL QUERYSELECT PRE_NOMBRE, PRE_SEXO, PRE_ANTIFROM PRESIDENTESWHERE PRE_NAC > 1921ORDER BY PRE_SEXO, PRE_ANTI

  • *Tpico 420 - Accessing Data in a Data BaseFunciones bsicas de SQL - ORDER BY.Los datos pueden ser ordenados ascendentemente (ASC)

    QUERYRESULTADO DEL QUERYSELECT PRE_ANTIFROM PRESIDENTESORDER BY PRE_ANTI ASC

  • *Tpico 420 - Accessing Data in a Data BaseFunciones bsicas de SQL - ORDER BY.Los datos pueden ser ordenados descendentemente (DESC)

    QUERYRESULTADO DEL QUERYSELECT PRE_ANTIFROM PRESIDENTESORDER BY PRE_ANTI DESC

  • *Tpico 420 - Accessing Data in a Data BaseFunciones bsicas de SQL - ORDER BY.En vez de utilizar los nombres de las columnas con la clusula ORDER BY, se pueden utilizar nmeros que correspondan al orden en que las columnas se listan en la sentencia SELECT.

    QUERYRESULTADO DEL QUERYSELECT PRE_NOMBRE, PRE_SEXO, PRE_ANTIFROM PRESIDENTESWHERE PRE_NAC > 1921ORDER BY 2, 3

  • *Tpico 420 - Accessing Data in a Data BaseCondiciones Mltiples.Las condiciones usadas en la sentencia WHERE pueden ser combinadas con las clusulas AND y OR.OR - Se utiliza para vincular las condiciones de bsqueda en un query, la seleccin regresa los registros que cumplan con alguna de las condiciones especificadas.

    QUERYRESULTADO DEL QUERYSELECT PRE_NOMBRE, PRE_OFIC, PRE_SEXOFROM PRESIDENTESWHERE PRE_OFIC = TORONTO OR PRE_OFIC = GENOVA

  • *Tpico 420 - Accessing Data in a Data BaseCondiciones Mltiples.AND - Se utiliza para vincular las condiciones de bsqueda en un query, la seleccin regresa los registros que cumplan con todas las condiciones especificadas.

    Tabla de STAFF

    STAFF_NOMBRESTAFF_SALARIOSTAFF_PUESTOSANDER48357.50DIRECTORHANES30659.80DIRECTORFRAYE41150.00DIRECTORSMITH41225.00VENTASQUILL39818.00DIRECTORGRAHAM41000.00VENTAS

    QUERYRESULTADO DEL QUERYSELECT STAFF_NOMBRE, STAFF_SALARIO, STAFF_PUESTOFROM STAFFWHERE STAFF_PUESTO = DIRECTORAND STAFF_SALARIO > 40000

  • *Tpico 420 - Accessing Data in a Data BaseCondiciones Mltiples.OR y AND mltiples. Se puede vincular ms de una condicin a travs de OR y AND.

    QUERYRESULTADO DEL QUERYSELECT PRE_NOMBRE, PRE_ANTIFROM PRESIDENTESWHERE PRE_NOMBRE= JOHNSON S LOR PRE_SEXO = FOR PRE_ANTI > 4

    QUERYRESULTADO DEL QUERYSELECT PRE_NOMBRE, PRE_ANTIFROM PRESIDENTESWHERE PRE_NOMBRE= JOHNSON S LAND PRE_SEXO = FAND PRE_ANTI > 4

  • *Tpico 420 - Accessing Data in a Data BaseCondiciones Mltiples.OR y AND combinados. Se puede vincular ms de una condicin a travs de OR y AND en forma combinada.SQL evalan primero las condiciones AND, en caso de que no sean utilizados parntesis.

    En el ejemplo las dos primeras expresiones son combinadas para crear la primera condicin, la segunda condicin slo considera los vuelos con destino a NEWARK sin importar la hora, para tomar en cuenta la hora se requerira el uso de parntesis.

    QUERYRESULTADO DEL QUERYSELECT FLIGHT, DEPARTS, DESTINATIONFROM AIRLINE_SCHEDULEWHERE DEPARTS > 'PM1200'AND DESTINATION = 'NEW YORK'OR DESTINATION = 'NEWARK'

  • *Tpico 420 - Accessing Data in a Data BaseParntesis y clusula WHERE.Los parntesis se pueden utilizar para eliminar el orden en que SQL evalan las expresiones. El uso de parntesis con mltiples condiciones de bsqueda permite mejorar la legibilidad de la consulta.El orden de bsqueda cuando se usan los parntesis es:Se evalan las expresiones encerradas en parntesisSon consideradas las condiciones vinculadas con ANDSe evalan las condiciones vinculadas con OR

    FLIGHTDEPARTSDESTINATION101116193184PM1300PM1400PM1400PM1500NEW YORKNEW YORKNEWARKNEWARK

    QUERYRESULTADO DEL QUERYSELECT FLIGHT, DEPARTS, DESTINATIONFROM AIRLINE_SCHEDULEWHERE (DESTINATION = 'NEW YORK'OR DESTINATION = 'NEWARK)AND DEPARTS > 'PM1200'

  • *Tpico 420 - Accessing Data in a Data BaseUso de valores Nulos en condiciones.Los valores nulos hacen referencia a un valor especial que indica ausencia de valor. En algunos manejadores se representan por un guin -.El que la columna de una tabla pueda o no contener valores nulos, depender de la definicin que haya especificado el DBA cuando la tabla fue creada. Por ejemplo:Nulo

    STAFF_NAME STAFF_JOBSTAFF_SALARY STAFF_COMM HANESCLERK20659.00 -ROTHMANSALES16502.831152.00NOONANCLERK12508.20206.60NEWCOMBECLERK11600.000.00

  • *Tpico 420 - Accessing Data in a Data BaseUso de valores Nulos en condiciones.Reglas de manejo para valores nulos:Si una condicin es aplicada en una columna que contiene valores nulos, los registros no son seleccionados.Si se realiza un calculo utilizando una columna que contenga valores nulos, los registros que contienen nulos sern ignorados.

    QUERYRESULTADO DEL QUERYSELECT STAFF_NAME, STAFF_JOB, STAFF_SALARY, STAFF_COMFROM STAFFWHERE STAFF_JOB = CLERKAND STAFF_COM < 1000.00

  • *Tpico 420 - Accessing Data in a Data BaseUso de valores Nulos en condiciones.Seleccin de valores nulos en una columna:

    Seleccin de valores no nulos en una columna:

    SINTAXISEJEMPLOSELECT columna1, columnaNFROM tablaWHERE columna IS NULLSELECT STAFF_NAME, STAFF_JOB, STAFF_SALARY, STAFF_COMFROM STAFFWHERE STAFF_COM IS NULL

    SINTAXISEJEMPLOSELECT columna1, columnaNFROM tablaWHERE columna IS NOT NULLSELECT STAFF_NAME, STAFF_JOB, STAFF_SALARY, STAFF_COMFROM STAFFWHERE STAFF_COM IS NOT NULL

  • *Tpico 420 - Accessing Data in a Data BaseModificacin de Tablas - INSERTEl comando INSERT, permite la adicin nuevos registros a una tabla existente.INSERT INTO tablaVALUES (valor1, valor2, valorN)Reglas para uso del comando INSERT:Debe haber un valor para cada columna de la tabla.Los valores deben estar listados en el orden en que las columnas aparecen en la tabla, en caso de no haber listado los campos.Los valores deben estar separados por comas.Cada campo alfanumrico (carcter) debe estar entre comillas.Los valores numricos no requieren comillas.

  • *Tpico 420 - Accessing Data in a Data BaseModificacin de Tablas - INSERTInsercin de registros sin especificacin de columnas.

    El orden de los valores debe ser el mismo en el que se encuentran organizadas las columnas de la tabla.

    QUERYRESULTADO DEL QUERYINSERT INTO TELEFONOSVALUES ('ABRAMS', 'DIANE', 2037951234, 123)

  • *Tpico 420 - Accessing Data in a Data BaseModificacin de Tablas - INSERTInsercin de registros especificando los nombres de columnas.

    De esta forma se pueden asignar los valores a los campos directamente en cualquier orden, sin llevar el mismo orden en que se encuentran organizadas las columnas de la tabla.

    QUERYRESULTADO DEL QUERYINSERT INTO TELEFONOS (APELLIDO, NOMBRE, NO_TLEF, EXT)VALUES ('ABRAMS',