jueves, 27 de febrero de 2020

Nombrando tablas en singular

No se entrará aquí en describir las diversas batallas sobre el número, singular o plural, que debe ser atribuido al nombre de la tabla, sino que se sugiere aplicar los criterios de representatividad, simplicidad y homogeneidad. ¿De qué sirve que una tabla se declare en plural? ¿Qué aporta que esté en singular? 

Una tabla comprende un conjunto de registros: si almacenamos manzanas, serán múltiples instancias de una manzana; si almacenamos vehículos, contendrá varios vehículos.

Para llegar a una decisión, imaginemos que nuestro sistema gestor de bases de datos guarda información sobre vehículos de cuatro ruedas (y repuesto), de los cuales se pretende almacenar la presión de cada una de las cinco ruedas. Se proponen dos posibles implementaciones: la primera implementación utiliza una tabla para almacenar las ruedas, de manera que cada rueda se corresponde a un registro; en la segunda implementación, se utiliza un registro con cinco campos, uno por cada rueda, más el campo correspondiente para referenciar el al vehículo.

Supongamos ahora que utilizamos el criterio plural para denominar ambas tablas: la primera se denominaría Ruedas, al igual que la segunda, lo cual, a primera vista, no sugeriría diferencia alguna. No obstante, puede plantearse otro criterio, más cercano a las fases de análisis estructurado en el paradigma de orientación a objetivos, en el cual la singularidad o pluralidad se refiere a cuántos componentes del elemento representado contiene una única instancia de éste. En ese caso y en la primera implementación, dado que cada registro (instancia) representa una única rueda, la tabla (o clase equivalente) se llama Rueda; en la segunda implementación, cada registro (instancia) representa a varias ruedas, por lo que la tabla sí se denominaría Ruedas. De esta forma, las consultas de la primera y segunda implementación serían respectivamente de la forma:

SELECT Rueda.Presion [...]

SELECT Ruedas.Rueda1Presion, Ruedas.Rueda2Presion, [...]

Esto resulta más natural y es lo que se recomienda [ROB04], ya que en el primer caso queremos saber la presión de la única rueda del registro (y de ahí el singular), y en el segundo caso tenemos un conjunto de ruedas por registro.

Concluimos diciendo que la justificación del uso del plural bajo el prisma de que una tabla contiene más de un registro no es irrazonable, pero este uso del plural no aporta nada: también podría sostenerse que una clase es una bolsa que contiene a todas sus instancias, teniendo en cuenta que una tabla es a un registro lo que una clase es a un objeto y, en consecuencia, las clases también debería llamarse en plural. El uso del singular, como se ha aconsejado, es más ilustrativo y homogéneo con el paradigma de orientación a objetos y el análisis del dominio del problema.

jueves, 20 de febrero de 2020

Designación de nombres en las bases de datos

La designación de nombres en las bases de datos debe seguir una filosofía similar a la de cualquier denominación que realicemos en el campo de la ingeniería de la información: representatividad, simplicidad y homogeneidad. Partiendo de estas tres premisas y del hecho de que el diseño debe ser comprendido no sólo por su desarrollador, concluir la nomenclatura más óptima para los criterios de nuestra base de datos no es tarea complicada.

Se aconseja:

  •  Para nombrar los campos y las tablas se usará la notación Pascal: palabras directamente unidas y primera letra de cada una en mayúsculas, obviando tildes, determinantes y preposiciones; por ejemplo: Cliente, Valor, TipoDocumento.
  • Asimismo y por claridad, los campos y tablas se nombrarán mediante términos representativos y completos. No se eliminarán vocales ni se recortarán palabras; así, nombres como Vehic, Nmbr, FchNcm no se aconsejan, y sí se hará con Vehiculo, Nombre, FechaNacimiento.
  • Para evitar redundancia, los campos no contendrán ninguna referencia la tabla; esto es, si la tabla se llama Persona y debe contener el DNI, nombre y apellidos, los campos serán Dni, Nombre y Apellidos, pero no campos con aspecto PersonaDNI, NombrePersona o similar.
  • Los nombres de las tablas se escribirán en singular salvo que cada registro comprenda múltiples representaciones del elemento denominado.