Foros aprenderaprogramar.com
Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: felix en 23 de Agosto 2015, 01:22
-
Hola...quisiera que me saquen de dudas sobre el atributo clave de una entidad..tengo entendido que un atributo clave puede ser un atributo que lo identifique de forma única a la entidad o también puede estar formada por varios atributos juntos
mi duda es la siguiente
En caso de tener estos dos atributos como clave de la entidad PERSONA
DNI y fecha de nacimiento (atributos claves)
ejemplo
DNI Fecha de Nacimiento
14785 12-04-06
84212 12-04-06
Solo las puse de ejemplo a estos atributos..pero mi duda es que si dos atributos juntos identifican como atributo clave a la entidad PERSONA no se tiene que repetir por que se supone que los dos atributos tienen que ser únicos osea que la fecha de nacimiento tiene que ser única y no repetirse tal como lo muestro en el ejemplo ...por favor sáquenme de dudas es este caso el ejemplo que les puse esos dos atributos no son un atributo clave ya que fecha de nacimiento se repite y aunque DNI no se repita este par de atributos no son atributos claves de la entidad...Es Verdad Eso o Estoy mal??
-
Hola felix!
En el ejemplo que has puesto:
1) La clave DNI-Fecha de Nacimiento es una clave compuesta y para que hubiera un conflicto o coincidencia de clave entre dos registros tendrían que ser exactamente iguales. Por tanto no ocurriría nada porque dos fechas de nacimiento fueran iguales siempre que se cumpliera siempre que los DNI fueran distintos.
2) Usar como clave primaria DNI-Fecha de Nacimiento no es una buena idea. El motivo es que las fechas de nacimiento pueden coincidir fácilmente, con lo cual son poco útiles de cara a servir como identificador. Y por otro lado, el DNI es un número identificativo que se supone que no puede coincidir. Sin embargo, en ocasiones hay errores por parte de la administración, o también errores en las empresas a la hora de introducir el dni de sus empleados, etc. de modo que por error podrían aparecer dos personas que tienen el mismo dni y la misma fecha de nacimiento. La probabilidad es baja, pero podría ocurrir. Esto no es aceptable.
La solución sería usar una clave primaria que fuera un contador autoincremental generado por la propia base de datos, lo que se suele llamar un Id, en este caso sería un IdPersona. Este número es generado por al propia base de datos cada vez que se añade un registro y siempre se incrementa en una unidad, de modo que es imposible que haya repeticiones.
En el ejemplo
id_persona DNI Fecha de Nacimiento
1 14785 12-04-06
2 84212 12-04-06
etc.
Saludos!
-
Muchas gracias César Krall ..me sacaste de dudas
Saludos¡
Gracias¡