Estándar de Nomenclatura – Modelo Físico de datos

Anuncio
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
Descripción:
Define los estándares de nomenclatura para el modelo físico de datos.
Aprobado por:
Marco Miranda
Documento Interno
Fecha modificación:
Fecha aprobación :
Versión: 1.0
15/01/2010
21/01/2010
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.
1.1.
Estándares de Nomenclatura de Base de Datos
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:
Documento Interno
IUQ_CODEMPLEADO
(índice Unique)
ICL_CCUSTODIA
(índice Clustered)
Versión: 1.0
Página 6 de 11
Sistema de Gestión Hotelera - Módulo de Compras y Almacenes
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
EMPLEADO _GetByID
Documento Interno
Versión: 1.0
Página 7 de 11
Sistema de Gestión Hotelera - Módulo de Compras y Almacenes
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
*Fecha Modificació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
*Parametros:
@CODEMPRESA :
*
@RAZONSOCIAL:
*
…
Código de la empresa
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,
TipoDocumento ,
ApellidoPaterno,
Documento Interno
Versión: 1.0
Página 9 de 11
Sistema de Gestión Hotelera - Módulo de Compras y Almacenes
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'
WHERE NumeroDocumento
=
@NumeroDocumento
AND
TipoDocumento
=
@TipoDocumento
AND
RelacionadorCorrelativo
=
@RelacionadorCorrelativo
FROM
DDEPOSITANTE
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
SELECT
Documento Interno
NOMBRE
= name ,
TIPO
= type
,
Versión: 1.0
Página 10 de 11
Sistema de Gestión Hotelera - Módulo de Compras y Almacenes
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
Descargar