Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-04-2006
Avatar de maxid
maxid maxid is offline
Miembro
 
Registrado: ene 2006
Posts: 38
Poder: 0
maxid Va por buen camino
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
Responder Con Cita
  #2  
Antiguo 24-04-2006
Avatar de RONPABLO
[RONPABLO] RONPABLO is offline
Miembro Premium
 
Registrado: oct 2004
Posts: 1.514
Poder: 21
RONPABLO Va por buen camino
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
Responder Con Cita
  #3  
Antiguo 24-04-2006
lbuelvas lbuelvas is offline
Miembro
 
Registrado: may 2003
Ubicación: Colombia
Posts: 377
Poder: 21
lbuelvas Va por buen camino
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:
Empezado por RONPABLO
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
__________________
Luis Fernando Buelvas T.
Responder Con Cita
  #4  
Antiguo 24-04-2006
Avatar de maxid
maxid maxid is offline
Miembro
 
Registrado: ene 2006
Posts: 38
Poder: 0
maxid Va por buen camino
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
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Uso del Contraint adecuadamnete en interbase... uper Firebird e Interbase 2 10-10-2005 19:15:58
!'the name not unique in this context'.. ! Tequila Providers 2 20-11-2004 02:21:39
Excepción: "Name not unique in this context" mutant09 Conexión con bases de datos 0 10-05-2004 11:11:59
violation of PRIMARY or UNIQUE KEY StartKill Firebird e Interbase 4 03-03-2004 03:04:35
Primary Key y Unique Key DrMatasanos Conexión con bases de datos 1 21-05-2003 12:01:20


La franja horaria es GMT +2. Ahora son las 09:07:10.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi