Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Dependencias funcionales e id de una tabla

Estas en el tema de Dependencias funcionales e id de una tabla en el foro de Bases de Datos General en Foros del Web. Buenas A la hora de hallar las dependencias funcionales me surge la duda de si dejar el id de la tabla (numero de autoincrement inventado ...
  #1 (permalink)  
Antiguo 02/01/2010, 05:06
Avatar de IMAC/  
Fecha de Ingreso: octubre-2005
Mensajes: 738
Antigüedad: 18 años, 6 meses
Puntos: 14
Dependencias funcionales e id de una tabla

Buenas

A la hora de hallar las dependencias funcionales me surge la duda de si dejar el id de la tabla (numero de autoincrement inventado por mi para identificar a una fila de forma rápida y agilizar las búsquedas) y trabajar también con sus dependencias, o eliminarlo y hacer como que no existiera.

Es decir, si tengo la tabla:

(idUsuario, dni, nombre, calle)

Extraer como dependencias funcionales:
idUsuario --> dni, nombre, calle
dni--> nombre, calle

O simplemente:
dni-->nombre, calle


Tras hacer el recubrimiento minimal me saldría la clave candidata.
Si tengo ya el idUsuario, ¿ para qué la quiero?

Gracias.
  #2 (permalink)  
Antiguo 02/01/2010, 07:58
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Dependencias funcionales e id de una tabla

Si ya tienes una CC, ¿pará qué necesitas el idUsuario? ¿Por qué crees que usar un id autoincremental te facilitaría o mejoraría la performance de las consultas?
Ten en cuenta de que si ya tienes una CC, significa que ya la relación está en 3FN, por lo que agregar una clave primaria artificial solamente le agrega bytes al registro, pero no produce ningún tipo de mejoras (y en todo caso puede complicar migraciones futuras de datos).
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 02/01/2010, 11:47
Avatar de IMAC/  
Fecha de Ingreso: octubre-2005
Mensajes: 738
Antigüedad: 18 años, 6 meses
Puntos: 14
Respuesta: Dependencias funcionales e id de una tabla

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Si ya tienes una CC, ¿pará qué necesitas el idUsuario? ¿Por qué crees que usar un id autoincremental te facilitaría o mejoraría la performance de las consultas?
Ten en cuenta de que si ya tienes una CC, significa que ya la relación está en 3FN, por lo que agregar una clave primaria artificial solamente le agrega bytes al registro, pero no produce ningún tipo de mejoras (y en todo caso puede complicar migraciones futuras de datos).
Para realizar búsquedas por ejemplo.
Es mucho más rápido buscar por un número que por la combinación de un campo varchar2 y otro date por ejemplo.
O que por un DNI.
  #4 (permalink)  
Antiguo 02/01/2010, 14:07
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Dependencias funcionales e id de una tabla

Si estuvieses hablando de índices HASH, INDEX o BTREE, estaría de acuerdo contigo parcialmente.
Pero estás hablando de índices primarios. En ese caso la performance no se establece solamente por los tipo de campo. Las claves primarias numéricas son beneficiosas fundamentalmente en los JOIN, pero no necesariamente en los WHERE o SELECT.
Incluso, si el o los campos definidos en los SELECT se encuentran en el índice, MySQL ni siquiera lee las tablas, y esto es algo que difícilmente puedas hacer usando autoincrementales en tu caso, donde la PK no sería lo que buscas realmente...

En fin, la idea es: fuerza la existencia de una clave sólo si es necesario. Hacerlo por supuestas ventajas hará reducir la performance eventualmente, cuando no sea esa la clave que necesites usar.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: tablas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:54.