oracle_v2

Upload: cesar-rivera-rivas

Post on 06-Jul-2015

58 views

Category:

Documents


0 download

TRANSCRIPT

MANUAL DE ESTNDARES DE ORACLECoordinador de la InIormacion: Area de Desarrollo y MantenimientoDireccin General de Telecomunicaciones y Transportes.EstandaresOracle.docVersion2.02 / 213 INDICE DE CONTENIDOS1 Introduccin................................................................................. 5Obieto de los estandares................................................................ 6Personal responsable..................................................................... 7Organizacion del documento ........................................................ 8Normas de composicion................................................................ 92 Aormas Cenerales...................................................................... 13 Diseo Lgico de Bases de Datos .............................................. 11Normas generales........................................................................ 12Nombres de obietos..................................................................... 13DeIinicion de tablas .................................................................... 15DeIinicion de columnas .............................................................. 18Restricciones de clave primaria................................................. 24Restricciones de clave unica...................................................... 26Restricciones de clave aiena ..................................................... 28Restricciones de comprobacion................................................. 30DeIinicion de vistas..................................................................... 31DeIinicion de vistas materializadas ............................................ 33DeIinicion de secuencias............................................................. 35Resumen de sintaxis de obietos .................................................. 36Anexo:Abreviaturas de uso comun........................................... 374 Diseo Fisico de Bases de Datos ............................................... 4Entorno de Trabaio ..................................................................... 41Estructura Fisica.......................................................................... 42DeIinicion de Bases de Datos ..................................................... 46DeIinicion de Espacios de Tablas ............................................... 50DeIinicion de Segmentos de Rollback........................................ 53Consideraciones SQL*Net.......................................................... 55DeIinicion de Indices .................................................................. 56DeIinicion de Clusters................................................................. 57DeIinicion de Sinonimos ............................................................ 58Resumen de sintaxis de obietos .................................................. 595 Sistema de Seguridad................................................................. 1DeIinicion de Usuarios ............................................................... 62Login proIile de usuario.............................................................. 64DeIinicion de PerIiles ................................................................. 65DeIinicion de Roles..................................................................... 66Asignacion de Privilegios ........................................................... 68Borrado de usuarios .................................................................... 70EstandaresOracle.docVersion2.03 / 213 Auditoria de Transacciones......................................................... 71 Diseo de Mdulos..................................................................... 74Normas generales........................................................................ 76Modulos tipo cliente (Forms y Reports) ..................................... 78Modulos tipo servidor (PL/SQL) ................................................ 79DeIinicion de Parametros............................................................ 80DeIinicion de Datos de Programa ............................................... 81DeIinicion de Estructuras de Datos............................................. 82DeIinicion de Disparadores......................................................... 83Uso de Datos en Modulos........................................................... 84InterIaces con otros sistemas....................................................... 85Asignacion a grupos de derechos de acceso a modulos.............. 86Resumen de sintaxis de obietos .................................................. 877 Uso del Lenguaje SQL............................................................... 88Introduccion ................................................................................ 89Normas tipograIicas .................................................................... 91Normas de Construccion............................................................. 93Recomendaciones de optimizacion........................................... 101Gestion de transacciones........................................................... 1078 Uso del Lenguaje PL/SQL....................................................... 18Introduccion .............................................................................. 109Normas tipograIicas .................................................................. 112Reglas de construccion ............................................................. 114Procesamiento de entradas y salidas ......................................... 126Tecnicas de bloqueo de tablas................................................... 127Desarrollo con PL/SQL para IAS ............................................. 1289 Uso del Lenguaje SQLPLUS................................................. 133Introduccion .............................................................................. 134Reglas de construccion ............................................................. 135Emision de inIormes con SQL*Plus ......................................... 138Paso de parametros ................................................................... 139Uso de sentencias DML............................................................ 1401 ORACLE Forms i ................................................................ 141Introduccion .............................................................................. 142Recomendaciones generales de trabaio y diseo ...................... 147DeIinicion de Obietos de Diseo .............................................. 150Nomenclatura de los obietos de diseo..................................... 158Normas de Diseo del IGU....................................................... 160Aplicaciones.............................................................................. 161Modulos de pantallas ................................................................ 170EstandaresOracle.docVersion2.04 / 213 Orientacion a obietos ................................................................ 184Menus de aplicaciones .............................................................. 187Mensaies de la Aplicacion ........................................................ 191Sistema de Ayuda en Linea....................................................... 200Prototipo de Pantallas ............................................................... 20211 ORACLE Reports i............................................................... 23Normas Generales..................................................................... 204Eiemplo de Iormato de listado.................................................. 205Pantalla de peticion de parametros ........................................... 206Normas de diseo de inIormes.................................................. 207Normas sobre totales................................................................. 211Normas sobre el Iinal del inIorme ............................................ 211Entorno de desarrollo................................................................ 212MANUAL DE ESTANDARES DE DESARROLLOORACLE EstandaresOracle.docVersion2.05 / 213 CAPITULO1 InlioduccinEl presente Manual de Estndares de Oraclecomprende las normas o estandares tecnicos aplicables al diseo logico. diseo Iisico y construccion de bases de datos y sistema de seguridad baio el entorno del SGBDR ORACLE. y de aplicaciones baio el entorno del SGBDR ORACLE y sus lenguaies ( SQL. PL/SQL y SQL*Plus) y herramientas de diseo (Designer 6i) y de desarrollo (Oracle Forms y ORACLE Reports).El contenido del manual ha de ir evolucionando al compas que marquen las necesidades de desarrollo de aplicaciones. el nivel de implantacion de metodologias de desarrollo y la propia practica de las diIerentes Conseierias. por lo que su obietivo principal es el de ser el documento marco que en todo momento recoia de Iorma actualizada las normas que se consideren aplicables.Se indica a continuacion el contenido y obieto de los estandares. el personal responsable de cada una de las areas en las que se organizan los estandares deIinidos y por ultimo. la organizacion general y las normas tipograIicas corrientemente utilizadas a lo largo del Manual.MANUAL DE ESTANDARES DE DESARROLLOORACLE EstandaresOracle.docVersion2.06 / 213 Objeto de los estndaresEl objetivo o proposito de la deIinicion y aplicacion de los Estandares de Oracle son los siguientes: Garantizar la aplicacion de un nivel minimo de calidad en los sistemas de inIormacion. Proporcionar un enIoque consistente y un lenguaie comun en entornos con multiples equipos de desarrollo. Conseguir que los componentes de los sistemas de inIormacion sean mas Iaciles de entender y mantener. Facilitar el proceso de introduccion al nuevo personal de desarrollo.MANUAL DE ESTANDARES DE DESARROLLOORACLE EstandaresOracle.docVersion2.07 / 213 Personal responsableEs responsabilidad de cada uno de los miembros de los equipos de trabaio de desarrollo la aplicacion consecuente de las normas contenidas en este Manual. asi como de su mantenimiento. en Iuncion de las nuevas circunstancias o necesidades.En especial. la correcta interpretacion. aplicacion y mantenimiento corresponde. segun las areas. a las siguientes personas:Administrador de Bases de Datos Diseo Fisico de Bases de Datos Indices Clusters Bases de Datos Espacios de Tablas Segmentos de Rollback SinonimosAnalista Diseo Logico de Bases de Datos Tablas Columnas Restricciones de tablas Vistas Vistas Materializadas Secuencias Diseo de Modulos de Aplicaciones Modulos Parametros Estructuras de datos Disparadores Uso de datos InterIaces Sistema de Seguridad Usuarios Grupos y sus ierarquias Privilegios AuditoriaProgramador Lenguaie SQL Lenguaie PL/SQL Lenguaie SQL*Plus Oracle Forms Oracle ReportsMANUAL DE ESTANDARES DE DESARROLLOORACLE EstandaresOracle.docVersion2.08 / 213 Organizacin del documentoEl presente Manual de Estandares de Administracion contiene los siguientes captulos: Diseo Logico de Bases de Datos Diseo Fisico de Bases de Datos Sistema de Seguridad Diseo de Modulos de Aplicaciones Lenguaie SQL Lenguaie PL/SQL Lenguaie SQL*Plus Oracle Forms Oracle ReportsCada capitulo se divide en secciones y estos se subdividen en apartados. que recogen las normas o estandares aplicables. A lo largo de este documento. "ORACLE" se reIiere en general al SGBDR ORACLE o al soItware de la compaia del mismo nombre.MANUAL DE ESTANDARES DE DESARROLLOORACLE EstandaresOracle.docVersion2.09 / 213 Normas de composicinSe detallan a continuacion las normas tipogrficas utilizadas en el Manual para presentacion de contenidos:MAYUSCULA: palabras clave o constantescursiva reIerencia a documentos o conceptos ORACLEcursiva~ construcciones sintacticasnegrita conceptos o aspectos importantescouriersentencias o componentes de sentencias SQL o PL/SQL indica que la caracteristica requerida no aIecta a la sintaxis de creacion de obietos. sino a su documentacionMANUAL DE ESTANDARES DE DESARROLLOORACLE EstandaresOracle.docVersion2.010 / 213 CAPITULO2 Noinas CeneiaIesLos Estandares de Oracle no son reglas rigidas que han de aplicarse de Iorma inIlexible. Cada una de ellas pretende un obietivo concreto y cuando este obietivo no se alcanza mediante la aplicacion estricta de la norma. debera aplicarse de la Iorma mas coherente posible con la norma deIinida y su obietivo.En todos los casos en los que se adopten decisiones distintas a las indicadas en las normas se ha de documentar los motivos o razones. asi como examinar la posible necesidad de emitir una propuesta de cambio de la norma o normas aplicables.La asignacion de areas de responsabilidad segun el perIil del personal de desarrollo no ha de suponer la division estricta del trabaio de cada uno. sino que se ha de aplicar tambien la cooperacion y la responsabilidad coniunta. a Iin de asegurar en todo momento la meiora del entorno de desarrollo deIinido y la aplicacion consecuente de las normas en vigor.MANUAL DE ESTANDARES DE DESARROLLOORACLE EstandaresOracle.docVersion2.011 / 213 CAPITULO3 Diseo Lgico de ases de DalosSe describen a continuacion las normas aplicables para la deIinicion de obietos de la base de datos que han de almacenar los datos de las aplicaciones. Contiene la descripcion de normas especiIicas para el diseo de tablas. columnas de tablas. restricciones. vistas y secuencias.MANUAL DE ESTANDARES DE DESARROLLOORACLE EstandaresOracle.docVersion2.012 / 213 Normas generalesEstimacin de espacioTras la deIinicion de obietos que ocupan espacio Iisico en la base de datos se ha de proceder a la evaluacion o estimacion del espacio ocupado aplicando para ello los datos estimativos sobre el volumen de cada obieto.Enumeracin de elementos repetitivosEn aquellos casos en los que se solicita la enumeracion de elementos repetitivos y sea necesario numerar cada elemento de Iorma secuencial se deberan dar valores salteados (de dos en dos. de cinco en cinco) a Iin de permitir inserciones posteriores sin necesidad de renumerar todos los elementos siguientes al elemento insertado.Documenta-cin de objetosEn todos los casos en los que se determinan las caracteristicas que deben cumplir las descripciones de obietos. estas caracteristicas han de documentarse adecuadamente. bien en herramientas CASE o en Iormatos especiIicos.MANUAL DE ESTANDARES DE DESARROLLOORACLE EstandaresOracle.docVersion2.013 / 213 Nombres de objetosCaractersticas Para el nombre de los obietos de la base de datos (tablas. columnas. indices. etc.) deberan utilizarse terminos simples. pero lo mas descriptivos posible.Se evitaran nombres de obietos numerados en serie u otros artiIicios que escondan su signiIicado.Abreviaturas Se utilizaran terminos y abreviaturas tan cortos como sea posible. aunque esta regla no debera comprometer o diIicultar en ningun caso su legibilidad.Se utilizaran nombres o abreviaturas identicas cuando los signiIicados son los mismos (por eiemplo. nombres de columnas de diIerentes tablas que identiIican codigos. nombres o descripciones) y semeiantes cuando la Iuncionalidad es parecida.Se deberan usar las abreviaturas estandar siempre que sea posible. Si no existe o no es conveniente crear una nueva abreviatura. se utilizara el termino o terminos que expresen de Iorma clara e inequivoca el signiIicado.Separador de nombres compuestosPara Iacilitar la legibilidad de los diIerentes componentes de los nombres de los obietos se utilizara el caracter de subrayado ("").Caracteres especialesEn los nombres de los obietos no se utilizaran espacios ni caracteres especiales tales como "$". "#" u otros que puedan tener sentido propio en contextos de desarrollo tales como bases de datos. lenguaies y sistemas operativos.Eiemplos:Incorrecto CorrectoGE_56_ GE_TP_EXP_56GE_TIPOS_DE_EXPEDIENTES GE_TP_EXPEDIENTESGE_NUEVOS_EXPE GE_EXP_NUEVOSF_FECHA_ALTA_# F_ALTA_NUMAliasde la aplicacin

