Está en la página 1de 15

Depar t ament o de Desar r ol l o y Consul t or a www. i nf ocor p. com. uy desar r ol l o@i nf ocor p. com.

uy
nombre_cliente
Estndar de nomenclatura para
Base de Datos
tipo_documento
septiembre de 2014
Este documento describe el estndar de nomenclatura para base de datos utiliados en el departamento
de Desarrollo.Este documento contiene los formatos necesarios para cual!uier documento de ndole
"eneral.
#rc$i%o& 24'(4(2)4.doc
*"inas& 1)
+ec$a& ',2,200- .&24&00 */
#utor& 0#1& 0rupo #poyo 12cnico
Contacto& "at@infocorop.com.uy
3ersion 1.0
TABLA DE CONTENIDO
4ntroducci5n.................................................................................................................................................. '
6b7eti%o..................................................................................................................................................... '
#lcance..................................................................................................................................................... '
#udiencia.................................................................................................................................................. '
+uentes utiliadas..................................................................................................................................... '
Condiciones de uso de este documento................................................................................................... '
Con%enciones utiliadas en este documento............................................................................................ 4
1erminolo"a y definiciones....................................................................................................................... 4
0ua rpida................................................................................................................................................... )
Con%enciones de nomenclatura................................................................................................................ )
Con%enciones de 8omenclatura.................................................................................................................. (
0uas "en2ricas y buenas prcticas......................................................................................................... (
8omenclatura para los elementos de una base de datos......................................................................... (
9a base de datos o sc$ema.................................................................................................................. (
1ablas.................................................................................................................................................... -
3istas.................................................................................................................................................... -
Columns................................................................................................................................................ .
:tored *rocedures................................................................................................................................ .
+unciones definidas por el usuario........................................................................................................ .
1ri""ers................................................................................................................................................. .
1ipos de datos definidos por el usuario................................................................................................. ;
*rimary <eys.......................................................................................................................................... ;
+orei"n <eys.......................................................................................................................................... ;
4nde=es.................................................................................................................................................. ;
3ariables................................................................................................................................................ ;
#pendice #................................................................................................................................................. 10
/odelo conceptual.................................................................................................................................. 10
/#9 E7emplo........................................................................................................................................... 11
E7emplo su"erido.................................................................................................................................... 11
#pendice >................................................................................................................................................. 1'
?elaciones 1&8........................................................................................................................................ 1'
?elaciones 8&/....................................................................................................................................... 1'
#pendice C................................................................................................................................................. 14
:tored *rocedure.................................................................................................................................... 14
>4>9460?#+@#........................................................................................................................................... 1)
*"ina 2 de 1)
INTRODUCCIN
El presente documento describe la nomenclatura a utiliar en el diseAo de base de datos en el
departamento de desarrollo de 4nfocorp.
Obeti!o
El ob7eti%o de este documento es institucionaliar buenas prcticas y estandariar la nomenclatura de
nombres utiliada en el diseAo y mantenimiento de bases de datos en el departamento de desarrollo de
4nfocorp.
Alcance
Este documento aplica al diseAo y mantenimiento de base de datos en el departamento de desarrollo
4nfocorp $aciendo foco en dos mane7adores de bases de datos en particular& /: :B9 :er%er y 6racle.
*or defecto todas las indicaciones !ue se presentan aplican a todos los mane7adores a menos !ue se
especifi!ue lo contrario.
En caso de !uerer aplicar la nomenclatura para otro mane7ador de base de datosC distinto de /: :B9
:er%er u 6racleC se debe decidir si alinearse a la nomenclatura /: :B9 :er%er u 6racle definidas en este
documento en base a factores como&
1ipo de soporte case sensiti%e !ue ten"a el mane7ador y el cliente utiliado.
9a e=istencia o no de un estndar para dic$o mane7ador
Audiencia
Este documento se encuentra diri"ido a pro"ramadoresC analistasC 7efes de proyecto y especialistas
t2cnicos del departamento de desarrollo de 4nfocorpC !ue ten"an entre sus tareas realiar el diseAo o
mantenimiento de una base de datos.
"uentes utili#adas
Entre las fuentes utiliadas para la creaci5n de este documento se encuentran diferentes publicaciones
sobre nomenclatura de base de datosC las cuales son referenciadas en la secci5n de biblio"rafaC as
como tambi2n se $a intentado se"uir las prcticas utiliadas por /icrosoft en el diseAo de la base de
datos 8ort$wind.
Condiciones de uso de este documento
Dna re"la puede romperse s5lo ante raones 7ustificadasC discutidasC con pre%ia autoriaci5n del
responsable del productoC y en caso !ue no pueda aplicarse nin"una alternati%a raonable. El autor de la
e=cepci5nC obli"atoriamente debe documentar el c5di"o e=plicando la causa de la %iolaci5n de la re"la.
9as preferencias personales no se consideran una ra5n 7ustificada.
*"ina ' de 1)
Con!enciones utili#adas en este documento
#bre%iaciones Descripci5n
6>9 6bli"atorio
?EC ?ecomendado
Negrita 1e=to con 2nfasis adicional !ue debe ser considerado importante.
:iempre 4ndica !ue esta re"la DE>E ser respetadaC en los t2rminos de este manual.
Nunca 4ndica !ue esta acci5n 86 DE>E ser realiadaC en los t2rminos de este manual.
No hacer 4ndica !ue esta acci5n 86 DE>E ser realiadaC en los t2rminos de este manual.
Evitar
4ndica !ue esta prctica debe ser e%itada siempre !ue sea posibleC pero pueden e=istir
e=cepciones #D16?4E#D#: para su utiliaci5n.
Intentar 4ndica !ue esta prctica debe aplicarse siempre !ue sea posible y apropiado.
?a5n E=plica el prop5sito y las causas !ue moti%an la re"la o recomendaci5n.
Terminolo$%a & de'niciones
12rmino Descripci5n
Camel Case
Dna palabra con la primera letra en minFsculasC y la primera letra de cada una de las
palabras subsecuentes en mayFsculas.
E7emplo& customerName
/a"ic 8umber
Cual!uier literal num2rico utiliado dentro de una e=presi5n Go inicialiaci5n de %ariableH
!ue no posea un si"nificado claro. Dsualmente este t2rmino no aplica a los %alores 0 y 1
y cual!uier otra e=presi5n num2rica e!ui%alente !ue su e%aluaci5n resulte 0.
*ascal Case
Dna palabra con la primera letra en mayFsculasC y la primera letra de cada palabra
subsecuente tambi2n en mayFsculas.
E7emplo& CustomerName
Iun"arian
8otation
Comienan con una o mas letras en minFscula !ue denotan el tipo de la %ariable
E7emplo& strin" s3ariable
Dnderscore
:eparated
4ndica palabras separadas con infra"ui5n. E7emplo& CD:16/E?_DE1#49
*"ina 4 de 1)
(U)A R*+IDA
En esta secci5n se incluye un bre%e resumen de los principales estndares descriptos a los lar"o de este
documento. Estas tablas no son detalladas en sus descripcionesC pero brindan una rpida referencia a los
elementos.
Con!enciones de nomenclatura
c Camel case
* *ascal case
_ *refi7o con infra"ui5n GunderscoreH
J 8o aplica
KL 9o se encuentre contenido entre par2ntesis rectos si"nifica !ue es opcional.
M3#?N 4ndica !ue esa posici5n debe sustituirse por el %alor del campo 3#?. En el caso de la
%ariable 1#>9E se $ace la si"uente distinci5n& 1#>9E_: representa el nombre de una tabla
en sin"ular Ge7& CustomerHC mientras !ue 1#>9E_* indica el nombre de una tabla en plural
Ge7& CustomersH.
D:D Dnderscore :eparated Dpper Case
Elemento MS SQL Server Oracle
Observaciones
Base de datos MC6D81?ON_MCD:16/E?N_M:69D1468NKP#DJL

Ejemplo: UY_Infocorp_Northwind
Schema MC6D81?ON_MCD:16/E?N_M:69D1468NKP#DJL

#plica Fnicamente en 6racle
Ejemplo: UY_Infocorp_Northwind
Tablas * Q plural D:D Q plural E%itar espacios en blanco
Ejemplo: Customers
Vistas 3R_M34ER_*N E%itar espacios en blanco
Ejemplo SQL Server: vw_Sales!Countr!
Ejemplo "racle: #$_S%LESYC"UN&'Y
Stored
Procedures
* D:D E%itar el uso de prefi7osC tipo sp_ y espacios en
blanco
Ejemplos:
InsertCustomer( )et"rders!*ate
User defined
functions
* D:D
Triggers M1#>9E_:N_M6*E?#1468NK_M#DJNL Dn tri""er esta siempre asociado con una tabla y
una operaci5n y no tiene sentido fuera de ellos.
Ejemplos: "rders_Insert_#alidate*ata(
Customer_Insert_'eplicateEmail
olumns *
*ara las cla%es M1#>9E_:N4d
D:D
*ara las cla%es
M1#>9E_:N_4D
8o nombrar de forma distinta campos !ue
representen lo mismo.
Ejemplos:
"rderId( +ullName( %ddress( "rder*ate
User defined
data t!"es
C D:D Ejemplo: customerId
Primar! #e!s *S_M1#>9E_*N Ejemplo: ,-_Customers
$oreign #e!s +S_M1#>9E_*NM+4E9DN_M?E+_1#>9E_*NM?E+_+4E9DN

Ejemplo:
+-_"rdersCustomerId_CustomersCustomerId
%nde&es K4DJ_LM1#>9E_*N_M+4E9DNK_#DJL Ejemplo: "rder*etails_"rderI*_U_NC
En el e7emplo presentado _D correspondera a
Dni!ue y _8C correspondera a 8onClustered.
Variables c c
*"ina ) de 1)
CON,ENCIONE- DE NO.ENCLATURA
# continuaci5n se presentan un con7unto de "uas y buenas prcticasC as como la nomenclatura para
utiliar en el diseAo de bases de datos.
(u%as $en/ricas & buenas prcticas
1. OBL T Utili'ar nombres en ingl(s "ara todos los elementos de la base de datosC tablasC
%istasC camposC etc.
2. )E T Utili'ar nombres descri"tivos "ara los cam"os. Dtiliar nombres !ue resulten intuiti%os
y permitan entender el si"nificado de los campos Gmnemot2cnicosH. E%itar las abre%iacionesC y si
esto no es posible documentarlas bien.
'. OBLP O)*LE+ utili'ar solo ma!,sculas "ara nombrar los elementos de la base de datos+
schemas+ tablas ! cam"os-
4. )E T No nombrar cam"os .ue re"resentan lo mismo de forma distinta. 9a forma en !ue se
nombran i"uales propiedades debe ser consistente en todo un es!uema. E7emplo& 8ombrar al
campo cla%e de la tabla Customers como 4dC y despu2s referenciarlo en otras tablas como
Customer4d es 48C6??EC16. El campo debe ser nombrado Customer4d en todos los casos !ue
se !uiera almacenar una cla%e de Customers.
). )E T Evitar tener demasiadas columnas NULL*BLES en una tabla. Esto es indicio de un
es!uema poco o nada normaliado. +alta de normaliaci5n puede conlle%ar problemas de
consistencia en los datos en la medida !ue un mismo campo se puede terminar almacenando en
%arias tablas. E=cesi%a normaliaci5n puede tener asociada una perdida de performance en
ciertas operaciones sobre la base de datos. Es necesario encontrar el e!uilibrio correspondiente
a los re!uerimientos de cada proyecto en este punto. Como re"la "eneral la tercera forma normal
es un buen punto intermedio.
(. )E T Evitar tener tablas sin definici/n de "rimar! #e!s.
-. )E T Evitar tener tablas innecesarias en el sistema. Dn buen diseAo es uno simple G<eep it
simple UH
.. )E T %ntentar evitar el uso de c/digo "ro"ietario en la definici5n de e=presiones :B9..
4ntentar utiliar c5di"o :tandard :B9P;2.
Nomenclatura para los elementos de una base de datos
En esta secci5n se presenta la nomenclatura definida para los distintos elementos de una base de datos.
La base de datos o sc0ema
9a base de datos :B9 :er%er o los sc$emas 6racle debern nombrarse usando la si"uiente
nomenclatura&
M*#4:N_MC94E81EN_M:69DC468NKP#DJL
Donde se reser%a #DJ para diferenciar dos bases de datos o sc$emas correspondientes a una misma
solucion.
E7emplo&
DO_4nfocorp_8ort$wind
DO_4nfocorp_4CRor<flowP4CC/
*"ina ( de 1)
Tablas
9as tablas deben nombrarse&
en pluralC
en in"l2s
sin utiliar espacios en blanco
:i el nombre es compuesto solo la Fltima palabra debe ir en plural. *or e7emplo& *roduct:ales es
correcto mientras !ue *roducts:ales NO es correcto.
MS SQL Server
Deben nombrarse usando notaci5n pascal.
E7emplo& ustomersC Orders
O)*LE
Deben nombrarse con notaci5n Dnderscore :eparatedC en mayFsculas.
E7emplos& USTOME)SC O)0E)S
En a!uellos escenarios en donde se !uiera a"rupar tablas se"Fn cierta l5"ica del ne"ocio se
puede a"re"ar un prefi7o !ue permita esto. *or e7emploC si en un mismo es!uema se !uieren
almacenar empleados del departamento de recursos $umanos se pueden definir de la si"uiente
manera&
I?_E/*96OEE:
,istas
9as %istas deben nombrarse con la misma notaci5n definida para nombrar tablasC pero prefi7adas usando
V12.
E7emplo&
/: :B9 :er%er& %w_:ales>yCountryC
6racle& 3R_:#9E:_>O_C6D81?O
*"ina - de 1)
Columns
9os campos de una tabla corresponden a los atributos de una entidadC describen propiedades de la
misma.
9as columnas deben ser nombradas se"Fn los lineamientos a continuaci5n&
1. 9os nombres deben ser simplesC representati%os e intuiti%os.
2. 9os nombres de las columnas de una tabla deben estar e=presados en singular.
'. El campo clave de una tabla de nombrarse como el nombre de la tabla mas el sufi7o %d. E7emplo&
*ara una tabla de clientes CustomersC se definiran las cla%es&
o /: :B9 :er%er& Customer4dC
o 6racle& CD:16/E?_4D.
4. Campos !ue representen la misma entidad del mundo realC deben estar nombrados de la misma
manera en todas las tablas de un es!uema. *or e7emplo nombrar la cla%e de la tabla Sales en
una tabla como SalesId y en otra SalesKey es incorrecto.
). :e desaconse7a prefi7ar sistemticamente 16D6: los campos de una tabla con el nombre de la
tabla o una abre%iaci5n del mismo. Entendemos !ue esto a"re"a un ni%el de redundancia y
comple7idad al sistema !ue no es necesario en mane7adores modernos.
MS SQL SE)VE)
Dsar notaci5n *ascal
O)*LE
Dsar notaci5n Dnderscore :eparated
-tored +rocedures
9os stored procedures son un espacio estndar para incluir l5"ica en la base de datosC e=presada en un
len"ua7e de scriptin" !ue e=tiende :B9. 9os :* pueden ser in%ocados utiliando :B9 estndar desde
una aplicaci5nC mediante la instrucci5n EJEC.
9os stored procedures deben ser nombrados se"Fn la si"uiente nomenclatura&
MS SQL SE)VE)
Dsar notaci5n *ascal
E7emplo& 4nsertCustomer
O)*LE
Dsar notaci5n Dnderscore :eparated
E7emplo& 48:E?1_CD:16/E?
El c5di"o :B9 e=tendido de un stored procedure debe ir en /ayFsculas. 3er ap2ndice C como e7emplo.
"unciones de'nidas por el usuario
9as funciones definidas por el usuario son un mecanismo no totalmente estndar para incluir l5"ica en la
base de datosC e=presada en un len"ua7e de scriptin" !ue e=tiende :B9.
9a nomenclatura definida es la misma !ue para los stored procedures.
Tri$$ers
Dn tri""er es l5"ica alo7ada en la base de datos asociada a una determinada acci5n sobre una tabla. 9a
l5"ica es disparada cuando ocurre la acci5n correspondiente.
Dn tri""er no tiene sentido fuera de una tabla y un tri""er tiene asociada siempre una operaci5nC por lo
!ue dic$a informaci5n debe estar asociada al nombre del tri""er.
*"ina . de 1)
M1#>9#N_M6*E?#C468NK_#DJL
E7emplo& Customer_4nsert_4nsert4nDsers
Tipos de datos de'nidos por el usuario
9os tipos de datos definidos por el usuario son un mecanismo para mantener la consistencia de tipos en
la base de datos. Cuando un mismo tipo de datos es utiliado en %arias tablasC en %e de definirlo cada
%e por separadoC se define un Vuser defined data typeW para lue"o referenciarlo desde todas ellas y
mantener as centraliada su definici5n.
MS SQL SE)VE)
Dsar notaci5n *ascal
E7emplo& Customer4d
O)*LE
Dsar notaci5n Dnderscore :eparated
E7emplo& CD:16/E?_4D
+rimar& 1e&s
9a cla%e primaria es un con7unto de campos !ue identifica de forma Fnica un re"istro en una tabla. :on
un caso particular de un ndice. 9a nomenclatura es la si"uiente&
*S_M1#>9#N
E7emplo& *S_Customers
"orei$n 1e&s
9as forei"n <eys son usadas para definir %nculos entre tablas relacionadas. Dna forei"n <ey establece
una relaci5n entre una o ms columnas de una tabla y la cla%e primaria de la tabla referenciada. Como
patr5n para la nomenclatura de la forei"n <ey ele"imos el si"uiente.
FK_<TABLA_QUE_REFERENCIA>+<CAMPO_QUE_REFERENCIA>_<TABLA_REFERENCIADA>+<CAMPO_REFERENCIADO>
>asado en el patr5n dadoC %oy a nombrar la forei"n <ey !ue referencia el campo CD:16/E?_4D de la
tabla CD:16/E?: desde la tabla 6?DE?: y el campo CD:16/E?_4D como &
+S_6?DE?:CD:16/E?4D_CD:16/E?:CD:16/E?4D
Inde2es
9os ndices son un mecanismo para aumentar la eficiencia de localiaci5n y acceso de un re"istro en una
tabla en la base de datosC opcionalmente ase"urando unicidad de los %alores del ndice. 9a definici5n de
ndices tiene un impacto positi%o en los tiempos de consulta de re"istro y uno ne"ati%o en los de inserci5n
y actualiaci5n de los campos del ndice.
9os ndices estn asociados a una tabla y a un con7unto de campos de la tablaC a su %e pueden ser
Fnicos o no y pueden estar definidos en cluster o no. 9a nomenclatura ele"ida para nombrarlos es la
si"uiente&
K4DJ_LM1#>9#N_MC#/*6NK_#DJL
*refi7ar el ndice es opcionalC pero de $acerlo se debe usar el prefi7o especificado.
E7emplo& 6rderDetails_6rder4d_D_8C
El e7emplo corresponde a un ndice definido sobre la tabla 6rderDetailsC sobre el campo 6rder4dC unico y
nonclustered.
,ariables
Cuando las %ariables corresponden columnas de una tablaC deben ser nombrados de la misma manera
!ue la columna. 9a notaci5n ele"ida para definir las %ariables es camel. 3er ap2ndice C como e7emplo.
*"ina ; de 1)
A+ENDICE A
En esta secci5n se presenta un modelo conceptual para el cual se desarrollan dos es!uemas
relacionalesC el primero como e7emplo de lo !ue 86 se debe $acerC mientras !ue el se"undo se"Fn las
prcticas su"eridas.
.odelo conceptual
El dia"rama a continuaci5n representa una realidad $ipot2tica cuya informaci5n se !uiere almacenar en
base de datos..
En esta realidad e&isten com"a34as .ue
tienen "roductos- Los "roductos son
vendidos a clientes+ mediante ordenes
de com"ra-
Una misma orden de com"ra "uede
utili'arse "ara com"rar varios "roductos
de una com"a34a
El "recio de los "roductos "uede variar
con el tiem"o+ "ero se debe almacenar
con el "recio .ue fue vendido en cada
ocasi/n-
)estricci/n no estructural5 Una
com"a34a solo emite ordenes de com"ra
de los a.uellos "roductos .ue "osee-
*"ina 10 de 1)
.AL Eemplo
El si"uiente es un mal diseAo de es!uema relacional para la realidad anteriormente planteada.
67 Me'cla idiomas
87 Tablas en singular
97 Un mismo cam"o
recibe distintos
nombres
:7 No define $;
<7 No define P;
=7 Las entidades Orders
! Order%tems residen
en una misma tabla+
cam"os redundantes
>no es 9N$?
@7 *breviaciones
A7 Pascal case no
res"etado
Eemplo su$erido
El si"uiente es el e7emplo su"erido de diseAo para la realidad anteriormente planteada&
*"ina 11 de 1)
6bser%aciones&
omo criterio se "refiBaron con el
nombre de la tabla a.uellas columnas
cu!os nombres se encuentran
re"etidos en varias tablas+ "ara evitar
"roblemas de ambigCedad en las
consultas
En la tabla Orders se define una clave
de un solo cam"o "ara evitar incluir
el cam"o om"an!%d en la clave de
Order%tems
*"ina 12 de 1)
A+ENDICE B
En esta secci5n se presentan "uas para la definici5n de es!uemas relacionales se"Fn un modelo
conceptual.
Relaciones 34N
*ara la definici5n de tablas !ue correspondan a una relaci5n 1&8 como puede ser la si"uiente&
Una com"a34a em"lea 6--N em"leados
:e su"iere utiliar una estructura de tablas como la si"uiente&
Relaciones N4.
*ara la definici5n de tablas !ue correspondan a relaciones 8&/ com puede ser la si"uiente&
Un doctor atiende N "acientes+ ! un "aciente
es atendido "or M doctores-
:e su"iere utiliar una estructura de tablas como la si"uiente&
*"ina 1' de 1)
A+ENDICE C
En esta secci5n se presenta un e7emplo de stored procedure /: :B9 :er%er !ue si"ue la nomenclatura
propuesta&
-tored +rocedure
CREATE +ROCEDURE dbo5DeleteRoleB&Name
6name n!arc0ar789:;
A-
DECLARE 6roleID int< 6'rstOpError tin&int
E=EC (etRoleIdB&Name 6name< 6roleID OUT
I" 76roleID I- NULL; RAI-ERROR7>No Role ?it0 t0at name>< 3:< @@;
BE(IN
BE(IN TRAN-ACTION
DELETE "RO. UserRoles
ABERE RoleID C 6roleID
-ELECT 6'rstOpError C 66ERROR
DELETE "RO. Roles
ABERE RoleID C 6roleID
I" 766ERROR C D; AND 76'rstOpError C D;
CO..IT
EL-E
ROLLBACE
END
RETURN
*"ina 14 de 1)
BIBLIO(RA")A
1. Data 6b7ect 8amin" con%entions by SondreddiC 8arayana 3yas
G$ttp&,,%yas<n.tripod.com,ob7ect_namin".$tmH
2. 1en 1$in"s 4 $ate about you by Cel<oC Xoe
G$ttp&,,www.intelli"ententerprise.com,00120),cel<o1_1.7$tml H
'. Estndar de nomenclatura para bases de datos 6racleC 4nfocorp
*"ina 1) de 1)

También podría gustarte