Universidad de Antioquia Departamento de Organización y Sistemas Departamento de Cómputo Estándares de Programación en ORACLE Autor versión original: Jaime Alberto Prada. Actualizado Octubre 22 1999: William Alberto López. Actualizado: 21 julio 2009 Estándares para Objetos de Base de Datos 1. Base de Datos A continuación se dan una serie de normas en cuanto a la definición de nombres para los objetos que contendrá la Base de Datos: tablas, vistas, clusters, índices, constraints, triggers, vistas, paquetes, funciones y procedimientos, con el objetivo tener una clara identificación de todos los objetos de un Sistema de Información en la base de Datos Institucional. - Definición de tablas El nombre de una tabla debe ser de la forma AAAA_XXXXXXXXX........ donde AAAA Son 4 letras que identifican a la aplicación. Ej: ADMI, SIFA, REGI, etc. XXXX........ Es el nombre dado a la tabla en lenguaje natural, lo más descriptivo posible. Ej: Empleados_Docentes. El nombre de la tabla se escribe en plural, y si tiene varias palabras se separan con subrayados (underscores). En el modelo Entidad / Relación, la entidad correspondiente tendrá un nombre en singular y sus palabras se separan con espacios. Ej: Empleado Docente. - Definición de vistas El nombre de una vista debe ser de la forma AAAA_VXXXXXXXXX........ donde AAAA Son 4 letras que identifican a la aplicación. Ej: ADMI, SIFA, REGI, etc. V indica que se trata de una vista XXXX........ Es el nombre dado a la vista en lenguaje natural, lo más descriptivo posible. Ej: EmpleadoDocente - Definición de Indices El nombre de un índice debe ser de la forma I_AAAA_999999 donde I Significa que se trata de un índice AAAA Son 4 letras que identifican a la aplicación. Ej: ADMI, SIFA, REGI, etc. 999999 Es un consecutivo de índice dentro de la aplicación. Nota: Tener en cuenta que estos mejoran el ‘PERFORMANCE’, pero no se debe abusar de ellos. - Definición de Clusters Son utilizados para almacenar, en bloques contiguos dentro del disco, columnas de tablas diferentes, para facilitar su acceso simultáneo. El nombre de un cluster debe ser de la forma AAAAXXXXXXXXX........ donde AAAA Son 4 letras que identifican a la aplicación. Ej: ADMI, SIFA, REGI, etc. XXXX........ Es el nombre dado al cluster en lenguaje natural, lo más descriptivo posible. Ej: DatosIcfes - Definición de restricciones (Constraints) Permiten identificar las restricciones que se deben aplicar sobre una columna de una tabla, o sobre la tabla. El nombre de un constraint debe ser de la forma C_AAAA_XX9_YYYY... donde C Significa que se trata de un constraint. AAAA Son 4 letras que identifican a la aplicación. Ej: ADMI, SIFA, REGI, etc. XX Denota el tipo de constraint: PK: Primary Key FK: Foreign Key AK: Alternate Key (normalmente Unique Key) CK: Check Constraint NN: Not Null constraint 9 Es un consecutivo dentro del tipo de constraint. YYYY... Es el nombre de la tabla en la que se define el constraint. Ejemplos: C_ADMI_PK_INSCRITOS C_SIPE_FK1_NO_PARIENTES C_SIPE_FK2_NO_PARIENTES C_FBU_NN1_AFILIADOS - Definición de Triggers Permiten definir actividades que se realizarán desde diferentes formatos y operaciones, cuando se produzcan ciertas acciones sobre tablas definidas. El nombre de un trigger de base de datos debe ser de la forma T_AAAA_XXXX... donde T significa que se trata de un trigger almacenado en la base de datos. AAAA Son 4 letras que identifican a la aplicación. Ej: ADMI, SIFA, REGI, etc. XXXX........ Es el nombre dado al trigger en lenguaje natural, lo más descriptivo posible. Ej: GrabaAuditoria, o ChequeaHijos, o ActualizaTotal - Definición de Funciones Permiten almacenar funciones en la Base de Datos, para usarlos desde diferentes formatos o programas. El nombre de una función en la base de datos (cuando no forma parte de un Package o de un Procedure) debe ser de la forma F_AAAA_XXXX... donde F Significa que se trata de una función almacenada en la base de datos. AAAA Son 4 letras que identifican a la aplicación. Ej: ADMI, SIFA, REGI, etc. XXXX........ Es el nombre dado a la función en lenguaje natural, lo más descriptivo posible. Ej: PromedioCreditoAcumulado, o CapacidadEndeudamiento, o SueldoMensual - Definición de Procedimientos Permiten almacenar procedimientos en la Base de Datos, para usarlos desde diferentes formatos o programas. El nombre de un procedimiento en la base de datos (cuando no forma parte de un Package), debe ser de la forma P_AAAA_XXXX... donde P Significa que se trata de un procedimiento almacenado en la base de datos . AAAA Son 4 letras que identifican a la aplicación. Ej: ADMI, SIFA, REGI, etc. XXXX........ Es el nombre dado al procedimiento en lenguaje natural, lo más descriptivo posible. Ej: ValidaFecha, o EvaluaPosicionActual, o BorraTipoNomina. - Definición de Packages Permiten almacenar procedimientos en la Base de Datos, agrupados dentro de un paquete que usa variables comunes, para usarlos desde diferentes formatos o programas. El nombre de un Package en la base de datos debe ser de la forma PK_AAAA_XXXX... PB_AAAA_XXXX... Body) para la declaración del Package, o para la definición del cuerpo del Package (Package donde PK o PB Significa que se trata de un paquete almacenado en la base de datos. AAAA Son 4 letras que identifican a la aplicación. Ej: ADMI, SIFA, REGI, etc. XXXX........ Es el nombre dado al paquete en lenguaje natural, lo más descriptivo posible. Ej: FuncionesConseres, o ManejoAfiliados, o Prestamos. 2. Programación - Codificación Estas normas son válidas para codificación de procedimientos dentro de los formatos, de bloques PL/SQL, de funciones, triggers, y paquetes en la Base de Datos. Las palabras reservadas ORACLE siempre deben ir en mayúsculas, y las palabras (nombres) definidos por el programador deben ir en minúsculas. Ej: SELECT codigo, nombre FROM Empleado WHERE depto = 1002; Las variables que se refieran a registros de las tablas deben declararse de tipo ROWTYPE. Se debe utilizar el tipo de datos VARCHAR2 en lugar de VARCHAR, para garantizar compatibilidad con futuras versiones. Todo código desarrollado por el programador debe seguir las normas de la programación estructurada y por consiguiente acogerse a las normas de indentación. Siempre que se haga acceso a la Base de Datos, verificar el éxito o fracaso de la operación mediante el uso de EXCEPTIONS. Cuando se haga ROLLBACK o COMMIT, utilizar el formato ROLLBACK WORK, o COMMIT WORK, para acogernos al estándar ANSI. - Definición de programas en pro*C Esta definición aplica para programas elaborados en C que hagan interfase con procedimientos de Oracle. La estructura del nombre debe ser de la forma AAAAXXX.EXT AAAA9999.EXT donde AAAA son 4 letras que identifican a la aplicación. Ej: ADMI, SIFA, REGI, etc. XXXX Es el nombre dado a la función en lenguaje natural, lo más descriptivo posible. Ej: PromedioCreditoAcumulado, o CapacidadEndeudamiento, o SueldoMensual 9999 Es la secuencia numérica asignada al programa en las versiones iniciales. EXT Es la extensión : PC para el fuente C para el programa C generado EXE para el programa ejecutable. Cuando los programas residan en los equipos unix, los nombres deben ir completamente en minúsculas. - Definición de programas en shell La estructura del nombre debe ser de la forma AAAA9999.EXT donde AAAA son 4 letras que identifican a la aplicación. Ej: ADMI, SIFA, REGI, etc. 9999 Es la secuencia numérica asignada al Shell. EXT Es la extensión: SH shell de Windows. para los shell de Unix BAT para los Cuando los programas residan en los equipos unix, los nombres deben ir completamente en minúsculas - Definición de programas en sql (PL/SQL) La estructura del nombre debe ser de la forma AAAAXXX.SQL AAAA9999.SQL donde AAAA son 4 letras que identifican a la aplicación. Ej: ADMI, SIFA, REGI, etc. XXXX Es el nombre dado a la función en lenguaje natural, lo más descriptivo posible. Ej: PromedioCreditoAcumulado, o CapacidadEndeudamiento, o SueldoMensual 9999 Es la secuencia numérica asignada al programa en las versiones iniciales. Cuando los programas residan en los equipos unix, los nombres deben ir completamente en minúsculas - Definición de archivos de control de carga de datos Son archivos de control para el utilitario SQL*Loader, y la estructura del nombre debe ser de la forma AAAA9999.CTL donde AAAA Son 4 letras que identifican a la aplicación. Ej: ADMI, SIFA, REGI, etc. 9999 Es la secuencia numérica asignada al control Cuando los archivos residan en los equipos unix, los nombres deben ir completamente en minúsculas - Documentación de programas Todo programa o bloque de programación (PL/SQL, C, Pro*C, Shell, Función, Procedure, Package, etc), debe tener un encabezado con la siguiente información: - Nombre Elaborado por Fecha elaboración Descripción Actualizado por Fecha actualización Descripción actualización Descripción de parámetros