Convenciones de Nomenclatura de Bases de datos por Microsoft?


Encontré Pautas de nomenclatura de MSDN, pero ¿es alguna pauta para la base de datos MSSQL de Microsoft?

Author: OMG Ponies, 2010-08-29

3 answers

Las convenciones de nomenclatura utilizadas en la base de datos de SQL Server AdventureWorks demuestran muchas prácticas recomendadas en términos de estilo.

Para resumir:

  • Los nombres de objetos se entienden fácilmente
  • Los nombres de las tablas no están pluralizados (Tabla" Usuario "no"Usuarios")
  • Las abreviaturas son pocas, pero están permitidas (es decir, Cantidad, Amt, etc.)
  • PascalCase utilizado exclusivamente con el excepción de ciertos nombres de columna (es decir, rowguid)
  • No hay guiones bajos
  • Ciertas palabras clave están permitidos (es decir, Nombre)
  • Los procedimientos almacenados se preceden con "usp"
  • Las funciones están precedidas por"ufn"

Puedes encontrar más detalles aquí:

Una advertencia: las convenciones de nomenclatura de bases de datos pueden ser muy controvertidas y la mayoría de los desarrolladores de bases de datos que he conocido tienen un interés personal en su estilo. He escuchó acalorados argumentos sobre si una tabla debería llamarse "OrderHeader" o "OrderHeaders"."

 110
Author: 8kb,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-09-04 13:10:48

No, no hay, pero las prácticas en el enlace que proporcionaste son buenas para tener en cuenta.

Con respecto a nombrar procedimientos almacenados-do no prefijalos con" sp_ " Puedes leer más sobre por qué en este enlace :

" No prefijar procedimientos almacenados con sp_, porque este prefijo está reservado para identificar el sistema almacenado procedimiento."

 11
Author: OMG Ponies,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-08-29 05:23:20

No se lo que significa "mejores prácticas en términos de estilo" en la respuesta de @8kb (en el momento de escribir). Ciertamente, algunos de los elementos listados ("Los nombres de las tablas no están pluralizados", "No hay guiones bajos", etc.) son meras opciones de estilo que son obviamente subjetivas. Habría pensado que las preferencias personales del jefe del equipo de documentación serían el factor más importante aquí.

En lo que respecta a la heurística en SQL en general (a diferencia de SQL propietario como T-SQL), no hay más que un libro sobre el tema: El estilo de programación SQL de Joe Celko.Muchas de las opciones para la base de datos AdventureWorks de SQL Server entran en conflicto con las directrices de Celko.

La convención de nomenclatura de Celko se basa en la norma internacional ISO 11179 por ejemplo, especifica que se debe usar un carácter delimitador (como un subrayado) para separar elementos en un nombre. Otras opciones de estilo son igualmente copia de seguridad por la investigación, por ejemplo, utilizando exclusivamente letras minúsculas para los nombres de las columnas para ayudar a escanear por el ojo humano. Sin duda hay preferencias personales subjetivas allí también, pero se basan en muchos años de experiencias en el campo.

En el lado positivo, las cosas han mejorado en los documentos de SQL Server en los últimos años, por ejemplo, las palabras clave SQL en mayúscula, punto y coma para separar las instrucciones, etc. Adventure works es una gran mejora en Northwind y pubs. Ahora, ¿por qué la función de scripting en Management Studio no puede escupir código que es un poco más fácil a la vista?!

 5
Author: onedaywhen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-10-28 07:41:59