Subido por Fabian Castillo

(Uso de índices y relaciones de tablas)

Anuncio
3- Uso de índices y relaciones de tablas
Objetivos:
•
Crear índices y manejar las restricciones de éstos.
Recursos:
•
SQL SERVER
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.
ÍNDICES (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 FORÁNEA (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 una llave primaria, utilizando clic 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 registros: 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í.
CREACIÓN DE ÍNDICES
Para poder hacer relaciones necesitamos crear llaves foráneas (FK), estas deben
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”.
CREACIÓN 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 una relación
entre el campo proveedor.idubicacion con el campo ubicacion.idubicacion.
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.
CREACIÓN 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 una 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 una nueva base de datos que incluya 4 tablas relacionadas.
•
Elabore diagrama de la base de datos creada.
•
Utilizar la cláusula CHECK.
Fuente: FACULTAD DE INGENIERIA, UNIVERSIDAD DON BOSCO
Descargar