Llaves e Indices

Luego de crear las tablas, hay que recordar que se debe establecer una clave o llave principal, de la cual dependen los demas datos para sus vistas por lo cual en esta ocasion hablaremos acerca de las llaves dentro de las tablas.

Llaves (Key)

Para establecer una llave debe tomarse en cuenta que el campo que se vaya establecer como llave, no debe permitir datos nulos es decir que este restringido como Not Null, esto nos permite llevar a cabo la integridad de los datos, existen distintas llaves la cuales son:

-Llave Candidata: Atributo o conjunto de atributos A de una relacion R que verifican:
  • Unicidad: En un momento dado, no existen dos registros de R que tengan el mismo valor para A
  • Minimalidad: Ningun atributo de A puede ser desechado sin perder la propiedad de Unicidad.
-Llave Primaria: Es una de las posibles llaves candidatas, las demas pasaran a ser llaves alternativas. Esta llave es la que nos identificara nuestra tabla, es el atributo que se convierte en principal o primario.

-Llave Foranea: Atributo o conjunto de atributos A de una relacion  R1 cuyos valores deben coincidir con los valores de alguna relacion R2.

La sintaxis para la creacion de una llave primaria o identificador es la siguiente, debe ir siempre dentro de la estructura de la tabla.

recordememos la sintaxis para la creacion de una table:

Create table tblArticulo
(
            ArticuloID varchar (20) not null,
            DescripcionArticulo varchar (254),
            costo float,
            lote float
);

Esa seria la sintaxis para crear una tabla llamada tblArticulo, con sus atributos, donde ArticuloID esta establecido como not null, es este el atributo que se convertira en nuestra llave primaria la sintaxis para la creacion de la llave primaria es:

constraint PK_nombretabla primary key (nombreCampo)

Mencionamos que la creacion de la llave primaria iba dentro de la estructura de la tabla, la implimentacion se realiza de la siguiente manera:

Create table tblArticulo
(
            ArticuloID varchar (20) not null,
            DescripcionArticulo varchar (254),
            costo float,
            lote float,
            constraint PK_tblArticulo primary key (ArticuloID)
);

De este modo hemos creado la llave primaria de la tabla llamada tblArticulo.

Indice

El índice de una base de datos es una estructura de datos que mejora la velocidad de las operaciones, por medio de la llave primaria de una tabla, permitiendo un rápido acceso a los registros de una tabla en una base de datos.
El índice tiene un funcionamiento similar al índice de un libro, guardando parejas de elementos: el elemento que se desea indexar y su posición en la base de datos. Para buscar un elemento que esté indexado, sólo hay que buscar en el índice dicho elemento para, una vez encontrado, devolver el registro que se encuentre en la posición marcada por el índice.
Los índices pueden ser creados usando una o más columnas, proporcionando la base tanto para búsquedas rápidas al azar como de un ordenado acceso a registros eficiente.
En el indice se deben añadir ambas llaves primarias, la llave primaria de la primer tabla y la llave de primaria de la segunda tabla, la sintaxis para la creacion de indices es la siguiente:

Se deben tener dos tablas por lo cual creare otra tabla y siempre utilizare la tabla anteriormente creada:
Create table tblBodega
(
            BodegaID varchar (15) not null,
            Linea        char (38),
            Nombre_Bodega varchar (255),
            Existencia float,
            constraint PK_tblBodega primary key (BodegaID)
);

De este modo tenemos dos tablas creadas, hare uso de una tercera tabla que se llama tabla intermedia de la cual hablare mas profundamente en la siguiente publicacion(Tablas Intermedias y Llaves Foraneas) por ahorita la utilizare para la creacion del indice.

Create table tblArticulo_tblBodega
(
            ArticuloID varchar (20) not null,
            BodegaID varchar (15) not null,
            constraint PK_tblBodega primary key (ArticuloID,BodegaID)
);

Notaran que ambos son not null, y componen la llave primaria entonces para crear el indice la sintaxis es la siguiente:

create index nombredelatablaintermedia_FK on nombredelatablaintermedia
(llave_primaria_de_la_primaria_tabla asc);

Procedo a crear el indice de la tabla intermedia:

create index tblArticulo_tblBodega_FK on tblArticulo_tblBodega
(ArticuloID asc);

create index tblArticulo_tblBodega_FK2 on tblArticulo_tblBodega
(BodegaID asc);

De esta forma ya se creo el indice de las tablas tblArticulo y tblBodega.





 

1 comentario: