INDICES

07/01/2005 - 10:17 por Miguel Ortiz Falcón | Informe spam
Hola grupo...bueno tengo otras dudas.

La primera, que significa CLUSTERED?...como actúa un
indice cuando tiene CLUSTERED?

Otra, hablando de administracion de índices: Para mi
crear un indice y especificando "Crear con UNIQUE", desde
ahí asumo, que la(s) columa(s) implicada(s) en el indice
no pueden repetirse. Ahora bien, si yo especifico
como "Restriccion", segun yo, solo verificaria que no se
repitan las columnas mas no crea un indice como tal, y
eligiendo la opcion "Indice" si crea el indice y checa
que no haya repeticiones, pero no entiendo porque me deja
habilitar "Pasar por alto clave duplicada". Si se supone
que es un UNIQUE, segun yo claro.

Y la ultima:

Creando con UNIQUE, entonces cual sería la diferencia
entre:

- Elegir Restriccion y
- Elegir Indice (sin duplicados)

Yo pienso que es por lo que expuse antes de que en uno NO
crea el indice y en el otro SI.

Pero donde, a mi punto de vista hay incongruencia es:
UNIQUE y puedo pasar por alto claves duplicadas?...
=S=S...

Igual y estoy equivocado, que igual y todo esto tiene una
razón, pero en este momento no lo sé y por eso les
pregunto a ver quien sabe por ahí...

Saludos

Miguel Ortiz Falcón
michaelof@hotmail.com
 

Leer las respuestas

#1 Carlos Sacristán
07/01/2005 - 11:08 | Informe spam
Echa un vistazo a esta respuesta que se hizo hace un tiempo acerca de
este tema:

Crear una restricción única
Cree una restricción única para asegurar que no se introducen valores
duplicados en columnas específicas que no participan en una clave principal.
Dado que una restricción única y una clave principal exigen que haya
unicidad, debe adjuntar una restricción única en lugar de una restricción de
clave principal a una tabla si:

a.. Desea exigir la unicidad en una columna o en una combinación de
columnas. Puede adjuntar varias restricciones únicas a una tabla, mientras
que sólo puede adjuntar una restricción de clave principal a una tabla.


b.. Desea exigir la unicidad en una columna que permite valores nulos.
Puede adjuntar restricciones únicas a columnas que permiten valores nulos,
mientras que sólo puede adjuntar restricciones de clave principal a columnas
que no permiten valores nulos. Cuando adjunta una restricción única a una
columna que permite valores nulos, garantiza que al menos una fila tendrá un
valor nulo en la columna objeto de la restricción.
Para crear una restricción única

1.. En el diagrama de base de datos, haga clic con el botón secundario del
mouse (ratón) en la tabla que va a contener la restricción y, a
continuación, seleccione Propiedades en el menú contextual.
- O bien -

Abra el Diseñador de tablas para la tabla que va a contener la
restricción, haga clic con el botón secundario del mouse en el Diseñador de
tablas y elija Propiedades en el menú contextual.

2.. Haga clic en la ficha Índices/Claves.


3.. Elija Nuevo. Aparece un nombre asignado por el sistema en el cuadro
Nombre del índice.


4.. En Nombre de columna, expanda la lista de columnas y seleccione
aquella a la que desee adjuntar la restricción. Para adjuntar la restricción
a varias columnas, seleccione las columnas adicionales en las filas
subsiguientes.


5.. Active la casilla de verificación Crear UNIQUE.


6.. Seleccione la opción Restricción.
La restricción única se crea en la base de datos al guardar la tabla o el
diagrama.

Si utiliza SQL Server, puede controlar el orden de los valores de clave y la
acción emprendida cuando existen claves duplicadas. Para ello, debe crear
un índice único en lugar de una restricción única. Para obtener más
información, consulte Crear un índice único.



=
Crear un índice único
En SQL Server puede crear un índice único cuando la unicidad es una
característica de los propios datos, pero la combinación de columnas
indizadas no es la misma que la clave principal de la tabla. Por ejemplo, si
tiene previsto realizar consultas frecuentes en la columna del número de la
Seguridad Social (ssn) de la tabla employee (donde la clave principal es
emp_id), y desea asegurarse de que los números de la Seguridad Social sean
únicos, cree un índice único en ssn. Si el usuario especifica el mismo
número de Seguridad Social para más de un empleado, la base de datos muestra
un error y no se puede guardar la tabla.

Cuando se crea o modifica un índice único, se puede establecer una opción
para pasar por alto las claves duplicadas. Si se establece esta opción y se
intenta crear claves duplicadas agregando o actualizando datos que afectan a
varias filas (con las instrucciones INSERT o UPDATE), la fila que ocasiona
los elementos duplicados no se agrega o, en el caso de una actualización, se
descarta.

Por ejemplo, si intenta actualizar "Smith" por "Jones" en una tabla en la
que ya existe una fila denominada "Jones", la tabla resultante tendrá una
fila "Jones" y ninguna fila "Smith". La fila "Smith" original se pierde
porque una instrucción UPDATE es realmente una instrucción DELETE seguida de
una instrucción INSERT. Este es el motivo de la eliminación de la fila
"Smith" y del intento fallido de insertar una fila adicional "Jones". La
transacción completa no se puede deshacer porque el objeto de esta opción es
permitir una transacción a pesar de la presencia de elementos duplicados.

Para crear un índice exclusivo

1.. En el diagrama de base de datos, seleccione la tabla que desee
indizar, haga clic con el botón secundario del mouse (ratón) en la tabla y
elija Índices y claves en el menú contextual.
- O bien -

Abra el Diseñador de tablas para la tabla que desee indizar, haga clic con
el botón secundario del mouse en el Diseñador de tablas y elija Índices y
claves en el menú contextual.

2.. Elija Nuevo. La lista Índice seleccionado muestra el nombre asignado
por el sistema al nuevo índice.


3.. En Nombre de columna seleccione las columnas que desea indizar. You
can select up to 16 columns. Para obtener un rendimiento óptimo, seleccione
sólo una o dos columnas por índice. Para cada columna seleccionada, indique
si el índice organiza los valores de esta columna en orden ascendente o
descendente.


4.. Active la casilla de verificación Crear UNIQUE.


5.. Seleccione la opción Índice.


6.. Seleccione la opción Pasar por alto clave duplicada si desea ignorar
los datos nuevos o actualizados que crearían una clave duplicada en el
índice (con la instrucción INSERT o UPDATE).
El índice se crea en la base de datos al guardar la tabla o el diagrama.

Nota No se puede crear un índice único en una columna individual si dicha
columna contiene NULL en más de una fila. Tampoco se puede crear un índice
único en varias columnas si la combinación de columnas contiene valores NULL
en más de una fila. Estos valores se tratan como duplicados a efectos de
indización.



Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

"Miguel Ortiz Falcón" escribió en el mensaje
news:130c01c4f499$bedb1920$
Hola grupo...bueno tengo otras dudas.

La primera, que significa CLUSTERED?...como actúa un
indice cuando tiene CLUSTERED?

Otra, hablando de administracion de índices: Para mi
crear un indice y especificando "Crear con UNIQUE", desde
ahí asumo, que la(s) columa(s) implicada(s) en el indice
no pueden repetirse. Ahora bien, si yo especifico
como "Restriccion", segun yo, solo verificaria que no se
repitan las columnas mas no crea un indice como tal, y
eligiendo la opcion "Indice" si crea el indice y checa
que no haya repeticiones, pero no entiendo porque me deja
habilitar "Pasar por alto clave duplicada". Si se supone
que es un UNIQUE, segun yo claro.

Y la ultima:

Creando con UNIQUE, entonces cual sería la diferencia
entre:

- Elegir Restriccion y
- Elegir Indice (sin duplicados)

Yo pienso que es por lo que expuse antes de que en uno NO
crea el indice y en el otro SI.

Pero donde, a mi punto de vista hay incongruencia es:
UNIQUE y puedo pasar por alto claves duplicadas?...
=S=S...

Igual y estoy equivocado, que igual y todo esto tiene una
razón, pero en este momento no lo sé y por eso les
pregunto a ver quien sabe por ahí...

Saludos

Miguel Ortiz Falcón

Preguntas similares