Como nombre abreviado de la aplicacion podran utilizarse alias largos (4 caracteres) o alias cortos (2 caracteres).Si ya existe una aplicacion en la que los dos primeros caracteres coincidan con los correspondientes a la nueva aplicacion. el alias corto se Iormara mediante el primer y tercer caracter. o bien mediante el primer y cuarto caracter. si es necesario.En lo que sigue.se utilizara el alias corto. salvo que se diga lo contrario. El alias de la aplicacion se reIerencia como aliasaplicacion~.Alias largoEiemplo: GNOM -> Gestin de Nminas4 caracteresAlias corto 2 caracteresMANUAL DE ESTANDARES DE DESARROLLOORACLE EstandaresOracle.docVersion2.014 / 213 Eiemplo: GN -> Gestin de NminasFichero global de creacin de objetos

Todas las sentencias de creacion de obietos de la base de datos (tablas. vistas. secuencias. etc.) deberan almacenarse en un Iichero tipo SQL eiecutable baio SQL*Plus.El nombre de este Iichero se compondra de la siguiente manera:aliasaplicacion~CREAR.SQLEiemplo: GE_CREAR.SQLFicheros particulares de creacin de objetos

Todas las sentencias de creacion de obietos de la base de datos (tablas. vistas. secuencias. etc.) podran almacenarse en Iicheros particulares. cada uno de ellos reIerido a un tipo de obieto concreto. y se podran almacenarse en un Iichero tipo SQL eiecutable baio SQL*Plus.El nombre de este Iichero se compondra de la siguiente manera:aliasaplicacion~CREAR.TABaliasaplicacion~CREAR.SYNaliasaplicacion~CREAR.CONaliasaplicacion~CREAR.RGRaliasaplicacion~CREAR.INDaliasaplicacion~CREAR.JWEiemplo: GE_CREAR.TABCreacin de las tablas de GE.MANUAL DE ESTANDARES DE DESARROLLOORACLE EstandaresOracle.docVersion2.015 / 213 Definicin de tablasSintaxisNombre Tabla especfica aliasaplicacion~nombretabla~Eiemplo: GE_EXPEDIENTESmaximo 30 caracteresNombre Tabla genrica COMUnombretabla~Eiemplo: COMU_PROVINCIASmaximo 30 caracteresAlias de la Tabla

aliastabla~Eiemplo: EXP -> Expedientes3 caracteresDescripcin generalLa descripcion general de una tabla debe contener las siguientes caracteristicas:Nombre Nombre de la tabla.Las tablas especiIicas estaran preIiiadas con el nombre abreviado de la aplicacion a la que pertenecen. Las tablas genericas estaran preIiiadas con el nombre de la aplicacion COMU.El nombre de la tabla debera ser un nombre unico dentro de cada aplicacion. El nombre de las tablas estara en plural.El nombre de las tablas corresponde al plural de las entidades de donde proceden (excepto en su preIiio).En Designer. el nombre de la tabla se genera a partir del nombre Plural deIinido para la Entidad correspondiente.Alias

Se ha de deIinir un alias para cada tabla. de una longitud de tres caracteres (en la medida de lo posible Iormado por los primeros caracteres del nombre de la tabla). que ha de ser unico dentro de la aplicacion.Este alias sera utilizado para componer nombres de restricciones. nombres de indices asociados a la tabla y como alias de tabla en sentencias SQL.Eiemplo: EXPEntidad de procedencia

Documentar para cada tabla la entidad o entidades de las que procede.En caso de tablas no derivadas de entidades. documentar igualmente las razones de su creacion.Diario de operaciones

Indicativo de si se desea que la tabla disponga de una tabla adicional en la que se registren los cambios producidos a Iin de mantener un registro o diario de seguridad.Comentario

Documentar el obieto. uso o descripcion de la tabla.Parmetros de volumenMANUAL DE ESTANDARES DE DESARROLLOORACLE EstandaresOracle.docVersion2.016 / 213 Cada tabla debera llevar una indicacion de su volumen inicial y Iinal a Iin de poder realizar con posterioridad el dimensionamiento correcto de la base de datos en la que han de residir.Las indicaciones de volumen de tablas deberan especiIicar lo siguiente:Volumen inicial

Indicar el numero de Iilas estimadas que tendra la tabla tras la carga inicial de datos.Volumen final

Estimar el numero Iinal de Iilas que tendra la tabla en condiciones normales de explotacion.Parmetros de almacenamientoLa deIinicion completa de los parametros de almacenamiento de las tablas debera contener los siguientes aspectos:Extensin inicial (Initial extent)El tamao de la extension inicial debe permitir la carga completa de datos inicial. de Iorma que no se debe crear ninguna extension adicional durante esta carga inicial de datos.Extensin siguiente(Aext extent)Se determinara si la tabla necesita extensiones adicionales de tamao progresivamente creciente.En caso de ser necesario. el tamao de la extension inicial dividida por el tamao de la extension siguiente debe dar como resultado un numero entero (doble. triple. etc.)Nmero mnimo de extensiones (Min extents)EspeciIicar siempre el valor de una extension (1 extension por deIecto). que debera tener una dimension adecuada como minimo. para aloiar la carga inicial de datos.Nmero mximo de extensiones (Max extents)El maximo numero de extensiones de un segmento es siempre una Iuncion del tamao del bloque. Dado que el tamao del bloque ORACLE oscila entre 1 Kb (1024 bytes) a 8 Kb (8192 bytes) se aplicaran los siguientes valores posibles:Tamao del bloque----------------------------------1 Kb2 Kb4 Kb8 Kb16 KbmNumero de extensiones-----------------------------------571212495051022sNo tomar como numero maximo de extensiones el resultado exacto de las estimaciones. sino que se debe deiar un 25 adicional para cubrir posibles errores o cambios Iuturos.Porcentaje de incremento (Pct incr)Se debe especiIicar siempre un porcentaie de incremento de la siguiente extension nulo. ya que el uso de este porcentaie hace que se asignen extensiones de diIerente tamao cada vez. originando Iragmentacion en el espacio de tabla.MANUAL DE ESTANDARES DE DESARROLLOORACLE EstandaresOracle.docVersion2.017 / 213 Espacio de tabla (tablespace)Asignar a cada tabla un espacio de tablas adecuado en Iuncion de la cuantia de los cambios que se realizan. diIerenciando las tablas estaticas de las tablas dinamicas.Transacciones inicialesIndicar el numero maximo de transacciones que pueden actualizar un bloque de la tabla al mismo tiempo en los momentos iniciales. Oscila entre 1 y 255 (1 por deIecto).No se ha de asignar un numero muy diIerente del valor por deIecto para transacciones iniciales a no ser que se prevea que la tabla vaya a ser actualizada por muchos usuarios a la vez sobre un numero pequeo de Iilas.Transacciones finalesIndicar el numero maximo de transacciones que pueden actualizar un bloque de la tabla al mismo tiempo en condiciones de explotacion normal. Oscila entre 1 y 255.No se ha de asignar un numero muy diIerente del valor por deIecto 1 para transacciones Iinales a no ser que se prevea que la tabla vaya a ser actualizada por muchos usuarios a la vez sobre un numero pequeo de Iilas.Porcentaje libre (Pct free)Indicar el porcentaie de espacio sobre el total de tamao del bloque que ha de deiarse libre de nuevas inserciones a Iin de permitir espacio para las actualizaciones de las Iilas ya existentes sin que se tenga que recurrir a bloques encadenados de desborde. Por deIecto. el valor tomado es 10 .Porcentaje usado(Pct used)Indicar el porcentaie de utilizacion del bloque necesario para volver a poder hacer nuevas inserciones en una tabla que no las permitia por haber llegado a ocupar su Pct free.Secuencia de bloqueoIndicar el numero correspondiente a la secuencia de bloqueo de la tabla en el momento de su actualizacion. si le corresponde.Diario de operacionesIndicar si la tabla utilizara una tabla iournal en la que queden registradas las operaciones realizadas con ella a Iin de mantener un registro o diario de seguridad.EjemploCREATE TABLE ge_expedientes(c_numero NUMBER, ... ... ...)TABLESPACE ge_tsd1STORAGE (INITIAL 50K NEXT 50K MINEXTENTS 1 MAXEXTENTS 5 PCTINCREASE 5 INITRANS 2MAXTRANS 10);1El valor por deIecto depende del tamao del bloque elegido en el momento de crear la base de datos; por eiemplo.para bloques de longitud 2048. el valor por deIecto es de 255.MANUAL DE ESTANDARES DE DESARROLLOORACLE EstandaresOracle.docVersion2.018 / 213 Definicin de columnasSintaxisNombre de la Columnanombrecolumna~(maximo 30 caracteres)Utilizar los siguientes abreviaturas para preIiiar nombre de columnas de uso Irecuente:C: CodigoD: DescripcionI: ImporteQ: CantidadF: FechaY: AoH: HorasB: Valores booleanos (S/N)W: FrecuenciaM: Longitud. superIicie o volumenE: EstadoL: Nivel de dependencia ierarquicaN: Numeros que no sean cantidades ni importesA: AlIanumerico que no corresponda a ninguno de los casos anterioresP: PorcentaieX: Contenido de un Iichero de texto.V: Contenido de un Iichero de video.S: Contenido de un Iichero de sonido.G: Contenido de un Iichero de imagenes graIicas.FIC:Contenido de un tipo no incluido en los anteriores.DIR: Obietos tipo directorio.OBJ: Obietos deIinidos como obietos Oracle.ARR: Obietos tipo varray.Utilizar como suIiio ID. precedido del caracter ' como indicativo declaves primarias o aienasEjemplos Columna no clave:dcortaClaves principales: cempleadoidMANUAL DE ESTANDARES DE DESARROLLOORACLE EstandaresOracle.docVersion2.019 / 213 Claves ajenas: cpoblacionidobjcoche: para un obieto que almacenase inIormacion relativa a vehiculos (cada una de los componentes del obieto. seran nombrados como siempre. segun su tipo de contenido.xdocmanual.para una columna que almacenase el contenido de un Iichero de Word con un documento.gjpgfoto: para una columna que almacenase el contenido de un Iichero JPG con una IotograIia.ficprjplan: para una columna que almacenase el contenido de un Iichero PRJ (Proyect) de un proyecto.ficexejuego: para una columna que almacenase el contenido de un Iichero eiecutable con un iuegoMANUAL DE ESTANDARES DE DESARROLLOORACLE EstandaresOracle.docVersion2.020 / 213 Descripcin generalLa descripcion general de cada columna debera contener las siguientes caracteristicas:Nombre Nombre de la columna.El nombre de la columna debera ser unico dentro de la tabla. El nombre de la columnas se pondra en singular. Eiemplo:ANOM_EMPLEADOLas columnas que se derivan de atributos deben conservar. en la medida de lo posible. el nombre del atributo.En lo posible. el nombre de las columnas que Iorman parte de la clave primaria de tablas que han de ser reIerenciadas por otras columnas debera incluir el alias o reIerencia al nombre de la tabla.Eiemplo:En la tabla GE_POBLACION. la columna que soporta la clave primaria se denominaraC_POBLACION_ID.Las columnas que son claves aienas deberan nombrarse en la medida de lo posible con el nombre de la clave primaria de la tabla reIerenciada. Eiemplo: C_TP_EXPEDIENTE_IDSecuencia

