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

Es un error de integridad de datos??

Estas en el tema de Es un error de integridad de datos?? en el foro de Bases de Datos General en Foros del Web. Es una pregunta que me surge de una conversación con un personal de una empresa donde hice una prueba, en la realización de esta prueba ...
  #1 (permalink)  
Antiguo 29/03/2011, 15:56
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Es un error de integridad de datos??

Es una pregunta que me surge de una conversación con un personal de una empresa donde hice una prueba, en la realización de esta prueba me pidieron una tabla clientes y no coloque un id para ser el PK sino que le declare PK a la cedula de identidad del cliente(numero de identificación o como lo llamen en su pais), entonces me dicen que esto es un error de integridad ya que al hacer la relación con claves foráneas tendriamos un error de este tipo, aunque no lo dijo directamente practicamente me indico que debia tener un id como PK, yo le dije que he echo relaciones de este tipo con claves foraneas pero el insistio que es un error para no seguir discutiendo dije bueno aprendi algo nuevo, pero entonces es esto un error de integridad??? el colocar un campo cedula como PK?? bueno yo para matar mi duda me decidi a plantearla en el foro, espero que me puedan aclarar este punto, gracias de antemanos por sus respuestas saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #2 (permalink)  
Antiguo 30/03/2011, 01:11
Avatar de Heimish2000  
Fecha de Ingreso: enero-2011
Ubicación: Madrid
Mensajes: 844
Antigüedad: 13 años, 3 meses
Puntos: 89
Respuesta: Es un error de integridad de datos??

No es ningún error, la PK lo que tiene que hacer es identificar unequivocamente el registro, no tiene por qué ser un id numerico autoincrementado, puede ser perfectamente la cedula de identidad.

Aunque cuidado, porque en paises hay cedulas de identidad iguales, aunque en teoría no se debe dar, en la práctica se da.
  #3 (permalink)  
Antiguo 30/03/2011, 05:39
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, 4 meses
Puntos: 2658
Respuesta: Es un error de integridad de datos??

Como agregado a lo que ya te comentó Hemlish2000, cuando cursas la asignatura en la Universidad no sólo te dan esa explicación (la PK no necesariamente es numérica, ni autoincremental), sino que además se aclara que determinar las claves candidatas (CC) de una tabla son una parte importante del proceso de normalización, y sólo es justificable usar claves numéricas (autoincrementales o no), si llegados a la 3FN aún no se ha encontrado una CC.
Además, hay un problema adicional y es que el uso de PK numericas incrementales en bases de datos produce serios problemas en el caso de necesitar integrar y consolidar datos, por cuanto datos provenientes de diferentes bases o diferentes servidores pueden usar la misma PK para diferentes datos de tablas iguales. Imagina un sistema de clientes distribuido en diferentes bases y sucursales., que no esté completamente integrado...
Obviamente hay soluciones para eso, pero no son ni por asomo tan prácticas como buscar un ID con atributos propios de la tabla tales que en todo el universo posible de instancias no se pueda repetir.

Los números de documentos son prácticos, dependiendo de qué documentos y cómo se gestionan, pero eso depende de cada país.

Lo que sí puedo asegurarte es que el uso de ID autoincrementales es un vicio de los programadores, y no de los arquitectos de datos. Son fáciles de usar, fáciles de programar, y parecen eficientes. Pero a la larga son problemáticos.
Si el tipo te dijo que una PK debe ser numerica y autoincremental, yo diría dos cosas: 1) Es un programador, 2) no ha leído nunca los trabajos de T.J. Teory, D. Yang, J.P. Fry del modelo entidad-relacion, ni tampoco los Fundamentos de Bases de Datos de H. F. Korth y A. Silberschatz, sobre los que se basa nel desarrollo de las bases de datos relacionales.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #4 (permalink)  
Antiguo 30/03/2011, 19:43
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Es un error de integridad de datos??

