bbdd_normativa
DESCRIPTION
Ejemplo de Estandares de Base de Datos OracleTRANSCRIPT
-
Normativa de Modelado de Bases de Datos y Uso de la Herramienta ERWIN
Versin 1.15
rea de Integracin y Arquitectura de Aplicaciones
-
Normativa de Modelado de Bases de Datos y Uso de la herramienta ERWIN
2 de 112
Hoja de Control
Ttulo Normativa de Modelado de Bases de Datos y Uso de la herramienta ERWIN
Documento de
Referencia
Responsable rea de Integracin y Arquitectura de Aplicaciones
Versin 1.15 Fecha Versin 26/11/2014
Registro de Cambios
Versin Causa del Cambio Responsable del
Cambio Fecha
1.0 Versin inicial del documento, se parte de la normativa para una versin anterior de la herramienta ERWIN
rea de Integracin y
Arquitectura de
Aplicaciones
15/09/2011
1.1
- Cambiada RolNombreRoles, estaba repetida, se renombra una a RolNoUsuarios - Eliminada la regla CarLOBS, estaba duplicada con la regla CarScriptLOB. Modificado el texto de CarScriptLOB para que se incluya un fichero independiente por cada tabla
rea de Integracin y
Arquitectura de
Aplicaciones
16/09/2011
1.2
- PLANTILLAS XML: Cambio de plantillas de generacin de scripts para valores default de columnas - PLANTILLAS FET: Cambio de plantillas ".fet", no generaba saltos de lnea en los paquetes. - TABObligaPK: Las tablas que representan relaciones muchos a muchos no tienen que llevar PK nica, independientemente de que tengan ms campos. - GENObjetosMayuscula: Los objetos no pueden contener la letra ee. - BOPostRole: Modificado nombre del rol a XXXX_DW_ALL - BOGrantsOtros: Modificado nombre del rol a XXXX_DW_ALL - JOBNombreJobs: Los jobs ya no se meten como post-scripts sino como comentarios en un subject rea especfica. - CARScriptTemplates: No se permite ningn script template a nivel de modelo. - BOBNombreRol: El rol para BO se crea en un fichero SQL, no en un script template. - BOBNombreRol, BOPostRole, BOGrantsOtros: Reglas no aplicables a proyectos BO de Nexus. - ROLScriptRoles: Nueva regla - Versionado de los archivos .fet y .xml
rea de Integracin y
Arquitectura de
Aplicaciones
13/10/2011
1.3
- PLANTILLAS XML: Cambio de plantillas de generacin de scripts - PLANTILLAS FET: Cambio de plantillas ".fet", incorporada una barra al final de los Packages. - PLANTILLA DE PARTIDA: Modificado custom
rea de Integracin y
Arquitectura de
Aplicaciones
13/10/2011
-
Normativa de Modelado de Bases de Datos y Uso de la herramienta ERWIN
3 de 112
Versin Causa del Cambio Responsable del
Cambio Fecha
trigger template ICM para no incluir la barra al final de los triggers. - Apartado 5: Includo apartado para comparar con modelo real de base de datos. - TBSDefTablespaces: Los tablespaces tienen que tener activado el check de Generate. - TRINombreTrigger: Corregida errata befote - GENHerramienta: Corregida errata, sobraba un punto en el nmero de versin.
1.4
- PLANTILLAS XML: Cambio de la plantilla ICM_OPCIONES_GENERACION_SCRIPTS_V1_4.xml y ICM_TYPE_SELECTION_V1_3.xml para que se generen default values en comparaciones con modelo reales. - Al comparar con modelo de datos real, ignorar las diferencias que aparezcan en zona Default Values. - JOBNombreJobs: Modificada etiqueta de Jobs e indicado que se incluir una por cada Job. - En la plantilla de partida el tipo del Domain ICM_IDPK es NUMBER(10) - GENPlantillaFich y GENNombreFich: Quitada la versin del modelo del nombre del fichero. - GENUDPs: Nueva UDP a nivel del modelo para indicar la versin. - GENVersion: Nueva norma, cada vez que se hace una entrega hay que incrementar la versin del modelo. - Business Objects: Incorporado a este documento toda la normativa de base de datos en BO, y quitada de la normativa de BO (nueva norma BOBNombreTablas). - BOUDP: Ya no es necesario el post-script para Business Objects, basta con modificar la UDP DESTINO GRANT. - BOPostRole: Desaparece. - BOGrantsOtros: Desaparece. - En el apartado de entrega, se hace referencia a la ficha de entrega de mdulo de base de datos. - Templates: Unificados los dos templates anteriores en uno slo: ICM_TEMPLATE_COMUN_V1_4.fet - CARScriptTemplates renombrada y movida de sitio, ahora se llama GENScriptTemplates - ROLNoRoles: En caso de autorizarse roles, se hacen en un fichero SQL no en un script template. - DOCNombreTriggers: Cambiado el nombre a DOCTriggers.
rea de Integracin y
Arquitectura de
Aplicaciones
15/03/2012
1.5
- Apartado USER DEFINED PROPERTIES: Especificado que cuando se modifica una UDP se ha de hacer en dos sitios distintos. - TBSDefTablespaces: Excludos los tablespaces de modelos de Business Objects de esta norma. - BOBDefTablespaces: Nueva norma.
rea de Integracin y
Arquitectura de
Aplicaciones
12/11/2012
-
Normativa de Modelado de Bases de Datos y Uso de la herramienta ERWIN
4 de 112
Versin Causa del Cambio Responsable del
Cambio Fecha
1.6
- Apartado 5: Antes de entregar, si el modelo ya se encuentra instalado en produccin, comparar con la base de datos de preproduccin. - VISUserDefinedFrom: En las vistas definidas como User Defined SQL, si en la clasula FROM aparecen otras vistas del Modelo de datos, stas vistas deben indicarse en la pestaa FROM para que en la ejecucin del script se generen en el orden correcto
rea de Integracin y
Arquitectura de
Aplicaciones
16/01/2013
1.7
- Apartado 2.1.3: En Buena Prctica GENEjemplo
actualizado formato de fichero erwin: AGCC-ERW.erwin - Apartado 5: En el Paso1 actualizado formato de fichero erwin : XXXX-ERW.erwin - Apartado 5: En NOTA IMPORTANTE actualizado nombre de fichero script para comparaciones: Para esta comparacin, se utilizar el script proporcionado : ICM_TYPE_SELECTION_VX_Y.xml - Apartado 5: borrado: (Si se est comparando contra la base de datos de preproduccin de ICM, se utilizar ICM_TYPE_SELECTION_PPRO_VX_Y.xml)
rea de Integracin y
Arquitectura de
Aplicaciones
29/07/2013
1.8
- Includo nuevo Apartado 3.4 para Modelos muy grandes que se dividen envarios ficheros ERWIN y varios DBAs.
rea de Integracin y
Arquitectura de
Aplicaciones
13/06/2014
1.9
- Apartado 2.4.8: Se modifica ste apartado para que haya un check (validation rule) para cada columna y se prohbe en el contenido del check la variable %ColumnName, esto permite que al realizar el complate compare de stos objetos se realice correctamente. - Desaparece la buena prctica TABReutilizarCheck desaparece - Se aaden las normas: TABMaxCheck y TABColNameCheck
rea de Integracin y
Arquitectura de
Aplicaciones
29/07/204
1.10 - En el apartado 2.7 Se incorpora una nueva norma PFPOutput
rea de Integracin y
Arquitectura de
Aplicaciones
26/09/2014
1.11
- En el apartado 2.4.6 se incorpora un nuevo tipo de ndices: PRn[NOMBRE_TABLA] Para los ndices Locales de tablas Particionadas
rea de Integracin y
Arquitectura de
Aplicaciones
02/10/2014
1.12 - En el apartado 3.3 se adapta la normativa documentum a erwin 7
rea de Integracin y
Arquitectura de
Aplicaciones
07/10/2014
1.13 - En el apartado 2.4.6 se incorpora un nuevo tipo de ndices: PGn[NOMBRE_TABLA] Para los
rea de Integracin y
Arquitectura de 14/10/2014
-
Normativa de Modelado de Bases de Datos y Uso de la herramienta ERWIN
5 de 112
Versin Causa del Cambio Responsable del
Cambio Fecha
ndices Locales de tablas Particionadas - En el apartado 2.4.10 se incorporan nuevas normas y recomendaciones de uso de ndices en tablas particionadas
Aplicaciones
1.14 - En el apartado 2.4.10 se ha aadido la norma TABPartPasoProduccion
17/10/2014
1.15
- En el apartado 2.4.1 se aade excepcin en la norma TABAsignarTablespace para las tablas GLOBAL
TEMPORARY
- En el Apartado 2.7 se modifican las normas
PFPNombreProc y PFPNombreFunc (diferenciando
si se crean dentro de un Paquete o sueltos con
Autorizacin Excepcional)
rea de Integracin y
Arquitectura de
Aplicaciones
26/11/2014
-
Normativa de Modelado de Bases de Datos y Uso de la herramienta ERWIN
6 de 112
ndice
1 INTRODUCCION ................................................................................................................................................... 8
1.1 AUDIENCIA OBJETIVO ................................................................................................................................. 8 1.2 CONOCIMIENTOS PREVIOS ........................................................................................................................ 8
2 NORMATIVA ......................................................................................................................................................... 9
2.1 NORMATIVA GENERAL ............................................................................................................................... 9 2.1.1 HERRAMIENTA ....................................................................................................................................................... 9 2.1.2 PROYECTO Y MDULOS ...................................................................................................................................... 9 2.1.3 PLANTILLA DE PARTIDA...................................................................................................................................... 9 2.1.4 PROTECCIN DE DATOS .................................................................................................................................... 12 2.1.5 USER DEFINED PROPERTIES ............................................................................................................................. 12 2.1.6 DOCUMENTACIN DEL MODELO .................................................................................................................... 15 2.1.7 INTEGRIDAD REFERENCIAL ............................................................................................................................. 17 2.1.8 SEGURIDAD DE OBJETOS (PERMISOS Y SINONIMOS) ................................................................................. 18 2.1.9 SCRIPT TEMPLATES ............................................................................................................................................ 20 2.1.10 PROPIETARIO DE LOS OBJETOS ................................................................................................................... 20 2.1.11 OBJETOS DUPLICADOS .................................................................................................................................. 21 2.1.12 NOMENCLATURA GENERAL DE OBJETOS................................................................................................. 22
2.2 ESTRUCTURA DEL MODELO Y REAS DE DISEO ............................................................................. 22 2.3 TABLESPACES ............................................................................................................................................. 25 2.4 TABLAS ......................................................................................................................................................... 26
2.4.1 TABLAS .................................................................................................................................................................. 26 2.4.2 TABLAS GLOBAL TEMPORARY ........................................................................................................................ 30 2.4.3 PRIMARY KEYS .................................................................................................................................................... 31 2.4.4 FOREIGN KEYS ..................................................................................................................................................... 33 2.4.5 ALTERNATE KEYS ............................................................................................................................................... 34 2.4.6 INDICES .................................................................................................................................................................. 35 2.4.7 COLUMNAS LOB (BLOB y CLOB) ...................................................................................................................... 38 2.4.8 CHECKS Y VALORES POR DEFECTO A NIVEL DE COLUMNA .................................................................... 39 2.4.9 TRIGGERS .............................................................................................................................................................. 42 2.4.9.1 TRIGGERS ESPECIALES PARA TRAZABILIDAD DE ACCESO ................................................................. 45 2.4.10 PARTICIONES Y SUBPARTICIONES DE TABLA ......................................................................................... 45 2.4.10.1 ASIGNACION DE TABLESPACES A PARTICIONES DE TABLAS Y A INDICES LOCALES PARTICIONADOS Y GLOBALES PARTICIONADOS .................................................................................................... 47 2.4.10.1.1 INDICES LOCALES PARTICIONADOS ...................................................................................................... 48 2.4.10.1.2 INDICES GLOBALES .................................................................................................................................... 49 2.4.10.1.3 INDICES GLOBALES PARTICIONADOS ................................................................................................... 50
2.5 VISTAS ........................................................................................................................................................... 52 2.5.1 VISTAS .................................................................................................................................................................... 52 2.5.2 VISTAS MATERIALIZADAS ................................................................................................................................ 56 2.5.2.1 REFRESCO DE VISTAS MATERIALIZADAS ................................................................................................ 58
2.6 SECUENCIADORES ..................................................................................................................................... 61 2.7 PROCEDIMIENTOS, FUNCIONES Y PACKAGES ..................................................................................... 62
2.7.1 PAQUETES ESPECIALES (TRAZAS Y SERVICIOS WEB) ............................................................................... 66 2.8 OTROS OBJETOS .......................................................................................................................................... 67
2.8.1 SINONIMOS REMOTOS ........................................................................................................................................ 67 2.8.2 ROLES ..................................................................................................................................................................... 69 2.8.3 JOBS ........................................................................................................................................................................ 70
2.9 CARGAS DE DATOS .................................................................................................................................... 71 2.9.1 CARGAS DE DATOS INICIALES ......................................................................................................................... 72 2.9.2 CARGAS DE DATOS DE ENTORNO ................................................................................................................... 73 2.9.3 CARGA DE FICHEROS LOB (CLOB y BLOB) .................................................................................................... 75
3 NORMATIVA ADICIONAL PARA ENTORNOS ESPECIFICOS ................................................................ 75
3.1 APLICACIONES GIS ..................................................................................................................................... 75 3.2 APLICACIONES BUSINESS OBJECTS ....................................................................................................... 75
3.2.1 TABLESPACES ...................................................................................................................................................... 75 3.2.2 SUBREAS ............................................................................................................................................................. 76 3.2.3 NOMENCLATURA DE OBJETOS ........................................................................................................................ 76 3.2.4 ROLES ..................................................................................................................................................................... 77
-
Normativa de Modelado de Bases de Datos y Uso de la herramienta ERWIN
7 de 112
3.3 APLICACIONES DOCUMENTUM .............................................................................................................. 79 3.3.1 SUBREAS ............................................................................................................................................................. 79 3.3.2 SINNIMOS REMOTOS PRIVADOS ................................................................................................................... 79 3.3.3 SECUENCIAS ......................................................................................................................................................... 80 3.3.4 TRIGGERS .............................................................................................................................................................. 82
3.4 MODELOS DE DATOS DIVIDIDOS EN VARIOS FICHEROS Y DBAS .................................................. 85
4 OTRAS CONSIDERACIONES ........................................................................................................................... 88
4.1 USO DE CATLOGOS COMUNES Y ACCESO A OTROS ESQUEMAS .................................................. 88 4.2 GENERACIN DE SCRIPTS ........................................................................................................................ 88 4.3 DESBORDAMIENTO EN NOMBRES DE NDICES, PK, FK Y TRIGGERS .............................................. 90 4.4 SENTENCIAS SQL PERMITIDAS, Y BUENAS PRCTICAS.................................................................... 91 4.5 BSQUEDAS TEXTUALES (INTERMEDIA TEXT) .................................................................................. 92
4.5.1 DEFINICIN DE INDICES DE INTERMEDIA TEXT ......................................................................................... 92 4.5.2 THESAURUS DE INTERMEDIA TEXT ............................................................................................................... 93
5 ANTES DE ENTREGAR: COMPARACIN DEL MODELO CONTRA BASE DE DATOS ..................... 95
6 FORMATO DE ENTREGA ............................................................................................................................... 107
A1.1 NORMAS ..................................................................................................................................................... 108
A1.2 BUENAS PRACTICAS .............................................................................................................................. 112
-
Normativa de Modelado de Bases de Datos y Uso de la herramienta ERWIN
8 de 112
1 INTRODUCCION
La presente gua presenta la normativa de modelado de Bases de Datos y uso de la herramienta ERWIN
para las aplicaciones desarrolladas para Informtica de la Comunidad de Madrid (ICM en adelante). En ella
se recogen tanto las normas que debe cumplir el modelo de datos como el fichero en formato ERWIN que
contiene toda la definicin de ste.
En esta normativa se incluyen dos tipos de indicaciones para el correcto desarrollo de aplicaciones:
o Normas: Son requisitos de obligado cumplimiento, y se encuentran definidas dentro de una caja
de color azul:
NO
RM
A
NombreDeNorma
Contenido de la norma.
o Buenas prcticas: Son recomendaciones. No son de obligado cumplimiento aunque para un
correcto funcionamiento se recomienda cumplirlas siempre que sea posible. Se encuentran
definidas dentro de una caja de color amarillo:
BU
EN
A
PR
AC
TIC
A
NombreDeBuenaPractica
Contenido de la Buena Prctica.
1.1 AUDIENCIA OBJETIVO
Este documento va dirigido a jefes de proyecto, analistas y desarrolladores de proyectos que requieran
definir y/o modificar modelos de datos para aplicaciones de ICM.
1.2 CONOCIMIENTOS PREVIOS
Para un completo entendimiento del documento, el lector deber tener conocimientos previos sobre SQL,
bases de datos Oracle, diseo de modelos de datos relacionales y la herramienta de diseo y modelado
ERWIN.
-
Normativa de Modelado de Bases de Datos y Uso de la herramienta ERWIN
9 de 112
2 NORMATIVA
2.1 NORMATIVA GENERAL
En este apartado se incluye la normativa general a aplicar a todos los modelados de Base de Datos
realizados para la Comunidad de Madrid.
2.1.1 HERRAMIENTA
En ICM todo modelo de datos tiene que estar desarrollado con la herramienta ERWIN Versin 7. Esto
asegura homogeneidad en todos los proyectos, y documentacin del modelo de datos centralizada.
NO
RM
A
GENHerramienta
Todo modelo de datos debe estar realizado con la herramienta ERWIN 7.3.8.2235 (Service Pack
2).
2.1.2 PROYECTO Y MDULOS
Un proyecto en ICM puede contener varios mdulos, entre ellos el que contiene la definicin del modelo de
datos. El mdulo de base de datos se incluye dentro de la entrega segn la nomenclatura y estructura de
ficheros definidas en el apartado FORMATO DE ENTREGA.
2.1.3 PLANTILLA DE PARTIDA ICM establece una serie de estndares para la realizacin de modelos de datos, adems de una plantilla
de partida que debe utilizarse como base para su realizacin (Fichero XXXX-ERW.erwin).
NO
RM
A
GENPlantillaFich
El Modelo de datos Erwin se debe construir a partir de la plantilla XXXX-ERW.erwin.
NO
RM
A GENNombreFich
La Nomenclatura del fichero erwin debe ser: XXXX-ERW.erwin donde:
XXXX: Nombre del proyecto (Ejemplo: AGCC)
BU
EN
A
PR
AC
TIC
A GENEjemplo
Para ver un ejemplo de fichero de ERWIN bien formado, se recomienda consultar el archivo
publicado en la web de SOJA denominado AGCC-ERW.erwin
-
Normativa de Modelado de Bases de Datos y Uso de la herramienta ERWIN
10 de 112
En la plantilla de partida viene configurado el tipo de base de datos por defecto (Oracle V9.X), segn se
muestra en la siguiente figura:
No se puede modificar esta configuracin, debiendo siempre estar configurada esta base de datos, segn
se muestra en la siguiente norma:
NO
RM
A
GENVersionOracle
Todo modelo de datos estar configurado para la base de datos Oracle Versin 9.x
En la plantilla de partida tambin viene configurada la notacin que utiliza el modelo. Dicha notacin no se
podr modificar, segn se muestra en la siguiente figura:
-
Normativa de Modelado de Bases de Datos y Uso de la herramienta ERWIN
11 de 112
NO
RM
A
GENNotacionIDEF1X
Todo modelo de datos estar configurado con la notacin IDEF1X (Integration DEFinition for
Information Modeling).
En la plantilla de partida vienen definidos los patrones por defecto que se van a utilizar a la hora de crear
distintos tipos de objeto. Podemos consultarlos accediendo a la opcin de men Tools -> Names -> Model
Naming Options:
-
Normativa de Modelado de Bases de Datos y Uso de la herramienta ERWIN
12 de 112
B
UE
NA
PR
AC
TIC
A GENNamingOptions
Se recomienda no modificar las opciones Naming Options que vienen definidas en la plantilla,
para que tanto las relaciones como los ndices se creen por defecto con el nombre adecuado.
2.1.4 PROTECCIN DE DATOS Si el modelo incluye tablas que contengan datos personales susceptibles de ser tratados de forma especial
segn la LOPD, se tendr en cuenta el tratamiento especial de estas tablas segn la ley aplicable
(consultar documento especfico sobre proteccin de datos).
NO
RM
A
GENTratarLOPD
Si los datos contenidos en el modelo son de nivel de proteccin alto (nivel 3), se tendr que
implementar la auditora de acceso a los datos con los mecanismos disponibles.
Asimismo se crear un rea de diseo especfica que contenga los objetos afectados, y en la
descripcin del modelo se incluir un listado de las tablas que contengan datos personales de
nivel alto.
NO
RM
A
GENAltaFicheroLOPD
Si el modelo incluye tablas que contengan datos personales, se tendr que gestionar el alta del
fichero en la Agencia de Proteccin de Datos de la Comunidad de Madrid, declarando el uso y
destino que se va a dar a dichos datos.
El alta del fichero en la APDCM es imprescindible para la puesta en produccin del modelo de
datos.
2.1.5 USER DEFINED PROPERTIES En la plantilla de partida se encuentran definidas a nivel de modelo varias UDPs (User Defined Properties),
que incluyen informacin sobre la versin de la plantilla, la versin de la normativa de Base de Datos a la
que afecta, y la versin del modelo que estamos tratando:
-
Normativa de Modelado de Bases de Datos y Uso de la herramienta ERWIN
13 de 112
En la siguiente norma se describen las UDPs que deben estar presentes en todo modelo.
NO
RM
A
GENUDPs
Todo modelo debe contener al menos las siguientes UDPs (User Defined Properties), vienen
includas en la plantilla de partida:
- VERSION PLANTILLA: Indica la versin de la plantilla que se ha utilizado como punto de
partida para el modelo.
- VERSION NORMATIVA: Indica la versin de la normativa de base de datos que debe
cumplir el modelo.
- VERSION MODELO: Indica la versin actual del modelo ERWIN.
- DESTINO GRANT: Indica el usuario al que se har GRANT cada vez que se cree un
sinnimo pblico. Su valor deber ser PUBLIC excepto en modelos de datos de
Business Objects.
NO
RM
A
GENVersion
Cada vez que se introduzca una modificacin al modelo ERWIN y se pretenda instalar esta nueva
versin en alguno de los entornos de ICM, deber modificarse el valor de la UDP cuyo nombre es
VERSION MODELO, para incrementar la versin.
Las Unidades de Recepcin de Aplicacin y de Paso a Produccin no instalarn un modelo si no
se ha modificado dicha versin.
-
Normativa de Modelado de Bases de Datos y Uso de la herramienta ERWIN
14 de 112
Cuando se modifica el valor de una UDP, es importante modificarlo en la pantalla de propiedades del
modelo, as como en el diccionario de UDPs. Para asegurarnos de ello, para modificar una UDP tenemos
que asegurarnos de acceder a la modificacin de la UDP de la siguiente manera:
1. Pulsar opcin de men: Model -> Model Properties .
2. Pulsar la pestaa UDP .
En esta pestaa tenemos que modificar el valor, pero no es suficiente con ello, tambin
tenemos que hacerlo en el diccionario de UDPs, siguiendo el paso 3.
3. Pulsar el botn de edicin de Udps
Es necesario tambin modificar el valor en esta nueva pantalla:
-
Normativa de Modelado de Bases de Datos y Uso de la herramienta ERWIN
15 de 112
2.1.6 DOCUMENTACIN DEL MODELO En todo modelo de datos, cada uno de los objetos generados debe tener rellena la pestaa Comentario,
indicando una descripcin del objeto al que hace referencia.
NO
RM
A
GENComentarios
Todos los objetos del modelo deben tener rellena la pestaa Comentario con una descripcin del
objeto en cuestin, y la documentacin necesaria asociada al objeto.
Adems, el modelo a nivel general debe tener tambin comentarios indicando la informacin sobre el
modelo, segn se muestra en la siguiente pantalla:
-
Normativa de Modelado de Bases de Datos y Uso de la herramienta ERWIN
16 de 112
NO
RM
A GENComentariosModelo
Se debe rellenar la pestaa Definition de las propiedades del modelo, con la descripcin general
del modelo, as como un listado de las tablas que contengan datos personales sensibles para la
Ley de Proteccin de Datos de nivel alto.
Asimismo, cada rea de diseo del modelo tambin debe tener una descripcin general, rellena en la
pestaa Definition segn se muestra en la siguiente pantalla:
-
Normativa de Modelado de Bases de Datos y Uso de la herramienta ERWIN
17 de 112
NO
RM
A
GENComentariosAreas
Se debe rellenar la pestaa Definition de las propiedades de cada una de las reas del modelo,
con la descripcin general del rea.
2.1.7 INTEGRIDAD REFERENCIAL En este apartado se incluye la normativa relativa a la integridad referencial de los modelos de datos, as
como su definicin dentro de la herramienta ERWIN.
En los modelos de datos desarrollados para ICM, salvo autorizacin expresa, se debe utilizar integridad
referencial basada en Primary Keys y Foreign Keys. Adems se debe seguir una nomenclatura
especfica para estas claves (la plantilla de partida ya est configurada para seguir esta nomenclatura).
Para consultar la nomenclatura de las PKs y FKs pueden consultarse los apartados concretos que hablan
de este tipo de objetos.
-
Normativa de Modelado de Bases de Datos y Uso de la herramienta ERWIN
18 de 112
NO
RM
A
GENIntReferencial
En los modelos de datos desarrollados para ICM, salvo autorizacin expresa por parte del rea de
Integracin y Arquitectura de Aplicaciones, se debe utilizar integridad referencial basada en
Primary Keys y Foreign Keys.
Toda tabla relacionada con otra deber contener su Foreign Key correspondiente a esa
relacin. Se evitar salvo casos excepcionales la existencia de tablas aisladas no relacionadas.
* Nota: Si se utilizan modelos de datos antiguos es posible que se encuentren tablas definidas sin
integridad referencia, o con integridad referencial basada en triggers.
2.1.8 SEGURIDAD DE OBJETOS (PERMISOS Y SINONIMOS) En los modelos de datos de ICM todos los objetos tienen un sinnimo pblico asociado, as como un
GRANT que concede permisos sobre ese sinnimo a todos los usuarios (PUBLIC). Mientras que el
sinnimo se asigna con un check en la definicin del objeto, para realizar el GRANT se hace
automticamente durante la generacin del script asociado (para eso se utilizan plantillas de generacin
propias de ICM los .fet).
A continuacin se muestra un ejemplo de tabla con un sinnimo creado (el nombre debe ser igual al
nombre de la tabla), y con el check de creacin del sinnimo pblico y create or replace activados:
-
Normativa de Modelado de Bases de Datos y Uso de la herramienta ERWIN
19 de 112
Adems del sinnimo pblico que todo objeto lleva asociado, desde esta pantalla se pueden crear otros
sinnimos para el objeto si son necesarios.
A continuacin se listan una serie de normas que garantizan que la creacin de sinnimos sea correcta:
NO
RM
A
GENAsignarSinonimo
Para modelos de datos, todos los objetos de base de datos creados de tipo tabla, secuencia,
vista, procedimiento, funcin y paquete deben llevar asociado un sinnimo pblico que se llamar
igual que el objeto.
El sinnimo siempre se crear en las propiedades del objeto en la pestaa Sinnimo como
pblico, y tendr activados los checks de Generate y Create or Replace.
* Para modelos de datos de Documentum consultar la documentacin especfica de esta
tecnologa.
-
Normativa de Modelado de Bases de Datos y Uso de la herramienta ERWIN
20 de 112
NO
RM
A
GENSinonimoAdicional
En ocasiones excepcionales, adems del sinnimo pblico que todo objeto debe llevar asociado,
se pueden crear otros sinnimos adicionales (que por tanto no se llaman igual que el nombre del
objeto que representan).
En ese caso, el nombre de estos sinnimos debe ser identificativo del uso que se quiera dar al
sinnimo.
En todos los modelos de datos fsicos, a los objetos de base de datos con sinnimo pblico no remoto se
les asigna automticamente un GRANT ON NombreObjeto TO PUBLIC WITH GRANT OPTION.
Esto se realiza automticamente al utilizar la plantilla ICM_TEMPLATE_COMUN_VX_Y.fet durante la
generacin del script SQL, por lo que no es necesario realizar nada adicional en el modelo ERWIN.
NO
RM
A
GENNoGrants
No se debern asignar GRANTS manualmente a los sinnimos pblicos de los objetos, ya que
esto se hace automticamente al generar los scripts.
* Excepcionalmente, para los modelos de aplicaciones Documentum, GIS Business Objects
consultar las normas especficas para estas tecnologas.
2.1.9 SCRIPT TEMPLATES
NO
RM
A
GENScriptTemplates
No se permite la inclusin de Script Templates a nivel de modelo (Model Level), salvo
autorizacin excepcional por parte de ICM.
2.1.10 PROPIETARIO DE LOS OBJETOS En todo modelo de datos, todos los objetos que permitan la opcin de definir el Owner deben tenerlo
definido correctamente, segn se muestra en la siguiente figura:
-
Normativa de Modelado de Bases de Datos y Uso de la herramienta ERWIN
21 de 112
NO
RM
A
GENOwner
Todos los objetos del modelo que lo permitan deben tener relleno el campo Owner con el
esquema correspondiente (el esquema propietario del objeto).
2.1.11 OBJETOS DUPLICADOS
No se permite tener objetos duplicados en el modelo de datos (tablas, vistas, etc.). Esta situacin suele
producirse por un desconocimiento de la herramienta ERwin por parte del diseador, que en lugar de
incluir en un rea de diseo una tabla, la copia de un rea a otra. Sin saber que esa accin duplica el
objeto, dentro del modelo de datos, lo que producira errores en la creacin del esquema en la base de
datos.
-
Normativa de Modelado de Bases de Datos y Uso de la herramienta ERWIN
22 de 112
NO
RM
A GENObjetosDuplicados
No se pueden incluir objetos duplicados en el modelo de datos.
Si se tienen varios objetos con el mismo nombre en el modelo, al generar el script de creacin se
intenta crear dos veces el objeto y falla su ejecucin.
2.1.12 NOMENCLATURA GENERAL DE OBJETOS
Adicionalmente a la nomenclatura especfica de cada tipo de objeto, a continuacin se incluye una norma
general que aplica a los objetos de todos los tipos:
NO
RM
A GENNombreObjetos
Los nombres de todos los objetos de base de datos (tablas, columnas, vistas, procedimientos,
etc.) deben estar en MAYSCULA, y slo pueden contener caracteres alfanumricos no
acentuados y guiones bajos. No pueden contener la letra ee ()
2.2 ESTRUCTURA DEL MODELO Y REAS DE DISEO
En este apartado se incluye toda la normativa referente a las distintas reas de diseo que pueden
definirse dentro del fichero ERWIN. Existen otras normas especficas para reas de diseo en tecnologas
Documentum, BO y GIS, que debern consultarse en el apartado especfico de estas tecnologas.
A continuacin se enumeran las normas que han de seguirse con respecto a las reas de diseo:
NO
RM
A AREMainSub
No se permite utilizar el rea de diseo de ERWIN Main Subarea como rea de diseo principal
del modelo. Esta rea no se modificar manualmente, se utilizarn el resto de reas de diseo
para crear los objetos oportunos.
NO
RM
A
AREGeneral
El rea de diseo de ERWIN Principal o General del Esquema es obligatoria y debe denominarse
segn la plantilla de partida: 01 rea General del Modelo de Datos.
En este rea deben aparecer todos los objetos que intervienen en el proyecto, incluidos los
objetos externos al esquema propio del proyecto si los hubiese (includos sinnimos remotos). No
se incluirn objetos que por su naturaleza no tienen representacin visual, como las secuencias,
procedimientos, etc.
-
Normativa de Modelado de Bases de Datos y Uso de la herramienta ERWIN
23 de 112
NO
RM
A
AREPropietario
El rea de diseo de ERWIN del esquema propio del proyecto es obligatoria y debe denominarse
90 rea de Creacin del Esquema NOMBRE_PROPIETARIO, donde
NOMBRE_PROPIETARIO deber sustituirse por el nombre del propietario del esquema (por
ejemplo: DBA_EJPL). En este rea deben aparecer todos los objetos visuales propios del
esquema de base de datos, y no los externos (no se incluir ningn objeto propiedad de otro
usuario). No se incluirn objetos que por su naturaleza no tienen representacin visual, como las
secuencias, procedimientos, etc.
NO
RM
A
AREVariasBBDD
Si en un modelo aparece el mismo esquema en diferentes tipos de instancias de base de datos
(por ejemplo Centralizada y Departamental), deber existir un subrea especfica para cada tipo,
que incluir los objetos especficos de ese tipo de instancia.
La nomenclatura de los reas ser: 9n rea de Creacin del Esquema DBA_XXXX
INSTANCIA, donde n es un nmero consecutivo, XXXX es el nombre del proyecto, e INSTANCIA
es un identificador de la instancia de base de datos. Ejemplo:
91 rea de Creacin del Esquema DBA_AGCC CENTRALIZADA
92 rea de Creacin del Esquema DBA_AGCC DEPARTAMENTAL
NO
RM
A
AREVacia
En la entrega del fichero ERWIN no se incluir ningn rea de trabajo vaca que no est
contemplado en la normativa.
NO
RM
A ARELOPD
Si el modelo incluye tablas que contengan datos personales susceptibles de ser tratados de forma
especial segn la LOPD, se incluir un rea especfica que contenga todos los objetos afectados.
El nombre de esta rea ser: 80 rea de Datos Personales Protegidos.
BU
EN
A
PR
AC
TIC
A
AREParcial
Se pueden generar reas de trabajo parciales con algunos de los objetos del esquema. Estas
reas son meramente informativas (para organizar visualmente los objetos) y no sern tenidas
en cuenta para la generacin de los scripts de base de datos.
Si el modelo de datos es grande, se recomienda crear reas parciales conceptuales que
separen diferentes conceptos/funcionalidades dentro del modelo, as como reas fsicas que
contengan todos los objetos del mismo tipo (Ej: Subrea que contiene todas las vistas del
modelo).
A continuacin se muestra un ejemplo de definicin de las reas de un proyecto:
-
Normativa de Modelado de Bases de Datos y Uso de la herramienta ERWIN
24 de 112
Cuando estamos diseando un modelo de datos, se puede elegir el Display Level pulsando sobre el tapiz
con el botn derecho. Para asegurarnos que el orden de visualizacin coincide con el orden fsico de
creacin de las columnas de las tablas, se recomienda utilizar el Display Level Physical Order durante el
diseo del modelo:
BU
EN
A
PR
AC
TIC
A
AREDisplayLevel
Se recomienda utilizar el Display Level Physical Order durante el diseo del modelo, para
asegurarnos que el orden de visualizacin coincide con el orden fsico de creacin de las
columnas de las tablas.
A la hora de crear un nuevo modelo ERWIN, deber tenerse en cuenta la colocacin de los objetos para
que estn dispuestos de una forma que resulte legible, pudindose apreciar de forma visual los objetos del
modelo as como sus relaciones.
NO
RM
A GENModeloLegible
Los objetos de un modelo debern estar dispuestos sobre el tapiz de diseo de forma clara, sin
superponer unos a otros, de forma que puedan apreciarse visualmente todos los objetos del
modelo as como sus relaciones.
NO
RM
A GENObjetosMayuscula
Todos los nombres de los objetos del modelo debern estar definidos en mayscula, y slo
podrn estar compuestos por caracteres alfanumricos (sin acentos) y guin bajo _. No pueden
contener la letra ee ().
-
Normativa de Modelado de Bases de Datos y Uso de la herramienta ERWIN
25 de 112
Si en un subrea del proyecto queremos incluir objetos, que no pertenezcan al esquema principal del
proyecto, deberemos mostrar el objeto en color amarillo. Para ello, en la opcin Object Font Color - Fill
Color indicaremos el color amarillo, segn se muestra en la siguiente figura:
NO
RM
A
AREObjExternos
En cualquier subrea del modelo, los objetos externos al esquema propio del proyecto si los
hubiese se mostrarn siempre en color amarillo para diferenciarlos del resto.
2.3 TABLESPACES
En este apartado se incluye toda la normativa referente a los tablespaces de base de datos en los que se
almacenan los distintos objetos del modelo. En la plantilla de partida, vienen definidos los tres tablespaces
que todo modelo debe tener:
-
Normativa de Modelado de Bases de Datos y Uso de la herramienta ERWIN
26 de 112
Cada vez que se cree un nuevo objeto de base de datos, se debe asignar al tablespace correcto, segn el
tipo de objeto.
En las siguientes normas se incluye la normativa relativa a definicin y asignacin de tablespaces:
NO
RM
A
TBSDefTablespaces
Todo modelo de datos (excepto modelos de datos Business Objects) debe tener definidos los
siguientes tablespaces (en estos tablespaces deber sustituirse XXXX por el nombre del
proyecto):
- TBSBLOB_XXXX_100: Tablespace que se asignar a las columnas de tipo BLOB o CLOB
- TBSDAT_XXXX_100: Tablespace para las tablas
- TBSIND_XXXX_100: Tablespace para los ndices
Los tres tablespaces deben tener activado el check de Generate.
En cada tabla, vista materializada (actua como una tabla), ndice o columna BLOB del modelo, se asignar
el tablespace correspondiente.
2.4 TABLAS
En este apartado se incluye toda la normativa referente a las tablas de base de datos y todos sus objetos
asociados (claves, ndices, etc.).
2.4.1 TABLAS .
NO
RM
A
TABNombreTabla
La nomenclatura de las tablas debe ser [XXXX]_[NOMBRE_TABLA], donde:
XXXX: Nombre del proyecto (Ejemplo: AGCC)
NOMBRE_TABLA: Nombre de la tabla, en maysculas. Si contiene varias palabras
pueden separarse por guiones bajos (Ejemplo: ARTICULOS_CLIENTE).
Ejemplos de nombres de tablas correctos seran: AGCC_ARTICULOS_CLIENTE,
AGCC_ART_PROVEEDOR_PRINCIP
-
Normativa de Modelado de Bases de Datos y Uso de la herramienta ERWIN
27 de 112
NO
RM
A
TABTiposColumna
En las tablas, slo se permite crear columnas de los siguientes tipos:
VARCHAR2
CLOB
BLOB
DATE
NUMBER
SDO_GEOMETRY
En los campos de tipo NUMBER se puede, opcionalmente, definir la precisin.
El resto de tipos de datos (CHAR, VARCHAR, INTEGER, DECIMAL , LONG, RAW, LONG RAW,
BINARY LARGER, etc.) no estn permitidos.
Para garantizar la homogeneidad de los modelos de datos, al crear tablas con columnas de tipo
VARCHAR2, NO se tiene siempre que activar, en la pestaa Oracle, ninguna opcin en el desplegable
Character, segn se muestra en la siguiente figura:
NO
RM
A
TABVarchar2
Las columnas del tipo VARCHAR2 de cualquier tabla, nunca tendrn ninguna opcin seleccionada
en el desplegable Type de la pestaa Oracle.
-
Normativa de Modelado de Bases de Datos y Uso de la herramienta ERWIN
28 de 112
B
UE
NA
PR
AC
TIC
A
TABNombreColumnas
A la hora de crear columnas en las tablas del modelo, se recomienda utilizar la siguiente
nomenclatura segn el tipo de dato que representa la columna:
ID_: Para identificador numrico de elemento (normalmente la PK, Ej: ID_USUARIO).
CD_ : Para cdigos alfanumricos (Ej: CD_DNI, CD_EXPEDIENTE, etc.)
DS_: Para descripciones alfanumricas (Ej: DS_EXPEDIENTE_ECONOMICO)
FC_: Para fechas (Ej: FC_ALTA_INVENTARIO)
IT_: Para marcas, indicadores (Ej: IT_MASCULINO -> Flag que indica S N).
NM_: Valor numrico o contador (Ej: NM_PERSONAS_FISICAS).
TL_: Texto libre, observaciones, comentarios, etc. (Ej: TL_MOTIVO_RECURSO)
BL_: Para campos BLOB
CL_: Para campos CLOB
HR_: Para tiempo sin fecha (hora, minuto y segundo)
AN_: Para aos
EU_: Importe en euros
Si el nombre del campo contiene varias palabras pueden separarse por guiones bajos.
En la plantilla de partida se entregan una serie de Domains definidos para cada uno de estos tipos de
datos (cuyo nombre empieza por ICM_ ), que pueden utilizarse a la hora de aadir columnas a una tabla.
Adems de estos domains, se incluyen otros de uso comn para los campos tpicos de auditora de alta,
modificacin y eliminacin de filas (cuyo nombre empieza por ICM_AUDI_).
BU
EN
A
PR
AC
TIC
A
TABUsoDomains
A la hora de crear columnas en una tabla, pueden utilizarse los Domains que vienen definidos
por defecto en la plantilla de partida, para asegurarse de que se estn utilizando los tipos de
columna de Oracle validados por la normativa.
Asimismo, se pueden utilizar domains especficos includos en la plantilla para campos
comnmente utilizados en auditora de alta, modificacin y eliminacin de filas.
A continuacin se muestran los domains definidos por defecto en la plantilla de partida:
-
Normativa de Modelado de Bases de Datos y Uso de la herramienta ERWIN
29 de 112
Siempre que creemos una tabla en el modelo, debemos activar la opcin Physical Properties de la
pestaa General, y en el cuadro de dilogo Storage Properties asignar el tablespace de datos
(TBSDAT_XXXX_100), segn se muestra en la siguiente figura:
-
Normativa de Modelado de Bases de Datos y Uso de la herramienta ERWIN
30 de 112
NO
RM
A TABAsignarTablespace
Todas las tablas del modelo (excepto las tablas temporales GLOBAL TEMPORARY) debern
obligatoriamente tener activada la opcin Physical Properties, y tener asignado el tablespace de
datos (TBSDAT_XXXX_100).
2.4.2 TABLAS GLOBAL TEMPORARY
Las tablas temporales se crean como una tabla normal, y en la pestaa General se debe chequear la
opcin Global Temporary con las opciones que corresponda, segn se muestra en la siguiente figura:
-
Normativa de Modelado de Bases de Datos y Uso de la herramienta ERWIN
31 de 112
Al igual que el resto, las tablas GLOBAL TEMPORARY deben cumplir las normas de integridad referencial
(PKs, ndices, etc.).
NO
RM
A
TABGlobalTemp
La nomenclatura de las tablas temporales debe ser [XXXX]_GTT_[NOMBRE_TABLA], donde:
XXXX: Nombre del proyecto (Ejemplo: AGCC)
NOMBRETABLA: Nombre de la tabla, en maysculas. Si contiene varias palabras pueden
separarse por guiones bajos (Ejemplo: ARTICULOS_CLIENTE).
Un ejemplo de nombre de tabla correcto sera: AGCC_GTT_ARTICULOS_CLIENTE.
2.4.3 PRIMARY KEYS
-
Normativa de Modelado de Bases de Datos y Uso de la herramienta ERWIN
32 de 112
En los modelos de datos, cada tabla deber tener obligatoriamente una (y slo una) Primary Key que
cumpla con la nomenclatura. Esta primary key estar formado por un solo campo de tipo numrico, y
su valor deber sacarse obligatoriamente de una secuencia.
Existe una excepcin a esta regla, en la cul una primary key deber estar compuesta por ms de un
campo, y es en aquellas tablas que slo sirven para representar relaciones muchos a muchos entre otras
tablas.
Ejemplo: Supongamos que tenemos una tabla EXPEDIENTE y una tabla INTERESADO, y que un
expediente puede tener varios interesados, y un intersado puede tener varios expedientes. La tabla
EXPEDIENTE_INTERESADO que relaciona las dos (y que representa la relacin muchos-a-
muchos entre EXPEDIENTE e INTERESADO) tendra como primary key los campos
ID_EXPEDIENTE e ID_INTERESADO:
A continuacin se muestran las normas relativas a Primary Keys:
NO
RM
A
TABObligaPK
Toda tabla del modelo de datos debe tener obligatoriamente una y slo una Primary Key. Esta
Primary Key deber ser numrica, obtenerse de un secuenciador, y estar formada por un
slo campo de la tabla.
Slo existe una excepcin en la cul una primary key deber estar compuesta por ms de un
campo, y es en aquellas tablas que sirven para representar relaciones muchos a muchos
entre otras tablas.
Se considerar otorgar autorizaciones excepcionales a esta norma para proyectos antiguos en
tecnologa Forms o modelos de datos heredados con otro sistema de integridad referencial.
BU
EN
A
PR
AC
TI
CA
TABAKRelaciones
Si en una tabla que sirve para representar relaciones muchos a muchos entre otras tablas se ha
generado una clave primaria numrica nica (porque dicha tabla incluye algn campo adicional
-
Normativa de Modelado de Bases de Datos y Uso de la herramienta ERWIN
33 de 112
adems de las PKs de las tablas que relaciona), se recomienda crear una constraint Alternate
Key que comprenda las columnas que hacen referencia a las tablas que se relacionan.
NO
RM
A
TABNombrePK
La nomenclatura de la Primary Key debe ser PK[NOMBRE_TABLA].
Ejemplo: PKAGCC_ARTICULOS_CLIENTE
2.4.4 FOREIGN KEYS En los modelos de datos, se debern definir Foreign Keys para garantizar la integridad referencial por base
de datos. A continuacin se enumeran una serie de reglas aplicables a las Foreign Keys:
NO
RM
A
TABNombreFK
La nomenclatura de la Foreign Key debe ser FK[NOMBRE_TABLA]_[NN], donde NN es un
nmero consecutivo que se asigna a cada Foreign Key existente. Deben numerarse las FKs
aunque slo haya una por tabla.
Ejemplo: FKAGCC_ARTICULOS_CLIENTE_01
NO
RM
A
TABGenerateFK
Si en nuestro modelo de datos tenemos includas tablas de otros esquemas, que NO tienen
definida la Primary Key, deberemos deschequear la opcin Generate en las Foreign Keys a esas
tablas, para evitar que se generen.
Si en nuestro modelo de datos tenemos includas tablas de otros esquemas, que SI tienen
definida la Primary Key, deberemos asegurarnos que ambos esquemas conviviran en Produccin
en la misma instancia de base de datos, de lo contrario tambin deber desactivarse la casilla
Generate.
A continuacin se muestra la pantalla en la que puede desactivarse la casilla Generate:
-
Normativa de Modelado de Bases de Datos y Uso de la herramienta ERWIN
34 de 112
2.4.5 ALTERNATE KEYS Se pueden definir constraints de integridad referencial que indiquen que una serie de campos deben ser
nicos. Para ello, puede hacerse desde la pantalla de edicin de ndices, activando el check Generate as
constraint:
-
Normativa de Modelado de Bases de Datos y Uso de la herramienta ERWIN
35 de 112
NO
RM
A
TABNombreConstraintAK
La nomenclatura de las Constraint Unique debe ser: AKn[NOMBRE_TABLA].
Ejemplo: AK1AGCC_ARTICULOS_CLIENTE, AK24AGCC_ARTICULOS_CLIENTE
2.4.6 INDICES
Para crear ndices en una tabla, se selecciona esta, y se abre la opcin de ndices asociados. La ventana
permite el mantenimiento de los ndices, y la definicin de las columnas que lo integran.
En la siguiente norma se indica la nomenclatura de los ndices segn su tipo:
-
Normativa de Modelado de Bases de Datos y Uso de la herramienta ERWIN
36 de 112
NO
RM
A
TABNombreIndices
La nomenclatura de ndices, dependiendo de su tipo, debe ser:
PK[NOMBRE_TABLA] Para los ndices de clave primaria.
AKn[NOMBRE_TABLA] Para los ndices de clave alternativa (nicos).
IEn[NOMBRE_TABLA] Para los ndices no nicos (con duplicados).
IFn[NOMBRE_TABLA] Para los ndices de clave fornea.
GRn[NOMBRE_TABLA] Para los ndices Geogrficos (Oracle Spatial).
DTS[NOMBRE_TABLA] ndices multicolumnas de Intermedia Text
BMn[NOMBRE_TABLA] Indices bitmap (Datawarehouse)
Donde n es un nmero consecutivo.
PRn[NOMBRE_TABLA] Para los ndices Locales de tablas Particionadas
PGn[NOMBRE_TABLA] Para los ndices Globales de tablas Particionadas
Nota: Es importante destacar que en los modelos de datos antiguos en los que no exista integridad
referencial basada en PKs y FKs, la nomenclatura era diferente, ya que se aada una letra X antes del
nombre del ndice.
Al crear los ndices en el modelo, hay que indicar el tablespace fsico en el que se crearn. Para ello, en el
cuadro de dilogo Storage Properties de la pestaa Physical se asignar el tablespace
TBSIND_XXX_100, segn se muestra en la siguiente figura:
-
Normativa de Modelado de Bases de Datos y Uso de la herramienta ERWIN
37 de 112
NO
RM
A
TABTablespaceIndices
Todos los ndices del modelo (includos los de las PKs, etc.) debern obligatoriamente tener
asignado el tablespace de ndices (TBSIND_XXXX_100).
BU
EN
A
PR
AC
TIC
A TABIndRedundantes
Se recomienda no generar ndices redundantes (desmarcar la casilla Generate) que no sirven
si ya existe uno similar.
Ejemplo: Si tenemos un ndice en una tabla por dos campos CAMPO1 y CAMPO2, no sirve de
nada crear un ndice por el campo CAMPO1.
-
Normativa de Modelado de Bases de Datos y Uso de la herramienta ERWIN
38 de 112
2.4.7 COLUMNAS LOB (BLOB y CLOB)
Los contenidos de las columnas de tipo LOB (BLOB y CLOB) se almacenan en Tablespaces especficos
para estas columnas, separados del resto de los datos de la tabla. Para cada tabla del modelo que incluya
columnas de tipo LOB, se debe modificar la pestaa LOB Storage segn se muestra en la siguiente
figura:
Deberemos pulsar sobre la opcin Parmeters de la columna de tipo LOB, y ah seleccionar el tablespace
especfico para campos LOB (TBSBLOB_XXXX_100), y marcando las opciones que se muestran a
continuacin:
-
Normativa de Modelado de Bases de Datos y Uso de la herramienta ERWIN
39 de 112
A continuacin se listan las normas que definen el uso de campos LOB:
NO
RM
A
TABLobStorage
Toda tabla que contenga columnas de tipo BLOB CLOB (excepto las tablas temporales
GLOBAL TEMPORARY) deber tener asignados parmetros en la pestaa LOB Storage para
todas las columnas de este tipo. En los parmetros se asignar el tablespace
TBSBLOB_XXXX_100 y se activarn obligatoriamente los siguientes parmetros (y slo estos):
- CHUNK: 4096
- Retain old versin type -> PCTVERSION -> 10
- Cache -> NO-CACHE -> Logging -> LOGGING
2.4.8 CHECKS Y VALORES POR DEFECTO A NIVEL DE COLUMNA
A nivel de columna, pueden definirse checks (reglas de validacin o validation rules) y valores por defecto
(default values). Para definir checks y/o valores por defecto sobre columnas seguiremos los siguientes
pasos:
1) Definir a nivel de modelo los chequeos o reglas de validacin genricas y valores por
defecto genricos, en la zona Validation Rules o Default Values. Los nombres
debern definirse segn la nomenclatura [XXXX]_CHECK_[NOMBRECHECK], donde
[XXXX] es el nombre del proyecto, y [NOMBRECHECK] el nombre del check (lo ms
-
Normativa de Modelado de Bases de Datos y Uso de la herramienta ERWIN
40 de 112
descriptivo posible). En la siguiente figura se muestra un ejemplo de definicin de
reglas de validacin y valores por defecto:
Seleccionando la Validation Rule y pulsando el botn derecho la opcin Properties en la pestaa General
rellenaremos el contenido del check (Validation Rule) , en ningn caso se utilizar la variable %ColName,
siempre debe aparecer el nombre de la columna.
Se crear un check para cada columna. Est prohibido asignar el mismo check para 2 o ms columnas
-
Normativa de Modelado de Bases de Datos y Uso de la herramienta ERWIN
41 de 112
2) Asignar a las columnas deseadas las validaciones y valores por defecto que se
precisen. Esto se realiza la pestaa Constraint, seleccionando una validacin o valor
por defecto de los disponibles en las listas desplegables:
-
Normativa de Modelado de Bases de Datos y Uso de la herramienta ERWIN
42 de 112
NO
RM
A TABNombreCheck
Los checks (Validation rules) deben cumplir la siguiente nomenclatura:
[XXXX]_CHECK_[NOMBRECHECK], donde [XXXX] es el nombre del proyecto, y
[NOMBRECHECK] el nombre del check (lo ms descriptivo posible).
NO
RM
A
TABMaxCheck
Se crear un check (Validation Rule) para cada columna. Est prohibido asignar el mismo check
(Validation Rule) para 2 o ms columnas
NO
RM
A
TABColNameCheck
El contenido del check (Validation Rule) pestaas general y oracle, en ningn caso se utilizar la
variable %ColName, siempre debe aparecer el nombre de la columna.
2.4.9 TRIGGERS
-
Normativa de Modelado de Bases de Datos y Uso de la herramienta ERWIN
43 de 112
Para crear un trigger en ERWIN se pulsa sobre la tabla y se indica que se quieren visualizar sus triggers.
Desde esta pantalla pueden crearse nuevos triggers o visualizar los existentes, segn se muestra en la
siguiente figura:
Para garantizar la concordancia del cdigo SQL y las opciones de generacin del objeto, en la pestaa
Code no se deben modificar las variables que aparecen en su definicin, marcadas en la siguiente
pantalla con % (como por ejemplo %TriggerName, %Fire, etc.):
-
Normativa de Modelado de Bases de Datos y Uso de la herramienta ERWIN
44 de 112
A continuacin se muestran las normas asociadas a la creacin de triggers.
NO
RM
A
TRINombreTrigger
La nomenclatura de los triggers ser [XXXX]_[NOMBRE_TABLA]_TRIG_[TIEMPO]_[ACCION],
donde:
XXXX: Nombre del proyecto (Ejemplo: AGCC)
NOMBRE_TABLA: Nombre de la tabla a la que se asocia el trigger
TIEMPO: Deber ser B (para before) o A (para after) en funcin del tiempo del trigger
ACCION: Deber ser D (delete), I (insert) U (Update). En caso de contemplar varias
acciones, se seguir el siguiente orden de letras: DIU. (Ej: D, DU, IU, DIU, etc.)
Un ejemplo nombre de trigger correcto sera: AGCC_ARTICULOS_TRIG_B_DU
-
Normativa de Modelado de Bases de Datos y Uso de la herramienta ERWIN
45 de 112
NO
RM
A TRIUnicoTrigger
No se permite ms de un trigger en una tabla con el mismo evento.
Por ejemplo, no se pueden crear dos triggers sobre una tabla que se ejecuten (ambos) con las
opciones AFTER UPDATE, INSERT.
NO
RM
A
TRIVariablesTrigger
En la pestaa Code de la definicin de un trigger, no pueden sustituirse los nombres de las
variables que aparecen con porcentaje (Ej: %TriggerName, %Fire, %Actions, etc.). Las variables
se dejarn como tal, y slo en la pestaa Expanded ser podr comprobar el cdigo del trigger
con las variables sustituidas.
2.4.9.1 TRIGGERS ESPECIALES PARA TRAZABILIDAD DE ACCESO
Si deseamos guardar una traza de las modificaciones de una tabla (por ejemplo, para cumplir la LOPD), se
pueden crear triggers especficos a tal efecto. Para ms informacin sobre la trazabilidad de datos,
consultar la documentacin especfica a tal efecto.
2.4.10 PARTICIONES Y SUBPARTICIONES DE TABLA En ocasiones, por motivos de volumen o velocidad de acceso es necesario dividir una tabla en varias
particiones. En este caso, el uso de particiones deber ser autorizado expresamente por ICM,
justificndose el motivo por el cual se requiere esta funcionalidad. Desde ICM, en base a criterios tcnicos,
se decidir si se autoriza su uso.
Tipos de Particionamiento:
Rango . Permite particionar para rangos de fechas
Lista .- Permite particionar asignando a cada particion un valor o lista de valores
Hash .- Permite particionar indicando el nmero de particiones
Tips de SuParticionamiento
Rango - Hash
Rango - Lista
Lista - Hash (No disponible en Erwin 7)
Lista Rango (No disponible en Erwin 7)
A continuacin se incluyen las normas sobre el particionamiento de tablas:
NO
RM
A TABNoParticiones
Salvo autorizacin expresa, no se permite el uso de tablas particionadas en base de datos.
En el momento de su autorizacin, se decidir entre ICM y el proveedor el tipo de particionamiento
a utilizar as como la forma en la que se implementar el particionamiento en el modelo ERWIN.
-
Normativa de Modelado de Bases de Datos y Uso de la herramienta ERWIN
46 de 112
NO
RM
A
TABNombreParticion
La nomenclatura de las particiones debe ser: [NOMBRE_TABLA]_PAR_[CRITERIO].
La nomenclatura de las subparticiones debe ser: [NOMBRE_TABLA]_SPAR_[CRITERIO].
[NOMBRE_TABLA] es el nombre de la tabla a particionar, y [CRITERIO] define el criterio por el
que se rige la particin en concreto. [CRITERIO] debe contener tanto del criterio como el valor (si
por motivos de longitud del nombre no es posible, se indicar slo el valor).
NO
RM
A
TABPartPasoProduccion
Cuando se realicen cambios en tablas particionadas u objetos asociados a las tablas
particionadas (particiones, ndices,) En el paso a Produccin debe indicarse el nombre de cada
objeto cambiado (campos ,si son campos particionados, ndices locales, ndices globales,
particiones,..) y la actualizacin que se solicita.
NO
RM
A
TABRawMovement
Las tablas particionadas al crearlas por defecto la propiedad RAW MOVEMENT est DISABLE, es
decir no se puede realizar un update de los campos de particionamiento que implique un cambio
de particin del registro.
Salvo autorizacin por ICM est prohibido poner la propiedad de las tablas particionadas
RAW MOVEMENT a ENABLE
NO
RM
A TABNoPartSQL
Salvo autorizacin expresa por parte de ICM, no se puede utilizar el nombre de las particiones en
las sentencias SQL (el criterio de las particiones se encargar de decidir en cul de ellas se
encuentra almacenada la fila).
A continuacin se muestra un ejemplo de definicin de particiones:
-
Normativa de Modelado de Bases de Datos y Uso de la herramienta ERWIN
47 de 112
2.4.10.1 ASIGNACION DE TABLESPACES A PARTICIONES DE TABLAS Y A INDICES LOCALES PARTICIONADOS Y GLOBALES PARTICIONADOS
En la opcin de men Tables de la tabla seleccionada, en la pestaa Partitions , para cada cada
particin que hayamos definido en Partition Name se debe asignarse un tablespace de datos,
pulsando el botn Edit Properties en al campo Tablespace debemos realizar la asignacin del
tablespace de datos.
-
Normativa de Modelado de Bases de Datos y Uso de la herramienta ERWIN
48 de 112
NO
RM
A
TABParticionTablespace
Cada Particin y Subparticin, debe tener asignado un tablespace de datos,
2.4.10.1.1 INDICES LOCALES PARTICIONADOS la asignacin del tablespace de ndices se realizar igual que un ndice normal es decir
En la opcin de men Indexes de la tabla seleccionada, en la pestaa Physical, en el botn
Storage Properties en el campo tablespace debemos asignar el tablespace de ndices. No
deben utilizarse particiones de ndice.
-
Normativa de Modelado de Bases de Datos y Uso de la herramienta ERWIN
49 de 112
NO
RM
A
TABIndicesPartLocalTablespace
Indices Locales Particionados deben tener asignado un tablespace de Indices, al igual que
cualquier ndice normal, (no deben utilizarse particiones de ndice).
BU
EN
A
PR
AC
TIC
A TABIndicesPartLocalPrefix
Se recomienda utilizar los ndices locales particionados Prefijados (aparecen los campos de
particionamiento de la tabla primero en el ndice, despus el campo local por el que se quiere
indexar) sobre los ndices locales particionados no prefijados (no aparece en el ndice los
campos de particionamiento de la tabla )
2.4.10.1.2 INDICES GLOBALES Los ndices Globales en una tabla particionada equivalen a a un ndice normal, por lo tanto
la asignacin de Tablespace debe hacerse igual que en el apartado de ndices.
-
Normativa de Modelado de Bases de Datos y Uso de la herramienta ERWIN
50 de 112
BU
EN
A
PR
AC
TIC
A
TABUsoIndicesGlobales
En una tabla particionada cuando se desee seleccionar registros sin acceder por clave de
particionamiento se recomienda utilizar ndices globales (un ndice normal de una tabla)
cuando el resultado a obtener sean pocos registros.
2.4.10.1.3 INDICES GLOBALES PARTICIONADOS
Estn desaconsejado su uso salvo casos excepcionales, de hecho est prohibido
por normativa su uso salvo autorizacin por ICM
se debe indicar nombres de particiones del ndice por rango o por hash (Erwin 7 solo
permite por rango) y realizar la asignacin del tablespace de ndices.
En la opcin de men Indexes de la tabla seleccionada, en la pestaa Partitions:
o en el campo Partition Name: debe indicar el nombre de la particin de ndice global
particionado por rango
o en el campo atributo del ndice: para cada particin de ndice global particionado valor
correspondiente a LESS THAN o MAXVALUE
o pulsando el botn Edit Properties se debe seleccionar el tablespace de ndices en el
campo tablespace
-
Normativa de Modelado de Bases de Datos y Uso de la herramienta ERWIN
51 de 112
NO
RM
A
TABIndicesPartGlobalAutorizacion
Salvo autorizacin expresa por parte de ICM Est prohibido el uso de ndices globales
particionados.
En caso de autorizarse, los Indices Globales Particionados deben tener asignado un tablespace
de Indices, para cada particin existente del ndice global particionado
En caso de autorizarse, los Indices Globales Particionados la nomenclatura de las particiones del
ndice global particionado debe ser:
[NOMBRE_INDICE_GLOBAL_PARTICIONADO]_PAR_[CRITERIO].
-
Normativa de Modelado de Bases de Datos y Uso de la herramienta ERWIN
52 de 112
BU
EN
A
PR
AC
TIC
A
TABUsoIndicesPartGlobales
Indices Globales Particionados se particionan por hash o rango.(Erwin 7 solo permite por
rango)
Indices Globales Particionados deben ser prefijados (aparecen los campos de
particionamiento del ndice global particionado primero en el ndice, despus el campo por el
que se quiere indexar)
2.5 VISTAS
En este apartado se incluye toda la normativa referente a las vista de base de datos.
2.5.1 VISTAS Existen dos formas de definir una vista:
1) Componiendo la sentencia SQL automticamente: Arrastrando los campos a la
vista, la propia herramienta genera la sentencia SQL de la vista (utilizando las
pestaas Select, From y Where de la vista.
2) Definiendo la sentencia SQL manualmente: En la pestaa User Defined SQL de la
vista podemos establecer manualmente la sentencia SQL.
En cualquiera de los casos, es necesario rellenar tambin las pestaas Synonym y Comment. Adems,
el check CREATE OR REPLACE de la definicin de la vista deber estar obligatoriamente activado,
segn se muestra en la siguiente pantalla:
-
Normativa de Modelado de Bases de Datos y Uso de la herramienta ERWIN
53 de 112
En las vistas definidas como User Defined SQL, no se debe incluir el ; al final de la definicin de la vista.
-
Normativa de Modelado de Bases de Datos y Uso de la herramienta ERWIN
54 de 112
Adems, en estas vistas User Defined SQL no se deben incluir columnas en la zona Select, de forma
que en la visualizacin de la vista dentro del tapiz no se mostarn columnas:
Para garantizar que el script de generacin del modelo es correcto (las vistas aparecen creadas en el
orden correcto), si en la clusula FROM de las vistas User Defined SQL aparecen otras vistas, stas
deben indicarse tambin en la pestaa FROM.
Si no se informa en la pestaa FROM, las vistas que tenga en la clusula FROM , las vistas se generarn
en orden alfabtico por lo que podemos tener errores de compilacin por orden incorrecto.
-
Normativa de Modelado de Bases de Datos y Uso de la herramienta ERWIN
55 de 112
A continuacin se muestran las reglas de la normativa aplicables a las vistas:
NO
RM
A
VISNombreVista
La nomenclatura de las vistas debe ser [XXXX]_V_[NOMBRE_VISTA], donde:
XXXX: Nombre del proyecto (Ejemplo: AGCC)
NOMBRE_VISTA: Nombre de la vista, en maysculas. Si contiene varias palabras pueden
separarse por guiones bajos (Ejemplo: ARTICULOS_CLIENTE).
Un ejemplo de nombre de vista correcto sera: AGCC_V_ARTICULOS_CLIENTE.
-
Normativa de Modelado de Bases de Datos y Uso de la herramienta ERWIN
56 de 112
NO
RM
A VISCreateOrReplace
Todas las vistas del modelo debern tener activada la opcin CREATE OR REPLACE.
Adems, en caso de vistas con User Defined SQL, el cdigo de creacin de la vista deber
incluir CREATE OR REPLACE en su definicin.
NO
RM
A
VISUserDefinedPuntoYComa
En las vistas definidas como User Defined SQL, no se debe incluir el ; al final de la definicin
de la vista, ya que ERWIN lo aade automticamente al generar el script.
NO
RM
A
VISUserDefinedNoColumnas
Al visualizar una vista en el papel del tapiz definida como User Defined SQL, no se mostrar
ninguna columna.
NO
RM
A VISUserDefinedFrom
Para garantizar que el script de generacin del modelo es correcto (las vistas aparecen creadas
en el orden correcto), si en la clusula FROM de las vistas User Defined SQL aparecen otras
vistas, stas deben indicarse tambin en la pestaa FROM.
2.5.2 VISTAS MATERIALIZADAS
Las vistas materializadas son un tipo especial de vista que permite acelerar el acceso a la informacin,
creando copias fsicas del contenido de la vista (un tabla) en lugar de acceder al origen real de la
informacin. En este apartado se detallan las normas bsicas a tener en cuenta a la hora de crear vistas
materializadas en bases de datos de ICM. Estas normas estn orientadas a conseguir que la
implementacin impacte menos al rendimiento de las bases de datos y a facilitar la administracin y el
mantenimiento de las mismas.
Para el correcto mantenimiento de las vistas, hay que tener en cuenta que cualquier cambio en la
estructura de la tabla origen (aadir o cambiar de tipo de una columna) puede hacer que el refresco de
las vistas materializadas creadas sobre ella dejen de funcionar con lo que debera comunicarse a los
departamentos encargados del mantenimiento de las mismas.
A continuacin se muestran una serie de normas y buenas prcticas relativas a las vistas materializadas:
BU
EN
A
PR
AC
TI
CA
VISMatDefinicion
Buenas prcticas sobre el uso de vistas materializadas:
Para evitar trfico de red y duplicidad innecesaria de datos, se recomienda incluir el
-
Normativa de Modelado de Bases de Datos y Uso de la herramienta ERWIN
57 de 112
mnimo nmero de columnas posibles en las vistas materializadas.
Se crearn los ndices necesarios para que las consultas sobre las vistas
materializadas sean rpidas.
NO
RM
A
VISMatProhibido
Se prohbe el uso de vistas materializadas en modelos de datos de ICM, salvo autorizacin
expresa.
NO
RM
A
VISMatNombre
La nomenclatura de las vistas materializadas debe ser [XXXX]_MV_[NOMBRE_VISTA], donde:
XXXX: Nombre del proyecto (Ejemplo: AGCC)
NOMBRE_VISTA: Nombre de la vista materializada, en maysculas. Si contiene varias
palabras pueden separarse por guiones bajos (Ejemplo: ARTICULOS_CLIENTE).
Un ejemplo de nombre de vista materializada correcto sera: AGCC_MV_ARTICULOS_CLIENTE.
NO
RM
A
VISMatLectura
Todas las vistas materializadas sern de slo lectura.
Siempre que creemos una vista materializada en el modelo, debemos activar la opcin Physical
Properties de la pestaa General, y en el cuadro de dilogo Storage Properties asignar el tablespace
de datos (TBSDAT_XXXX_100), segn se muestra en la siguiente figura:
-
Normativa de Modelado de Bases de Datos y Uso de la herramienta ERWIN
58 de 112
En la siguiente norma se fuerza a que todas las vistas materializadas tengan asignado este tablespace:
NO
RM
A
VISMatTablespace
Todas las vistas materializadas del modelo debern obligatoriamente tener activada la opcin
Physical Properties, y tener asignado el tablespace de datos (TBSDAT_XXXX_100).
2.5.2.1 REFRESCO DE VISTAS MATERIALIZADAS
-
Normativa de Modelado de Bases de Datos y Uso de la herramienta ERWIN
59 de 112
Las sentencias que definen el refresco de las vistas materializadas no se incluirn en la definicin del
modelo ERWIN, ya que son creadas manualmente por el personal de ICM (utilizando un Job). En lugar de
esto, en la solapa de comentarios de la vista materializada se incluir la siguiente informacin de refresco:
Volumetra estimada de la vista materializada y, en su caso, del log de vista materializada.
Tipo (completo/incremental)
Frecuencia (diario, semanal )
Si debe actualizarse junto con otras vistas materializadas o puede hacerse de manera individual.
El refresco se programar a lo largo de la noche teniendo en cuenta el tiempo que lleva y los horarios de
backup de las bases de datos implicadas. Salvo autorizacin expresa, la frecuencia del refresco de las
vistas materializadas ser diaria o superior (semanal, mensual, etc.).
No se permite el refresco incremental de vistas materializadas. En casos excepcionales, debidamente
justificados, puede permitirse la utilizacin de refresco incremental teniendo en cuenta las siguientes
consideraciones:
-
Normativa de Modelado de Bases de Datos y Uso de la herramienta ERWIN
60 de 112
En ningn caso se permitir el refresco incremental por ROWID. Por tanto, si la tabla sobre la que
se crea la vista debe tener primary key. En caso contrario, el refresco ser forzosamente completo.
nicamente se estudiar la posibilidad de refresco incremental en caso de que los tiempos del
refresco completo sean inviables para el funcionamiento de la aplicacin. Esto puede ocurrir por
varias razones, entre otras:
o Las tablas originales muy grandes1
o Lnea de comunicacin lentas entre las dos bases de datos
o Se requieren actualizaciones frecuentes
Dado que el refresco incremental supone la creacin y mantenimiento en la base de datos donde
reside la tabla origen de un log de vista materializada, la autorizacin de este tipo de refresco
estar siempre condicionada a que el impacto en el rendimiento de la base de datos origen sea
asumible por las aplicaciones que se ejecutan en ella. Esto puede presentar problemas
especialmente en tablas con muchas actualizaciones.
NO
RM
A
VISMatNoRefresco
Las sentencias que definen el refresco de las vistas materializadas no se incluirn en la definicin
del modelo ERWIN.
NO
RM
A
VISMatComentario
En la solapa de comentarios de la vista materializada se incluir la siguiente informacin de
refresco:
Volumetra estimada de la vista materializada y, en su caso, del log de vista materializada.
Tipo (completo/incremental)
Frecuencia (diario, semanal )
Si debe actualizarse junto con otras vistas materializadas o puede hacerse de manera
individual.
NO
RM
A
VISMatTipoRefr
Las vistas materializadas por defecto tendrn el tipo de refresco bajo demanda (DEMAND). Los
refrescos peridicos se planificarn de manera externa a la base de datos.
NO
RM
A
VISMatFrecuenciaRefr
Salvo autorizacin expresa, la frecuencia del refresco de las vistas materializadas ser diaria o
superior (semanal, mensual, etc.).
-
Normativa de Modelado de Bases de Datos y Uso de la herramienta ERWIN
61 de 112
NO
RM
A
VISMatMetodoRefr
Las vistas materializadas por defecto se refrescarn con el mtodo de refresco completo. Salvo
autorizacin expresa, no se permite el refresco incremental de vistas materializadas.
2.6 SECUENCIADORES
Los Secuenciadores se crean como un objeto de tipo Sequence, segn se muestra en el siguiente ejemplo:
NO
RM
A
SECNombreSecu
La nomenclatura de los secuenciadotes debe ser [XXXX]_S_[NOMBRE_SECUENCIADOR],
donde:
XXXX: Nombre del proyecto (Ejemplo: AGCC)
NOMBRE_SECUENCIADOR: Nombre del secuenciador, en maysculas. El nombre del
secuenciador debe ser representativo del nombre de la tabla/campo para el que se utiliza.
Si contiene varias palabras pueden separarse por guiones bajos.
Un ejemplo de nombre de secuenciador correcto sera: AGCC_S_ARTICULOS_CLIENTE.
-
Normativa de Modelado de Bases de Datos y Uso de la herramienta ERWIN
62 de 112
N
OR
MA
SECNombreSecuPK
Los secuenciadores utilizados para generar los valores de las primary keys tendrn la siguiente
nomenclatura: [XXXX]_S_[NOMBRE_TABLA_SIN_PREFIJO], donde:
XXXX: Nombre del proyecto (Ejemplo: AGCC)
NOMBRE_TABLA_SIN_PREFIJO: Nombre de la tabla que contiene la PK para la que se
usa el secuenciador, sin el prefijo del cdigo del proyecto.
Ej: AGCC_S_ARTICULOS_CLIENTE para la tabla AGCC_ARTICULOS_CLIENTE
2.7 PROCEDIMIENTOS, FUNCIONES Y PACKAGES
Los procedimientos y funciones deben crearse a nivel de modelo (Model-level), y no a nivel de tabla.
Es importante ordenar los procedimientos, funciones y paquetes con Objetct Creation Order, de manera
que el orden de creacin haga que las dependencias compilen correctamente.
En este tipo de objetos debe estar marcado el check Create or Replace, segn se muestra en esta figura:
-
Normativa de Modelado de Bases de Datos y Uso de la herramienta ERWIN
63 de 112
A continuacin se muestran las normas relativas a procedimientos funciones y packages:
NO
RM
A
PFPAgruparEnPaquetes
Todos los procedimientos y funciones estarn agrupados en paquetes de base de datos. No
existirn procedimientos y/o funciones aislados fuera de paquetes, salvo autorizacin excepcional.
NO
RM
A PFPLocalizacion
Los Paquetes, Procedimientos y Funciones debern situarse dentro del modelo ERWIN cada uno
dentro de la carpeta correspondiente a su tipo (no se pueden colocar paquetes o funciones en la
carpeta de procedimientos, etc.).
NO
RM
A
PFPNombreProc
No existe nomenclatura para los procedimientos creados dentro de un paquete, el nombre de
estos objetos es libre.
En el caso de existir Autorizacin Excepcional para crear Procedimientos fuera de un Paquete la
nomenclatura de los procedimientos ser [XXXX]_PROC_[NOMBRE_PROC], donde:
XXXX: Nombre del proyecto (Ejemplo: AGCC)
NOMBRE_PROC: Nombre del procedimiento almacenado. Si contiene varias palabras
pueden separarse por guiones bajos.
Un ejemplo nombre de procedimiento correcto sera: AGCC_PROC_ACTUALIZA_VALORES
NO
RM
A
PFPNombreFunc
No existe nomenclatura para las funciones creadas dentro de un paquete, el nombre de estos
objetos es libre.
En el caso de existir Autorizacin Excepcional para crear Funciones fuera de un Paquete la
nomenclatura de las funciones ser [XXXX]_FUNC_[NOMBRE_FUNC], donde:
XXXX: Nombre del proyecto (Ejemplo: AGCC)
NOMBRE_FUNC: Nombre de la funcin. Si contiene varias palabras pueden separarse
por guiones bajos.
Un ejemplo nombre de funcin correcto sera: AGCC_FUNC_ACTUALIZA_VALORES
-
Normativa de Modelado de Bases de Datos y Uso de la herramienta ERWIN
64 de 112
NO
RM
A
PFPNombrePaq
La nomenclatura de los paquetes ser [XXXX]_PACK_[NOMBRE_PACK], donde:
XXXX: Nombre del proyecto (Ejemplo: AGCC)
NOMBRE_PACK: Nombre del paquete. Si contiene varias palabras pueden separarse por
guiones bajos.
Un ejemplo nombre de paquete correcto sera: AGCC_PACK_GENERAL
NO
RM
A
PFPCreateOrReplace
Se deber activar la casilla Create or Replace en los objetos de tipo procedimiento, funcin y
paquete, as como en todos los objetos que lo admitan.
NO
RM
A PFPOrden
Se deber realizar una correcta ordenacin de los objetos de tipo procedimiento, funcin y
paquete (utilizando la pestaa Object Creation Order), de manera que se permita su ejecucin
secuencial sin errores de compilacin.
NO
RM
A
PFPOtrosEsquemas
No se permite incluir en un modelo paquetes, procedimientos o funciones de esquemas externos
(que no sean del esquema propio).
NO
RM
A
PFPCommitRollback
No se permite incluir en ningn paquete, procedimiento o funcin instrucciones del tipo COMMIT o
ROLLBACK.
Es muy importante hacer una correcta gestin de errores en los paquetes, procedimientos y funciones,
asegurando que existe control sobre las posibles excepciones que puedan ocurrir durante su ejecucin. A
continuacin se muestran varios ejemplos de gestin de excepciones, los primeros de forma general, y el
segundo controlando las excepciones por separado:
Ejemplo: gestin de excepciones agrupadas
---------------------------------------------------------------------------
--- Ejemplo 1 -----
---------------------------------------------------------------------------
EXCEPTION
WHEN OTHERS THEN
RAISE_APPLICATION_ERROR ( -20070,
'ERROR '|| '(Cdigo: ' || to_char(SQLCODE) || ')' ||
-
Normativa de Modelado de Bases de Datos y Uso de la herramienta ERWIN
65 de 112
' - Error general al realizar el proceso.' );
END ;
---------------------------------------------------------------------------
--- Ejemplo 2 -----
---------------------------------------------------------------------------
EXCEPTION
WHEN OTHERS THEN
>
END ;
---------------------------------------------------------------------------
--- Ejemplo 3 -----
---------------------------------------------------------------------------
EXCEPTION
WHEN OTHERS THEN
bResultado_OK := FALSE ;
RAISE_APPLICATION_ERROR ( -20070,
'ERROR '|| '(Cdigo: ' || to_char(SQLCODE) || ')' ||
' - Error general al realizar el proceso.' );
END ;
Ejemplo: gestin de excepciones detallada
---------------------------------------------------------------------------
--- Control de Errores del Proceso de Actualizacin. -----
---------------------------------------------------------------------------
DECLARE
ERROR_PREDEFINIDO_USUARIO EXCEPTION;
BEGIN
>
RAISE ERROR_PREDEFINIDO_USUARIO; --> Ejecucin de
exception predefinida.
>
EXCEPTION
WHEN ERROR_PREDEFINIDO_USUARIO THEN
>
WHEN TOO_MANY_ROWS THEN
>
WHEN DUP_VAL_ON_INDEX THEN
>
WHEN INVALID_NUMBER THEN
>
WHEN NO_DATA_FOUND THEN
WHEN VALUE_ERROR THEN
RAISE_APPLICATION_ERROR ( -20010,
'ERROR '|| '(Cdigo: ' || to_char(SQLCODE) || ')' ||
' - No fue posible la conversin de valores.' );
WHEN OTHERS THEN
RAISE_APPLICATION_ERROR ( -20070,
-
Normativa de Modelado de Bases de Datos y Uso de la herramienta ERWIN
66 de 112
'ERROR '|| '(Cdigo: ' || to_char(SQLCODE) || ')' ||
' - Error general al realizar el proceso.' );
END ;
En la gestin de excepciones, como mnimo se exigir el tratamiento de OTHERS, no pudindose en
ningn caso ignorar la excepcin ocurrida, utilizando NULL, segn el siguiente ejemplo:
Ejemplo: gestin de excepciones detallada
----------------------