Indices, llaves y superllaves en bases de datos


Como sabemos, las tablas de la base de datos emplean indices para agilizar las búsquedas dentro de las tablas, así mismo estas nos permiten construir las relaciones que se especificaron en el modelo lógico de la base datos, pero veamos como emplear cada uno de los tipos de indices.

Llave primaria

Toda tabla debe tener un campo que será la llave primaria, dicho campo debe cumplir con dos condiciones, la primera es que no almacene valores nulos y la segunda es que jamas se duplique, para estos campos usaremos el tipo de indice primary key, el cual cada vez que insertamos un registro verifica que el valor de dicho campo cumpla con ambas condiciones.

En caso de que se inserte un registro cuya llave primaria cuyo valor de duplique, se marcara un error y no añadir el registro a la tabla. Ahora veamos un ejemplo de como crear la llave primaria en una tabla

En este caso usamos la expresión primary key para crear la llave primaria, algunos agregan al campo el atributo “not null”, pero este no es necesario, ya que esta implícito al usar primary key

Llave candidata y unique key

Una llave candidata es un campo que cumple con los requisitos para ser una llave primaria porque no es un dato que vincule los demás datos de las tablas del modelo, por lo que además de tener su llave primaria, la tabla tendrá la llave candidata. Veamos un ejemplo de esto:

En una tabla solo puede haber un primary key, pero podemos tener varios campos unique, en el caso de que sea necesario.

Llave foránea

Como sabemos las llaves foráneas establecen la relación entre dos tablas, en donde la llave foránea verifica que el valor del campo exista como llave primaria en la tabla con la que tenga relación, en caso de que este valor no exista se marcara un error y no se agregara el registro a la tabla.

Ahora veamos un ejemplo:

La expresión constraint se usa para darle nombre a la relación, esto es importante por si necesitamos modificar las relaciones en un futuro. El campo que será llave foránea debe ser definido de forma previa.

Como podemos ver, en la tabla venta el idcliente es de tipo entero, porque es el mismo tipo de campo que se asigno al campo idcliente en la tabla cliente, esto es importante ya que de otra forma no se podrá verificar que el cliente exista en la tabla cliente antes de poder registrarle una venta.

Superllaves

Una superllave es una llave primaria formada por la combinación de dos o más campos, estas llaves son al mismo tiempo primary key y foreign key, por lo que las vemos en las tablas que soportan relaciones muchos a muchos. Veamos un ejemplo de esto:

Como se puede ver, en la sentencia primary key se mencionan los dos campos que forman la llave primaria, además de eso, ambos campos se definen de forma individual como llaves foráneas con relación a las tablas respectiva.

Indice normal

Un indice normal ayuda a que las búsquedas de datos en ese campo sean más rápidas, sin embargo, no establecen relaciones con las demás tablas de la base de datos ni condiciones de no duplicidad.

También es posible usar la sentencia key en vez de índex, pero hay que tener cuidado de recordar que key y primary key no solo mismo.

¿Qué estas pensando?

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Salir /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Salir /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios .