Está en la página 1de 11

2013

UNIVERSIDAD POLITECNICA SALESIANA


INTEGRANTES: MAGALY GUAMAN, RICARDO SEGARRA, JOHNNY ARGUDO, RICARDO ORELLANA

MANUAL ESTANDARES DE ORACLE EN BASE DE BATOS REVISADO: ING. ALVARO MEJIA 1

Convenciones de nombres para las tablas de Oracle. Por qu cualquier convenciones de nombres en absoluto? Es importante para seguir algunas normas de denominacin y directrices en el proceso de diseo de las base de datos Oracle. Este es incluso ms importante si usted tiene la tarea de diseo de la base de datos Oracle que contienen cientos de tablas y miles de otros objetos. Si usted tiene un proyecto de mando de varias personas, este es absolutamente necesario para recoger una convencin de nomenclatura antelo y utilice. Las normas de denominacin muy probablemente no afectara el rendimiento de la base de datos a pesar de que seguramente afectara el rendimiento y el nivel de comprensin de los diseadores, desarrolladores y personal de apoyo. Con esquema de nomenclatura coherente que entiendan mejor el modelo de datos y generar las sentencias SQL ms rpido. Y esto afectar directamente a los costos de su proyecto. He utilizado los estndares de nomenclatura que se describen a continuacin para todos los proyectos que he participado (y tena suficiente control). Todos ellos eran ms o menos proyectos OLTP (Procesamiento de transacciones en lnea) aunque no pude ver ninguna objecin por qu no utilizarlos en el entorno de almacn de datos. Probablemente podran ser utilizados no slo en Oracle pero en RDBMS'es tambin (por ejemplo MySQL, PostgreSQL), pero usted debe comprobar si no lo han hecho otras normas generalizadas. Normas comunes 1. Slo letras, nmeros y subrayado se permiten en los nombres. Aunque Oracle permite $ y #, que no son necesarios y pueden causar problemas inesperados. 2. Todos los nombres en maysculas. O al menos no tiene importancia cuyo caso. Haciendo caso omiso de esta regla general conduce referencia a tablas y columnas muy torpes porque todos los nombres deben incluirse entre comillas dobles. 3. El primer carcter del nombre debe ser escrito. 4. Mantener los nombres significativos, pero en el mismo tiempo no utilice long_names_describing_every_single_detail_of_particular_object. Tablas 1. Los nombres de tablas estn en forma plural, por ejemplo, personas, materiales, direcciones. Si el nombre de la tabla contiene ms de una palabra, se separan con relieve en forma {nombre1} _ {nombre2}. Slo el ltimo es en plural, por ejemplo person_addresses. 2. Todas las tablas tienen 3 o 4 caracteres alias largos que son nicas en un esquema. Los alias no se utilizan directamente en nombre de la tabla, pero se utilizan para crear los nombres de columna. Por ejemplo, las personas, los materiales - PRS - MAT, direcciones - ADR. 3. A veces, es til distinguir algunas partes lgicas de una aplicacin. Por lo tanto, los prefijos se utilizan en nombres de tabla. Por ejemplo, sec_users, sec_roles sec_rights, todos estn relacionados con el subsistema de seguridad. Columnas (Para tablas)

