Versión: 1.4 Versión: 1.4 Fecha: Instructivo Código: IN-SOP-TI-020 Nomenclatura Estándar para Objetos de Base de Datos Página 1 de 12 Motivo de revisión Actualización del Documento 09/12/2021 Modificaciones realizadas Modificación del punto 4.2.2. y 4.6 del documento. (Acta de Directorio N°34/2021) ELABORADO POR: REVISADO POR: Puesto: Gerente de Transformación Administrador de Base de Datos Fecha: 09/12/2021 09/12/2021 REVISADO POR: Gerente de Tecnología de la Información 09/12/2021 Mauricio Egüez F. Freddy Machaca S. Vladimir Wayar S. Nombre y firma Puesto: Fecha: REVISADO POR: Gerente General 09/12/2021 34/2021 Nombre y firma Ronald Gutiérrez L. TP: LVZ APROBADO POR: Directorio 09/12/2021 Nro. De Acta. Versión: 1.4 Instructivo Código: IN-SOP-TI-020 Nomenclatura Estándar para Objetos de Base de Datos Página 2 de 12 INDICE 1. Introducción ......................................................................................................................................3 2. Objetivo ............................................................................................................................................3 3. Ámbito...............................................................................................................................................3 4. Definición de la nomenclatura de los objetos de Oracle ..................................................................3 4.1.Nomenclatura de Base de Datos 3 4.2.Nomenclatura de Esquemas y Usuarios de Base de Datos 3 4.2.1. Esquemas de Base de Datos: ........................................................................................................3 4.2.2. Usuarios de Base de Datos: ...........................................................................................................3 4.3.Nomenclatura de Objetos de Base de Datos Oracle 4 4.3.1. Nomenclatura de Tablas ................................................................................................................4 4.3.2. Nomenclatura para Columnas........................................................................................................4 4.3.3. Nomenclatura para Índices ............................................................................................................5 4.3.4. Nomenclatura para Secuencias .....................................................................................................5 4.3.5. Nomenclatura para Vistas ..............................................................................................................5 4.3.6. Nomenclatura para Disparadores o Trigger ...................................................................................5 4.3.7. Nomenclatura para Vistas Materializadas ......................................................................................6 4.4.Nomenclatura de Restricciones o Constraints de Base de Datos Oracle 6 4.4.1. Nomenclatura para Llave Primaria (PRIMARY KEY) ....................................................................6 4.4.2. Nomenclatura para restricciones de unicidad (UNIQUE CONSTRAINT) ......................................7 4.4.3. Nomenclatura para Llave Foránea (FOREIGN KEY) ....................................................................7 4.4.4. Nomenclatura para Restricción de Comprobación (CHECK CONSTRAINT) ................................8 4.4.5. Nomenclatura para Restricción No Nulo (NOT NULL) ..................................................................8 4.5.Nomenclatura para Objetos PL/SQL de Base de Datos Oracle 9 4.5.1. Nomenclatura para Paquetes.........................................................................................................9 4.5.2. Nomenclatura para Funciones .......................................................................................................9 4.5.3. Nomenclatura para Procedimientos Almacenados ......................................................................10 4.5.4. Nomenclatura para Procedimientos Almacenados Java .............................................................11 4.6.Nomenclatura de Archivos para Pase a Producción de Objetos de Base de Datos 11 Cualquier documento impreso diferente del original y cualquier archivo electrónico que se encuentre fuera de la Intranet del Banco Ganadero S.A., será considerada COPIA NO CONTROLADA. Versión: 1.4 Instructivo Código: IN-SOP-TI-020 Nomenclatura Estándar para Objetos de Base de Datos Página 3 de 12 1. Introducción Este documento contiene las especificaciones técnicas y normativas de los nuevos proyectos del área de Tecnología de la Información La documentación está orientada a describir la nomenclatura estándar que deben cumplir los objetos de base de datos en cuanto a su identificación 2. Objetivo El objetivo final es utilizar estándares en la descripción de todos los objetos que se crearan en la base de datos. (Se entiende como objeto a: Tablas, Índices, Vistas, Procedimientos Almacenados, Disparadores, Secuencias, Restricciones, Librerías, Esquemas, etc.) 3. Ámbito La presente normativa aplica a todas las personas que estén autorizadas a solicitar creación de objetos en la base de datos, en primera instancia a desarrolladores y DBA. 4. Definición de la Nomenclatura de los Objetos de Oracle 4.1. Nomenclatura de Base de Datos Las Bases de Datos tendrán un nombre nemotécnico correspondiente al entorno en el cual serán usados pudiendo haber excepción en la base de datos de producción. Ejemplo: BANKG, BGDB o BGPRO: BDDES: BDPEM: BDHIST: Entorno de Producción Entorno de Desarrollo Entorno de Pruebas y QA Entorno Histórico 4.2. Nomenclatura de Esquemas y Usuarios de Base de Datos Los esquemas o usuarios de la Base de Datos deberán tener un nombre representativo que no supere los 20 caracteres de longitud. 4.2.1. Esquemas de Base de Datos: Llamaremos esquema a un usuario que además tiene asociado un conjunto de objetos. Los esquemas tendrán la siguiente nomenclatura: “Nombre” <Abreviatura Nemotécnica> Ejemplo: Modulo Comercio Exterior COMEX 4.2.2. Usuarios de Base de Datos: Llamaremos usuario a aquellos que no tengan ningún tipo de objetos y que tengan acceso para consultar o hacer operaciones (select, update, delete, insert) sobre los objetos de base de datos existentes. Además los usuarios suelen estar relacionados a una persona. Cualquier documento impreso diferente del original y cualquier archivo electrónico que se encuentre fuera de la Intranet del Banco Ganadero S.A., será considerada COPIA NO CONTROLADA. Versión: 1.4 Instructivo Código: IN-SOP-TI-020 Nomenclatura Estándar para Objetos de Base de Datos Página 4 de 12 Usuario Puntual: <Primera letra del primer nombre> + <Primera letra Apellido Paterno y Materno>+ AREA(TI(tecnología), MK(marketing),SI(seguridad de la información) Ejemplo: FMS_TI Freddy Antonio machaca Surco (tecnología). 4.3. Nomenclatura de Objetos de Base de Datos Oracle 4.3.1. Nomenclatura de Tablas Todos los nombres de tablas deberán ser en plural y mayúsculas. Se usarán nombres completos siempre que sea posible, precedidos por 3 caracteres que identificarán el modulo al que pertenece. Si el nombre de una tabla excede los 30 caracteres, reducir el tamaño del nombre de la tabla en este orden: De izquierda a derecha del nombre de la tabla, retirar las vocales de cada palabra en el nombre de la tabla, excepto la primera vocal de cada palabra. Los nombres de tablas deberán seguir el siguiente estándar: <MODULO>_<TABLA> Objeto Nomenclatura Tabla MODULO_TABLA Descripción MODULO: Sigla referente al nombre del Módulo al que pertenece la tabla Ejemplo CAJ_FALLAS TABLA: Nombre significativo de la tabla 4.3.2. Nomenclatura para Columnas Todos los nombres de columnas serán en singular y mayúsculas Los nombres de columnas deberían ser auto explicativos, siempre que sea posible. Si un nombre de columna excede los 30 caracteres, reducir el tamaño del nombre en este orden: De izquierda a derecha del nombre de la columna, retirar las vocales de cada palabra en el nombre de la tabla, excepto la primera vocal de cada palabra. Los nombres de columna deberán seguir el siguiente estándar: <COLUMNA> Item Nomenclatura COLUMNA COLUMNA Descripción COLUMNA: Nombre de la Columna Ejemplo ASIENTO Cualquier documento impreso diferente del original y cualquier archivo electrónico que se encuentre fuera de la Intranet del Banco Ganadero S.A., será considerada COPIA NO CONTROLADA. Versión: 1.4 Instructivo Código: IN-SOP-TI-020 Nomenclatura Estándar para Objetos de Base de Datos Página 5 de 12 4.3.3. Nomenclatura para Índices Los nombres de índices deberán seguir el siguiente estándar: IDX##_<TABLA> Si un nombre de índice excede los 30 caracteres, reducir el tamaño del nombre en este orden: De izquierda a derecha del nombre del índice, retirar las vocales de cada palabra en el nombre del índice, excepto la primera vocal de cada palabra. Objeto Nomenclatura Descripción Ejemplo IDX: Índice Índice IDX##_TABLA ##: Número de correlativo del índice IDX01_GNT_OPCION en la tabla ESPERFIL TABLA: Nombre significativo de la tabla 4.3.4. Nomenclatura para Secuencias Los nombres de las secuencias deberán seguir el siguiente estándar: SEQ_<TABLA> Objeto Nomenclatura Secuencia SEQ_<TABLA> Descripción Ejemplo SEQ: Identifica que el objeto es una secuencia SEQ_GNT_OPCIONE SPERFILES TABLA: Nombre significativo de la tabla donde es utilizada la secuencia 4.3.5. Nomenclatura para Vistas Los nombres de las vistas deberán seguir el siguiente estándar: VIE_<NOMBRE> Objeto Nomenclatura Vista VIE_<NOMBRE> Descripción VIE: Identifica que el objeto es una Vista NOMBRE: Nombre significativo de la Vista en función al objetivo Ejemplo VIE_DEPOSITO 4.3.6. Nomenclatura para Disparadores o Trigger Los nombres de los trigger deberán seguir el siguiente estándar: TRG_<TABLA>_<CAMPO>_<TIPO> Objeto Nomenclatura Descripción Ejemplo Cualquier documento impreso diferente del original y cualquier archivo electrónico que se encuentre fuera de la Intranet del Banco Ganadero S.A., será considerada COPIA NO CONTROLADA. Versión: 1.4 Instructivo Código: IN-SOP-TI-020 Nomenclatura Estándar para Objetos de Base de Datos Página 6 de 12 TRG: Identifica que el objeto es un Disparador o Trigger. TRG_<TABLA>_<CAMPO>_ <TIPO> Disparador es Trigger TIPO : ALL UPD DEL INS TABLA: Nombre de la tabla sobre la cual esta creado el Trigger CAMPO: Nombre del campo de la TRG_CJA_FALLAS_ tabla que ejercerá alguna acción el NROCAJA_ UPD trigger. TIPO: Se refiere a la descripción de comandos que utiliza el trigger para su activación 4.3.7. Nomenclatura para Vistas Materializadas Los nombres de las vistas materializadas deberán seguir el siguiente estándar: MVW_<NOMBRE> Objeto Nomenclatura Vista Materializada MVW_<NOMBRE> Descripción MVW: Identifica que el objeto es una Vista Materializada NOMBRE: Nombre significativo de la Vista Materializada en función al objetivo Ejemplo MVW_DEPOSITO 4.4. Nomenclatura de Restricciones o Constraints de Base de Datos Oracle Todas las restricciones o “constraints” al momento de su creación se deberá asignar un nombre significativo, de no ser así el RDBMS asignará por defecto un nombre con formato propio poco entendible para efecto de realizar algún seguimiento. 4.4.1. Nomenclatura para Llave Primaria (PRIMARY KEY) Los nombres de las llaves primarias deberán seguir el siguiente estándar: PK_<TABLA> Restricciones Nomenclatura Llave Primaria (Primary Key) PK_<TABLA> Descripción Ejemplo PK: Identifica que es una llave primaria PK_GNT_OPCIONE SPERFIL TABLA: Nombre de la tabla Ejemplo ilustrativo ALTER TABLE GANADERO.CJA_ASIENTOS ADD ( CONSTRAINT PK_ASIENTOS PRIMARY KEY (FECHAPROCESO, SUCURSAL, ASIENTO); Cualquier documento impreso diferente del original y cualquier archivo electrónico que se encuentre fuera de la Intranet del Banco Ganadero S.A., será considerada COPIA NO CONTROLADA. Versión: 1.4 Instructivo Código: IN-SOP-TI-020 Nomenclatura Estándar para Objetos de Base de Datos Página 7 de 12 4.4.2. Nomenclatura para Restricciones de Unicidad (UNIQUE CONSTRAINT) Los nombres de las restricciones de unicidad o “UNIQUE Constraint” deberán seguir el siguiente estándar: UK##_<TABLA> Restricciones Nomenclatura Restricción de unicidad (Unique Constraint) UK##_<TABLA> Descripción UK: Identifica que es una restricción de unicidad. Ejemplo UK1_COF_COFRES ##: Numero correlativo TABLA: Nombre de la tabla Ejemplo ilustrativo ALTER TABLE GANADERO. COF_COFRES ADD ( CONSTRAINT UK1_COF_COFRES UNIQUE (CODIGO); 4.4.3. Nomenclatura para Llave Foránea (FOREIGN KEY) La tabla padre debe tener llave primaria. Si un nombre de la llave foránea excede los 30 caracteres, reducir el tamaño del nombre en este orden: De izquierda a derecha del nombre del índice, retirar las vocales de cada palabra en el nombre del índice, excepto la primera vocal de cada palabra. Los nombres de las llaves foráneas deberán seguir el siguiente estándar: FK##_<TABLAH>_<TABLAP> Restricciones Nomenclatura Descripción FK: Identifica que es llave foránea. Llave Foránea ##: Numero correlativo de llave foránea. FK##_<TABLAH>_ (FOREIGN <TABLAP> KEY) TABLAH: Nombre de la tabla hija Ejemplo FK1_CLI_SUBSEGMENT O_SEGMENTO TABLAP: Nombre de la tabla padre Ejemplo ilustrativo: ALTER TABLE CLI_SUBSEGMENTO ADD ( CONSTRAINT FK1_ CLI_SUBSEGMENTO _ SEGMENTO FOREIGN KEY (COD_SEGMENTO) REFERENCES CLI_SEGMENTO (COD_SEGMENTO)); Cualquier documento impreso diferente del original y cualquier archivo electrónico que se encuentre fuera de la Intranet del Banco Ganadero S.A., será considerada COPIA NO CONTROLADA. Versión: 1.4 Instructivo Código: IN-SOP-TI-020 Nomenclatura Estándar para Objetos de Base de Datos Página 8 de 12 4.4.4. Nomenclatura para Restricción de Comprobación (CHECK CONSTRAINT) Los nombres de los “Check Constraint” deberán seguir el siguiente estándar: CK_<TABLA>_<CAMPO> Restricciones Nomenclatura Descripción CK: Identifica que es una restricción de comprobación. Restricción de Comprobación (Check Constraint) CK_<TABLA>_<CAMPO> Ejemplo TABLA: Nombre de la CK_BG_HUELLAS_DEDO tabla CAMPO: Nombre del campo sobre el cuál actúa el check constraint. Ejemplo ilustrativo.- Se puede especificar el Constraint de dos maneras a) Al momento de crear la tabla CREATE TABLE BG_HUELLAS (DEDO VARCHAR2(2) CONSTRAINT CK_ BG_HUELLAS_DEDO CHECK (DEDO IN (‘0’, ‘1’, ‘2’, ‘3’, ‘4’, ‘5’, ‘6’, ‘7’, ‘8’, ‘9’))); b) Después de haber creado la tabla ALTER TABLE BG_HUELLAS ADD ( CONSTRAINT CK_ BG_HUELLAS_DEDO CHECK (DEDO IN (‘0’, ‘1’, ‘2’, ‘3’, ‘4’, ‘5’, ‘6’, ‘7’, ‘8’, ‘9’))); 4.4.5. Nomenclatura para Restricción No Nulo (NOT NULL) Los nombres de los “Check Constraint” deberán seguir el siguiente estándar: NN_<TABLA>_<CAMPO> Restricciones Restricción de No Nulo (Not Null) Nomenclatura Descripción NN: Identifica que es una restricción de campo no Nulo. NN_<TABLA>_<CAMPO> TABLA: Nombre de la tabla Ejemplo NN_BG_HUELLAS_CLI ENTE CAMPO: Nombre del campo sobre el cuál actúa el Not Null constraint. Ejemplo ilustrativo.- Se puede especificar el Constraint de dos maneras c) Al momento de crear la tabla CREATE TABLE BG_HUELLAS (CLIENTE VARCHAR2(2) CONSTRAINT NN_BG_HUELLAS_CLIENTE NOT NULL); Cualquier documento impreso diferente del original y cualquier archivo electrónico que se encuentre fuera de la Intranet del Banco Ganadero S.A., será considerada COPIA NO CONTROLADA. Versión: 1.4 d) Instructivo Código: IN-SOP-TI-020 Nomenclatura Estándar para Objetos de Base de Datos Página 9 de 12 Después de haber creado la tabla ALTER TABLE BG_HUELLAS MODIFY (CLIENTE CONSTRAINT NN_BG_HUELLAS_CLIENTE NOT NULL ); 4.5. Nomenclatura para Objetos PL/SQL de Base de Datos Oracle Todos los objetos de Base de Datos definidos en esta sección, deben incluir la sección de control de cambios en el formato que se establece a continuación y el mismo debe colocarse inmediatamente después de la definición del objeto: /*============================================================================ ================== Autor: Fecha: Descripción: Referencia: ============================================================================= =================== Histórico de Modificaciones ============================================================================= =================== Autor: Fecha: Descripción: Referencia: ============================================================================= =================*/ En la línea referencia, se debe citar el requerimiento que origina la creación o modificación del objeto. 4.5.1. Nomenclatura para Paquetes Los nombres de los paquetes deberán seguir el siguiente estándar: PKG_<MODULO>_NOMBRE Objeto Paquete Nomenclatura Descripción Ejemplo PKG: Derivado de Package identifica que el objeto es una Paquete. MODULO: Hace referencia al PKG_<MODULO>_<NOMBRE> módulo que pertenece el PKG_CAJ_CIERRE paquete. NOMBRE: Nombre significativo del paquete 4.5.2. Nomenclatura para Funciones Los nombres de las funciones deberán seguir el siguiente estándar: Cualquier documento impreso diferente del original y cualquier archivo electrónico que se encuentre fuera de la Intranet del Banco Ganadero S.A., será considerada COPIA NO CONTROLADA. Versión: 1.4 Instructivo Código: IN-SOP-TI-020 Nomenclatura Estándar para Objetos de Base de Datos Página 10 de 12 Objeto Nomenclatura Función (Independiente) FUN_<MODULO>_<NOM BRE> Descripción Ejemplo FUN: Identifica que el objeto es una Función. MODULO: Hace referencia al módulo FUN_CLI_LISTACL que pertenece la función. IENTES NOMBRE: Nombre significativo de la función FUN: Identifica que el objeto es una Función. Función (Dentro de un paquete) NOMBRE: Nombre significativo de la función FUN_<NOMBRE> Cuando la función está dentro de un paquete de Base de Datos, no es necesario especificar módulo al que pertenece. FUN_LISTACLIEN TES 4.5.3. Nomenclatura para Procedimientos Almacenados Los nombres de los procedimientos almacenados deberán seguir el siguiente estándar: SPR_<MODULO>_NOMBRE Objeto Nomenclatura Procedimiento (Independiente) SPR_<MODULO>_<NOM BRE> Descripción SPR: Derivado de Store Procedure Identifica que el objeto es un Procedimiento Almacenado. MODULO: Hace referencia al módulo que pertenece el procedimiento. Ejemplo SPR_PCT_GENER AR_PAGOS NOMBRE: Nombre significativo del procedimiento almacenado SPR: Derivado de Store Procedure Identifica que el objeto es un Procedimiento Almacenado. Procedimiento (Dentro de un paquete) NOMBRE: Nombre significativo del procedimiento almacenado. SPR_<NOMBRE> SPR_ GENERAR_PAGO S Cuando el procedimiento está dentro de un paquete de Base de Datos, no es necesario especificar módulo al que pertenece. Cualquier documento impreso diferente del original y cualquier archivo electrónico que se encuentre fuera de la Intranet del Banco Ganadero S.A., será considerada COPIA NO CONTROLADA. Versión: 1.4 Instructivo Código: IN-SOP-TI-020 Nomenclatura Estándar para Objetos de Base de Datos Página 11 de 12 4.5.4. Nomenclatura para Procedimientos Almacenados Java Los nombres de los procedimientos almacenados java deberán seguir el siguiente estándar: SPJ_<MODULO>_NOMBRE Objeto Procedimiento Nomenclatura Descripción SPJ: Derivado de Store Procedure Java identifica que el objeto es un Procedimiento almacenado Java. SPJ_<MODULO>_<NOMB MODULO: Hace referencia al módulo RE> que pertenece el procedimiento. Ejemplo SPJ_CAJ_SALDO NOMBRE: Nombre significativo del procedimiento almacenado java 4.6. Nomenclatura de Archivos para Pase a Producción de Objetos de Base de Datos Todos los archivos para pase a producción de los objetos de Base de Datos deberán incluir información de control en el formato que se establece a continuación. En caso de que existan más de un archivo y sea necesaria una secuencia en particular se debe nombrar los archivos con su respectivo número de orden de ejecución. Ejem: Script1.sql, Script2.sql, Script3.sql. El script de pase a producción deberá contar con una cabecera informativa, cada objeto deberá estar con el nombre de esquema específicamente y al final de cada bloque PL/SQL deberá concluir con el signo “slash (/)”. Cualquier otro elemento, objeto o atributo de la Base de datos cuya nomenclatura no ha sido definida en el presente documento será definida cuando sea oportuno por el DBA o responsables. Cualquier documento impreso diferente del original y cualquier archivo electrónico que se encuentre fuera de la Intranet del Banco Ganadero S.A., será considerada COPIA NO CONTROLADA. Versión: 1.4 Instructivo Código: IN-SOP-TI-020 Nomenclatura Estándar para Objetos de Base de Datos Página 12 de 12 Control de Ediciones Versión: 1.3 Fecha: 15/04/2019 Versión: 1.2 Fecha: 28/08/2018 Versión: 1.1 Fecha: Motivo de revisión Actualización del Documento Motivo de revisión Actualización del Documento Motivo de revisión Actualización del Documento 10/07/2017 Versión: 1.0 Fecha: 15/08/2016 Modificaciones realizadas Modificación en los incisos: 4.5.2 Nomenclatura para Funciones 4.5.3Nomenclatura para Procedimientos Almacenados. Modificaciones realizadas Revisión anual modificaciones. del documento sin Modificaciones realizadas • Inclusión de aclaración en el punto 4.5 – “Nomenclatura para Objetos PL/SQL de Base de Datos Oracle. • Inclusión del punto 4.6 - “Nomenclatura de Archivos para Pase a Producción de Objetos de Base de Datos”. • Cambio del código del documento. Motivo de revisión Modificaciones realizadas Creación del documento Todo el documento Cualquier documento impreso diferente del original y cualquier archivo electrónico que se encuentre fuera de la Intranet del Banco Ganadero S.A., será considerada COPIA NO CONTROLADA.