Documente Academic
Documente Profesional
Documente Cultură
Versin 1.2
Jefatura de Arquitectura
Gerencia de Desarrollo de Servicios
Direccin de Tecnologas de Informacin
Noviembre 2014
REVISIONES
Fecha
Versin
01/Agosto/10
1.0
15/06/2012
1.1
11/11/2014
1.2
Descripcin
Versin original
Modificacin de estandares alineados a la
Arquitectura de Referencia
Modificacin de estndares
Autor
Anny Aldoradin
Javier Rosado
Javier Rosado
Pagina: 2 / 20
Noviembre 2014
TABLA DE CONTENIDOS
1.
OBJETIVO
2.
2.1
2.2
2.3
2.4
2.5
2.6
2.7
2.8
2.9
2.10
2.11
2.12
2.13
2.14
2.15
2.16
2.17
2.18
2.19
4
4
5
5
5
6
6
7
7
7
7
7
8
8
9
9
10
10
11
11
12
12
15
16
16
16
17
19
Pagina: 3 / 20
Noviembre 2014
Prefijo
Ejemplo
Comentarios
DB_<Sistema>
DB_AUDITORIA
Debe ser un nombre representativo escrito con mayscula
USR_<MODULO>
USR_ADMINISTRACION, USR_VENTAS
Debe ser un nombre representativo escrito con mayscula.
En el ejemplo son los esquemas de VENTAS
ADMINISTRACION.
Pagina: 4 / 20
Noviembre 2014
TBS_<TIPO>_USR<MODULO>
Tipo Tablespace:
DATA: Tablespace de datos.
INDEX: Tablespace de ndices.
TEMP: Tablespace temporal.
Ejemplo
Comentarios
TBS_DATA_USRADMINISTRACION, TBS_INDEX_USRVENTAS
Debe ser un nombre representativo escrito con mayscula.
En el ejemplo son los Tablespace de los esquemas de VENTAS y
ADMINISTRACION.
<Prefijo Sistema>T_<NombreTabla>
T : Tabla
Ejemplo
Comentarios
Pagina: 5 / 20
Noviembre 2014
Ejemplo
Comentarios
Ejemplo
Comentarios
Pagina: 6 / 20
Noviembre 2014
<PrefijoSistema>V__<NombreVista>
V : VISTA
AUDIV_CONSULTA_USUARIO
En el caso que la vista sea sobre una nica tabla, se adopta el
nombre de la tabla, en caso contrario se utiliza los criterios para
nombrar tablas.
T_<NombreTipoDato>
T_IMPORTE
Usar TIPOS DE DATOS cuando se hayan definidos Dominios
R_<NombreRegla>
R_IMPORTE
Usar RULES solo para user defined data types, en caso de
columnas usar CHECKS.
D_<Nombre_Default>
D_IMPORTE
Usar DEFAULT (Procedural) solo para user definied data types, en
caso de columnas usar DEFAULT (Declarativo).
Pagina: 7 / 20
Noviembre 2014
PKG_<Nombre_Package>
Ejemplo
PKG_CONSULTA_USUARIOS:
Package
con
los
procedimientos para consultor usuarios de sistema.
PKG_NUMEROS_rpc: Package con los procedimientos para
consultor nmeros de la rpc.
La longitud mxima del Nombre de los paquetes, en algn caso
extremo, ser de 25 caracteres.
Comentarios
Ejemplo
Comentarios
<PrefijoSistema>SX_<NombreSP>
X puede ser:
S
= SP Select
I
= SP Insert
U
= SP Update
D
= SP Delete
AUDISS_USUARIO : SP Select Usuarios
AUDISI_USUARIO : SP Insert de Usuarios
AUDISU_USUARIO : SP Update de Usuarios
La longitud mxima del Nombre SP, en algn caso extremo, ser de
15 caracteres.
Pagina: 8 / 20
Noviembre 2014
<PrefijoSistema>FUN_<NombreTabla>
AUDIFUN_USUARIO
AUDIFUN_USUARIO
Comentarios
<PrefijoSistema>TRX_<NombreTabla>
X puede ser:
I : Insert
U: Update
D: Delete
Ejemplo
Comentarios
AUDITRI_USUARIO
AUDITRU_USUARIO
Pagina: 9 / 20
Noviembre 2014
<PrefijoSistema>SEQ_<NombreTabla>
Ejemplo
Comentarios
AUDISEQ_USUARIO
AUDISEQ_USUARIO
<PrefijoSistema>SYXX_<NombreTabla>
XX puede ser:
Ejemplo
Comentarios
PU
= Publico
PR
= Privado
AUDISYPU_USUARIO
AUDISYPR_USUARIO
La longitud mxima del Nombre del sinonimo, en algn caso
extremo, ser de 15 caracteres.
Pagina: 10 / 20
Noviembre 2014
Todo pase a produccin debe cumplir con los estndares fijados en el presente
documento.
Todos los aplicativos deben estar documentados (contar con un diccionario de datos y
diagramas de procesos).
Debern enviar los modelos de datos conteniendo los usuarios a los cuales se tiene
que dar permisos.
Pagina: 11 / 20
Noviembre 2014
Se usarn Stored Procedures para codificar todas las sentencias SQL, el uso de
sentencias SQL en el lado del cliente debe ser totalmente evitado.
Todos los stored procedures que realicen actualizaciones debe ejecutarse mediante
transacciones, el uso de transacciones es necesario y de uso obligatorio en todos los
procesos de actualizacin.
Pagina: 12 / 20
Noviembre 2014
Ejemplo de comentario:
CREATE PROCEDURE AUDISS_USUARIO
/*
******************************************************
Procedimiento : AUDISS_USUARIO
Propsito
: Este procedimiento es responsable de
...
Inputs : N/A
Ouputs
: N/A
Se asume
: N/A
Efectos
: N/A
Retorno
: N/A
Notas
: N/A
Modificaciones : N/A
Encargado
:XXXXXXXX
Fecha y hora
: 12/04/2002 - 11:13 pm.
******************************************************
*/
Los parmetros pasados a los STORED PROCEDURE deben ser descritos cuando sus
funciones no sean obvias y cuando la rutina espera que el parmetro est en un rango
especifico de valores. El valor de retorno del STORED PROCEDURE, las variables
globales que son cambiadas por la rutina y especialmente parmetros pasados por
referencia (OUTPUT), deben tambin ser descritos al inicio de cada STORED
PROCEDURE.
Todos los comentarios de mas de una lnea deben hacerse con los caracteres /* */de
la siguiente manera:
CREATE TRIGGER AUDITRI_USUARIO
/*
*
Because CHECK constraints can reference the column(s)
*
on which the column- or table-level constraint has
*
been defined, any cross-table constraints (in this case,
*
business rules) need to be
*/
ON AUDIT_USUARIO
defined
as
triggers.
FOR INSERT
AS
...
Pagina: 13 / 20
Noviembre 2014
Set
Codigo
Set
nombre
de
AUDIT_USUARIO
=
usuario
usuario
A,
B
B.USUAC_COD
En caso de nombres con varias palabras, stas deben separase con un carcter _, de
la siguiente manera: palabras_del_nombre.
Para reflejar la estructura lgica del cdigo, debe usarse el carcter TAB. NO usar
espacios ASCII(32). El TAB debe configurarse como ocho caracteres.
Pagina: 14 / 20
Noviembre 2014
Las sentencias SQL deben escribirse de una manera que reflejen la estructura lgica
de la sentencia, evitar totalmente construir sentencias como:
SELECT CH_C1, CH_C2, CH_C3
FROM SGT_TA_TABLA1 TABLA1, SGT_TA_TABLA2 TABLA2
WHERE TABLA1. CH_C1 = TABLA2. CH_C2 AND
TABLA.DT_D4 = GETDATE()
en su lugar construir sentencias como:
SELECT USUAC_C1,
USUAV_C2,
USUAV_C3
FROM AUDIT_TABLA1 TABLA1, AUDIT_TABLA2 TABLA2
WHERE TABLA1. USUAC_C1 = TABLA2.USUAC_C2 AND
TABLA2.USUAD_C4 = GETDATE()
Todos los nombres de variables debe escribirse en letras maysculas separando las
palabras con un underscore _, adems deben seguir el siguiente formato:
Tipo_de_variable_nombre_de_la_variable
Donde el tipo de variable es se define a continuacin:
Parmetro
:
K
Variable local o global:
V
Variable de Columna de Tabla:
C
Ejemplo:
@K_CODIGO_CLIENTE
@V_CODIGO_CLIENTE_AUX
@C_CODIGO_UNICO
Pagina: 15 / 20
Noviembre 2014
Evitar que los nuevos StoreProcedure y Functions contengan COMMIT como parte de
la programacin, la gestin de las transacciones la debe gestionar la aplicacin que
hace uso de dichos objetos para asegurar la integridad de una transaccin que
involucre a varios objetos.
Pagina: 16 / 20
Noviembre 2014
Evitar usar usuarios y esquemas con roles de DBA o tener ms privilegios de lo que se
requieren.
Usar GLOBAL TEMPORARY TABLE para tablas temporales, no usar tablas fsicas.
Usar Tablas Temporales y/o la clusula WITH para reescribir Subqueries complejos.
Evitar hacer algn calculo en una COLUMNA que tiene INDICE en el WHERE a menos
que exista una INDICE basado en Funcin para esta columna.
Evitar usar excesivos INDICES, en lo posible reusar los que se tengan, muchos ndices
degradan la Insercin y actualizacin de informacin.
Usar BULK COLLECT para las sentencias SELECT en consultas recursivas y masivas
(Bulk SQL.)
Usar FORALL para las sentencias DML en la actualizacin recursiva y masiva de Datos
(Bulk SQL).
Pagina: 17 / 20
Noviembre 2014
Evitar la conversin de tipos de Datos, seleccionar los tipos de datos con cuidado para
minimizar las conversiones implcitas. Como por ejemplo usar datos tipo carcter para
expresiones de cadena o Datos tipo decimales en expresiones numricas o de
clculos.
Para OLTP evitar el uso de Paralelismo, este es una caracterstica que se usa para
procesos BATCH y DWH.
Pagina: 18 / 20
Noviembre 2014
Evitar crear Tablas e ndices con Parallel, siempre Validar la creacin de objetos con el
DBA.
Para la Creacin de tablas de trabajo USAR los tablespaces asignados para tal fin
(WORK_DATA, WORK_INDX).
Usar MERGE en vez de Cursores para procesos que demandan gran volumen de
Datos, evitando el uso de INDICES.
Para la creacin y carga de tablas con informacin reciente o vigente usar el tipo de
compresin FOR QUERY HIGH.
Para la creacin y Carga de tablas con informacin Histrica usar el tipo de compresin
FOR ARCHIVE HIGH.
Evite el uso de PLSQL cuando el cdigo SQL puede ser mejor y mas rpido.
No USAR UTL_FILE para leer archivos planos en lugar de ello usar TABLAS
EXTERNAS.
Pagina: 19 / 20
Noviembre 2014
Usar SQL MERGE en vez de PLSQL para comparar y procesar gran volumen de
registros.
Activar Calidad de Servicio (QoS) para asegurar los tiempos de respuesta adecuados y
el uso eficiente de los recursos de la Base de Datos.
Evitar el uso de UPDATE o DELETE para corregir informacin; es mejor eliminar las
particiones respectivas y volver a cargar la informacin.
Pagina: 20 / 20