1. Todas las columnas estn en forma de alias {} _ {} colname. Por ejemplo prs_id, prs_name, prs_adr_id, adr_street_name. Esto garantiza que los nombres de columna son nicos en un esquema, a excepcin de las columnas de otra tabla sin normalizar, que se rellenan con los desencadenadores o la lgica de la aplicacin. 2. Todas las columnas estn en singular. Si usted piensa que necesita un nombre de columna en plural pensar dos veces si es el diseo adecuado? Por lo general, esto significa que incluso varios valores en la misma columna y que se debe evitar. 3. Todas las tablas tienen la columna clave primaria sustituta en forma {alias} _id, que es la primera columna de la tabla. Por ejemplo, prs_id, mat_id, adr_id. Algunas de las razones por qu utilizar sustitutos primary keys que mencion en Oracle-l lista en lists.org: 1. 2. 3. 4. A mi modo los sustitutos primary keys tienen por lo menos los siguientes beneficios: Cada tabla tendr su propio _id. Sera siempre el mismo tipo. Para frontend tan bien como yo en SQL * Plus pantalla puede utilizar una consistente marco para acceder a todas las tablas de la misma manera. 5. No tendra ningn significado natural e incluso con los ms claves naturales inmutables en el mundo no hay posibilidad de que van a cambiar y yo realmente no quiero cambiar todas las columnas conectadas FK. 6. Yo realmente no quiero escribir se une incluyendo ms de una columna para cada par porque incluso para un par de desarrolladores tienden a crear Cartesiano se une a veces (una vez tuve que hacer algunos informes basados en una padre-> nios-> nieto-> bisnieto combinar tablas 3 columnas para 2 mesas - arrgh). 7. si siempre hay padres de acceso (columnas) de grande-grande-nieto... usted puede agregar fcilmente deriva de FK (o incluso otras columnas, es decir hacer des normalizacin), pero yo dira que se trata de casos especficos no a las necesidades ordinarias. Por supuesto, estos (al menos en su mayora) tienen que ser identificados incluso antes de generar cualquier CREATE TABLE scripts. A mi modo los UKs son slo para las claves naturales y los residuos de potencial secuencia correctamente en cach creado un espacio clave sustituta en la tabla y ndice es ampliamente superado por prdida potencial de columna FK 3, el potencial cambio de ello, el acceso no consiste de tablas tanto de la mente de desarrollador y Oracle lado. 4. Todas las columnas de claves forneas estn en forma {alias1} _ {alias2} _id. Por ejemplo, prs_adr_id. Trate de poner todas las columnas de clave fornea justo despus de la columna de clave primaria, sobre todo debido a factores humanos. La primera vista da buena visin general de cuntos y qu tablas se hace referencia. Por supuesto, el paso del tiempo, el esquema evoluciona y las columnas se agregan la situacin puede cambiar. 5. Si hay ms de una columna de clave externa de otra tabla a continuacin, las columnas de clave se nombran {alias1}_{alias2}_{meaningful_name} _id. Por ejemplo, prs_adr_curr_id, prs_adr_prev_id. 6. Si varias tablas contienen columnas con el mismo contenido que utilizan los mismos nombres de columna consistentes. Por ejemplo, si necesita alguna informacin de auditora, a 3

continuacin, utilice {alias}_last_chg_time y _last_chg_user {alias} para todas las tablas. Por supuesto, usted puede elegir sus propios nombres de las columnas sino que los utilizan de forma coherente. Tambin es relevante para algunas columnas del pabelln, por ejemplo {alias}_is_active y columnas que contienen informacin que describe. Utilice notas, descripciones, comentarios o lo que sea, pero slo uno de ellos para el mismo propsito. Todas las consistencias ayudan a entender el modelo de datos, todas las inconsistencias - impedirlo. Keys, Constraints 1. Todas las claves primarias se denominan {alias}_pk. Prs_pk por ejemplo. 2. Todas las claves externas se denominan {alias1} _ { alias2} _fk. Por ejemplo prs_adr_fk. 3. Si hay ms de una clave externa a otra tabla a continuacin, las claves externas se denominan {alias1} _ {alias2}_{meaningful_name}_fk. Por ejemplo, prs_adr_curr_fk, prs_adr_prev_fk. 4. Todas las claves nicas se denominan {alias}_{meaningful_name}_uk. Por ejemplo, mat_typename_uk que est en mat_name columnas y mat_type. 5. Todas las restricciones de comprobacin se denominan {alias}_{meaningful_name | nmero} _ck Por ejemplo, mat_type_ck que est en mat_type columna. Indices 1. Cada ndice en la clave externa se encuentra en forma {alias1}_{alias2}_fk_i. Por ejemplo, prs_adr_fk_i. 2. Cada ndice en una columna est en forma {full_column_name}_i. Por ejemplo, mat_name_i. 3. Cada ndice en dos o ms columnas en forma {alias}_{meaningful_name | nmero}_i Por ejemplo, mat_1_i, mat_2_i. Secuencias 1. Cada tabla tiene su propia secuencia en forma {alias}_seq. l y slo se utiliza para rellenar la columna correspondiente clave primaria. Si una aplicacin necesita algunos datos precreated, recuerde que debe crear secuencias con valor inicial mayor que el valor mximo de la columna correspondiente. Por ejemplo, prs_seq, mat_seq. Vistas
1. Nombres de las vistas tienen el prefijo vw_. 2. Nombres de las vistas estn en forma plural, por ejemplo, vw_students. Si el nombre de la

vista contiene ms de una palabra, se separan con guin bajo en vw_ forma {nombre1} _ {nombre2}. Slo el ltimo es en plural, por ejemplo vw_student_addresses.
3. Todas las vistas tienen 3 o 4 caracteres alias largos que son nicas en un esquema. Slo es

necesario en el caso de la vista contiene algunas columnas complejos derivados de las tablas subyacentes. Columnas (para vistas) 1. Todos los nombres de columna se derivan directamente de las tablas permanecen igual. Prs_name Por ejemplo columna en vw_students vista derivada de las personas de la tabla. Por supuesto, si la 4

