Estándares para la Base de Datos
Introducción
Definir y mantener estándares para el diseño y la codificación de objetos es una buena y recomendada práctica que ayuda a brindar claridad en la construcción de los objetos y código generado, así como en lo que al diseño de base de datos se refiere.
Estos estándares facilitarán el mantenimiento y la escalabilidad de la infraestructura del ORA, facilitando el nivel de entendimiento de los diseñadores, desarrolladores y personal de soporte. Un esquema de nombrado consistente, se entenderán los modelos de datos de mejor manera y se producirán sentencias SQL más fácilmente.
Propósito
Con la finalidad de unificar la nomenclatura a ser utilizada para crear objetos en la capa de base de datos de la plataforma informática para el Portal del ORA, se ve la necesidad e importancia de la generación del presente documento, el cual tiene el objetivo de definir estándares de nomenclatura que deben ser utilizados por el personal técnico responsable del mantenimiento y administración del Portal del ORA y por cualquier equipo técnico de programación que desarrollara los modulos tematicos del ORA o desarrolle nuevos módulos para ser integrados al mismo, de manera que facilite el acceso y mantenimiento a los objetos de base de datos.
Estándares
Normas generales
- Los nombres de objetos de base de datos deberán estar escritos en ingles, ser auto-descriptivos y estarán sujetos a verificación por parte del área técnica del la OTCA, quien solicitará el cambio en el caso de no ser auto-descriptivos y/o presentar ambigüedades.
- Usar notación Underscore Separated, es decir utilizar el guión bajo (_) para separar palabras y en minúsculas. Ejemplo: detalle_beneficiario
- Utilizar nombres descriptivos para los campos. Utilizar nombres que resulten intuitivos y permitan entender el significado de los campos.
- Los nombres de las bases de datos, tablas deberían ir en plural y los nombres de los campos en singular.
- Utilizar las letras “id” en las columnas de clave primaria y foránea.
- Todos los campos llevarán la identificación del tipo de dato con el que fueron definidos.
- En una tabla, colocar primero la clave primaria seguida de las claves foráneas y a continuación los campos correspondientes a la tabla.
- Utilizar solo minúsculas para nombrar los elementos de la base de datos, esquemas, vistas, funciones, tablas, campos, etc.
- Evitar tener tablas innecesarias en el sistema.
- Todas las claves primarias deben ser secuenciales y auto-generadas desde el Gestor de Base de Datos. Esto solventara el borrado lógico desde el aplicativo, es decir que desde el sistema se ocultara o no se desplegara en la interfaz si esta con el estado eliminado.
- No se deben incluir letras con tilde ni Ñ, ñ, letras con diéresis Ejemplo: ïÿû.
- No usar caracteres especiales como por ejemplo ($, #, *, – +, etc., ´, ¨,).
- El nombre del objeto debe tener como longitud máxima 40 caracteres.
- No usar palabras reservadas.
- Al crear un nombre de objeto compuesto de dos palabras, colocar siempre la más importante primero.
- No usar nombres de un único carácter.
- Si existe una funcionalidad que no fue desarrollada en la aplicación, se deberá efectuar los cambios en la misma, y evitar realizar operaciones de inserts directamente en la base de datos.
- En caso de paquetes, funciones o procedimientos cada uno de ellos debe tener su descripción resumida en pocas palabras siendo claras
Notación de Esquemas
Los esquemas deberán nombrarse usando la siguiente nomenclatura:
Formato: [nombre_modulo] o [nombre_tematica]
Ejemplo: biodiversidad
Notación de Tablas
Las tablas deben nombrarse considerando lo siguiente:
- Deben ser definidas en ingles sin utilizar espacios en blanco. Con notación Underscore Separated en minúsculas.
- Las tablas identifican una entidad del sistema con un nombre completo. Pueden ser nombres simples o compuestos como podemos ver en el segundo ejemplo. Si la entidad o proceso representa a una tabla de uso temporal, el nombre de la misma debe ser precedida por el siguiente prefijo “temp_”.
- Debe formarse un prefijo correspondiente al módulo al que hacen referencia seguida del nombre completo de la entidad.
Formato: [prefijo]_[nombre_descriptivo]
Ejemplos:
- ora_usuarios
- cites_registro_especies
- temp_ora_indicadores
Notación de los Campos
Los campos de una tabla corresponden a los atributos de una entidad, describen propiedades de la misma. Las columnas deben ser nombradas según los lineamientos a continuación:
- Debe formarse un prefijo como se indica en el ejemplo con las 3 primeras letras del nombre de la tabla y si el nombre descriptivo de la tabla es compuesto debe formarse con la 1 primera letra de la primera palabra más las 2 primeras letras de la segunda palabra del nombre.
- Debe incluir el tipo de dato al que está asociado el campo, este debe formarse con 3 letras identificativas como se muestra en el ejemplo.
Para algunos campos de la tabla usuarios.
Formato: [prefijo]+[tipo de dato]+nombre del campo.
Ejemplo: usu _txt_nombre. Formato: [prefijo]+[tipo de dato]+nombre del campo.
Ejemplo: usu _int_id - Los tipos de datos se definirá de la siguiente manera.
Enteros: int
Ejemplo: llave primaria para la tabla usuarios: usu_int_id
Textos: txt
Ejemplo: nombre para la tabla usuarios: usu_txt_nombre
Decimales: val
Ejemplo: monto para la tabla usuarios: usu_val_monto
Estados: sts
Ejemplo: Estado del registro tabla usuarios como Activo (A), Inactivo (I) y Eliminado(E). usu_sts_registro - Los nombres deben ser simples, representativos e intuitivos.
- Los nombres deben ser simples, representativos e intuitivos.
- Los nombres de las columnas de una tabla deben estar expresados en singular.
- El campo clave primaria de una tabla debe formarse con el nombre de la tabla más el sufijo ”id”.
Ejemplo: Para la tabla usuarios, se definirían la clave primaria usu_int_id. - Las claves foráneas tendrán el mismo nombre de la clave primera de donde se hace referencia.
- Campos que representen la misma entidad del mundo real, deben estar nombrados de la misma manera en todas las tablas de un esquema.
- Ejemplo nombrar la clave primaria de la tabla “usuarios” en una tabla como “usu_int_id” y en otra “usu_int_key” es incorrecto.
- Usar notación Underscore Separated en minúsculas.