Gracias por sus comentarios, como siempre excelentes y explicativos, como podran imaginar por el post yo no crei y ni siquiera vi etico lo que me dijo pero no me gusta entrar en discusiones con personas que no daran el brazo a torcer y creen que se las saben todas, aunque puedo decir que al leer las respuestas hoy aprendi algo nuevo voy a leer los link que que indico el amigo gnzsoloyo para aprender un poco más porque con la clase majistral que dio el día de hoy puedo decir que como dijo el soy un programador saludos y gracias por las aclaraciones, saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #5 (permalink)  
Antiguo 31/03/2011, 07:16
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, 4 meses
Puntos: 2658
Respuesta: Es un error de integridad de datos??



Cuando estudiaba la materia en la Universidad, el profesor decía que la forma de ver las cosas era muy diferente entre programadores y DBA, y a mí me parecía que exageraba.
Pero andando el tiempo me centré en el desarrollo de bases de datos, y pude ver (después de varias muy largas discusiones por el asunto con los del equipo de desarrollo), que realmente tenía razón: Se ven las cosas de una forma completamente diferente, aunque se tratara del mismo problema.
Finalmente mi solución fue exactamente la misma que en su momento el profesor dijo: Hay que preguntarles a los programadores qué necesitan, pero aclararles que el cómo se haga es asunto tuyo...
Cita:
"Zapatero, a tus zapatos..."
En estas ciencias hay que ser versátil, pero no se puede cruzar de un lado a otro tan fácilmente...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #6 (permalink)  
Antiguo 31/03/2011, 20:08
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Es un error de integridad de datos??

Cita:
Iniciado por gnzsoloyo Ver Mensaje


Cuando estudiaba la materia en la Universidad, el profesor decía que la forma de ver las cosas era muy diferente entre programadores y DBA, y a mí me parecía que exageraba.
Pero andando el tiempo me centré en el desarrollo de bases de datos, y pude ver (después de varias muy largas discusiones por el asunto con los del equipo de desarrollo), que realmente tenía razón: Se ven las cosas de una forma completamente diferente, aunque se tratara del mismo problema.
Finalmente mi solución fue exactamente la misma que en su momento el profesor dijo: Hay que preguntarles a los programadores qué necesitan, pero aclararles que el cómo se haga es asunto tuyo...
En estas ciencias hay que ser versátil, pero no se puede cruzar de un lado a otro tan fácilmente...
que me abra querido decir?? jaja bueno es verdad zapatero a su zapato es muy diferente ver una base de datos diseñada por un programador que por un verdadero DBA, yo no conozco muchos DBA pero hubo uba DB que me mostraron diseñada por uno y me dio pena mostrar alguna de las que he diseñado yo directamente saludos y gracias por tu aclaratorias y comentarios
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #7 (permalink)  
Antiguo 01/04/2011, 03:37
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, 4 meses
Puntos: 2658
Respuesta: Es un error de integridad de datos??

Lo siento, no estaba pensando en tí cuando puse el refrán, sino en los miembros de mi equipo, los que querían decirme a mí cómo se diseñaba la base (según ellos), y yo tenía que escucharlos con estoica paciencia mientras pensaba "Este estudió antes de la era del SQL..."
¡Tenía cada uno...! Estaban tan concentrados con lo visual que parecían haber olvidado todo lo que estudiaron del tema.

Trata de que no te pase...

PD: Yo tambien programo parte de las cosas, porque a veces el tiempo no alcanza, así que miro el puente de los dos lados.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #8 (permalink)  
Antiguo 01/04/2011, 20:20
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Es un error de integridad de datos??

En realidad tienes razón en lo que dices cada quien a lo que esta echo aunque como persona del area de desarrollo tienes que tener conceptos claros de ambas cosas, personalmente me voy mas a programación aunque no descarto hacer un diseño de BD, saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way

Etiquetas: integridad, bases-de-datos
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 12:33.