Ver Mensaje Individual
  #6 (permalink)  
Antiguo 04/10/2006, 03:02
Avatar de MACGREGOR
MACGREGOR
 
Fecha de Ingreso: enero-2005
Mensajes: 89
Antigüedad: 19 años, 4 meses
Puntos: 0
De acuerdo

Hola de nuevo.

Tengo que puntualizar una cuestión respecto a la integridad de la DB.
Si se añade una clave numérica en lugar de una compuesta es cierto que
se desnormaliza la Base de Datos.

Si no recuerdo mal se incumple la BCNF 4ª Forma Normal (Boyce Codd Normal Form), pero no porque se pierda la integridad referencial, sino porque existe la posibilidad de añadir duplicidad de datos y por tanto la redundancia de los mismos. (No tiene porqué existir inconsistencia en los datos).

Esto sucede porque el SGBD ya no nos asegura que no puedan existir duplicados en lo que en mi anterior mensaje llamé la clave alternativa. De ahí
mi incapié en que debemos ser nosotros en ese caso los que realicemos esa
comprovación en lugar de dejar que el SGBD la realice de forma automática.

Personalmente creo que este punto no es crítico ya que se és consciente de
que hay que realizar una comprovación antes de cada inserción en ese tipo
de tablas.

Por otro lado también hay que tener en cuenta que los SGBD no implementan
todas las Formas Normales del esquema Relacional de Bases de Datos.

(Vuelvo a hacer referencia a Oracle ya que fué el primer SGBD y en mi opinion personal el más potente).

Por ejemplo, Oracle 8 únicamente implementaba las 3 primeras Formas Normales y en la versión 9i se incluyó la forma normal de Boyce codd, 3ª de Boyce Codd (BCNF) (a efectos practicos se pude considerar la 4ª forma normal).

Teniendo en cuenta estas consideraciones hay que ser conscientes de que no es una buena práctica añadir por sistema una clave primaria numérica e ignorar una clave compuesta.

Se puede tener en cuenta este "truco" si la clave compuesta lo está por muchos campos, especialmente si no són numéricos (en tu caso decías entre 6 y 8 campos) y la tabla contiene muchos registros que van a ser consultados con mucha frecuencia.

No me quedaba tranquilo si no explicaba esto.

Un saludo.