vista es un auto combinacin de dos tablas a continuacin, usted tiene que hacer columnas de la vista nico, por ejemplo prs_parent_name y prs_child_name en vw_parents visin derivada de autocombinacin de personas. 2. Todos los nombres de columna que no se derivan directamente de las tablas subyacentes, por ejemplo, columnas de resumen, las columnas calculadas etc. Se encuentran en forma {view_alias}_{colname}. Por ejemplo sta_complete_adress columna (concatenacin de adr_country, adr_city y adr_street) para vw_student_addresses vista. Tablespace Se define como mnimo los siguientes espacios de tablas: - para un espacio de tablas - para temporales -para ndices Sintaxis Nombre de espacio de tabla se formara: Espacio de las tablas de datos de aplicacin: {db}{alias_aplicacion}_TSDx.DBF usr_alquiler_perm_tsd1.dbf espacio de tablas temporales: {db}{alias_aplicacion}_TEMP_TSTx.DBF usr_alquiler_temp_tst1.dbf espacio para ndices: {db}{alias_aplicacion}_TSIx.DBF usr_alquiler_ind_tsi1.dbf x=es un numero secuencial identificado de los ficheros de cada espacio de la tabla(1..N). {db} es la aplicacin de la base de datos. {alias_aplicacion} el alias de largo (4 caracteres)de la aplicacin

Profiles Es un conjunto de lmites de recursos a los que se le asigna un nombre, los perfiles pueden ser asignados a diferentes usuarios para controlar y limitar el uso de los recursos del sistema Se indica el nombre del perfil creado. Se indica el nmero de sesiones que puede abrir un usuario. Se expresa el mximo de centsimas de segundo de procesador por sesin de usuario. Se expresa el mximo de centsimas de segundo de procesador por llamada. Se indica el nmero mximo de minutos de duracin de una sesin 5

Se indica el nmero mximo de minutos de tiempo de ocioso de una sesin Se indica el nmero mximo de minutos lecturas de bloques de datos por sesin Se indica el nmero mximo de minutos lecturas de bloques de datos por cada sentencia SQL. Se expresar el costo total de recursos por sesin. Se expresar el nmero mximo de octetos de espacios privados de SGA por sesin Ejemplo: create profile PRF_ALQUILER01 limit sessions_per_user connect_time idle_time failed_login_attempts 3 password_life_time 60; 2 unlimited 30

Roles Un rol agrupa una serie de privilegios incluyendo otros roles, que pueden ser asignados o revocados simultneamente a los usuarios. Se pueden llegar a crear los siguientes roles: Base de datos de desarrollo: Permite la creacin y borrado de tablas dentro del espacio de tablas asignado a su aplicacin privilegios de RESOURCE Y CONNECT. Base de datos de explotacin: El administrador ser el responsable de la creacin y borrado de objetos en esta base de datos. Cada aplicacin dispondr de tres roles:

1.- Usuario responsable o propietario del esquema. 2.- Usuario consultas. 3.- Responsable informtico. En ninguno de estos casos se utiliza la opcin WHITH ADMIN OPTION. La definicin de roles utilizaran la siguiente sintaxis: Nombre del rol: {alias_aplicacion}_{funcionalidad} Esta definicin tendr un mximo de 30 caracteres.

Password: No se les asigna la palabras de paso a los roles creados. Ejemplo: create rol usr_alquier_consulta identified by clavesecreta Asignacin de privilegios Los usuarios y roles pueden tener una serie de privilegios sobre el sistema o sobre los objetos de la base de datos. Destinatario: Nombres de roles y de usuarios que les conceden los privilegios. Objeto: Nombre del mismo (tablas, vistas, etc. ) Columna: Especificar la columna de tabla o vista. Tipo de privilegios: select, update, delete, index, alter, etc. Grant option: Rol o usuario puede conceder a su vez privilegios a otros usuarios. Sintaxis: grant select on {alias_objeto} to public Ejemplo: grant select on usr_alquiler.vehiculos to public Asignacin de privilegios del sistema: Destino: Indicar si el privilegio se concede a un grupo o a un usuario y su nombre. mbito: Si los privilegios se ha concedido solo a un usuario, un rol o se extiende tambin al grupo PUBLIC. Tipo de privilegios: Indicar los privilegios concedidos y si se concede o no con la opcin de administrador. Sintaxis: grant {alias_grupo,usuario} to {alias_usuario,rol,public} opcin de administracin. Ejemplo: grant usr_alquiler to usr_alquier_consulta with admin option. Sinnimos Se definir los sinnimos de tablas, vistas, procesos o paquetes, etc. Sintaxis Create synonym T_comprobantes FOR usr_alquiler.comprobantes; Nombre del sinnimo no puede coincidir con aplicacin el nombre de una entidad dentro de la misma

