Versin: 01 UNIDAD DE ADMINISTRACIN COORDINACIN DE INFORMATICA Y GESTIN DE LA INFORMACIN Elaborado por: Albertico Quispe Cruzatti Firma: Cargo: Especialista en Manejo de Base de Datos Fecha: Revisado por: Manuel Gutierrez Aguirre Firma: Cargo: Fecha: Aprobado por: Luis Barrantes Firma: Cargo: Fecha:
Tipo: DOCUMENTO TCNICO Cdigo: CIGI-001 Versin: 01 Ttulo: ESTNDARES PARA EL DESARROLLO DE SQL SERVER Fecha de Vigencia: 08/04/2013 Pgina: 2 de 25
Coordinacin de Informtica y Gestin de la Informacin HOJA DE CONTROL DE CAMBIOS ITEM TEXTO MODIFICADO VERSIN FECHA RESPONSABLE 01 Elaboracin inicial del documento 01 08/04/2013 CIGI
Tipo: DOCUMENTO TCNICO Cdigo: CIGI-001 Versin: 01 Ttulo: ESTNDARES PARA EL DESARROLLO DE SQL SERVER Fecha de Vigencia: 08/04/2013 Pgina: 3 de 25
Coordinacin de Informtica y Gestin de la Informacin NDICE 1. ESTANDARES DE TRANSACT-SQL ......................................................................................... 4 1.1. NOMENCLATURA PARA LOS ELEMNTOS DE PROGRAMACIN ................................... 4 1.1.1. PREFIJOS DE TIPOS DE DATOS .............................................................................. 4 1.2. DECLARACIN DE DATOS. ............................................................................................ 7 1.2.1. DECLARACIN DE VARIABLES .............................................................................. 7 1.2.2. PREFIJO PARA TABLAS TEMPORALES LOCALES ................................................... 7 1.2.3. NOMBRE DE BASE DE DATOS ............................................................................... 9 1.2.4. NOMBRE DE ESQUEMAS ...................................................................................... 9 1.2.5. NOMBRE DE TABLAS ............................................................................................. 9 1.2.6. NOMBRE DE COLUMNAS .................................................................................... 10 1.2.7. NOMBRES DE CONSTRAIN .................................................................................. 11 1.2.8. NOMBRES DE VISTAS .......................................................................................... 12 1.2.9. NOMBRES DE PROCEDIMIENTOS ALMACENADOS ............................................ 12 1.2.10. NOMBRES DE FUNCIONES DEFINIDAS POR EL USUARIO .................................. 13 1.2.11. NOMBRES DE TRIGGERS ..................................................................................... 13 1.2.12. NOMBRES DE PARAMETROS .............................................................................. 14 1.2.13. NOMBRES DE VARIABLES ................................................................................... 14 1.2.14. NOMBRES DE ARCHIVO XML .............................................................................. 15 2. CONVENCIONES DE CDIGO .............................................................................................. 15 2.1. DISEO ........................................................................................................................ 15 2.2. LENGUAJE .................................................................................................................... 16 3. DIRECTRICES ........................................................................................................................ 18 3.1. NORMAS REFERENTES DE MINUSCULAS Y MAYUSCULAS ........................................ 18 3.1.1. ESTILO DE GRAFA ............................................................................................... 18 3.1.2. REGLAS DE USO DE MAYUSCULAS Y MINUSCULAS PARA LOS IDENTIFICADORES ..19 3.2. ANALISIS DE CODIGO .................................................................................................. 19 3.3. AUDITORIA .................................................................................................................. 19 3.3.1. TABLAS AUDITABLES CON HISTORICO ............................................................... 20 4. BIBLIOGRAFIA ..................................................................................................................... 21 5. ANEXO ................................................................................................................................. 22
Tipo: DOCUMENTO TCNICO Cdigo: CIGI-001 Versin: 01 Ttulo: ESTNDARES PARA EL DESARROLLO DE SQL SERVER Fecha de Vigencia: 08/04/2013 Pgina: 4 de 25
Coordinacin de Informtica y Gestin de la Informacin 1. ESTANDARES DE TRANSACT-SQL 1.1. NOMENCLATURA PARA LOS ELEMNTOS DE PROGRAMACIN 1.1.1. PREFIJOS DE TIPOS DE DATOS Tipo de Dato Tipo de SQL Prefijo Byte Rango Numricos Exactos Bigint bi 8 De -2^63 (- 9.223.372.036.854.775.808) a 2^63-1 (9.223.372.036.854.775.807) Bit b Se almacenan como 1 byte. Si hay entre 9 y 16 columnas de tipo bit, se almacenan como 2 bytes, y as sucesivamente 1, 0 o NULL Decimal(p,s) de 5,9,13,17 - 10^38 +1 y 10^38 - 1 Int i 4 De -2^31 (-2.147.483.648) a 2^31-1 (2.147.483.647) money m 8 De - 922,337,203,685.477,5808 a 922,337,203,685.477,5807 Numeric(p,s) n 5,9,13,17 - 10^38 +1 y 10^38 - 1 smallint si 2 De -2^15 (-32.768) a 2^15- 1 (32.767) smallmoney sm 4 De - 214.748,3648 a 214.748,3647 tinyint ti 1 De 0 a 255
Tipo de Dato Tipo de SQL Prefijo Byte Rango Numricos Exactos float(n) f Depende del valor de n De - 1,79E+308 a -2,23E- 308, 0 y de 2,23E-308 a 1,79E+308 real r 4 De - 3,40E + 38 a -1,18E - 38, 0 y de 1,18E - 38 a 3,40E + 38
Tipo: DOCUMENTO TCNICO Cdigo: CIGI-001 Versin: 01 Ttulo: ESTNDARES PARA EL DESARROLLO DE SQL SERVER Fecha de Vigencia: 08/04/2013 Pgina: 5 de 25
Coordinacin de Informtica y Gestin de la Informacin Tipo de Dato Tipo de SQL Prefijo Byte Rango Fecha y Hora date d 3 bytes, fijo De 0001-01-01 a 9999-12- 31 datetime dt 8 bytes Del 1 de enero de 1753 hasta el 31 de diciembre de 9999 y De 00:00:00 a 23:59:59.997 datetime2 dt2 6 bytes para precisiones inferiores a 3; 7 bytes para precisiones 3 y 4. Todas las dems precisiones requieren 8 bytes. De 0001-01-01 a 9999-12- 31 y De 00:00:00 a 23:59:59.9999999 datetimeoffset dto 10 bytes, fijo es el valor predeterminado con el valor predeterminado de 100 ns de precisin de fracciones de segundo. De 0001-01-01 a 9999-12- 31 y De 00:00:00 a 23:59:59.9999999, zona horaria De -14:00 a +14:00 smalldatetime sd 4 bytes, fijo. De 1900-01-01 a 2079-06- 06 y De 00:00:00 a 23:59:59 2007-05-09 23:59:59 se redondear a 2007-05-10 00:00:00 time tm 5 bytes (fijo) es el valor predeterminado con el valor predeterminado de 100 ns de precisin de fracciones de segundo. De 0001-01-01 a 9999-12- 31 y
Tipo de Dato Tipo de SQL Prefijo Byte Rango Cadena de Caracteres Char(n) c n bytes 1 y 8.000 caracteres Varchar(n) v n bytes 1 y 8.000 caracteres text tx 2.147.483.647 bytes longitud mxima de cadena de 2^31-1 (2.147.483.647)
Tipo: DOCUMENTO TCNICO Cdigo: CIGI-001 Versin: 01 Ttulo: ESTNDARES PARA EL DESARROLLO DE SQL SERVER Fecha de Vigencia: 08/04/2013 Pgina: 6 de 25
Coordinacin de Informtica y Gestin de la Informacin Tipo de Dato Tipo de SQL Prefijo Byte Rango Cadena de Caracteres nChar(n) nc n*2 bytes 1 y 8.000 caracteres nVarchar(n) nv n*2 bytes 1 y 8.000 caracteres ntext ntx El tamao de almacenamiento, en bytes, es dos veces la longitud de cadena especificada longitud mxima de cadena de 2^31-1 (2.147.483.647)
Tipo de Dato Tipo de SQL Prefijo Byte Rango Cadena Binarias binary(n) bin n bytes n es un valor que oscila entre 1 y 8.000 varbinary (n) vb El tamao de almacenamiento es la longitud real de los datos especificados + 2 bytes n es un valor que oscila entre 1 y 8.000 imagen img 0 hasta 2^31-1 (2.147.483.647) bytes. longitud Variable
Tipo de Dato Tipo de SQL Prefijo Byte Rango Fecha y Hora cursor cur Timestamp (rowversion) tms 8 bytes Hierarchyid hch 5 bytes Dependiendo de la jerarqua. sql_variant sqv La longitud mxima del tipo base real es 8.000 bytes. Ttipo de dato SQL Server determinados. table tab Defino a momento de la creacin de Dato. uniqueidentifier unq 16 bytes. unico xml xml no puede superar 2 gigabytes (GB)
Tipo: DOCUMENTO TCNICO Cdigo: CIGI-001 Versin: 01 Ttulo: ESTNDARES PARA EL DESARROLLO DE SQL SERVER Fecha de Vigencia: 08/04/2013 Pgina: 7 de 25
Coordinacin de Informtica y Gestin de la Informacin 1.2. DECLARACIN DE DATOS. 1.2.1. DECLARACIN DE VARIABLES Para la declaracin de variables. El primer carcter del identificador debe ser uno de los siguientes smbolos Caracter Uso @ Representa a una variable local # Representa a un objeto temporal, Table, o Store Procedure ## Representa un objeto temporal global
Cuando dos expresiones que disponen de tipos de datos diferentes, intercalaciones, precisin, escala o longitud los combina un operador: Para el caso de intercalacin, se debe utilizar la Modern_Spanish_CI_AS para todas las bases de datos implementadas y por consiguiente sus objetos. 1.2.2. PREFIJO PARA TABLAS TEMPORALES LOCALES #tmp<Nombre de Tabla><Nombre Explicito> #tmp<Nombre Explicito> para tablas temporales globales deben de tener un nombre explicito nico. Evitar utilizar identificadores que entren en conflicto con las siguientes palabras claves ADD EXTERNAL PROCEDURE ALL FETCH PUBLIC ALTER FILE RAISERROR AND FILLFACTOR READ ANY FOR READTEXT AS FOREIGN RECONFIGURE ASC FREETEXT REFERENCES AUTHORIZATION FREETEXTTABLE REPLICATION BACKUP FROM RESTORE BEGIN FULL RESTRICT BETWEEN FUNCTION RETURN BREAK GOTO REVERT BROWSE GRANT REVOKE BULK GROUP RIGHT BY HAVING ROLLBACK CASCADE HOLDLOCK ROWCOUNT CASE IDENTITY ROWGUIDCOL CHECK IDENTITY_INSERT RULE
Tipo: DOCUMENTO TCNICO Cdigo: CIGI-001 Versin: 01 Ttulo: ESTNDARES PARA EL DESARROLLO DE SQL SERVER Fecha de Vigencia: 08/04/2013 Pgina: 8 de 25
Coordinacin de Informtica y Gestin de la Informacin CHECKPOINT IDENTITYCOL SAVE CLOSE IF SCHEMA CLUSTERED IN SECURITYAUDIT COALESCE INDEX SELECT COLLATE INNER SEMANTICKEYPHRASETABLE COLUMN INSERT SEMANTICSIMILARITYDETAILSTABLE COMMIT INTERSECT SEMANTICSIMILARITYTABLE COMPUTE INTO SESSION_USER CONSTRAINT IS SET CONTAINS JOIN SETUSER CONTAINSTABLE KEY SHUTDOWN CONTINUE KILL SOME CONVERT LEFT STATISTICS CREATE LIKE SYSTEM_USER CROSS LINENO TABLE CURRENT LOAD TABLESAMPLE CURRENT_DATE MERGE TEXTSIZE CURRENT_TIME NATIONAL THEN CURRENT_TIMESTAMP NOCHECK TO CURRENT_USER NONCLUSTERED TOP CURSOR NOT TRAN DATABASE NULL TRANSACTION DBCC NULLIF TRIGGER DEALLOCATE OF TRUNCATE DECLARE OFF TRY_CONVERT DEFAULT OFFSETS TSEQUAL DELETE ON UNION DENY OPEN UNIQUE DESC OPENDATASOURCE UNPIVOT DISK OPENQUERY UPDATE DISTINCT OPENROWSET UPDATETEXT DISTRIBUTED OPENXML USE DOUBLE OPTION USER DROP OR VALUES DUMP ORDER VARYING ELSE OUTER VIEW END OVER WAITFOR ERRLVL PERCENT WHEN ESCAPE PIVOT WHERE EXCEPT PLAN WHILE EXEC PRECISION WITH EXECUTE PRIMARY WITHIN GROUP EXISTS PRINT WRITETEXT EXIT PROC
Tipo: DOCUMENTO TCNICO Cdigo: CIGI-001 Versin: 01 Ttulo: ESTNDARES PARA EL DESARROLLO DE SQL SERVER Fecha de Vigencia: 08/04/2013 Pgina: 9 de 25
Coordinacin de Informtica y Gestin de la Informacin 1.2.3. NOMBRE DE BASE DE DATOS <BD><Organizacin> BDQALI base de datos del sistema de Qaliwarma BDMINEDU base de datos de Ministerio de educacin. Donde: BD = Referencia de objeto Base de datos de la base de datos. Organizacin = Referencia de organizacin de base de datos
1.2.4. NOMBRE DE ESQUEMAS <EQ><Nombre de Proyecto> EQSISTRA base de datos del sistema de transferencia. Donde: EQ = Referencia de esquema de la base de datos. Nombre de Proyecto = referencia del nombre del proyecto.
1.2.5. NOMBRE DE TABLAS <Nombre Esquema>.<Prefijo de Mdulo><Prefijo de tipo de tabla><Acrnimo de la entidad>
Diseo Tipo Prefijo Estndar Maestro Mae Movimiento Mov Detalle Det Tabla Tab Imagen Img
Data WareHouse Dimensin Dim Hecho Hec Transaccional Txs
Tipo: DOCUMENTO TCNICO Cdigo: CIGI-001 Versin: 01 Ttulo: ESTNDARES PARA EL DESARROLLO DE SQL SERVER Fecha de Vigencia: 08/04/2013 Pgina: 10 de 25
Coordinacin de Informtica y Gestin de la Informacin Para las tablas deben de ser todas maysculas para este caso de no debe tener espacios en blanco, si el acrnimo de la entidad es una o ms palabras se deber poner la palabra completa. Tabla Descripcin PRMAERECETA Maestro de receta de prestaciones PRDETRECETA Detalle de receta de prestaciones GETABREGIONALIMENTARIA Tabla de Regin Alimentaria GETABPROVINCIA Tabla Provincia PCTABCOMITECOMPRA Tabla del comit de compra del proceso de compra
Para los casos de tablas histricas, deber finalizar con la letra H en mayscula. Tabla Descripcin PRMAERECETAH Maestro de receta de prestaciones histrico PRDETRECETAH Detalle de receta de prestaciones historico
1.2.6. NOMBRE DE COLUMNAS <Tipo de datos SQL><Acrnimo> Para el caso de los acrnimos deber seguir el uso de maysculas y minsculas, de la convencin Camel (ver estilos de grafas). Por otro lado el nombre de la columna podr contener una, pero no ms de 3 palabras. Como parte del acrnimo se puede aadir abreviatura de palabras comunes como se muestra en la siguiente tabla. Abreviatura Descripcin Cod Cdigo Doc Documento tip Tipo Est Estado Exp Expediente cam Campaa Fec Fecha
Ejemplo de nombres de campos
Campo Descripcin siCodUsuario Cdigo de Usuario, tipo de dato smallint
Tipo: DOCUMENTO TCNICO Cdigo: CIGI-001 Versin: 01 Ttulo: ESTNDARES PARA EL DESARROLLO DE SQL SERVER Fecha de Vigencia: 08/04/2013 Pgina: 11 de 25
Coordinacin de Informtica y Gestin de la Informacin icodColegio Cdigo de colegio, tipo de dato int. vDireccion Direccin de tipo varchar dFecCamAnual Fecha de Campaa Anual de tipo date
1.2.7. NOMBRES DE CONSTRAIN 1.2.7.1. PRIMARY KEY PK_<NOMBRE DE TABLA> Todo nombre deber estar en mayscula, adems no tener espacios en blanco: PK_PRMAERECETA PK_PRDETRECETA 1.2.7.2. FOREIGN KEY FK_<NOMBRE DE TABLA ORIGEN>_<NOMBRE DE TABLA REFERNCIA> Todo nombre deber estar en mayscula, adems no tener espacios en blanco, la tabla de referencia es aquella cuyos campos deben existir en la tabla origen (existe una relacin de referencia). FK_ PRMAERECETA_ PRDETRECETA 1.2.7.3. DEFAULT DF_<NOMBRE DE TABLA>_<NOMBRE DE CAMPO> Todo nombre deber estar en mayscula, adems no tener espacios en blanco, para ingresar valores pode defecto a un campo determinado. DF_RDMAERECETA_bEstado 1.2.7.4. CHECK Para un campo: CKC_<NOMBRE DE TABLA>_<NOMBRE DE CAMPO> Para una tabla: CKT_<NOMBRE DE TABLA>_<NOMBRE DE CAMPO Todo nombre deber estar en mayscula, adems no tener espacios en blanco, para ingresar valores pode defecto a un campo determinado.
Tipo: DOCUMENTO TCNICO Cdigo: CIGI-001 Versin: 01 Ttulo: ESTNDARES PARA EL DESARROLLO DE SQL SERVER Fecha de Vigencia: 08/04/2013 Pgina: 12 de 25
Coordinacin de Informtica y Gestin de la Informacin CKC_RDMAEINGREDIENTES_ICANTIDAD 1.2.7.5. NOMBRE DE NDICES IX_<NOMBRE DE TABLA>_<Correlativo de tabla> Todo deber estar e maysculas. Adems de no tener espacios en blanco. El correlativo ser de 3 caracteres y empezara en uno (001) rellenados con 2 ceros a la izquierda. IX_ PRMAERECETA_ 001 IX_ PRDETRECETA_ 001 IX_ PRMAERECETA_ 002 1.2.8. NOMBRES DE VISTAS <Nombre Esquema>.<Prefijo de Sistema>_VW_<Acrnimo> Para el caso del acrnimo de deber seguir las reglas de uso de maysculas y minsculas, deber utilizar la convencin Pascal (ver Estilos de Grafa). Por otro lado en el caso de la vista sea sobre una nica tabla se adopta el nombre de la tabla. No debe tener espacios en blanco. Este objeto deber ser documentado con la siguiente estructura antes de su declaracin ----------------------------------------------------------------------- --<Descripcin de la Vista> --input : <Parametros> - Descripcin de los parametros --OutPut : <Descripin de la Salida> --Creado por : <Responsable> --Fec Creacin : <Fecha creacion> ----------------------------------------------------------------------- --Fec Actualizacin : <Fecha de Actualizacin> Responsable: <Analista> --Motivo : <motivo de la Modificacion> -----------------------------------------------------------------------
1.2.9. NOMBRES DE PROCEDIMIENTOS ALMACENADOS <Nombre Esquema>.pa<Prefijo del sistema>_<Nombre de la Entidad>_<Accin> para el caso de la accin se deber seguir las reglas de uso de maysculas y minsculas, deber utilizar la convencin Camel (ver Estilos de Grafa). Adems no debe tener espacios en blanco. La accin debe iniciar en un verbo. paPR_Ingredientes_Registrar paPR_DetalleRecepta_Consultar Este objeto debe estar documentado con la siguiente estructura.
Tipo: DOCUMENTO TCNICO Cdigo: CIGI-001 Versin: 01 Ttulo: ESTNDARES PARA EL DESARROLLO DE SQL SERVER Fecha de Vigencia: 08/04/2013 Pgina: 13 de 25
Coordinacin de Informtica y Gestin de la Informacin ----------------------------------------------------------------------- --<Descripcin del procedimiento Almacenado> --input : <Parametros> - Descripcin de los parametros --OutPut : <Descripin de la Salida> --Creado por : <Responsable> --Fec Creacin : <Fecha creacion> ----------------------------------------------------------------------- --Fec Actualizacin : <Fecha de Actualizacin> Responsable: <Analista> --Motivo : <motivo de la Modificacion> -----------------------------------------------------------------------
1.2.10. NOMBRES DE FUNCIONES DEFINIDAS POR EL USUARIO <Nombre Esquema>.fn<Prefijo del sistema>_<Nombre de la Entidad>_<Accin> La Entidad se refiere a la entidad del negocio donde se necesita realizar la accin, el cual debe estar especificado en un diagrama de clases de una aplicacin o solucin. Para el caso de la accin se deber seguir las reglas de uso de maysculas y minsculas, deber utilizar la convencin Camel(ver estilos de grafa). Adems, no debe tener espacios en blanco, la accin debe iniciar en un verbo. fnPR_Campana_ValidarFechaEmision Este objeto debe estar documentado con la siguiente estructura. ----------------------------------------------------------------------- --<Descripcin de la funcin> --input : <Parametros> - Descripcin de los parametros --OutPut : <Descripcin de la Salida> --Creado por : <Responsable> --Fec Creacin : <Fecha creacion> ----------------------------------------------------------------------- --Fec Actualizacin : <Fecha de Actualizacin> Responsable: <Analista> --Motivo : <motivo de la Modificacion> -----------------------------------------------------------------------
1.2.11. NOMBRES DE TRIGGERS Para insercin <Nombre Esquema>.ti<Prefijo del sistema>_<Nombre de Tabla> Para Actualizacin <Nombre Esquema>.tu<Prefijo del sistema>_<Nombre de Tabla> Para Eliminacin <Nombre Esquema>.td<Prefijo del sistema>_<Nombre de Tabla>
Tipo: DOCUMENTO TCNICO Cdigo: CIGI-001 Versin: 01 Ttulo: ESTNDARES PARA EL DESARROLLO DE SQL SERVER Fecha de Vigencia: 08/04/2013 Pgina: 14 de 25
Coordinacin de Informtica y Gestin de la Informacin Para Auditoria <Nombre Esquema>.ta<Prefijo del sistema>_<Nombre de Tabla> El nombre de la tabla debe seguir estndar de este. Por otro lado, no debe tener espacios en blanco. Este objeto debe estar documentado con la siguiente estructura. ----------------------------------------------------------------------- --<Descripcin de la funcin> --input : <Parametros> - Descripcin de los parametros --OutPut : <Descripcin de la Salida> --Creado por : <Responsable> --Fec Creacin : <Fecha creacion> ----------------------------------------------------------------------- --Fec Actualizacin : <Fecha de Actualizacin> Responsable: <Analista> --Motivo : <motivo de la Modificacion> -----------------------------------------------------------------------
1.2.12. NOMBRES DE PARAMETROS @p<Tipo de Datos SQL><Nombre del Campo/Acrnimo> Para el caso del nombre del campo debe seguir las reglas correspondientes a este. En el caso del Acrnimo deber seguir las reglas de uso de maysculas y minsculas, deber utilizar la convencin camel(Ver estilos de Grafa), Por otro lado el nombre del campo o acrnimo podr contener una, pero no ms de 3 palabras. Podr utilizar las abreviaturas de nombres de columnas descritas anteriormente. Parametro Descripcin @psiCodUsuario Cdigo de Usuario, tipo de dato smallint @picodColegio Cdigo de colegio, tipo de dato int. @pvDireccion Direccin de tipo varchar @pdFecCamAnual Fecha de Campaa Anual de tipo date
1.2.13. NOMBRES DE VARIABLES @<Tipo de Datos SQL>< Acrnimo> Para el caso de acrnimo use la grafa de nombre de columna definida anteriormente. Parametro Descripcin @siCodUsuario Cdigo de Usuario, tipo de dato smallint @icodColegio Cdigo de colegio, tipo de dato int. @vDireccion Direccin de tipo varchar @dFecCamAnual Fecha de Campaa Anual de tipo date
Tipo: DOCUMENTO TCNICO Cdigo: CIGI-001 Versin: 01 Ttulo: ESTNDARES PARA EL DESARROLLO DE SQL SERVER Fecha de Vigencia: 08/04/2013 Pgina: 15 de 25
Coordinacin de Informtica y Gestin de la Informacin
1.2.14. NOMBRES DE ARCHIVO XML <Prefijo de Sistema>< Descripcin>.XML Los archivos XML utilizados deben tener como parte inicial el prefijo del sistema al que pertenece y finalmente una descripcin o el nombre de la entidad a la que pertenece. Para esto utilizar la convencin pascal. PRMenu.xml 2. CONVENCIONES DE CDIGO Estas convenciones tienen el propsito de la fcil lectura y comprensin del cdigo para facilitar su entendimiento y mantenimiento. Ninguna variable u objeto de la base de datos llevara como parte del nombre caracteres especiales (#,$,%,&, etc.), as como tampoco tildes (). En todas las palabras reservadas se usara la primera letra en mayscula y el resto en minscula. Estas se hacen extensivas a las funciones propias del SQL. Los nombres de los objetos de la base datos y variables deben estar en idioma espaol. 2.1. DISEO Sangra de 3 caracteres (espacios), las tabulaciones de cdigo SQL debe configurarse para que graben las tabulaciones en espacios. Usar una lnea de cdigo para separar grupos lgicos de cdigo. Utilizar una sola instruccin por lnea. Utilizar una sola declaracin por lnea. Usar la siguiente estructura para los procedimientos almacenados, funciones de usuario, vistas y triggers. Nro Cdigo 1 USE <Base de Datos> GO 2 SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO 3 ----------------------------------------------------------------------- --<Descripcin de la Vista> --input : <Parametros> - Descripcin de los parametros --OutPut : <Descripin de la Salida> --Creado por : <Responsable> --Fec Creacin : <Fecha creacion> ----------------------------------------------------------------------- --Fec Actualizacin : <Fecha de Actualizacin> Responsable: <Analista> --Motivo : <motivo de la Modificacion> ----------------------------------------------------------------------- 4 [Create/Alter] <Nombre Esquema>.[Procudere/Function/trigger/View] <Nombre>
Tipo: DOCUMENTO TCNICO Cdigo: CIGI-001 Versin: 01 Ttulo: ESTNDARES PARA EL DESARROLLO DE SQL SERVER Fecha de Vigencia: 08/04/2013 Pgina: 16 de 25
Coordinacin de Informtica y Gestin de la Informacin
Donde: 1. Especifica la base de datos donde pertenecer o pertenece el objeto. 2. Clausulas o sentencias de inicio del objeto. 3. Documentacin del objeto. 4. Creacin o modificacin del objeto. 5. Declaracin de Parmetros. 6. Cuerpo del Objeto, siempre debe iniciar como se muestra en el cuadro. 7. Clausulas de sentencia de fin del objeto. Observaciones. No utilizar comentarios al final de una instruccin. Se puede aadir comentarios en el cuerpo del objeto, deben de ser concisos y puntuales. El uso de cometarios se debe anteceder un espacio de lnea y usar (/**/, --). Deben emplear comentarios en los siguientes casos: o Si se declara una variable, procedimiento almacenado, funcin, por el usuario, etc., sin ponerle un nombre explicito. o Si se usa una lgica compleja. o Si se inicializa una variable en un valor que no sea 0, -1, etc. o En casos que el programador determine adecuado. 2.2. LENGUAJE Palabras reservadas o Las palabras reservadas Begin Else End debern estar en la misma columna de as de sentencia lgica que las origina. o Cada sentencia debe ir en una lnea diferente. Case o Los Case deben estar alineados de la siguiente manera: el Case en una lnea y los When y el Else cada una en otra lnea diferente, por ejemplo: 5 { <Parametros> } 6 As Begin Set no Count On <cuerpo del Objeto> Set no Count Off End 7 As Begin Set no Count On
Set no Count Off End
Tipo: DOCUMENTO TCNICO Cdigo: CIGI-001 Versin: 01 Ttulo: ESTNDARES PARA EL DESARROLLO DE SQL SERVER Fecha de Vigencia: 08/04/2013 Pgina: 17 de 25
Coordinacin de Informtica y Gestin de la Informacin
Case When ... Then .... Else End Join o Los grupos de join deben estar identados su las columnas superan los 140 columnas . Where o Los grupos de join deben estar identados su las columnas superan los 140 columnas . Where siCoUsuario = @psiCdUsuario4 And cNumDoc = @pcNumDocumento And siTipoDato = 1 And iCodIngrediente = 123
From o Las sentencias From al incluir varias tablas debern ser complementadas con sentencias Inner Join, Left o Join o Right join segn sea el caso considerar que el ancho de las columnas a la codificacin no debe exceder de 140 caracteres. o No se debe utilizar el siguiente cdigo From PRMAERECETA a, PRDETRECETA b, PRMAEUSUARIO c Where a.cNumDoc = b.cNumDocumento And a.siTipoDato = 1 And a.iCodIngrediente *= c.iCodIngrediente
En su lugar usar el siguiente cdigo. From PRMAERECETA a Inner Join PRDETRECETA b on (a.cNumDoc = b.cNumDocumento and a.siTipoDato = 1) Left Join PRMAEUSUARIO c (a.iCodIngrediente *= c.iCodIngrediente)
Convertir Datos o Cuando se requiera convertir un dato de varchar o char a Date o smalldatetime evitar el uso de la funcin cast en su lugar usar la funcin convert con el formato 103 Select Cast (25/05/2011 as smalldatetime) Select Convert(Smalldatetime, 25/05/2011, 1003) Bloqueos o Se recomienda no tener procesos transaccionales que demoren demasiado, para evitar as bloqueos en otros procesos.
Tipo: DOCUMENTO TCNICO Cdigo: CIGI-001 Versin: 01 Ttulo: ESTNDARES PARA EL DESARROLLO DE SQL SERVER Fecha de Vigencia: 08/04/2013 Pgina: 18 de 25
Coordinacin de Informtica y Gestin de la Informacin o Se recomienda, en procesos transaccionales, el bloqueo por registro. o Las sugerencias de no bloqueo que se recomienda en la lectura (Select) es la sentencia Nolock. Esta no admite bloqueos compartidos y no respeta los bloqueos exclusivos por lo que se debe tener sumo cuidado ya es posible que lea datos de transacciones sin confirmar.
From PRMAERECETA a Inner Join PRDETRECETA b on (a.cNumDoc = b.cNumDocumento and a.siTipoDato = 1) Left Join PRMAEUSUARIO (Nolock) c (a.iCodIngrediente *= c.iCodIngrediente)
3. DIRECTRICES General o El uso de sentencias USE, es obligatorio en la cabecera de los procedimientos, funciones, vistas, triggers, scripts, etc. Que se requiera ejecutar en determinada base de datos. o Se recomienda el uso de una cadena de datos XML como parmetro o parmetros cuando el SP necesite datos estructurados o de mltiples parmetros y adems cuando el proceso sea complejo. Tamao de Archivo o Tratar de evitar que los archivos superen ms de 500 700 lneas de cdigo, se debe reconsiderar recrearlo. Consultas o En todo tipo de consulta se debe especificar todas las columnas como regla general. Actualizacin de Datos o Para la actualizacin de datos para cualquier proceso se debe actualizar los campos de auditora como regla general. o Para la eliminacin de un registro indique la activacin o no del registro (bActivo de tipo Bit), el cual debe tener el valor por defecto 1. o En la insercin de dato de datos en una tabla se deben especificar todos los campos como regla general. o El Modelo de base de datos debe cumplir como mnimo la tercera forma normal. o Los campos que hacen referencia a otras tablas deben de tener el nombre de la tabla de origen.
3.1. NORMAS REFERENTES DE MINUSCULAS Y MAYUSCULAS 3.1.1. ESTILO DE GRAFA
Tipo: DOCUMENTO TCNICO Cdigo: CIGI-001 Versin: 01 Ttulo: ESTNDARES PARA EL DESARROLLO DE SQL SERVER Fecha de Vigencia: 08/04/2013 Pgina: 19 de 25
Coordinacin de Informtica y Gestin de la Informacin Grafa Pascal: la primera letra del identificador y la primera letra de las siguientes palabras concatenadas estn en mayscula. El estilo de maysculas y minsculas: BackColor Grafa Camel: la primera letras o letras del indentificador esta en minscula y la primera letra de las siguietes palabras concatenadas en maysculas: vApellidosPaterno. Mayusculas: Todas las letras del identificador van en maysculas: DNI, OI,RUC, etc.
3.1.2. REGLAS DE USO DE MAYUSCULAS Y MINUSCULAS PARA LOS IDENTIFICADORES Cuando un identificador est compuesto de varias palabras, no utilice separadores como - o _ entre palabras. En su lugar, utilice la grafa de palabras correspondientes. Utilizar la grafa pascal para todos los nombres de miembros pblicos, tipos, espacios de nombres que constan de varias palabras. 3.2. ANALISIS DE CODIGO En la construccin de un objeto de base de datos se debe seguir las siguientes reglas. 1. Cumplimento de nomenclatura de objetos. 2. Cabecera actualizada. 3. Cumplimiento de nomenclatura de parmetros y variables. 4. No existencia de cdigo duro. 5. Palabras reservadas comienzan con mayscula. 6. Revisar que las sentencias INSERT, UPDATE graben datos de auditora. 7. Uso del borrado lgico y no fsico. 8. Mencin explcita de cada campo cuando se usa la sentencia Insert o update. 9. Eliminacin de tablas temporales en el momento en use se dejan de usar. 10. No se deben usar consultas totales.
3.3. AUDITORIA Todas las tablas transaccionales deben de tener activadas las auditorias en forma cronolgica, conteniendo informacin como fecha, hora, usuario, terminal y dato modificado, se rigen bajo 3 criterios. 0 = Insert 1=Update
Tipo: DOCUMENTO TCNICO Cdigo: CIGI-001 Versin: 01 Ttulo: ESTNDARES PARA EL DESARROLLO DE SQL SERVER Fecha de Vigencia: 08/04/2013 Pgina: 20 de 25
Coordinacin de Informtica y Gestin de la Informacin 2=Delete 3.3.1. TABLAS AUDITABLES CON HISTORICO Se aplican a todas las tablas transaccionales y las que el equipo de proyecto determine como crtico, estas tablas contaran con desencadenadores (Triggers) que permitan dejar los registros en las tablas de auditora. Numero de Operacin (iNumOpe), el cual debe ser un campo identidad. Cdigo de operacin, el cual debe indicarse si es de Insercin, Modificacin, Eliminacin. Usuario de actualizacin (siCodUsuario). Fecha y hora de actualizacin (sdFecOpe) debe tener por defecto la fecha del servidor. Terminal de actualizacin (cTerOperacion).
Tipo: DOCUMENTO TCNICO Cdigo: CIGI-001 Versin: 01 Ttulo: ESTNDARES PARA EL DESARROLLO DE SQL SERVER Fecha de Vigencia: 08/04/2013 Pgina: 21 de 25
Coordinacin de Informtica y Gestin de la Informacin 4. BIBLIOGRAFIA 1. MSDN Documentacin del Producto Sql Server 2012 http://msdn.microsoft.com/es-es/library/bb418439(v=sql.10).aspx.
Tipo: DOCUMENTO TCNICO Cdigo: CIGI-001 Versin: 01 Ttulo: ESTNDARES PARA EL DESARROLLO DE SQL SERVER Fecha de Vigencia: 08/04/2013 Pgina: 22 de 25
Coordinacin de Informtica y Gestin de la Informacin 5. ANEXO Recomendaciones de software mnimo para instalacin del SQL Server 2012 Enterprice, para Produccin. Edicin de SQL Server 32 bits 64 bits SQL Server Enterprise Windows Server 2012 Datacenter de 64 bits Windows Server 2012 Standard de 64 bits Windows Server 2012 Essentials de 64 bits Windows Server 2012 Foundation de 64 bits Windows Server 2008 R2 SP1 de 64 bits Datacenter Windows Server 2008 R2 SP1 de 64 bits Enterprise Windows Server 2008 R2 SP1 de 64 bits Standard Windows Server 2008 R2 SP1 de 64 bits Web Windows Server 2008 SP2 de 64 bits Datacenter Windows Server 2008 SP2 de 64 bits Enterprise Windows Server 2008 SP2 de 64 bits Standard Windows Server 2008 SP2 de 64 bits Web Windows Server 2008 SP2 de 32 bits Datacenter Windows Server 2008 SP2 de 32 bits Enterprise Windows Server 2008 SP2 de 32 bits Standard Windows Server 2008 SP2 de 32 bits Web Windows Server 2012 Datacenter de 64 bits Windows Server 2012 Standard de 64 bits Windows Server 2012 Essentials de 64 bits Windows Server 2012 Foundation de 64 bits Windows Server 2008 R2 SP1 de 64 bits Datacenter Windows Server 2008 R2 SP1 de 64 bits Enterprise Windows Server 2008 R2 SP1 de 64 bits Standard Windows Server 2008 R2 SP1 de 64 bits Web Windows Server 2008 SP2 de 64 bits Datacenter Windows Server 2008 SP2 de 64 bits Enterprise Windows Server 2008 SP2 de 64 bits Standard Windows Server 2008 SP2 de 64 bits Web SQL Server Business Intelligence Windows Server 2012 Datacenter de 64 bits Windows Server 2012 Standard de 64 bits Windows Server 2012 Essentials de 64 bits Windows Server 2012 Foundation de 64 bits Windows Server 2008 R2 SP1 de 64 bits Datacenter Windows Server 2008 R2 SP1 de 64 bits Enterprise Windows Server 2008 R2 SP1 de 64 bits Standard Windows Server 2008 R2 SP1 de 64 bits Web Windows Server 2008 SP2 de 64 bits Datacenter Windows Server 2008 SP2 de 64 bits Enterprise Windows Server 2008 SP2 de 64 bits Standard Windows Server 2008 SP2 de 64 bits Web Windows Server 2008 SP2 de 32 bits Datacenter Windows Server 2008 SP2 de 32 bits Enterprise Windows Server 2008 SP2 de 32 bits Standard Windows Server 2008 SP2 de 32 bits Web Windows Server 2012 Datacenter de 64 bits Windows Server 2012 Standard de 64 bits Windows Server 2012 Essentials de 64 bits Windows Server 2012 Foundation de 64 bits Windows Server 2008 R2 SP1 de 64 bits Datacenter Windows Server 2008 R2 SP1 de 64 bits Enterprise Windows Server 2008 R2 SP1 de 64 bits Standard Windows Server 2008 R2 SP1 de 64 bits Web Windows Server 2008 SP2 de 64 bits Datacenter Windows Server 2008 SP2 de 64 bits Enterprise Windows Server 2008 SP2 de 64 bits Standard Windows Server 2008 SP2 de 64 bits Web SQL Server Standard Windows Server 2012 Datacenter de 64 bits Windows Server 2012 Standard de 64 bits Windows Server 2012 Essentials de 64 bits Windows Server 2012 Foundation de 64 bits Windows Server 2008 R2 SP1 de 64 bits Datacenter Windows Server 2008 R2 SP1 de 64 bits Enterprise Windows Server 2008 R2 SP1 de 64 bits Standard Windows Server 2008 R2 SP1 de 64 bits Foundation Windows Server 2008 R2 SP1 de 64 bits Web Windows 8 de 32 bits Windows 8 Professional de 32 bits Windows 8 de 64 bits Windows 8 Professional de 64 bits Windows 7 SP1 de 64 bits Ultimate Windows Server 2012 Datacenter de 64 bits Windows Server 2012 Standard de 64 bits Windows Server 2012 Essentials de 64 bits Windows Server 2012 Foundation de 64 bits Windows Server 2008 R2 SP1 de 64 bits Datacenter Windows Server 2008 R2 SP1 de 64 bits Enterprise Windows Server 2008 R2 SP1 de 64 bits Standard Windows Server 2008 R2 SP1 de 64 bits Foundation Windows Server 2008 R2 SP1 de 64 bits Web Windows 8 de 64 bits
Tipo: DOCUMENTO TCNICO Cdigo: CIGI-001 Versin: 01 Ttulo: ESTNDARES PARA EL DESARROLLO DE SQL SERVER Fecha de Vigencia: 08/04/2013 Pgina: 23 de 25
Coordinacin de Informtica y Gestin de la Informacin Windows 7 SP1 de 64 bits Enterprise Windows 7 SP1 de 64 bits Professional Windows 7 SP1 de 32 bits Ultimate Windows 7 SP1 de 32 bits Enterprise Windows 7 SP1 de 32 bits Professional Windows Server 2008 SP2 de 64 bits Datacenter Windows Server 2008 SP2 de 64 bits Enterprise Windows Server 2008 SP2 de 64 bits Standard Windows Server 2008 SP2 de 64 bits Foundation Windows Server 2008 SP2 de 64 bits Web Windows Server 2008 SP2 de 32 bits Datacenter Windows Server 2008 SP2 de 32 bits Enterprise Windows Server 2008 SP2 de 32 bits Standard Windows Server 2008 SP2 de 32 bits Web Windows Vista SP2 de 64 bits Ultimate Windows Vista SP2 de 64 bits Enterprise Windows Vista SP2 de 64 bits Business Windows Vista SP2 de 32 bits Ultimate Windows Vista SP2 de 32 bits Enterprise Windows Vista SP2 de 32 bits Business Windows 8 Professional de 64 bits Windows 7 SP1 de 64 bits Ultimate Windows 7 SP1 de 64 bits Enterprise Windows 7 SP1 de 64 bits Professional Windows Server 2008 SP2 de 64 bits Datacenter Windows Server 2008 SP2 de 64 bits Enterprise Windows Server 2008 SP2 de 64 bits Standard Windows Server 2008 SP2 de 64 bits Foundation Windows Server 2008 SP2 de 64 bits Web Windows Vista SP2 de 64 bits Ultimate Windows Vista SP2 de 64 bits Enterprise Windows Vista SP2 de 64 bits Business
Recomendaciones de software mnimo para instalacin del SQL Server 2012 Developer Edicin de SQL Server 32 bits 64 bits SQL Server Developer Windows Server 2012 Datacenter de 64 bits Windows Server 2012 Standard de 64 bits Windows Server 2012 Essentials de 64 bits Windows Server 2012 Foundation de 64 bits Windows Server 2008 R2 SP1 de 64 bits Datacenter Windows Server 2008 R2 SP1 de 64 bits Enterprise Windows Server 2008 R2 SP1 64 Standard Windows Server 2008 R2 SP1 de 64 bits Web Windows 8 de 32 bits Windows 8 Professional de 32 bits Windows 8 de 64 bits Windows 8 Professional de 64 bits Windows 7 SP1 de 64 bits Ultimate Windows 7 SP1 de 64 bits Enterprise Windows 7 SP1 de 64 bits Professional Windows 7 SP1 de 64 bits Home Premium Windows 7 SP1 de 64 bits Home Basic Windows 7 SP1 de 32 bits Ultimate Windows 7 SP1 de 32 bits Enterprise Windows 7 SP1 de 32 bits Professional Windows 7 SP1 de 32 bits Home Premium Windows 7 SP1 de 32 bits Home Basic Windows Server 2008 SP2 de 64 bits Windows Server 2012 Datacenter de 64 bits Windows Server 2012 Standard de 64 bits Windows Server 2012 Essentials de 64 bits Windows Server 2012 Foundation de 64 bits Windows Server 2008 R2 SP1 de 64 bits Datacenter Windows Server 2008 R2 SP1 de 64 bits Enterprise Windows Server 2008 R2 SP1 de 64 bits Standard Windows Server 2008 R2 SP1 de 64 bits Web Windows 8 de 64 bits Windows 8 Professional de 64 bits Windows 7 SP1 de 64 bits Ultimate Windows 7 SP1 de 64 bits Enterprise Windows 7 SP1 de 64 bits Professional Windows 7 SP1 de 64 bits Home Premium Windows 7 SP1 de 64 bits Home Basic Windows Server 2008 SP2 de 64 bits Datacenter Windows Server 2008 SP2 de 64 bits Enterprise Windows Server 2008 SP2 de 64 bits Standard Windows Server 2008 SP2 de 64 bits Web Windows Vista SP2 de 64 bits Ultimate Windows Vista SP2 de 64 bits Enterprise Windows Vista SP2 de 64 bits Business Windows Vista SP2 de 64 bits Home Premium Windows Vista SP2 de 64 bits Home Basic
Tipo: DOCUMENTO TCNICO Cdigo: CIGI-001 Versin: 01 Ttulo: ESTNDARES PARA EL DESARROLLO DE SQL SERVER Fecha de Vigencia: 08/04/2013 Pgina: 24 de 25
Coordinacin de Informtica y Gestin de la Informacin Datacenter Windows Server 2008 SP2 de 64 bits Enterprise Windows Server 2008 SP2 de 64 bits Standard Windows Server 2008 SP2 de 64 bits Web Windows Server 2008 SP2 de 32 bits Datacenter Windows Server 2008 SP2 de 32 bits Enterprise Windows Server 2008 SP2 de 32 bits Standard Windows Server 2008 SP2 de 32 bits Web Windows Vista SP2 de 64 bits Ultimate Windows Vista SP2 de 64 bits Enterprise Windows Vista SP2 de 64 bits Business Windows Vista SP2 de 64 bits Home Premium Windows Vista SP2 de 64 bits Home Basic Windows Vista SP2 de 32 bits Ultimate Windows Vista SP2 de 32 bits Enterprise Windows Vista SP2 de 32 bits Business Windows Vista SP2 de 32 bits Home Premium Windows Vista SP2 de 32 bits Home Basic SQL Server Express Windows Server 2012 Datacenter de 64 bits Windows Server 2012 Standard de 64 bits Windows Server 2012 Essentials de 64 bits Windows Server 2012 Foundation de 64 bits Windows Server 2008 R2 SP1 de 64 bits Datacenter Windows Server 2008 R2 SP1 de 64 bits Enterprise Windows Server 2008 R2 SP1 de 64 bits Standard Windows Server 2008 R2 SP1 de 64 bits Foundation Windows Server 2008 R2 SP1 de 64 bits Web Windows 8 de 32 bits Windows 8 Professional de 32 bits Windows 8 de 64 bits Windows 8 Professional de 64 bits Windows 7 SP1 de 64 bits Ultimate Windows 7 SP1 de 64 bits Enterprise Windows 7 SP1 de 64 bits Professional Windows 7 SP1 de 64 bits Home Premium Windows 7 SP1 de 64 bits Home Basic Windows 7 SP1 de 32 bits Ultimate Windows 7 SP1 de 32 bits Enterprise Windows 7 SP1 de 32 bits Professional Windows 7 SP1 de 32 bits Home Premium Windows 7 SP1 de 32 bits Home Basic Windows Server 2012 Datacenter de 64 bits Windows Server 2012 Standard de 64 bits Windows Server 2012 Essentials de 64 bits Windows Server 2012 Foundation de 64 bits Windows Server 2008 R2 SP1 de 64 bits Datacenter Windows Server 2008 R2 SP1 de 64 bits Enterprise Windows Server 2008 R2 SP1 de 64 bits Standard Windows Server 2008 R2 SP1 de 64 bits Foundation Windows Server 2008 R2 SP1 de 64 bits Web Windows 8 de 64 bits Windows 8 Professional de 64 bits Windows 7 SP1 de 64 bits Ultimate Windows 7 SP1 de 64 bits Enterprise Windows 7 SP1 de 64 bits Professional Windows 7 SP1 de 64 bits Home Premium Windows 7 SP1 de 64 bits Home Basic Windows Server 2008 SP2 de 64 bits Datacenter Windows Server 2008 SP2 de 64 bits Enterprise Windows Server 2008 SP2 de 64 bits Standard Windows Server 2008 SP2 de 64 bits Foundation Windows Server 2008 SP2 de 64 bits Web Windows Vista SP2 de 64 bits Ultimate Windows Vista SP2 de 64 bits Enterprise Windows Vista SP2 de 64 bits Business
Tipo: DOCUMENTO TCNICO Cdigo: CIGI-001 Versin: 01 Ttulo: ESTNDARES PARA EL DESARROLLO DE SQL SERVER Fecha de Vigencia: 08/04/2013 Pgina: 25 de 25
Coordinacin de Informtica y Gestin de la Informacin Windows Server 2008 SP2 de 64 bits Datacenter Windows Server 2008 SP2 de 64 bits Enterprise Windows Server 2008 SP2 de 64 bits Standard Windows Server 2008 SP2 de 64 bits Foundation Windows Server 2008 SP2 de 64 bits Web Windows Server 2008 SP2 de 32 bits Datacenter Windows Server 2008 SP2 de 32 bits Enterprise Windows Server 2008 SP2 de 32 bits Standard Windows Server 2008 SP2 de 32 bits Web Windows Vista SP2 de 64 bits Ultimate Windows Vista SP2 de 64 bits Enterprise Windows Vista SP2 de 64 bits Business Windows Vista SP2 de 64 bits Home Premium Windows Vista SP2 de 64 bits Home Basic Windows Vista SP2 de 32 bits Ultimate Windows Vista SP2 de 32 bits Enterprise Windows Vista SP2 de 32 bits Business Windows Vista SP2 de 32 bits Home Premium Windows Vista SP2 de 32 bits Home Basic Windows Vista SP2 de 64 bits Home Premium Windows Vista SP2 de 64 bits Home Basic