Numerar cada columna de Iorma que reIleie el orden de su creacion en la base de datos.Utilizar la siguiente secuencia de ordenamiento segun el tipo de columnas: columnas que Iorman parte de la clave primaria columnas que Iorman parte de la clave o claves unicas columnas obligatorias que Iorman parte de la clave o claves aienas resto de columnas obligatorias resto de columnas opcionalesFormato Seleccionar el Iormato deseado.Longitud media

Indicar la longitud media de la columna en numero de posiciones. En caso de no poder estimar de antemano su longitud media utilizar las siguientes estimaciones: Columnas de tipo alIanumericas si la longitud maxima de la columnaes menor de 10. se tomara la longitud maxima. si es mayor de 10. la longitud media sera el 50 de la longitud maxima. Columnas numericas:(longitud / 2) 1Longitud mxima

Indicar la longitud maxima de la columna en numero de posiciones. Se daran las longitudes necesarias en cada caso.MANUAL DE ESTANDARES DE DESARROLLOORACLE EstandaresOracle.docVersion2.021 / 213 DecimalesDeIinir para cada columna que utilice el tipo de dato NUMBER el numero de posiciones decimales.Opcionalidad Indicar si la columna es obligatoria u opcional.Los siguientes tipos de columnas han de deIinirse como NOT NULL: columnas que Iorman parte de la clave primaria de la tabla. columnas que Iorman parte de una clave aiena obligatoria. columnas que toman un valor booleano. Estas columnas de tipo booleano deben ir asociadas a una restriccion de tipo CHECK que Iuerce a tomar uno de los valores posibles. cualquier columna que debe tomar un valor obligatoriamente.En el resto de los casos. solo se deIiniran como obligatorias las columnas que requieran siempre un valor.Comentario

Documentar el obieto. uso o descripcion de la columna. asi como las notas asociadas al uso o aspectos tecnicos de la columna.Parmetros de volumenVolumen inicial

Indicar el porcentaie de Iilas que tendran algun valor en esta columna en el momento de la carga inicial.Volumen final

Indicar el porcentaie de Iilas que tendran algun valor en esta columna cuando la tabla este en produccion estable.Requisitos de insercin de datosMaysculas

Indicar si los valores insertados en estas columnas deberan ser convertidos a mayusculas.Valor por defectoDeIinir el valor por deIecto que tomara la columna en el caso de inserciones en vacio. si ha de tomar alguno. sobre todo en el caso de columnas obligatorias.Puede ser una constante o bien expresion como ROWNUM. Las Iunciones SYSDATE. USER. USERENJ v UID tambien son aceptadas.Secuencia utilizable

Indicar el nombre de la secuencia de la que se obtendran valores para la columna en el momento de la insercion.Se deIinira una secuencia de tipo ORACLE o controlada por la aplicacion para todos aquellas columnas que lo requieran. Se especiIicara si la secuencia se puede utilizar por otras columnas o debe ser usada exclusivamente por determinada columna.Se estudiara la necesidad de crear secuencias para columnas en los siguientes casos: las columnas candidatas por clave primaria van a ser actualizadas con Irecuencia. las columnas candidatas par clave primaria requieren un gran volumen de MANUAL DE ESTANDARES DE DESARROLLOORACLE EstandaresOracle.docVersion2.022 / 213 espacio de almacenamiento. la tabla no tiene columnas que puedan ser candidatas a clave primaria.Secuencia respecto al padre

Indicar si la columna ha de llevar una secuencia con respecto a la Iila de la tabla maestra (por eiemplo.en la columna N_LINEA de la tabla CO_LINEA_FACTURA).Columnas derivadas o calculadas

Se indicaran las reglas de derivacion. en el caso de columnas calculadas derivadas o que almacenen acumulados o contadores.Reglas de validacin o tratamientos

Se indicaran las reglas de validacion y de tratamiento logico asociadas a la columna. asi como los dominios asociados a la columna. tales como rangos y coniuntos de valores validos.Caractersticas de visualizacinSe deIiniran como se visualizaran las columnas en pantallas e inIormes de las aplicaciones.Visualizable

Indicar si columna debera ser visualizada. Por eiemplo. no se visualizan las palabras de paso. ni ciertas columnas de uso interno de la aplicacion.Tipo de dato

Indicar el tipo de dato empleado para la visualizacion. Puede ser diIerente del tipo de dato de almacenamiento.Longitud

Indicar la longitud de la columna en pantallas e inIormes. Puede ser diIerente del tipo de dato de almacenamiento.Mayscula o Minscula

Indicar si se ha de visualizar en mayuscula o minuscula.En general. los datos de texto se visualizaran en mayuscula. excepto los nombres propios. en los que se utilizaran los caracteres introducidos por el usuario.Representar las Iechas en mayuscula.Alineacin

Indicar si se ha de visualizar alineado a la derecha. a la izquierda o centrado.Visualizar los numeros que representan importes en pesetas alineados a la derecha sin decimales; el resto. alineados a la derecha con dos decimales.Altura

Indicar la altura de la columna en pantallas e inIormes.Secuencia

Indicar la secuencia en la que aparece la columna en una pantalla o inIorme.Formato

Indicar la mascara que modiIicara la Iorma de visualizar el dato.Resalte

EspeciIicar el tipo de resaltado o color a utilizar.Descriptor

EspeciIicar el descriptor que se usara para describir el campo de las pantallas en las que se utilice la columna.MANUAL DE ESTANDARES DE DESARROLLOORACLE EstandaresOracle.docVersion2.023 / 213 Lnea de ayuda

DeIinir una breve descripcion del campo que aparecera como ayuda en la ultima linea de las pantallas.Ordenamiento

EspeciIicar la secuencia de ordenamiento de la columna respecto a las demas cuando sea incluida en una clausula ORDER BY.En este caso se examinara la necesidad de deIinir un indice que Iacilite la presentacion ordenada.No se especiIicaran columnas en primera posicion de la clausula ORDER BY si la columna no aparece como primera en un indice.Sentido del ordenamiento

DeIinir el sentido (ascendente o descendente) en que se deben ordenar los valores en una clausula ORDER BY.Descriptor de clave

A menudo. las Iilas de una tabla se identiIican mediante una columnas que almacena un codigo al que va asociada una o mas columnas de descripcion.Esta propiedad es un numero entero que representa la prioridad de la columna cuando se usa como descriptor de un codigo. Las listas de valores utilizaran esta propiedad para visualizar la descripcion en vez del (o ademas del) propio codigo.Columnas de auditora

Indica si se desea que la tabla tenga las siguientes columnas adicionales y cuyo valor de columna sea automaticamente generado por las aplicaciones: Creado por ModiIicado por Fecha de creacion Fecha de modiIicacionAyuda

DeIinir el texto para la ayuda de pantalla plena.MANUAL DE ESTANDARES DE DESARROLLOORACLE EstandaresOracle.docVersion2.024 / 213 Restricciones de clave primaria 1SintaxisNombre aliasaplicacion~alias tabla~PKEiemplo: GEEXPPKDescripcin GeneralNombreIndicar un nombre unico para la clave primaria.En Designer. el nombre de la PK se genera a partir del nombre corto deIinido para la entidad.Mensaje de error

Indicar el mensaie de error usado por las aplicaciones cuando se intente insertar o modiIicar una clave ya existente o nula.Tabla de excepciones

Indicar la tabla donde se almacenaran todas las excepciones que se produzcan con la clave primaria en tiempo de eiecucion.Nivel de validacin

Indicar el nivel de implementacion de la clave primaria. Utilizar las opciones Servidor. Cliente v Ambos.Activar Indicador de si la clave primaria se crea activada o desactivada.Actualizable?

Indicador de si una vez insertada la clave primaria puede ser actualizada.Columnas que la conformanEspeciIican las columnas que componen la clave primaria. Indicar el orden y el nombre de cada una de ellas.DeIinir todas las columnas que Iorman parte de la clave primaria como NOT NULL.Parmetros de almacena-mientoIndicar los parametros de almacenamiento del indice que implementara la clave primaria. Ver la seccion Parmetros de almacenamientoen la seccion relativa a tablas. 1 en ingles. primary constraintMANUAL DE ESTANDARES DE DESARROLLOORACLE EstandaresOracle.docVersion2.025 / 213 EjemploCREATE TABLE ge_empleados(, c_empleado NUMBER(7) NOT NULL, a_apellido VARCHAR2 (35) NOT NULL, a_nombre VARCHAR2 (35) NOT NULL, a_usuario VARCHAR2(8) NOT NULL, n_sueldo NUMBER (15) NOT NULL, c_depart NUMBER(7) NOT NULL, CONSTRAINT ge_emp_pkPRIMARY KEY (c_empleado));MANUAL DE ESTANDARES DE DESARROLLOORACLE EstandaresOracle.docVersion2.026 / 213 Restricciones de clave nica 1SintaxisNombre aliasaplicacion~alias tabla~columna~UKdonde columna~ puede contener el nombre completo o la abreviatura de la columna.Eiemplo: GE_EXP_C_DPTO_UKDescripcin GeneralNombre Indicar un nombre unico para la clave unica.En Designer. el nombre de la UK se genera a partir del nombre corto deIinido para la entidad (aliasaplicacion~alias tabla~) mas el nombre dado al identiIicador unico (columna~).Mensaje de error

Indicar el mensaie de error usado por las aplicaciones cuando se intente insertar o modiIicar una clave unica ya existente.Tabla de excepciones

Indicar la tabla donde se almacenaran todas las excepciones que se produzcan con la clave unica en tiempo de eiecucion.Nivel de validacin

Indicar el nivel de implementacion de la clave unica. Utilizar las opciones Servidor. Cliente v Ambos.Activar Indicador de si la clave unica se crea activada o desactivada.Actualizable?

Indicador de si una vez insertada la clave unica puede ser actualizada.Columnas que la conformanEspeciIican las columnas que componen la clave unica. Indicar el orden y el nombre de cada una de ellas.Parmetros de almacenam.Indicar los parametros de almacenamiento del indice que implementara la clave unica. Ver la seccion Parmetros de almacenamientoen la seccion relativa a tablas. 1 en ingles. unique constraintMANUAL DE ESTANDARES DE DESARROLLOORACLE EstandaresOracle.docVersion2.027 / 213 EjemploCREATE TABLE ge_empleados(, c_empleado NUMBER(7) NOT NULL, a_apellido VARCHAR2 (35) NOT NULL, a_nombre VARCHAR2 (35) NOT NULL, a_usuario VARCHAR2(8) NOT NULL, n_sueldo NUMBER (15) NOT NULL, c_depart NUMBER(7) NOT NULL, CONSTRAINT ge_emp_usuario_ukUNIQUE (a_usuario));MANUAL DE ESTANDARES DE DESARROLLOORACLE EstandaresOracle.docVersion2.028 / 213 Restricciones de clave ajena1SintaxisNombre aliasaplicacion~alias tabla~aliasaplicacion~alias tabla~FK (si hubiera mas de una con el mismo nombre aadir 1. 2. .donde el aliasaplicacion~aliastabla~ hace reIerencia a la tabla que cubre la restriccion. Si hay mas de unas sobre la misma tabla se aade e suIiio 1. 2.Eiemplo: GE_EXP_GE_DPTO_FKDescripcin GeneralNombre Indicar un nombre unico para la restriccion de clave aiena. En Designer. el nombre de la FK se genera a partir del nombre corto deIinido para ambas entidades.Tabla referenciadaEl nombre de la tabla reIerenciada por la restriccion.Mensaje de error

Mensaie de error usado por las aplicaciones cuando se intenta introducir una clave aiena que no existe en la tabla reIerenciada.Tabla de excepciones

Indicar la tabla donde se almacenaran todas las excepciones que se produzcan con la clave aiena en tiempo de eiecucion.Nivel de validacin

Indicar el nivel de implementacion de la clave aiena. Utilizar las opciones Servidor. Cliente v Ambos.Activar Indicador de sila clave aiena se crea activada o desactivada.Obligatoria

Indicar si es obligatorio o no introducir un valor para la clave aiena.Transferible

Indicar si la clave aiena puede ser actualizada.1 en ingles. foreign constraintMANUAL DE ESTANDARES DE DESARROLLOORACLE EstandaresOracle.docVersion2.029 / 213 Reglas de borrado

Se deberan indicar las reglas de integridad reIerencial aplicables alborrar una Iila de la tabla reIerenciada: Cascada: borrado en cascada de las Iilas de otras tablas que contienen el valor borrado. Restringido: impide el borrado si hay otras tablas que contienen el valor borrado Anular: permite el borrado y pone a nulo el valor en las tablas que contienen el valor borrado.Reglas de actualizacin

Se deberan indicar las reglas de integridad reIerencial aplicables para actualizar la clave primaria de una tabla reIerenciada por otras tablas: Cascada: actualizacion en cascada de las Iilas de otras tablas que contienen el valor modiIicado. Restringido: impide la actualizacion si hay otras tablas que contienen el valor actualizable. Anular: permite la actualizacion y pone a nulo el valor en las tablas que contienen el valor modiIicado.Columnas que la conformanEspeciIican las columnas que componen la clave aiena. Indicar el orden y el nombre de cada una de ellas. Indicar tambien las columnas de la tabla reIerenciada con las que se corresponde.Indice

Indicar si la clave aiena se apoyara en un indice. EjemploCREATE TABLE ge_empleados(, c_empleado NUMBER(7) NOT NULL, a_apellido VARCHAR2 (35) NOT NULL, a_nombre VARCHAR2 (35) NOT NULL, a_usuario VARCHAR2(8) NOT NULL, n_sueldo NUMBER (15) NOT NULL, c_depart_id NUMBER(7) NOT NULL, CONSTRAINT ge_emp_ge_departamentos_fkFOREIGN KEY (c_depart_id)REFERENCESge_departamentos (c_depart));MANUAL DE ESTANDARES DE DESARROLLOORACLE EstandaresOracle.docVersion2.030 / 213 Restricciones de comprobacin 1SintaxisNombre aliasaplicacion~alias tabla~columna~CKEiemplo: GE_EXP_ESTADO_CKDescripcin GeneralNombre Nombre unico de la restriccion. En Designer. las CK deben deIinirse una vez generadas las tablas.Mensaje de error

Mensaie de error usado por las aplicaciones cuando se intenta introducir un valor que viola la restriccion de comprobacion.Tabla de excepciones

Indicar la tabla donde se almacenaran todas las excepciones que se produzcan con la restriccion de comprobacion en tiempo de eiecucion.Nivel de validacin

Indicar el nivel de implementacion de la restriccion. Utilizar las opciones Servidor. Cliente v Ambos.Activar Indicador de si la restriccion se crea activada o desactivada.Texto de la restriccin Indicar la condicion o texto que conIorma la restriccion.EjemploCREATE TABLE ge_empleados(, c_empleado NUMBER(7) NOT NULL, a_apellido VARCHAR2 (35) NOT NULL, a_nombre VARCHAR2 (35) NOT NULL, a_usuario VARCHAR2(8) NOT NULL, n_sueldo NUMBER (15) NOT NULL, c_depart NUMBER(7) NOT NULL, CONSTRAINT ge_emp_sueldo_ckCHECK (n_sueldo > 0));1 en ingles. check constraintMANUAL DE ESTANDARES DE DESARROLLOORACLE EstandaresOracle.docVersion2.031 / 213 Definicin de vistasSintaxisNombre aliasaplicacion~Valias vista~Eiemplo: GE_V_EXP_ESTADODescripcin generalLa descripcion general de una vista debe contener las siguientes caracteristicas:NombreAplicar las normas deIinidas para los nombres de las tablas.Alias

Aplicar las normas deIinidas para el alias de tablas.Comentario

Documentar el obieto. uso o descripcion de la tabla.Definicin de columnasAplican las mismas normas que para la deIinicion de columnas de tablas.Los nombres de la columnas de la vista han de ser identicos a los nombres de las columnas de las tablas en las que se basan. En el caso de columnas que no basadas directamente en columnas de tablas aplican las normas de denominacion de columnas de tablas.Tablas base de la vistaIndicarlas tablas y vistas en las que se basa la vista mediante las siguientes caracteristicas:Tabla o vistaTabla o vista en la que se basa la vista tratada.Alias

Alias de la tabla o vista.Columnas base de la vistaIndicarlas columnas de las tablas que constituyen la vista mediante las siguientes caracteristicas:Nombre de la columnaNombre de la columna en la vista.Columna base Nombre de la columna en la tabla o vista a la que pertenece.Expresin SQLUna columna de una vista puede estar basada en una expresion en cuyo caso se reIleiara en esta caracteristica.MANUAL DE ESTANDARES DE DESARROLLOORACLE EstandaresOracle.docVersion2.032 / 213 EjemploCREATE VIEW ge_v_empleados(, c_codigoNUMBER(7) NOT NULL, a_apellido VARCHAR2 (35) NOT NULL, a_nombre VARCHAR2 (35) NOT NULL)AS SELECT c_empleado,a_apellido,a_nombreFROM ge_empleadosWHEREd_tipo_puesto= `ADMINISTRATIVO'WITH READ ONLY;MANUAL DE ESTANDARES DE DESARROLLOORACLE EstandaresOracle.docVersion2.033 / 213 Definicin de vistas materializadasSintaxisNombre aliasaplicacion~VMalias vista~Eiemplo: GE_VM_EXP_ESTADODescripcin generalLa descripcion general de una vista materializada debe contener las siguientes caracteristicas:NombreAplicar las normas deIinidas para los nombres de las tablas.Alias

Aplicar las normas deIinidas para el alias de tablas.Comentario

Documentar el obieto. uso o descripcion de la tabla.Definicin de columnasAplican las mismas normas que para la deIinicion de columnas de tablas.Los nombres de la columnas de la vista han de ser identicos a los nombres de las columnas de las tablas en las que se basan. En el caso de columnas que no basadas directamente en columnas de tablas aplican las normas de denominacion de columnas de tablas.Tablas base de la vistaIndicarlas tablas y vistas en las que se basa la vista mediante las siguientes caracteristicas:Tabla o vistaTabla o vista en la que se basa la vista tratada.Alias

Alias de la tabla o vista.Columnas base de la vistaIndicarlas columnas de las tablas que constituyen la vista mediante las siguientes caracteristicas:Nombre de la columnaNombre de la columna en la vista.Columna base Nombre de la columna en la tabla o vista a la que pertenece.Expresin SQLUna columna de una vista puede estar basada en una expresion en cuyo caso se reIleiara en esta caracteristica.MANUAL DE ESTANDARES DE DESARROLLOORACLE EstandaresOracle.docVersion2.034 / 213 EjemploCREATE MATERIALIZED VIEW ge_vm_empleados(, c_codigoNUMBER(7) NOT NULL, a_apellido VARCHAR2 (35) NOT NULL, a_nombre VARCHAR2 (35) NOT NULL)AS SELECT c_empleado,a_apellido,a_nombreFROM ge_empleadosWHEREd_tipo_puesto= `ADMINISTRATIVO';MANUAL DE ESTANDARES DE DESARROLLOORACLE EstandaresOracle.docVersion2.035 / 213 Definicin de secuenciasSintaxisNombre aliasaplicacion~aliastabla~identificador~SEQEl segmento identiIicador~ hara reIerencia al nombre de la columna o. en caso de utilizar una misma secuencia para varias columnas de diIerentes tablas. a la Iuncionalidad que la identiIique.Eiemplo: GE_EXP_REF_SEQDescripcin generalSe deIiniran secuencias siempre que una columna de una tabla requiera el almacenamiento de numeros enteros unicos generados automaticamente. por eiemplo. para generar valores para claves primarias.La deIinicion completa de una secuencia debera contener los siguientes aspectos:Incremento En general tomara un valor de uno.Ciclo No utilizar secuencias ciclicas. En caso contrario. documentar los motivos e indicar los procedimientos para evitar conIlictos con valores generados en el ciclo previo.Orden No generar secuencias en su orden de peticion.Inicio Usar secuencias ascendentes.Mximo. MnimoNo dar valores maximos o minimos superiores a la longitud de almacenamiento del la columna o columnas que utilizaran la secuencia.Valor cache Tomar el valor por deIecto (20).Mtodo de implantacin

En general. se utilizaran secuencias generadas por el SGBDR ORACLE. En caso de necesitar secuencias con valores consecutivos (por eiemplo. numero de Iactura). se deIiniran secuencias controladas por la aplicacion.Comentario

Obieto o uso de la secuenciaEjemploCREATE SEQUENCE ge_exp_ref_seqINCREMENT BY 1START WITH 1NOCYCLENOCACHEMANUAL DE ESTANDARES DE DESARROLLOORACLE EstandaresOracle.docVersion2.036 / 213 Resumen de sintaxis de objetosObjeto Sintaxis LongitudAliasde la aplicacionaliasaplicacion~Por deIecto se utilizara el alias corto. excepto cuando se indique lo contrario.largo:4 carcorto:2 carFichero de creacion de obietosaliasaplicacion~CREAR.SQLFicheros particulares de creacion de obietosaliasaplicacion~CREAR.TAB (tablas)aliasaplicacion~CREAR.SYN (sinonimos)aliasaplicacion~CREAR.CON (constraints) aliasaplicacion~CREAR.RGR (roles a roles y a tablas) aliasaplicacion~CREAR.IND (indices)aliasaplicacion~CREAR.VW (vistas)Tabla especiIica aliasaplicacion~nombretabla~ maximo 30 caracteresTabla generica COMUnombretabla~ maximo 30 caracteresAlias de la Tabla Aliastabla~ 3 caracteresColumna nombrecolumna~ maximo 30 caracteresRestriccion de clave primariaaliasaplicacion~alias tabla~PKRestriccion de clave unicaaliasaplicacion~alias tabla~columna~UK Restriccion de clave aienaaliasaplicacion~alias tabla~aliasaplicacion~alias tabla~FK (si hubiera mas de una con el mismo nombre aadir 1. 2. .Restriccion de comprobacionaliasaplicacion~alias tabla~columna~CKVistas aliasaplicacion~Valias vista~Vistas Materializadasaliasaplicacion~VMalias vista~Secuencias aliasaplicacion~aliastabla~identiIicador~SEQMANUAL DE ESTANDARES DE DESARROLLOORACLE EstandaresOracle.docVersion2.037 / 213 Anexo:Abreviaturas de uso comn1 PRIMERO2 SEGUNDOACC ACCIONACT ACTIVIDADACTA ACTAACTL ACTUALACUM ACUMULADOADM ADMINISTRACIONAGT AGENTEANT ANTERIORANTG ANTIGEDADANUL ANULADOAPELL APELLIDOARG ARGUMENTOAUT AUTORBCO BANCOBD BASE DE DATOSBENEF BENEFICIOCAJ CAJACAMP CAMPOCARAC CARACTERISTICACLI CLIENTEC CODIGOCOEF COEFICIENTECOLECT COLECTIVOCOM COMENTARIOCOMERC COMERCIALCOMIS COMISIONCOMP COMPRACOMUNICCOMUNICACIONCOND CONDICIONCONS CONSEJERIACONT CONTADORCONV CONVERSIONCP CODIGO POSTALCRTO CONTRATOCTA CUENTADEF DEFINICIONDENOM DENOMINACIONDPTO DEPARTAMENTODEPEND DEPENDENCIAD DESCRIPCIONDEST DESTINODEVOL DEVOLUCIONDGRAL DIRECCION GENERALDIF DIFERENCIADIP DIPUTADODIR DIRECCIONDOC DOCUMENTODOMIC DOMICILIODT DATOEJEC EJECUCIONELAB ELABORACIONEMIS EMISIONEMP EMPLEADOEMPR EMPRESAENTI ENTIDADENTR ENTRADAENTR ENTREGAENV ENVIOEQU EQUIPOE ESTADOEVOL EVOLUCIONEXPTE EXPEDIENTEEXT EXTERNOEXTN EXTENSIONEXTR EXTRAORDINARIOFACT FACTURAFDO FIRMADOF FECHAFIN FINALFINAL FINALIDADFINAN FINANCIEROGEST GESTIONGRP GRUPOHIST HISTORICOH HORAIDENT IDENTIFICADORI IMPORTEIMPR IMPRESIONINCID INCIDENCIAINCR INCREMENTOIND INDICEINDIC INDICADORINDIV INDIVIDUALINF INFERIORING INGRESOINI INICIALINSERC INSERCIONINTERV INTERVENCIONINV INVERSIONLAB LABORALLEG LEGALLIM LIMITEMANUAL DE ESTANDARES DE DESARROLLOORACLE EstandaresOracle.docVersion2.038 / 213 LIQ LIQUIDACIONLOC LOCALLLAM LLAMADAMANT MANTENIMIENTOMATR MATRICULAMAX MAXIMOMAY MAYORMED MEDIOMENS MENSAJEMENS MENSUALMERC MERCADOMESA MESA DEL CONGRESOMIN MINIMOMKT MARKETINGMOD MODALIDADMOD MODELOMODIF MODIFICACIONMOT MOTIVOMOV MOVIMIENTOMRG MARGENMULT MULTIPLEMUNI MUNICIPIONIV NIVELNOM NOMBRENOTIF NOTIFICACIONNUE NUEVON NUMEROOBJ OBJETOOBLI OBLIGATORIOOBSERV OBSERVACIONOD ORDEN DEL DIAOFIC OFICINAOPER OPERACIONORD ORDENORG ORGANIZACIONORI ORIGENOTR OTROSPANT PANTALLAPARAM PARAMETROPARC PARCIALPART PARTICULARPEND PENDIENTEPER PERIODOPERS PERSONAPOBL POBLACIONP PORCENTAJEPOSIC POSICIONPREF PREFERENCIAPRESUP PRESUPUESTOPREV PREVIOPROC PROCEDENCIAPROD PRODUCTOPROP PROPIOPROV PROVINCIAPROVR PROVEEDORPROX PROXIMOPTAS PESETASQ CANTIDADREAL REALIZACIONRECEP RECEPCIONREF REFERENCIAREG REGIMENREG REGIONREL RELACIONRENOV RENOVACIONREP REPRESENTACIONRESP RESPUESTAREV REVISIONRGTRO REGISTROSAREA SUBAREASDO SALDOSECC SECCIONSEC SECUENCIASEG SEGMENTOSEM SEMANASEN SENADOSERV SERVICIOSIST SISTEMASIT SITUACIONSOLIC SOLICITUDSTIPO SUBTIPOSTND ESTANDARSUC SUCURSALSUP SUPERIORSUPERF SUPERFICIETAB TABLATARJ TARJETATEL TELEFONOTEMP TEMPORALTERM TERMINALTIT TITULARTIT TITULOTMP TIEMPOTOT TOTALTP TIPOTRAB TRABAJOTRANS TRANSACCIONTRANSF TRANSFERENCIATRASP TRASPASOUBIC UBICACIONMANUAL DE ESTANDARES DE DESARROLLOORACLE EstandaresOracle.docVersion2.039 / 213 ULT ULTIMOUNID UNIDADUSR USUARIOVAL VALORVOL VOLUMENVTO VENCIMIENTOW FRECUENCIA YAOMANUAL DE ESTANDARES DE DESARROLLOORACLE EstandaresOracle.docVersion2.040 / 213 CAPITULO4 Diseo Isico de ases de DalosSe deIinen a continuacion las normas aplicables para la deIinicion de obietos de la base de datos relacionados con su estructura Iisica de almacenamiento y Iuncionamientotales como indices. clusters. espacios de tablas. segmentos de rollback y sinonimos. Aparece como anexo la relacion de abreviaturas de uso comun para la denominacion de obietos.MANUAL DE ESTANDARES DE DESARROLLOORACLE EstandaresOracle.docVersion2.041 / 213 Entorno de TrabajoSe pretende deIinir una serie de estandares para conseguir una Administracion de Base de datos uniIorme para toda la JCyL. Los aspectos a considerar son los siguientes:Sistema OperativoEl sistema operativo soporte de la Base de Datos sera Unix.Versin de Base de DatosSe adoptara como version de base de datos Oracle la ultima version que presente cierta estabilidad y permita la interaccion con las bases de datos existentes.Esta version estara publicada en las paginas web del servicio de inIormatica corporativa. al igual que para el resto de productos Oracle.Cuentas de S.O.oracle Se utilizara para la instalacion del producto.Pertenece al grupo 'dba.Si existen diIerentes maquinas. se utilizara el mismo UID y GID en todas las maquinas para evitar problemas de protecciones.adminsis Se encarga de centralizar la eiecucion de todos los procedimientos administrativos asociados a Unix. bases de datos y aplicaciones.Pertenece al grupo 'adminsis. al 'dba y a los grupos de las distintas aplicaciones que convivan con el servidor.operador Se encarga de realizar operaciones administrativas guiadas por menu a traves de un procedimiento cautivo.MANUAL DE ESTANDARES DE DESARROLLOORACLE EstandaresOracle.docVersion2.042 / 213 Estructura FsicaLa deIinicion de la estructura de directorios y Iicheros es como sigue:SintaxisEstructura El esquema general de la estructura debera ser como sigue: /oracle~:SoItware Oracle /ENTORNO1: Estructura principal del ENTORNO1 /ENTORNO2: Estructura principal del ENTORNO2 /bak:Estructura de Respaldodonde el entorno sera el codigo identiIicativo para desarrollo. explotacion....Ficheros El esquema general de nombrado dentro de la estructura debera ser como sigue: BASE: Nombre de la base de datos. BASEextension fichero~:Nombre del Iichero. APLI: Nombre de la aplicacion. ENTORNO: Nombre del EntornoDescripcin generalSe pretende que la estructura deIinida: Facilite la realizacion de copias de seguridad y su recuperacion Agrupe logicamente los registros seleccionados Sea adaptable a entornos diIerentes a una maquina independiente: sistemas en cluster. parallel servers. etc. Facilite la recuperacion hasta la ultima transaccion a traves de una estructura de respaldo.MANUAL DE ESTANDARES DE DESARROLLOORACLE EstandaresOracle.docVersion2.043 / 213 Estructura Principal de Directorios/ENTORNO/BASE/archive /bak/BASE/archive/audit/comandos/crearbase /replica/snapshots /scripts/control/BASEIc1.ctl/BASEIc2.ctl/BASEIc3.ctl/bak/BASE/control/BASEIc3.ctl/copias /bak/BASE/copias(Copias de Iichero de BD realizadas antes de eiecutar procesos criticos)/core/datos/BASEAPLItsd11.dbI/BASEsysttsd11.dbI/BASErbcktsr11.dbI /BASEtemptst11.dbI /BASEutiltsd11.dbI /BASEusertsd11.dbI(Tablespace por deIecto para todos los usuarios) /indices/BASEAPLItsi11.dbI/BASEutiltsi11.dbI/export /bak/BASE/export(Ficheros de export generados en momentos puntuales) /log /redo/espeio /bak/BASE/redo/espeio /origen/BASEIrd1.log/BASEIrd2.log /./sid/initBASE.ora /$ORACLEHOME/dbs/initBASE.ora /sort /tmp /trace/usuario/sistema/utl (Salidas de exportaciones a Iicheros generadas con UTL)En caso de que sea necesario repartir esta estructura en varios discos logicos (discos 'reales. raidsets...). se mantendra la misma nomenclatura para la estructura. cambiando unicamente el nombre del directorio raiz sobre el que se monta. Puede ser especialmente interesante. en caso de que existan varios discos. separar el directorio de indices para meiorar el rendimiento. o el de redo logs para obtener una mayor Iiabilidad.Estructura de Respaldo BDMANUAL DE ESTANDARES DE DESARROLLOORACLE EstandaresOracle.docVersion2.044 / 213 Existe una unica estructura de este tipo para todas las bases de datos del servidor.Su Iinalidad es permitir la recuperacion de la base de datos en el supuesto de corrupcion o perdida de la estructura principal./bak/BASE/archive/archBASElogxxxxxx.arc (xxxxsx t)/control/copias/archive/control/datos/export/redo/sid/redo/espeio/BASEIrd1.log/BASEIrd2.log/BASEIrd3.log/./export/bak/BASE/.MANUAL DE ESTANDARES DE DESARROLLOORACLE EstandaresOracle.docVersion2.045 / 213 Procedimientos S.O.Losprocedimientosdes.o.deusogeneralsedepositaranenlasiguiente estructura de directorios:/etc/oracomun/bin (Procedimientos comunes)/dat (Ficheros de parametrizacion comunes)/log (Ficheros de log generados por scripts)/err (Ficheros de eventos detectados)/ora (Ficheros sqlnet. tnsnames. listener.)/mai (Ficheros de mail)/tmp (Ficheros temporales)Los procedimientos de uso general que existiran en todas las instalaciones seran:- subir y baiar bases de datos- exports - procedimientos de copia- procedimientos de generacion de estadisticas- monitorizacion- calculo de espacio- regeneracion de un esquemapara procedimientos que no esten en esta lista. cuando surga la necesidad. se vera sialguienyalohanecesitado.sino.sedesarrollaraenSQLoPL/SQLyse notiIicara al resto de los administradores.La necesidad de mas procedimientos se vera en coniuncion con la herramienta de Administracion estandar PATROLMANUAL DE ESTANDARES DE DESARROLLOORACLE EstandaresOracle.docVersion2.046 / 213 Definicin de Bases de DatosLa deIinicion completa de una base de datos debera contener los siguientes aspectos:SintaxisNombre del EntornoEl nombre del entorno de trabaio debera ser como sigue: Base de datos de desarrollo:DE Base de datos de desarrollo Web:DW Desarrollo paquetes cerrados:DQ Base de datos de explotacion:EX Base de datos explotacion Web:EW Explotacion paquetes cerrados:EQSe incluyen aqui paquetes de terceros que no se adapten a los estandares deIinidos. Base de datos de preexplotacion:PXSe utilizara para la realizacion de pruebas de aceptacion (usuario) y de carga (inIormatico). Base de datos preexplotacion Web:PW Preexplotacion paquetes cerrados:PQ Administracion:ADRepositorios Oracle Enterprise Manager. PATROL. ... Herramientas CASE:CAOracle Designer 6i Formacion:FOPara apoyo a cursos Pruebas SoItware: PSNombre Base de DatosEl nombre de la base de datos se codiIicara como sigue:EEAAAANNEE-~ EntornoAAAA -~ Agrupacion logica que identiIica la Conseieria:CPAT-~ C. de Presidencia y Admon. TerritorialCEH -~ C. de Economia y HaciendaCAG-~ C. de Agricultura y GanaderiaCF-~ C. de FomentoCSBS-~ C. de Sanidad y Bienestar SocialCMA-~ C. de Medio Ambiente MANUAL DE ESTANDARES DE DESARROLLOORACLE EstandaresOracle.docVersion2.047 / 213 CEC-~ C. de Educacion y CulturaCICT-~ C. de Industria. Comercio y TurismoGSS-~ Gerencia de Servicios SocialesJCYL-~ Junta de Castilla y LeonNN-~ Numero secuencial. comenzando por 01Cuando se trate de bases de datos provincializadas. despues del nombre de la conseieria deberan seguir las 2 primeras letras del nombre de la provincia (AV.BU....)Descripcin GeneralReutilizacin del control fileIndicacion de si el Iichero de control se ha de reutilizar o no. A Iin de evitar la perdida erronea de bases de datos no se reutilizara ningun Iichero de control.Compartida (Shared)Indicar si la base de datos ha de ser compartida por multiples instancia a la vez o no. Indicar siempre que es compartida.Archivado de redo filesIndicar que se desea copiar los redo logfiles. Se deberan mantener copias en espeio de cada uno de los archivos del grupo de redo log files.Mximo nmero de log filesIndicar el numero maximo (255 Iicheros).Mximo nmero de data filesIndicar el numero maximo (depende de la version instalada de Oracle8i. pero por deIecto es de 30).Mximo nmero de instanciasIndicar un numero maximo de 255 instancias que pueden acceder a la vez a la base de datos.Nodo

Equipo en el que se instala la base de datos.Cadena de conexin (connect string)Cadena de conexion utilizada para la conexion remota a la base de datos.Comentario

Obieto o uso de la base de datos.Caractersticas de los ficheros de bases de datosLa deIinicion completa de los Iicheros utilizados por cada base de datos debera contener los siguientes aspectos:Nombre Nombre del Iichero de sistema operativo. El nombre del Iichero de base de datos se Iormara como sigue: Iichero de datos: Ver apartado 'DeIinicion de Espacios de Tablas. MANUAL DE ESTANDARES DE DESARROLLOORACLE EstandaresOracle.docVersion2.048 / 213 'Ficheros Iichero de control: nombrebasedatos~FCx Iichero de redo log: nombrebasedatos~FRDxdonde x es un numero secuencial identiIicador de cada uno de ellos.Eiemplo: DES_FC1.ctl, DES_FRD1.dbfBase de datos

Nombre de la base de datos que lo utiliza.Tamao Tamao del IicheroUnidad Utilizar kilobytes ('K) como unidad de tamao del Iichero.Nmero de grupoNumero de grupo para el redo log file.Comentario

Obieto o uso del Iichero.MANUAL DE ESTANDARES DE DESARROLLOORACLE EstandaresOracle.docVersion2.049 / 213 Conexin a una base de datos remotaEn el caso de que una base de datos deba conectarse con otra u otras bases de datos situadas en diIerentes nodos se deIinira un enlace 1 de base de datos Oracle. con las siguientes caracteristicas:Nombre Nombre del enlace de base de datos. Debera componerse de la siguiente manera:nodo~usr~DBLdonde nodo~ es una reIerencia al nodo al que se conecta y usr~ es una reIerencia al usuario de la base de datos remota con que se hace la conexion.Public Indicar si el enlace es publico o privado.Usuario Indicar el usuario y la palabra de paso de conexion a la base de datos remota.Cadena de conexinIdentiIicar la cadena de conexion con la que se realiza el acceso a la base de datos remota.Sinnimos de objetos remotosA Iin de Iacilitar el acceso a los obietos remotos y ocultar la necesidad de incluir en el nombre de los obietos el nombre del enlace se deberan deIinir los correspondientes sinonimos.En caso de resultar colision de nombres con los obietos locales se aadira el suIiio R.EjemplosCREATE DATABASE LINK nodo_usr_dblCONNECT TO usuario_remoto IDENTIFIED BYpalabra_paso USINGt:unix5/1525:desCREATE SYNONYM ge_empleados_r FOR usuario_remoto.ge_empleados@nodo_usr_dbl1En ingles. link.MANUAL DE ESTANDARES DE DESARROLLOORACLE EstandaresOracle.docVersion2.050 / 213 Definicin de Espacios de TablasSe deIiniran como minimo los siguientes espacios de tablas: uno para las tablas de cada aplicacion uno para los indices de cada aplicacion uno para las tablas de uso comun uno para los indices de tablas de uso comun uno para segmentos temporales uno para segmentos de rollback uno para uso por deIecto de usuariosEl espacio de tablas por deIecto para los usuarios se debera calcular en Iuncion del numero de usuarios que deberan utilizarlo.No se debera utilizar el espacio de tabla SYSTEM para ningun uso relacionado con las aplicaciones.SintaxisNombre Nombre del espacio de tabla. El nombre del espacio de tabla se Iormara como sigue: espacio de tablas de sistema : SYSTEM espacio de tablas de datos de aplicacion: aliasaplicacion~TSDx espacio de tablas de indices de aplicacion: aliasaplicacion~TSIx espacio de tablas de datos de uso comun: COMUTSDx espacio de tablas de indices de tablas de uso comun: COMUTSIx espacio de tablas de datos de uso comun para una determinada Conseieria: COMUAAAATSDx espacio de tablas de indices de tablas de uso comun para una determinada Conseieria: COMUAAAATSIx espacio de tablas temporal: TEMPTSTx espacio de tablas de segmentos de rollback: RBCKTSRx espacio de tablas por deIecto de usuarios: USERTSDxdonde X es un numero secuencial identiIicador de cada uno de ellos. aliasaplicacion~el alias largo (cuatro caracteres) de la aplicacion y AAAA -~ Agrupacion logica que identiIica la Conseieria.MANUAL DE ESTANDARES DE DESARROLLOORACLE EstandaresOracle.docVersion2.051 / 213 Descripcin generalOn line Indicacion de si el espacio de tablas se ha de poner inmediatamente despues de su creacion en uso.Read only Indicacion de si el espacio de tabla no ha de permitir escritura de datos.Base de datos

Nombre de la base de datos a la que pertenece el espacio de tabla.Parmetros de almacena-mientoIndicar los siguientes parametros por deIecto delespacio de tablas 1: numero de extensiones iniciales. maximas. minimas. porcentaie de crecimiento de siguientes extensiones (Pct incr).Ficheros Nombre del Iichero o Iicheros que utiliza el espacio de tabla. Se Iormara como sigue: Espacio de tabla SYSTEM:bd~SYSTTSDx.DBF espacio de tablas de datos de aplicacion: bd~aliasaplicacion~TSDxv.DBF espacio de tablas de indices de aplicacion: bd~aliasaplicacion~TSIxv.DBF espacio de tablas de datos de uso comun: bd~COMUTSDxv.DBF espacio de tablas de indices de tablas de uso comun:bd~COMUTSIxv.DBF espacio de tablas de datos de uso comun para una determinada Conseieria: bd~COMUAAAATSDx espacio de tablas de indices de tablas de uso comun para una determinada Conseieria: bd~COMUAAAATSIx espacio de tablas temporales: bd~TSTx.DBF espacio de tablas de segmentos de rollback: bd~TSRx.DBFespacio de tablas por deIecto de usuarios: bd~USERx.DBFdonde: bd~:es el nombre de la base de datos.1 Estos parametros aplican por deIecto a los obietos asignados al espacio de almacenamiento.MANUAL DE ESTANDARES DE DESARROLLOORACLE EstandaresOracle.docVersion2.052 / 213 X:es un numero secuencial identiIicador de los Iicheros de cada espacio de tabla (de 1 a N).aliasaplicacion~: el alias largo (cuatro caracteres) de la aplicacion. AAAA -~ Agrupacion logica que identiIica la ConseieriaComentario

Obieto o uso de la base de datos.MANUAL DE ESTANDARES DE DESARROLLOORACLE EstandaresOracle.docVersion2.053 / 213 Definicin de Segmentos de RollbackLa deIinicion completa de los segmentos de rollback debera contener los siguientes aspectos:SintaxisNombre Nombre del segmento de rollback. El nombre del segmento de rollback se Iormara como sigue:RBSxdonde 'x es un numero secuencial identiIicativo de cada uno de los segmentos de rollback creados (1 a N).Descripcin generalPblico Indicacion de si el segmento de rollback es publico o privado (disponible para todas las instancias de Oracle8i o no). No utilizar segmentos de rollback publicos.Base de datos

Nombre de la base de datos para la que se crea el segmento de rollback.Espacio de tablaNombre del espacio de tabla en el que se almacena el segmento de rollback. Los segmentos de rollback especiIicos para ser usados con una aplicacion o proceso determinado que tenga requerimientos especiIicos de recuperacion 1deberan estar situados en un espacio de tabla separado.Parmetros de almacena-mientoIndicar los siguientes parametros delsegmento de rollback 2: numero de extensiones iniciales. maximas. minimas (numero minimo es 2) porcentaie de crecimiento de siguientes extensiones (Pct incr) numero correspondiente a optimal1Normalmente ligados a operaciones masivas de carga. borrado o actualizacion en una sola transaccion.2 Estos parametros aplican por deIecto a los obietos asignados al espacio de almacenamiento.MANUAL DE ESTANDARES DE DESARROLLOORACLE EstandaresOracle.docVersion2.054 / 213 Los segmentos rollback de una misma aplicacion o proceso determinado que tenga requerimientos especiIicos de recuperacion 1 han de tener las mismas deIiniciones de almacenamiento.Nmero de segmentos recomendado

En Iuncion del numero de transacciones concurrentes que soporta la base de datos. el numero de segmentos de rollback recomendado para evitar contencion es el siguiente:Numero de transacciones (n) Numero de segmentos de rollback----------------------------------- ----------------------------------------------------- n 164 16 n 328 32 nn/4 ( sin pasar de 50)Optimal EspeciIicar el tamao optimo del segmento de rollback en kilobytes ('K).Comentario

Obieto o uso del segmento de recuperacion.1Normalmente ligados a operaciones masivas de carga. borrado o actualizacion en una sola transaccion.MANUAL DE ESTANDARES DE DESARROLLOORACLE EstandaresOracle.docVersion2.055 / 213 Consideraciones SQL`NetSe tendra un unico listener. de nombre LISTENER que escuchara por dos puertos 1521 y 1526MANUAL DE ESTANDARES DE DESARROLLOORACLE EstandaresOracle.docVersion2.056 / 213 Definicin de IndicesUso de ndicesSe ha de examinar la conveniencia de crear un indice en lo siguientes casos: Sobre las columnas que integran cada clave aiena de una tabla a Iin de Iacilitar las uniones ("ioins"). Sobre columnas que soporten consultas Irecuentes o clausulas WHERE compleias de sentencias SQL. En los casos en los que sea necesario la realizacion de un ordenamiento de Iilas de tablas Irecuentemente.Evitar la creacion de indices sobre columnas que Iorman la clave primaria o que deban almacenar valores unicos. ya que ORACLE los crea automaticamente al deIinir una restriccion de clave primaria o clave unica. SintaxisClaves ajenas nombrerestriccionclaveaiena~FRGNEiemplo: GE_EXP_C_DPTO_FK_FRGNOtros usos aliasaplicacion~aliastabla~identificador~INXdonde identificador~ hace reIerencia a la Iuncionalidad que identiIica al indice.Eiemplo: GE_EXP_DPTO_INXDescripcin GeneralTabla o cluster Nombre de la tabla o cluster sobre la que se construye el indice.Columnas Nombre de las columnas que Iorman parte del indice y su secuencia dentro del mismo.Valores nicos Determinar si admite valores unicos o duplicados.Parmetros de almacena-mientoIndicar los parametros de almacenamiento del indice. Ver el apartado Parmetros de almacenamientoen la seccion relativa a tablas.Comentario

Obieto o uso del indice.MANUAL DE ESTANDARES DE DESARROLLOORACLE EstandaresOracle.docVersion2.057 / 213 Definicin de ClustersUso de clustersSe ha de examinar la conveniencia de crear un cluster en todos aquellos casos en los que concurra alguna de las siguientes circunstancias: tablas en relacion maestro-detalle tablas con claves primarias o claves aienas en comunSintaxisNombre Nombre del cluster. El nombre de los clusters se Iormara como sigue:aliasaplicacion ~identificador~CLUEl segmento identificador~ hara reIerencia a la Iuncionalidad que le identiIique.Eiemplo: GE_DPT_PERS_CLUDescripcin GeneralTabla Nombre de la tabla sobre la que se construye el cluster.Columnas Nombre. tipo de dato y secuencia de cada columna del cluster y su relacion con las tablas base.Parmetros de almacena-mientoIndicar los parametros de almacenamiento del cluster. Ver la seccion Parmetros de almacenamientoen la seccion relativa a tablas. Comentario

Obieto o uso del indice.Indices de clustersPara la deIinicion de indices de clusters aplican las normas detalladas para la deIinicion de indices de tablas.MANUAL DE ESTANDARES DE DESARROLLOORACLE EstandaresOracle.docVersion2.058 / 213 Definicin de SinnimosSe estudiara la oportunidad de deIinir sinonimos de tablas. vistas. instantaneas. secuencias. procesos o paquetes siempre que se den las siguientes condiciones: Se necesita enmascarar el nombre y usuario propietario de un obieto. Se necesita dar transparencia a obietos remotos en bases de datos distribuidas. Resulta conveniente para simpliIicar sentencias SQL.SintaxisNombre Nombre del sinonimo. No puede coincidir con el nombre de una entidad dentro de la misma aplicacion.Se seguiran las reglas de asignacion de nombres correspondientes al obieto sobre el que se crea el sinonimo.Descripcin GeneralObjeto Indicar el obieto al que se hace reIerencia: tabla. vista. secuencia. instantanea o modulo.Comentario

Obieto o uso del sinonimo.Sinnimos de objetos remotosA Iin de Iacilitar el acceso a los obietos remotos y ocultar la necesidad de incluir en el nombre de los obietos el nombre del enlace se deberan deIinir los correspondientes sinonimos.En caso de resultar colision de nombres con los obietos locales se aadira el suIiio R.MANUAL DE ESTANDARES DE DESARROLLOORACLE EstandaresOracle.docVersion2.059 / 213 Resumen de sintaxis de objetosObjeto SintaxisBase de DatosEEAAAANNEE -~ EntornoAAAA -~ Agrupacion logica que identiIica la ConseieriaFicheros de Bases de Datos Iichero de datos: bd~aliasaplicacion~TSDx.DBF Iichero de control: nombrebasedatos~FCx Iichero de redo log: nombrebasedatos~FRDxdonde x es un numero secuencial identiIicador de cada uno de ellos.Espacios de tabla espacio de tabla SYSTEM:bd~SYSTTSDx.DBF espacio de tablas de datos de aplicacion: aliasaplicacion~TSDx espacio de tablas de indices de aplicacion: aliasaplicacion~TSIx espacio de tablas de datos de uso comun: COMUTSDx espacio de tablas de indices de tablas de uso comun: COMUTSIx espacio de tablas de datos de uso comun para una determinada Conseieria: COMUAAAATSDx espacio de tablas de indices de tablas de uso comun para una determinada Conseieria: COMUAAAATSIx espacio de tablas temporales: TEMPTSTx espacio de tablas de segmentos de rollback: RBCKTSRx espacio de tablas por deIectode usuarios: USERTSDxdonde X es un numero secuencial identiIicador de cada uno de ellos. aliasaplicacion~el alias largo (cuatro caracteres) de la aplicacion y AAAA -~ Agrupacion logica que identiIica la ConseieriaFicheros de Espacios de tabla espacio de tablas de datos de aplicacion: bd~aliasaplicacion~TSDx.DBF espacio de tablas de indices de aplicacion: bd~aliasaplicacion~TSIx.DBF espacio de tablas de datos de uso comun: bd~COMUTSDx.DBF espacio de tablas de indices de tablas de uso comun: bd~COMUTSIx.DBF espacio de tablas de datos de uso comun para una determinada Conseieria: bd~COMUAAAATSDx espacio de tablas de indices de tablas de uso comun para una determinada Conseieria: bd~COMUAAAATSIx espacio de tablas temporales: bd~TSTx.DBF espacio de tablas de segmentos de rollback: bd~TSRx.DBFMANUAL DE ESTANDARES DE DESARROLLOORACLE EstandaresOracle.docVersion2.060 / 213 espacio de tablas por deIectode usuarios: bd~TSFx.DBFdonde:bd~: es el nombre de la base de datosX: es un numero secuencial identiIicador de los Iicheros de cada espacio de tabla (de 1 a N).aliasaplicacion~: el alias largo (cuatro caracteres) de la aplicacion.AAAA -~ Agrupacion logica que identiIica la Conseieria.Segmentos de RollbackRBSxdonde 'x es un numero secuencial identiIicativo de cada uno de los segmentos de rollback creados (1 a N).Indices de Claves aienasnombrerestriccionclaveaiena~FRGNOtros indices aliasaplicacion~aliastabla~identiIicador~INXdonde identiIicador~ hace reIerencia a la Iuncionalidad que identiIica al indice.Clusters de tablasaliasaplicacion ~identiIicador~CLUSinonimos Se seguiran las reglas de asignacion de nombres correspondientes al obieto sobre el que se crea el sinonimo.Enlaces de bases de datosnodo~usr~DBLMANUAL DE ESTANDARES DE DESARROLLOORACLE EstandaresOracle.docVersion2.061 / 213 CAPITULO5 Sislena de SeguiidadSe detallan a continuacion las normas aplicables a la deIinicion de los mecanismos de seguridad de la base de datos y aplicaciones. A tal eIecto se detalla la deIinicion completa de usuarios. roles de usuarios. privilegios de usuarios y como organizar la auditoria de transacciones mediante los mecanismos de seguridad de ORACLE.El acceso basico se conseguira a traves del nombre de usuario y una contrasea. siendo estos autentiIicados de Iorma unica mediante el servidor de base de datos Oracle. La contrasea debera ser alIanumerica y con un numero minimo de caracteres que se determinara.MANUAL DE ESTANDARES DE DESARROLLOORACLE EstandaresOracle.docVersion2.062 / 213 Definicin de UsuariosDefinicin de usuarios ORACLELa deIinicion completa de usuarios de la base de datos debera contener los siguientes aspectos:Nombre Nombre del usuario. Sera unico para identiIicar al usuario ante ORACLE. Solo debera contener caracteres deIinidos en el coniunto de caracteres de la propia base de datos.Los nombres de usuarios se compondra de la siguiente Iorma:xxx~vvv~zz~donde xxx~ Tres primeras letras del primer apellidovvv~ Tres primeras letras del segundo apellidozz~ Dos primeras letras del nombreDado que pueden existir coincidencias a la hora de construir un codigo de usuario utilizando esta estructura. para dar de alta un usuario el CAU. el ieIe de servicio correspondiente notiIicara dicha necesidad mediante solicitud al CAU. remitiendo obligatoriamente los siguientes datos: Conseieria de x...x~Se completara con el nombre completo de la mismaDireccion General de x ... x~Omitir 'titulos` innecesarios.Servicio de x ... x~ Omitir 'titulos` innecesarios.Seccion de x ... x~ Omitir 'titulos` innecesarios.Cargo Omitir 'apellidos` innecesarios. Incluira la terminacion '/A` cuando su denominacion admita masculino v femenino.NombreSegun DNI. sin abreviaturas.Primer Apellido Segun DNI.Segundo ApellidoSegun DNI.DespachoOpcional.Telefono9 digitos. sin separadores.no moviles. En caso de estar asignado a una centralita se pondra 'CENTRALITA` en el campo CARGO.IMPORTANTE para usuarios de servicios periIericos. Dichos usuarios tendran ademas que cumplir las siguientes Normas adicionales:Direccion General Siempre 'SECRETARIA GENERAL`Servicio Si Conseieria 'CPAT`'DELEGACION TERRITORIAL DE XXX` Si Conseieria 'CSBS`'GERENCIA TERRITORIAL DE SERJICIOS SOCIALES DE XXX`MANUAL DE ESTANDARES DE DESARROLLOORACLE EstandaresOracle.docVersion2.063 / 213 Si Conseieria 'CICT` v asi corresponda'OFICINA TERRITORIAL DE TRABAJO DE XXX` Si Conseieria 'CICT` v asi corresponda 'GERENCIA PROJINCIAL DE LA ADE EN XXX` Resto de Conseieriasv Unidades Perifericas 'SERJICIO TERRITORIAL DE XXX`Siendo XXX la provincia correspondiente.Password Se asignara a cada usuario una palabra de paso inicial. Obligatoria para todos los usuarios.Se comprobara al cabo de un cierto tiempo que el usuario ha modiIicado la palabra de paso.Espacio de tabla por defectoSe asignara un espacio de tabla por deIecto a cada usuario. incluso para los que no tengan privilegios de creacion de obietos (ver normas de creacion de espacios de tablas en el apartado correspondiente).Espacio de tabla temporalSe asignara obligatoriamente un espacio de tabla por deIecto a cada usuario(ver normas de creacion de espacios de tablas en el apartado correspondiente).Perfil Se asignara un perIil a cada usuario de la base de datos. evitando la aplicacion del perIil DEFAULT.Comentario

Obieto o uso asignado al usuario.Ejemplos Usuario de aplicacionesCREATE USER usuario IDENTIFY BYpalabra_de_paso DEFAULT TABLESPACE tsu2 PROFILEadministrativoCREATE USER usuario IDENTIFY EXTERNALLY DEFAULT TABLESPACE tsu2 Usuario de desarrolloCREATE USER usuario IDENTIFY BYpalabra_de_paso DEFAULT TABLESPACE tsu1 TEMPORARY TABLESPACE tst1MANUAL DE ESTANDARES DE DESARROLLOORACLE EstandaresOracle.docVersion2.064 / 213 Login profile de usuarioSe tendran en cuenta las siguientes normas:Existira un login proIile para desarrollo y otro para explotacion.Debera contener deIiniciones de las variables de entorno (ORACLESID. ORACLEHOME. PATH. TERM) asi como las variables que deIinan la estructura de directorios.MANUAL DE ESTANDARES DE DESARROLLOORACLE EstandaresOracle.docVersion2.065 / 213 Definicin de PerfilesUn perIil es un coniunto de limites de recursos a los que se les asigna un nombre. Los perIiles pueden ser asignados a diIerentes usuarios par controlar y limitar el uso de los recursos del sistema.La deIinicion de perIiles debera contemplar los siguientes aspectos:Nombre Se indicara el nombre del perIil creado.Sesin por usuarioSe indicara el numero maximo de sesiones que puede abrir un usuario.CPU por sesin Se expresara el maximo de centesimas de segundo de procesador por sesion de un usuario.CPU por llamadaSe expresara el maximo de centesimas de segundo de procesador por llamada.Tiempo de ConexinSe indicara el numero maximo de minutos de duracion de una sesion.Tiempo ocioso Se indicara el numero maximo de minutos de tiempo ocioso de una sesion.Lecturas por sesinSe indicara el numero maximo de lecturas de bloques de datos por sesion.Lecturas por llamadasSe indicara el numero maximo de lecturas de bloques de datos por cada sentencia de SQL.Lmite compuestoSe expresara el coste total de recursos por sesion.SGA privada Se expresara el numero maximo de octetos de espacio privado de SGA por sesion.EjemploCREATE PROFILE profile01 LIMITSESSION_PER_USERUNLIMITEDCPU_PER_SESSION UNLIMITEDCPU_PER_CALL3000CONNECT_TIME45LOGICAL_READS_PER_SESSION DEFAULTLOGICAL_READS_PER_CALL1000PRIVATE_SGA 15KCOMPOSITE LIMIT 5000000MANUAL DE ESTANDARES DE DESARROLLOORACLE EstandaresOracle.docVersion2.066 / 213 Definicin de RolesUn rol agrupa una serie de privilegios (y en caso de necesidad. otros roles). que pueden ser asignados o revocados simultaneamente a los usuarios.Se crearan los siguientes roles: Base de datos de desarrolloSe creara un rol de desarrolladores para uso de analistas y programadores. Este rol permitira la creacion y borrado de tablas dentro del espacio de tablas asignado a su aplicacion. Este rol sera creado por el administrador (ver normas aplicables a espacios de tablas).Este rol tendra los privilegios de RESOURCE Y CONNECT. asi como un rol con privilegios de obietos. Base de datos de explotacionEl administrador sera el responsable de la creacion y borrado de obietos en esta base de datos. Tendra asignado un rol especiIico de administrador. Cada aplicacion dispondra de tres roles: Usuario responsable o propietario del esquemaEs el usuario que realiza la entrada de datos. Tendra privilegios de conexion. creacion y borrado de tablas de trabaio de la aplicacion y los privilegios necesarios para el acceso a los obietos de la aplicacion. Usuario consultasSimilar al anterior. solo que los privilegios sobre los obietos diIeriran. en Iuncion de las necesidades de consulta. Responsable inIormaticoTendra privilegios de conexion y de exportacion e importacion plena de la base de datos. No se le asignara la opcion de administracion. a Iin de que no pueda conceder sus privilegios a otros usuarios.En ningun caso se utilizara la opcion WHITH ADMIN OPTION.La deIinicion de roles de usuarios de la base de datos debera contener los siguientes aspectos:Nombre Nombre del rol. El nombre del rol se Iormara como sigue:aliasaplicacion~funcionalidad~El nombre del grupo tendra un maximo de 30 caracteres de longitud.Eiemplo: nomi_consultaPassword No se asignaran palabras de paso a los roles creados.Comentario

Indicar el obieto o motivo del grupo deIinido.EjemploCREATE ROLE contable IDENTIFIED BY palabra_de_pasoMANUAL DE ESTANDARES DE DESARROLLOORACLE EstandaresOracle.docVersion2.067 / 213 MANUAL DE ESTANDARES DE DESARROLLOORACLE EstandaresOracle.docVersion2.068 / 213 Asignacin de PrivilegiosLos usuarios y roles deIinidos pueden tener una serie de privilegios sobre el sistema o sobre los obietos de la base de datos.El administrador asignara a los usuarios los roles necesarios. en Iuncion de las aplicaciones que utilicen y su relacion con ellas (responsable. consultas. inIormatico).Para la asignacion de usuarios o grupos se tendran en cuenta los siguientes aspectos:Asignacin de objetos de la base de datos Destinatario Nombre o nombres de roles y de usuarios a los que se les conceden los privilegios.Objeto Nombre del obieto de la base de datos (tabla. vista. secuencia o instantanea)Columna Si este es el caso. especiIicar la columna de tabla o vista a la que aplica el privilegio concedido.Tipo de privilegiosIndicar los privilegios concedidos al grupo sobre dicho obieto (select. update. delete. index. alter. reIerence. etc.).Tener en cuenta los privilegios realmente necesitados. ya que en un entorno de produccion de una aplicacion . no todos los usuarios necesitan todos los privilegios de acceso. en especial. no necesitaran los privilegios de index. alter. reIerence o grant option.Grant optionEspeciIicar si el rol o usuario puede conceder a su vez los privilegios a otros usuarios.Comentario

Indicar el obieto o motivo de la asignacion..EjemploGRANT SELECT ON ge_poblacion TO PUBLICMANUAL DE ESTANDARES DE DESARROLLOORACLE EstandaresOracle.docVersion2.069 / 213 Asignacin de privilegios del sistemaDestino Indicar si el privilegio se concede a un grupo o a un usuario y su nombre.mbito Indicar si el privilegio se ha concedido solo a un usuario. un rol o se extiende tambien al grupo PUBLIC.Tipo de privilegiosIndicar los privilegios concedidos y si se conceden o no con la opcion de administracion.Alcance Indicar si el grupo o usuario al que se concede el privilegio tiene a su vez autoridad de conceder a otros grupos dependientes o usuarios los privilegios concedidos.Comentario

Indicar el obieto o motivo de la asignacion.EjemploGRANT directivo TO direccion WITH ADMIN OPTIONMANUAL DE ESTANDARES DE DESARROLLOORACLE EstandaresOracle.docVersion2.070 / 213 Borrado de usuariosEn el caso de que un usuario deie de ser necesario y tenga obietos asociados en la base de datos. en vez de proceder a su borrado se le inhabilitara mediante el desactivado de la opcion CREATE SESSION.MANUAL DE ESTANDARES DE DESARROLLOORACLE EstandaresOracle.docVersion2.071 / 213 Auditora de TransaccionesLas normas aplicables para la especiIicacion de necesidades de auditoria son las siguientes:Auditora de accesos al sistemaEstudiar la necesidad de registrar los intentos de acceso a la base de datos en Iuncion de las caracteristicas de los usuarios y la privacidad de los datos.Describir las opciones de auditoria requeridas; en especial:Opcin de sentenciasIndicar las sentencias especiIicas que se desean auditar. Privilegios de sistemaIndicarlos privilegios de sistema especiIicos que se han de auditar para las sentencias SQL.Usuarios Indicar. si es preciso. a que usuario o usuarios aplica la auditoria.Sesin o acceso Indicar si la auditoria se establece por sesion o por cada sentencia SQL.Cundo Indicar si se desea registrar las transacciones que tuvieron exito o las que Iracasaron.Ejemplo: AUDIT SELECT TABLE, UPDATE TABLE BY usuarioMANUAL DE ESTANDARES DE DESARROLLOORACLE EstandaresOracle.docVersion2.072 / 213 Auditora de accesos a los objetos de la base de datosDeterminar las tablas. vistas y secuencias en las que se requiere activar la auditoria y en aquellas que lo requieran. que sentencias SQL deben ser auditadas y si la auditoria ha de hacerse al nivel de sesion o de acceso.Describir las opciones de auditoria requeridas; en especial:Opcin Indicar si se desea registrar los intentos a nivel ALTER. AUDIT. COMMENT. DELETE. GRANT. INDEX. INSERT. LOCK. RENAME. SELECT. UPDATE o ALL.Objeto Nombre del obieto al que se le aplica la auditoria.Forma Indicar si se requiere una auditoria BY SESSION o BY ACCESS.Cundo Indicar si se desea registrar las transacciones que tuvieron exito o que Iracasaron.Ejemplo:AUDIT INSERT, UPDATE ON ge_poblacionesWHENEVER NOT SUCCESSFULMANUAL DE ESTANDARES DE DESARROLLOORACLE EstandaresOracle.docVersion2.073 / 213 Consideraciones para la auditoraConsideraciones a tener en cuenta: Mover la marca de auditoria Iuera del Tablespace del Sistema: Al tiempo que nuevas grabaciones se insertan en la marca de auditoria de la base de datos. la tabla AUD$ puede crecer sin limite. Dado que la tabla AUD$ crece y despues empequeece. deberia ser almacenada Iuera del tablespace del sistema. Monitorizar el crecimiento del registro de auditoria: Si la tabla de auditoria se llena. no se pueden insertar mas grabaciones de auditoria y las sentencias auditadas no se eiecutaran con exito. Se devolveran errores a todos los usuarios que realicen una sentencia auditada. Se necesitara liberar espacio en la marca de auditoria antes de que las sentencias puedan ser eicutadas. Proteger la tabla de auditoria: Se debe proteger la tabla de auditoria de Iorma que la inIormacion auditada no pueda ser aadida. modiIicada o eliminada. Solo el DBA debiera tener el rol DELETECATALOGROLE.MANUAL DE ESTANDARES DE DESARROLLOORACLE EstandaresOracle.docVersion2.074 / 213 CAPITULO6 Diseo de MduIosEn este capitulo se detallan las normas aplicables a la deIinicion de los diIerentes tipos de modulos de las aplicaciones. asi como las caracteristicas de elementos concretos de los modulos. tales como parametros. estructuras de datos (aplicable a PL/SQL). disparadores y Iinalmente. las normas para la deIinicion de interIaces entre sistemas.Entendemos por modulo cualquier unidad eiecutable de Iorma independiente desde el entorno ORACLE. bien sea desde el gestor de bases de datos relacionales o desde las herramientas de desarrollo de aplicaciones (ORACLE Forms y ORACLE Reports).Los modulos pueden ser de los siguientes tipos:Pantalla Unidad eiecutable para la introduccion. modiIicacion y consulta de datos de Iorma interactiva.Se compone de obietos (tales como ventanas. campos de texto. caias de comprobacion. botones. alertas. listas de valores) y de rutinas codiIicadas (tales como disparadores. o bloques de codigo PL/SQL).Informe Unidad eiecutable que permite la salida de inIormacion almacenada en la base de datos en dispositivos tales como impresoras o pantallas.Men Unidad eiecutable que presenta al usuario de Iorma interactiva un coniunto de opciones de eiecucion. Cada opcion ha de llamar a un modulo determinado.Disparador Es un bloque de PL/SQL que se eiecuta en respuesta a eventos especiIicos producidos en el momento de la eiecucion de una aplicacion.Procedimiento Grupo de sentencias PL/SQL con un nombre deIinido que eiecutan una Iuncionalidad determinadaFuncin Grupo de sentencias PL/SQL con un nombre deIinido que eiecutan una Iuncionalidad determinada y que devuelven un valor al Iinalizar su eiecucion.Paquete Coniunto encapsulado de procedimientos. Iunciones y otros obietos relacionados entre si almacenados en la base de datos.MANUAL DE ESTANDARES DE DESARROLLOORACLE EstandaresOracle.docVersion2.075 / 213 Librera Coniunto de paquetes. procedimientos. y Iunciones reutilizables y reIerenciables almacenados en Iichero o base de datos.Nota: Todas las caracteristicas reseadas corresponden a documentacion. por lo que se omite el simboloMANUAL DE ESTANDARES DE DESARROLLOORACLE EstandaresOracle.docVersion2.076 / 213 Normas generalesCon caracter previo a la deIinicion en detalle de cada modulo se realizara el diseo ierarquico de la aplicacion. deIiniendo su estructura modular. que sera reIleiada en un diagrama apropiado (diagrama de estructura de modulos).La deIinicion general de un modulo de cualquier tipo debe cubrir como minimo los siguientes aspectos:SintaxisNombre abreviadoNombre abreviado del modulo. Debera ser unico dentro de todas las aplicaciones. Modulos de pantallas. inIormes y menusDeberan tener una longitud Iiia de 8 caracteres a Iin de respetar la limitacion impuesta por MS WINDOWS.El nombre del modulo se Iormara como sigue:aliasaplicacion~aliasmodulo~donde aliasaplicacion~corresponde al alias corto (dos caracteres) y elaliasmodulo~ es el nombre abreviado del modulo (seis caracteres). que hara reIerencia. dentro de la limitacion de caracteres disponibles. a su Iuncionalidad. 1Eiemplo: GEMREPT. correspondiente a la aplicacion GESP (nombre corto. GE). modulo de mantenimiento de la relacion de puestos de trabaio).En los casos en los que el numero de modulos haga inviable la aplicacion de la norma anterior el nombre del modulo se Iormara como siguealiasaplicacion~xdonde aliasaplicacion~ es el nombre largo (4 caracteres) y el indicador x es un numero secuencial (con el Iin de que sea unico) de 3 posiciones. completandose las posiciones sobrantes con ceros delante de x. Eiemplo: GESP015.El nombre abreviado se utilizara como nombre del Iichero Iuente y eiecutable. al que se aadiran la extension propia de la herramienta con la que se haga el desarrollo. Modulos de PL/SQLEl nombre abreviado se Iormara mediante la siguiente sintaxis:1Ver las normas de denominacion de aplicaciones en el capitulo 'Diseo Logico de Bases de Datos. Normas Generales.MANUAL DE ESTANDARES DE DESARROLLOORACLE EstandaresOracle.docVersion2.077 / 213 aliasaplicacion~