Funciones Grupo de secuencias PL/SQL, con un nombre definido que ejecutan una funcionalidad determinada y que devuelven un valor al finalizar su ejecucin Sintaxis F_{nombre} F_calc_mejor_cliente Procedimientos Grupo de secuencias PL/SQL, con un nombre definido que ejecuta una funcionalidad definida Sintaxis P_{nombre} P_calc_sueldo_basico Paquetes Conjunto encapsulado de procedimientos funciones y otros relacionados entre s almacenados en la base de datos. Sintaxis Q_{nombre} create or replace package Q_FUN_PROC Triggers Es un bloque de PL/SQL que se ejecuta en respuesta a eventos especficos producidos en el momento de una aplicacin. Se define los disparadores asociados a las tablas. Sintaxis Nombre nico de identificador del disparador TR_{alias_aplicaion}_{tabla}_{funcionalidad}.

{alias_aplicaion}=el alias largo (cuatro caracteres ) de la aplicacin {tabla}=tabla a la que afecta el disparador , en caso de afectar a mas de una se elimina

{funcionalidad}= funcionalidad del disparador 8

Descripcin general Nombre del modulo asociado al disparador Breve descripcin de la estructura de datos del programa Se indica cuando se ejecuta el disparador Indica si el disparador es de tipo fila o sentencia Indicar si el disparador est asociado a una operacin de tipo insercin borrado o actualizacin Alias del antigua y nuevo valor Texto con la condicin WHEN aplicable al disparador Cuerpo de la accin en PL/SQL ejecutable cuando el disparador se ejecute

Variables Se debern especificar las variables, constantes y las expresiones de modulo es decir los datos del programa Sintaxis Especifica el nombre completo Variable local: V_X_{nombre} X es un carcter identificativo del tipo de objeto {nombre} si la variable corresponde a una variable de la tabla utiliza el nombre de la columna Variable indexada I_{nombre} ejemplo i_contador variable global: G_X_{nombre} Constante: C_X_{nombre} 9

Cursor CUR_{nombre} cur_empleados Excepcin E_{nombre} e_pro_incorrecto Varray ARR_{nombre} Si el parmetro corresponde a una columna de la tabla {nombre} utiliza el nombre de la columna Ejemplo arr_clase Descripcin general Tipo de definicin: constante, variable, excepcin Tipo de dato Mximo nmero de caracteres que puede tener Indica si el dato es opcional o aleatorio Numero posiciones decimales valor por defecto Privilegios de la estructura de datos del programa

Parmetros Los parmetros son datos suministrados en la interfaz del modulo, tanto de entrada como de salida (ejemplos de parmetros de lanzamiento de un informe, etc.) Sintaxis PR_X_{nombre_parmetro} Especifica el nombre completo del parmetro Descripcin general Especifica la posicin del parmetro dentro de la lnea de comandos 10

Especifica la secuencia en la que se utilizan los parmetros Tipo de datos del parmetro si se especifica un tipo de datos no se definir una estructura de datos Mximo nmero de caracteres que puede tener un parmetro Numero de posiciones decimales que puede tener un parmetro Estructura de datos que usa el parmetro en lugar de un tipo de datos Operador que deben aplicarse al parmetro (=, >, LIKE, etc.) Valor por defecto del parmetro Texto que puede ser utilizado para solicitar un valor para este parmetro de forma interactiva

Nombre de Usuario El username debe ser nico en la Base de Datos y debe ajustarse por ciertas reglas. Un username debe iniciar con una Letra, debe ser no ms de 30 caracteres, y consiste de solo letras, dgitos y el carcter dlar ($) y guion bajo (_). Un username no puede ser una palabra reservada. Las letras son case sensitive pero sern convertidas automticamente a maysculas. Todas estas reglas (con la excepcin de la longitud) puede ser evadidas sin el username es especificado dentro de comillas doblesuario. usr_alquiler es creado. Este fue ingresado en minsculas, pero se han convertido a maysculas.

Bibliografa Castilla, J. (2002). Manual de estandares de Oracle. Theriault Marlene, H. W. (1998). Oracle Security (Primera ed.). O'Reilly Media. Convenciones de nombres para las tablas http://www.gplivna.eu/papers/naming_conventions.htm de Oracle, columnas, ndices

11

También podría gustarte