¡Esta es una revisión vieja del documento!
ScriptsDB - Proceso: Estandares y Prefijos
Esta sección presenta a continuación las normas de denominación de variables y objetos estándar declaradas dentro de las bases de datos relacionales (Oracle PLSQL) de la Compañía. El estandar ha sido generado teniendo presente el estandar Oracle el cual puede ser consultados desde Nombres y convenciones Oracle
Notas de Versión
Versión | Elabora | Revisa | Aprueba | Fecha Publicación | Observaciones |
1.0 | carlos.torres, abdimar.estrada | daberson.henao | daberson.henao | 05/10/2020 | Versión Inicial |
Tablas y Entidades
Las siguientes reglas se aplican a la denominación de las Tabla y Entidades:
No debe superar una longitud máxima de 30 caracteres.
Debe construirse mediante la separación de palabras con guiones bajos “_”.
Los nombres de tabla deben ser construidos a partir de palabras completas cuando sea posible. Por ejemplo, la tabla “SERVICE_ORDER” es mejor que “SRV_ORD”.
Los nombres de tablas serán singular, no en plural.
No utilice palabras reservadas de Oracle para un nombre de tabla.
Las tablas con particiones deben empezar por PT_
Las tablas external deben empezar por EXT_
Ejemplo:
* APPLICATIONS
* APPLICATION_FUNCTIONS
* APPLICATION_FUNCTION_ROLES
Definición de Nombres
A continuación se establen los criterios para la definción de nombres de tablas:
Tablas de Maestros: MAE_
Tablas de Detalles: DET_
Tablas Alias / Alias para Consultas, Vistas
Todas las tablas deben tener un nombre de alias único (4 caracteres en lo posible). Por lo general constan de una abreviatura del nombre de la tabla.
Ejemplo:
* APPLICATIONS = APPL (4)
* APPLICATION_FUNCTIONS = APFU (2:2)
* APPLICATION_FUNCTION_ROLES = APFR (2:1:1)
Vistas
Las siguientes reglas se aplican a la denominación de las vistas:
No debe superar una longitud máxima de 30 caracteres incluyendo la palabra clave.
Debe construirse mediante la separación de palabras con guiones bajos “_”.
Debe empezar por V_ .
Las vistas Materializadas deben empezar VM_
Los nombres deben estar en singular, no en plural.
No debe utilizar palabras reservadas de Oracle para el nombre de la vista.
Ejemplo:
* V_TERCEROS
* VM_TERCEROS
Atributos y Columnas
Las siguientes reglas se aplican a la denominación de las columnas:
No debe superar una longitud máxima de 30 caracteres.
Las palabras en el nombre deben estar separados por un guión bajo.
Deberán evitarse las abreviaturas, prefiriendo palabras completas, siempre que sea posible.
Los nombres de columna y componentes de nombre serán en singular, no en plural.
Los nombres de columna que se refieren a una bandera booleana o estado tendrán un nombre que empezará por FLG_ . Se informa que una bandera debe ser utilizada cuando un valor sólo puede ser uno de dos estados y debe estar definida como NOT NULL.
Los nombres de columna que se refieren a un código deben empezar con COD_
Los nombres de columna que se refieren a un LOB deben empezar con LOB_
Los nombres de columna que se refieren a un CLOB deben empezar con CLOB_
Los nombres de columna que se refieren a un BLOB deben empezar con BLOB_
Las columnas CLOB/BLOB deben inicializarse con la función EMPTY_CLOB/EMPTY_BLOB según el tipo
No utilice tipos binarios para almacenamiento de recursos o archivo evalue el uso de BLOB o puede utilizar CLOB y almacenar el recurso en Base64 de esta formata optimiza el espación y se permite la lectura del recurso sin herramientas de terceros o visores especiales
No utilizar palabras reservadas de Oracle en el nombre de columna.
No utilizar el tipo de dato CHAR como opcion utilice VARCHAR2.
Las columnas VARCHAR2 deben estar definidas en base binaria (1,2,4,8,16,32,64,128,256…).
Las columnas DATE deben empezar con la palabra FECHA_.
Ejemplo:
* FLG_ACTIVO NUMBER
* FECHA_REGISTRO DATE
* DESCRIPCION VARCHAR2(256)
* CLOB_MEMO CLOB DEFAULT EMPTY_CLOB()
Llaves ó Claves
Primarias
El nombre debe estar en singular.
Puede estar compuesta por el alias de la tabla.
Cuando la llave primaria este compuesta de un solo campo el nombre debe ser el nombre de la tabla o su alias y debe empezar por PK_ Ej: PK_TERCERO
Cuando la llave primaria este compuesta por más de un campo el nombre debe ser el nombre de la tabla o su alias y debe empezar por PKC_ Ej: PKC_TERCERO
No debe superar una longitud máxima de 30 caracteres.
Foráneas
El nombre debe estar en singular.
Puede estar compuesta por el alias de la tabla referenciada.
Cuando la llave foránea esta compuesta por un solo campo, debe empezar por FK_[nombre de la tabla][identificador]. El identificador será el numero de referencia que corresponde a la tabla asociada empezando por 01, 02, 03, 04…NM EJ: FK_TERCERO01.
Cuando la llave foránea esta compuesta por varios campos, debe empezar por FKC_[nombre de la tabla][identificador]. El identificador será el numero de referencia que corresponde a la tabla asociada empezando por 01, 02, 03, 04…NM EJ: FKC_TERCERO01.
No debe superar una longitud máxima de 30 caracteres.
Únicas
El nombre debe estar en singular.
Puede estar compuesta por el alias de la tabla.
Cuando la llave única esta compuesta por un solo campo, debe empezar por UK_[nombre de la tabla][identificador]. El identificador será el número de referencia que corresponde a la siguiente llave unica en la tabla empezando por 01, 02, 03, 04…NM EJ: UK_TERCERO01.
Cuando la llave única esta compuesta por varios campos, debe empezar por UKC_[nombre de la tabla][identificador]. El identificador será el número de referencia que corresponde a la siguiente llave unica en la tabla empezando por 01, 02, 03, 04…NM EJ: UKC_TERCERO01.
No debe superar una longitud máxima de 30 caracteres.
Indices
Indice de Clave Primaria
El nombre debe estar en singular.
Puede estar compuesto por el alias de la tabla.
Debe empezar por IDX_
En lo posible utilizar el mismo nombre utilizado para la clave EJ: PK_TERCERO → IDX_TERCERO.
En lo posible almacenar los indices en un tablespace diferente al que se utilizó para la definición de la tabla.
No debe superar una longitud máxima de 30 caracteres.
Indice de Clave Externa
El nombre debe estar en singular.
Puede estar compuesto por el alias de la tabla.
Si el índice no es un índice de mapa de bits el nombre estará formado por el nombre de la restricción de clave externa y debe empezar por IDX_
Si el índice es un índice de mapa de bits debe empezar por BIDX_
En lo posible almacenar los indices en un tablespace diferente al que se utilizó para la definición de la tabla.
No debe superar una longitud máxima de 30 caracteres.
Indice de base Función
El nombre debe estar en singular.
Puede estar compuesto por el alias de la tabla.
Debe empezar por FBI_
En lo posible almacenar los indices en un tablespace diferente al que se utilizó para la definición de la tabla.
No debe superar una longitud máxima de 30 caracteres.
Indice de Clave Única
El nombre debe estar en singular.
Puede estar compuesto por el alias de la tabla.
Si el índice no es un índice de mapa de bits, ó basado en función debe empezar por IDX_.
Si el índice es un índice de mapa de bits debe empzar por BIDX_
índices únicos no se crearán a menos que exista una restricción única correspondiente.
En lo posible almacenar los indices en un tablespace diferente al que se utilizó para la definición de la tabla.
En lo posible utilizar el mismo nombre utilizado para la clave unica EJ: UK_TERCERO01 → IDX_TERCERO01.
No debe superar una longitud máxima de 30 caracteres.
Otros Indices
El nombre debe estar en singular.
Puede estar compuesto por el alias de la tabla.
Si el índice no es un índice de mapa de bits, ó basado en función debe empezar por IDX_.
Si el índice es un índice de mapa de bits debe empzar por BIDX_
En lo posible almacenar los indices en un tablespace diferente al que se utilizó para la definición de la tabla.
No debe superar una longitud máxima de 30 caracteres.
Secuencias
El nombre debe empezar por SEQ_.
El nombre no puede ser superior a 30 caracteres de longitud.
No utilice palabras reservadas de Oracle para componentes de nombre de secuencia.
Cuando una secuencia es utilizado por una tabla se debe utilizar el alias de la tabla ej: SEQ_TERCEROS.
Cuando una secuencia es utilizada por varias tablas se deben usar los alias de las tablas que la utilizan ej: SEQ_TER_PLAC.
Triggers
El nombre debe empezar por TRG_.
El nombre no puede superar los 30 caracteres de longitud.
El nombre debe seguir el siguiente convenio de denominación: TRG_ (activación: Before= B, After: A)_(operación: Insert= I, Update= U, Delete=D)_tabla Ej: TRG_BI_TERCERO
Check Constraints
Roles
DBLinks
Directorios
Bases de Datos
Las reglas para la creacion de bases de datos serán definidas por el equipo de implantación sin embargo se deben considerar las siguientes recomendaciones:
El nombre debe estar en mayusculas.
El nombre debe intuir el nombre del cliente (utilizar alias).
De ser posible asociar al nombre un identificador numerico. EJ DESARROLLO00
PL/SQL
Paquetes
Debe empezar por PKC_, ó PKG_
Los nombres de paquetes no pueden superar los 30 caracteres de longitud.
No utilice palabras reservadas de Oracle para componentes de nombre del paquete.
Funciones
Procedimientos Almacenados
Variables
Alcance
Global: g
Local: l
Constante: c
Tipos de Datos
Number: n_
Varchar2: v_
Date: dt_
Tipos: tpy_
Cursor: cur_
Exception: exc_
Parametros
Entrada: ai
Salida: ao
Entrada/Salida: aio
Extenciones de Archivos
Se permite el tipo generico sql para todos los archivos ó según el tipo de objeto se permiten los siguientes tipos:
Especificacion de Paquete: .pks
Cuerpo de Paquete: .pkb
Consultas: .sql
Triggers: .trg
Funciones: .fnc
Procedimientos: .prc
Vistas: .v
Vistas Materializadas: .vm
Especificación deTipo: .tps
Cuerpo de Tipo: .tpb
Recomendaciones:
La siguientes recomendaciones no imponen reglas de utilización sin embargo trate en lo posible de aplicarlas ya que el hacerlo optimiza el código generado:
Agrupe funciones y procedimientos en paquetes.
Evite la función raise_application_error utilice en su lugar Raise y defina excepciones personalizadas utilizando el inicializador pragma exception_init.
Evite los operadoradores SQL% ???? en su lugar utilice capturadores begin exception.
Evite el uso del Open al abrir cursores en su lugar utilice el bucle for.
Todas las consultaas select into deben estar incluidas dentro de un bloque begin exception y al menos debe validar las excepciones NOT_DATA_FOUND y TOO_MANY_ROWS
Evite el uso de las funciones de formatos en consultas pesadas
TO_CHAR: si valida fechas utilice mejor el operador EXTRACT
TRUNC en variables numéricas trate de utilizar el operador matematico que desea aplicar.
←Volver atrás