Estándar de Nomenclatura - Modelo físico de datos
-
Upload
xander-peru -
Category
Documents
-
view
32 -
download
5
Transcript of Estándar de Nomenclatura - Modelo físico de datos
Documento de Estándares de
Nomenclatura - Modelo físico
de datos
Versión 1.0
Elaborado por: Carlos Romero F. Elaboración: 15/01/2010
Modificado por: Walter Meregildo F. Ultima Modificación: 20/01/2010
Aprobado por: Marco Miranda F. Aprobación: 21/01/2010
Sistema de Gestión Hotelera - Módulo de Compras y Almacenes
HISTORIAL DE VERSIONES
Versión: 1.0
Realizado por: Carlos Romero Fecha modificación: 15/01/2010
Descripción: Define los estándares de nomenclatura para el modelo físico de datos.
Aprobado por: Marco Miranda Fecha aprobación : 21/01/2010
Documento Interno Versión: 1.0 Página 2 de 11
Sistema de Gestión Hotelera - Módulo de Compras y Almacenes
ÍNDICE
CAPÍTULO 1. Estándares de Nomenclatura de Base de Datos...............................4
1.1. OBJETIVOS............................................................................................................................ 4
1.2. NORMAS GENERALES.............................................................................................................4
1.3. NOMENCLATURAS DE BASE DE DATOS......................................................................................4
1.3.1. Notación de Base de Datos...........................................................................................4
1.3.2. Notación de Tablas.......................................................................................................4
1.3.3. Notación de Campos.....................................................................................................5
1.3.4. Notación de Índices.......................................................................................................5
1.3.5. Indices.......................................................................................................................... 6
1.3.6. Triggers......................................................................................................................... 7
1.3.7. Stored Procedure..........................................................................................................7
1.3.8. Vistas............................................................................................................................ 9
1.4. Programación....................................................................................................................... 9
Documento Interno Versión: 1.0 Página 3 de 11
Sistema de Gestión Hotelera - Módulo de Compras y Almacenes
CAPÍTULO 1. Estándares de Nomenclatura de Base de Datos
1.1. Objetivos
Estandarizar la nomenclatura de objetos de base de datos utilizando para este desarrollo el
SQL Server.
Estandarizar la estructura de codificación del SQL Transact.
1.2. Normas Generales
Mantener nombres cortos y descriptivos.
Mantener nombres de objetos únicos, por ejemplo evitar crear la tabla ALMACEN y un rol o
vista con el mismo nombre.
Por defecto, no se aceptan espacios en blanco en medio de los identificadores; sin
embargo, su uso está permitido si se usan identificadores delimitados por comillas dobles.
En el presente estándar, no se permiten los espacios en blanco como parte de un
identificador.
Para la definición de nombre de objetos de base de datos de acuerdo al caso se usará el
caracter underscore “_” para separar las palabras_del_nombre.
1.3. Nomenclaturas de Base de Datos
1.3.1. Notación de Base de Datos
Nomenclatura:
El nombre de la base de datos debe estar en mayúsculas.
Ejemplo :
Base de Datos : COMALM
Archivo MDF : COMALM_Data
Archivo LDF : COMALM_Log
1.3.2. Notación de Tablas
Nomenclatura:
El nombre de la tabla debe ser descriptivo, en singular y en mayúsculas.
Documento Interno Versión: 1.0 Página 4 de 11
Sistema de Gestión Hotelera - Módulo de Compras y Almacenes
Las tablas identifican una entidad del sistema con un nombre completo.
Una tabla hija debe llevar al inicio el nombre de la tabla padre.
Si la entidad o proceso que genera la tabla tienen más de una palabra se deberá colocar
cada una de ellas en singular y deben ser separadas por un "_".
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_”.
Ejemplo :
Nomenclatura de una tabla padre
PROVEEDOR
Nomenclatura de una tabla hija
PROVEEDOR_OBSERVACION
Nomenclatura de una tabla temporal
TEMP_XXX
1.3.3. Notación de Campos
Nomenclatura:
Los nombres de los campos deben ser descriptivos, en singular y en mayúsculas.
Ejemplo :
ID_EMPLEADO
NOMBRE
DOCUMENTO
1.3.4. Notación de Constraints
El nombre de la tabla debe estar en mayúscula.
Índices con llaves primarias (Primary Key).
Nomenclatura:
PK + Nombre de la tabla.
Ejemplo:
PK_PROVEEDOR
Índices con llaves foráneas o relacionadas (Foreing Key).
Nomenclatura:
FK_NombreTablaOrigen_NombreTablaReferenciada
Documento Interno Versión: 1.0 Página 5 de 11
Sistema de Gestión Hotelera - Módulo de Compras y Almacenes
Ejemplo:
FK_PROVEEDOR_ORDENCOMPRA
Indices Unique:
Nomenclatura:
UQ_NemónicoTabla_NombreUnique
Ejemplo:
UQ_CLIENTE_CODIGO_CLIENTE
Default:
Nomenclatura:
DF_NemónicoTabla_NombreColumna
Ejemplo
DF_CLIENTE_FECHA
Check:
Nomenclatura:
CK_NemonicoTabla_NombreCheck
Ejemplo
CK_CLIENTE_CODIGO_CLIENTE
1.3.5. Indices
Nomenclatura
IXX_ YYYY….
XX : Tipo de índice (Unique, Clustered, NonClustered)
YYY : Nombre del Indice
Ejemplo:
IUQ_CODEMPLEADO (índice Unique)
Documento Interno Versión: 1.0 Página 6 de 11
Sistema de Gestión Hotelera - Módulo de Compras y Almacenes
ICL_CCUSTODIA (índice Clustered)
INC_CODDEPOSITANTE (NonClustered)
1.3.6. Triggers
Nomenclatura para los Triggers :
TR_NOMBRETABLE_D (Cuando se realiza una eliminación en la tabla).
TR_NOMBRETABLA_U (Cuando se realiza una actualización en la tabla).
TR_NOMBRETABLA_I (Cuando se realiza una inserción en la tabla).
TR_NOMBRETABLA_IU (Cuando se realiza una inserción o actualización en la tabla).
1.3.7. Stored Procedure
Nomenclatura para los Stored Procedures :
Insert:
NOMBRETABLA_Add (Insertaun registro a la tabla)
Update:
NOMBRETABLA_Update (Actualiza un registro a la tabla)
Delete:
NOMBRETABLA_Delete (Elimina un registro de la tabla)
Select:
NOMBRETABLA_GetByID (Retorna un sólo registro por PK o AK).
NOMBRETABLA_ListByXXXX (Retornan más de un registro)
NOMBRETABLA_ListXXXX
Nota: No todos los stored procedures siguen esta convención, dado que algunos abstraen un
mayor nivel de funcionalidad como ejecutar un proceso o algún query complejo.
Ejemplo
EMPLEADO_Add
EMPLEADO _Insert
EMPLEADO _Update
Documento Interno Versión: 1.0 Página 7 de 11
Sistema de Gestión Hotelera - Módulo de Compras y Almacenes
EMPLEADO _GetByID
EMPLEADO _ListByEmpresa
EMPLEADO _ProcesaSueldo
Nota:
Los nombres de los Stored Procedures NO deben comenzar con sp, esto porque
generalmente el SQL piensa que son system procedures y los busca primero en la Base de
Datos master
SET NOCOUNT ON (elimina la notificación del nro. de registros afectados por cada sentencia SQL
lo cual incrementa el performance.
Estructura del Stored Procedure:
Identificador, nombre de stored procedure, y parámetros
Comentarios:
Descripción: “funcionalidad del stored procedure”
Fecha Creacion:
Fecha Modificación:
Descripción de Parámetros de entrada y salida
Autor:
Versión:
Cambios Importantes
Declaración Variables locales
Mayúsculas y minúsculas
Sentencias SQL
Palabras del lenguaje SQL, y funciones de sistema en MAYUSCULAS, columnas
y otras variables en Mayúsculas.
Sentencias legibles e indentadas (cada clausula SQL en una línea nueva)
Ejemplo:
CREATE PROCEDURE EMPRESA_Add(
@CODEMPRESA int,
@RAZONSOCIAL varchar(50),
…)
AS
/***************************************
*Descripcion: Añade un registro a la tabla HUB
*Fecha Creación: 19/02/2001
Documento Interno Versión: 1.0 Página 8 de 11
Sistema de Gestión Hotelera - Módulo de Compras y Almacenes
*Fecha Modificación: 19/02/2001
*Parametros: @CODEMPRESA : Código de la empresa
* @RAZONSOCIAL: Razon Social de la Empresa
* …
*Autor: Juan Perez (14201)
*Versión: Final (Beta|Final)
*Cambios Importantes: Inclusión de la condición se consulta(15/02/2001)
*/**************************************
<Declaración de variables>
<Sentencias SQL>
1.3.8. Vistas
Nomenclatura para las Vistas:
VW_YYY….
VW : Identificador para las Vistas
YYY : Nombre de la Vista en Mayúsculas
Ejemplo :
VW_CONSULTAR_PERSONERIA
Para el nombre de las Vistas utilizar verbos en Infinitvo,
Ejemplo :
VW_CONSULTAR_CUENTAS
Nota: La estructura de la vista debe ser similar a la del stored procedure.
1.4. Programación
Utilizar mayúsculas para las sentencias propias del SQL
Ejemplo .-
SELECT NumeroDocumento,
Documento Interno Versión: 1.0 Página 9 de 11
Sistema de Gestión Hotelera - Módulo de Compras y Almacenes
TipoDocumento ,
ApellidoPaterno,
ApellidoMaterno,
Nombre
FROM DDEPOSITANTE
ORDER BY NumeroDocumento
Utilizar el Tabulador para separar los campos de una condición (en la medida de lo posible)
Ejemplo .-
SELECT 'CodigoSegmentoSAB' = CodigoDepositante,
'CodigoSegmentoCONASEV' = '00' +SUBSTRING(NumeroRegistro,2,1),
'CodigoRetorno' = '0'
FROM DDEPOSITANTE
WHERE NumeroDocumento = @NumeroDocumento
AND TipoDocumento = @TipoDocumento
AND RelacionadorCorrelativo = @RelacionadorCorrelativo
Indentar el Código para conservar un orden
Ejemplo.-
CREATE PROCEDURE BUSCARCADENA
( @Variable VARCHAR(255),
@Tipo VARCHAR(1) =""
)
AS
BEGIN
IF LTRIM(RTRIM(@Variable)) <> "*"
IF @Tipo = ""
SELECT NOMBRE = name ,
TIPO = type ,
CREACION = crdate
FROM sysobjects
WHERE name LIKE '%'+ @Variable + '%'
ORDER BY type,
name
ELSE
Documento Interno Versión: 1.0 Página 10 de 11
Sistema de Gestión Hotelera - Módulo de Compras y Almacenes
SELECT NOMBRE = name ,
TIPO = type ,
CREACION = crdate
FROM sysobjects
WHERE name LIKE '%'+ @Variable + '%'
AND type = RTRIM(LTRIM(@Tipo))
ORDER BY name
END
Documento Interno Versión: 1.0 Página 11 de 11