3- Uso de índices y relaciones de tablas

Anuncio
3- Uso de índices y relaciones de tablas
Objetivos:

Crear indicies y manejar la restricciones de estos
Recursos:


SQL SERVER 2012
Guías de práctica.
Introducción:
Para el manejo de bases de datos relacionales debo de manejar las restricciones necesarias
para poder enlazar las tablas y ordenar los datos.
INDICES (INDEX)
Un índice es una estructura de disco asociada con una tabla o una vista que acelera la
recuperación de filas de la tabla o de la vista. Un índice contiene claves generadas a partir
de una o varias columnas de la tabla o la vista. Dichas claves están almacenadas en una
estructura (árbol b) que permite que SQL Server busque de forma rápida y eficiente la fila o
filas asociadas a los valores de cada clave.
CLAVE PRIMARIA (PRIMARY KEY)
La clave principal de una tabla relacional identifica de forma exclusiva cada registro de la
tabla. Puede ser un atributo normal que se garantiza que sea único (como el número de
Seguro Social en una mesa con no más de un registro por persona) o puede ser generado
por el DBMS (como un identificador único global o GUID, en Microsoft SQL Server). Las
claves principales pueden consistir en un solo atributo o atributos múltiples en
combinación.
CLAVE FORANEA (FOREING KEY)
Una clave externa es un campo de una tabla relacional que coincide con la columna de
clave principal de otra tabla. La clave externa se puede utilizar para las tablas de referencia.
Para más información sobre este tema, lea Creación de claves externas.
INICIO DE LA PRÁCTICA
Empezaremos creando la base de datos “empresa1”, de la forma que ya aprendimos y a
continuación crearemos la tabla “ubicacion” la cual según lo aprendido anteriormente la
obtendría así
Ahora vamos a crear un llave primaria, utilizando click derecho sobre el campo
“idubicacion”, se nos desplegara un menú y seleccionamos “Set Primary Key”.
Entonces aparecerá una llave a la par del campo “idubicacion” lo que significa es llave
primaria (PK), la cual solo puede haber una en la tabla
Como último paso vas hacer que el campo “idubicacion” sea auto numérico, ósea que
pondrá números en correlativo automáticamente, para hacer esto, utilizaremos las
opciones debajo del diseño de la tabla, ocuparemos la pestaña “Identity Specification”,
exploraremos la opción y seleccionaremos “(is identity)” la cual por default esta en NO, la
podremos en SI, usado la opción al final de la línea, una vez activado podremos poner con
qué número empieza y los incrementos, las opciones por default en ambas son de 1.
Ahora guardo la tabla con el nombre de “ubicación” y agrego 5 registros, los cuales deben
ser nombre de ciudades, no necesita llenar el campo “idubicacion” él lo hará
automáticamente..
Como siguiente paso creemos la tabla “pago”, realizando el mismo proceso, creando
“idpago” como llave primaria, y haciendo que este campo sea auto numérico, y agregando
los siguientes cuatro registro: contado, crédito, tarjeta crédito, consignación.
Seguiremos creando la siguiente tabla que es “proveedor” según el diagrama, crearemos
como llave primaria “idproveedor” y la haremos auto numérico, lo cual nos quedara así.
CREACION DE INDICES
Para poder hacer relaciones necesitamos crear llaves foráneas (FK), estas debe estar
indexadas, para mejor control y uso, para esto daremos click sobre el campo “idubicacion”
y seleccionaremos “Indices o Claves”.
Al seleccionarlo los mostrara la siguiente pantalla, y seleccionamos “Add”.
Posteriormente en la pestaña “General” opción “Columns”, selecciono el botón que tiene
tres puntos, para seleccionar el campo que quiero indexar.
En la siguiente pantalla debo de seleccionar la columna o campo que quiero indexar y
además selecciono si quiero hacerlo de forma ascendente o descendente.
Ahora presiono “ok” y me voy a la pestaña “identity” y a la opción “(name)” y le cambio
nombre, el cual puede ser el mismo del campo “idubicacion” o uno distinto pero
representativo.
Una vez terminado el proceso, puedo salirme tomando la opción “Close”, o puedo añadir
otro index presionando “Add”, haga el mismo el proceso para indexar el campo “idpago”.
CREACION DE RELACIONES
Abriremos en diseño la tabla “proveedores” seleccione cualquier campo y presiono click
derecho, y en las opciones ocupo “Relaciones….”
En la pantalla de relaciones seleccione la opción “Add” para agregar un relación entre el
campo proveedor.idubicaion con el campo ubicacion.idubicaion.
En la pestaña “General” seleccione la opción “Tables And Columns Specific” y después
seleccione el botón al final de la fila que tiene tres puntos.
Una vez en esa pantalla seleccione las tablas y los compas que desea relacionar y coloque
el nombre de la relación, para el ejemplo yo considere “rela_idubicacion”, pero usted
puede personalizar el nombre, una vez terminado presione “ok”
Una vez terminado este proceso presione “Close” para salir o ”Add” para agregar otro.
Repita este procedimiento para crear la relación proveedor.idpago con pago.idpago.
CREACION DE DIAGRAMAS
Una opción de ver el resultado de nuestra creación es elaborando un diagrama de base de
datos, para lo cual expandimos la base de datos “empresa1”, seleccionamos “Database
Diagrams” presionamos click derecho y seleccionamos “New Database Diagram”.
Nos va a mostrar un pantalla con todas tablas de la base de datos, con el mouse
seleccionamos todos y presionamos la opción “Add”, o también podemos hacerlo una a
una, y posteriormente presionamos “Close”.
Ordenamos un poco las pantallas y podremos observar que hemos podido lograr el
requerimiento puesto al principio de la práctica.
MODO CONSOLA
Haremos el mismo esquema de base de datos, solo que le cambiaremos nombre a la base
de datos a “empresa2”, ponemos crear utilizando el siguiente “querry” (consulta).
CREATE DATABASE empresa113
GO
USE empresa113
GO
CREATE TABLE ubicacion
(idubicacion INT IDENTITY(1,1),
descrip varchar(45),
CONSTRAINT idubicacion PRIMARY KEY(idubicacion))
GO
CREATE TABLE pago
(idpago INT IDENTITY(1,1),
descrip varchar(45),
CONSTRAINT idpago PRIMARY KEY(idpago))
GO
CREATE TABLE proveedor
(idproveedor INT IDENTITY(1,1),
nombre varchar(45),
idubicacion int,
idpago int,
CONSTRAINT idproveedor PRIMARY KEY(idproveedor),
CONSTRAINT rela_idubicacion FOREIGN KEY(idubicacion)
REFERENCES ubicacion(idubicacion),
CONSTRAINT rela_idpago FOREIGN KEY (idpago)
REFERENCES pago(idpago))
GO
Ejercicios:
Cree consulta para crear la base de datos empresa3, utilizando “ALTER TABLE”.
Verifique la entrada de datos de las tablas indexadas.
Cree una nueva base de datos que incluya 4 tablas relacionadas.
Elabore diagramas de todos los ejemplos.
Investigue el uso de CHECK
Realice ejercicios adicionales que su instructor lo solicite.
Descargar