FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Index Unique o Unique Contraint????
Alguien me puede explicar cual es la diferencia de usar un indice unico o aplicar una constraint unica sobre una columna?
No veo la diferencia ya qye en delphi aparecen ambos como indices y se los pueden utilizar. Saludos a todos |
#2
|
||||
|
||||
Pues lo yo tengo entendió q el Índice único es una marca que le "indica" al motor q no hay mas datos y con encontrar uno ya puede devolver el valor encontrado y parar la búsqueda, mientras q el constraint único es una forma de validar q no se ingresen valores repetidos, por lo cual con los índices se tiene mayor velocidad q con los constraint
|
#3
|
|||
|
|||
Hola foro,
Bueno desde el punto de vista de diseño de bases de datos, una UK (llave unica) es una llave alternativa, es decir, similar a una llave primaria en el sentido que no puede haber mas de una instancia (registro) con el mismo valor para esa llave. Voy a poner un caso en que he utilizado llaves unicas. Imaginemonos un sistema contable y tenemos una tabla para terceros (clientes, proveedores, etc). Uno podria colocar como identificador para la tabla PK (llave primaria) el documento de identidad de la persona, pero sucede que los errores de los digitadores ya en un entorno de produccion son muy altos y es normal que se equivoquen en digitar los documentos. Cambiar el valor de la llave primaria desencadenaria actualizaciones en cascada a las tablas asociadas. En cambio, si identificamos los terceros con un UID (Identificador unico), por medio de un generador y creamos un UK para el documento de identidad, evitariamos que se digitaran dos documentos de identificacion iguales y dado el caso que se tenga que corregir un documento, no se dispararian actualizaciones en cascada. Debe aclararse otro aspecto, toda llave primaria, llave unica y llave foranea tiene asociada un indice, es decir, cuando se crea cualquiera de estas restricciones el motor de base de datos crea un indice basado en los campos que hacen parte de la restriccion. Por tanto crear un inide unico o llave unica creara de fondo un indice razon por la cual el rendimiento en ambos casos seria igual. Puede uno defenir llaves unicas cuando se esta manejando por ejemplo Normalmente uno define la llave unica Cita:
__________________
Luis Fernando Buelvas T. |
#4
|
||||
|
||||
Gracias
En realidad siempre uso una columna id para las claves primarias y nunca una columna con datosque utilize el usuario. Pero mi duda me lleva a que es mas eficiente en cuanto al trabajo que se le puede añadir al motor el definir un tipo de indice u otro.
Utilizo SQL Manager, y cuando defino un indice o un constrait me da el tiempo de respuesta que llevaria el uso de ellos y ambos me dan el mismo resultado, por eso era mi pregunta. Pero como dijo Ronpablo creo es mas eficiente el indice. Les agradezco la inquietud. Saludos Maxi |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Uso del Contraint adecuadamnete en interbase... | uper | Firebird e Interbase | 2 | 10-10-2005 18:15:58 |
!'the name not unique in this context'.. ! | Tequila | Providers | 2 | 20-11-2004 01:21:39 |
Excepción: "Name not unique in this context" | mutant09 | Conexión con bases de datos | 0 | 10-05-2004 10:11:59 |
violation of PRIMARY or UNIQUE KEY | StartKill | Firebird e Interbase | 4 | 03-03-2004 02:04:35 |
Primary Key y Unique Key | DrMatasanos | Conexión con bases de datos | 1 | 21-05-2003 11:01:20 |
|