2. Creación de tablas, campos, índices, relaciones ...las relaciones de tablas, consultas y manejo...

17

Transcript of 2. Creación de tablas, campos, índices, relaciones ...las relaciones de tablas, consultas y manejo...

2. Creación de tablas, campos, índices, relaciones, restricciones y tipos de datos.

Objetivos:

Crear tablas completas con su configuración de datos.

Aplicar restricciones de llaves e índices.

Recursos:

http://msdn.microsoft.com/es-es/library/ms187752.aspx

https://msdn.microsoft.com/es-es/library/ms174979%28v=sql.120%29.aspx

Introducción:

La creación de tablas para la recolección de datos, es un proceso básico para la

implementación de la base de datos, por esta razón es importante el saber qué tipo de datos

debe usar y las restricciones asociadas a las tablas.

Tablas:

Estas son donde se guardan los datos recogidos por un programa de aplicación. Su estructura

general se asemeja a la vista general de un programa de hoja de cálculo.

Una tabla es utilizada para organizar y presentar información. Las tablas se componen de

filas y columnas de celdas que se pueden rellenar con textos y gráficos. Las tablas se

componen de dos estructuras:

Registro: Es cada una de las filas en que se divide la tabla. Cada registro contiene datos de

los mismos tipos que los demás registros. Ejemplo: en una tabla de nombres y

direcciones, cada fila contendrá un nombre y una dirección.

Campo: Es cada una de las columnas que forman la tabla. Contienen datos de tipo

diferente a los de otros campos. En el ejemplo anterior, un campo contendrá un

tipo de datos único, como una dirección, o un número de teléfono, un nombre,

etc.

A los campos se les puede asignar, propiedades especiales que afectan a los registros

insertados. El campo puede ser definido como índice o autoincrementable.

Cada tabla creada debe tener un nombre único en la cada Base de Datos, haciéndola

accesible mediante su nombre.

Datos:

SQL Server maneja los siguientes tipos de datos:

Numéricos exactos

bigint numeric bit smallint decimal

smallmoney int tinyint money

Numéricos aproximados

Float real

Fecha y hora

fecha datetimeoffset datetime2 smalldatetime datetime

time

Cadenas de caracteres

Char varchar text

Cadenas de caracteres Unicode

Nchar nvarchar ntext

Cadenas binarias

Binary varbinary image

Otros tipos de datos

Cursor timestamp hierarchyid uniqueidentifier

sql_variant Xml tabla

Es importante el buen uso de los tipos de datos, ya que de esa forma se podrá hacer mejor

las relaciones de tablas, consultas y manejo de los datos.

Inicio Práctica

Iniciar el SQL Server Management Studio y en base a lo aprendido en la práctica anterior

crearemos una base de datos de nombre “Universidad”.

Expandiremos la base de datos, y después expandiremos “Tables”, y veremos que no hay

ninguna tabla creada, al seleccionar clic derecho sobre “Tables” seleccionamos “New

Table”, como lo muestra la Figura 1.

Figura 1. Creación de tabla nueva.

Nos activara una pantalla donde podremos colocar los campos y tipos de datos que

esperamos manejar, como lo muestra la Figura 2.

Figura 2. Configuración de capos, tipos de datos y otros.

En la “Column Name” empezaremos definiendo el campo “id_person” y tomaremos como

“Data Type” el tipo “int” y dejaremos activa la casilla “Allow Nulls” lo cual significa que

acepta datos nulos o vacíos, como lo muestra la figura 3.

Figura 3. Imagen de configuración de campo.

Después colocaremos el campo “nombre” con tipo de datos “varchar(50)” y dejaremos

activa la opción aceptar nulos, como lo muestra la figura 4.

Figura 4. Definiendo segundo campo.

También colocaremos el campo “apellido” con tipo de datos “varchar(50)” y dejaremos

activa la opción aceptar nulos, como lo muestra figura 5.

Una vez terminada la tabla, dar doble clic en la pestaña y dar clic sobre “Save Table_1” como

lo muestra la figura 5, y nos aparecerá un pantalla donde le pondremos de nombre a la tabla

“person”, como lo muestra la figura 6.

Figura 5. Como colocar el nombre al script.

Figura 6. Como colocar el nombre al script.

Una vez realizado este proceso la tabla quedara grabada en la base de datos, ya puedo cerrar

la consola o dejarla así.

Ahora vamos a agregar algunos registros a la tabla, en la carpeta “Tables”, busco la tabla

“person” y presiono clic derecho y seleccionamos “Edit top 200 Rows” lo cual nos permitirá

agregar registros, según los muestran las figuras 7 y 8.

Figura 7. Forma de agregar datos a una tabla.

Figura 8, Ejemplo de datos agregados a una tabla.

A continuación agrego unos cuantos registros. Para borrar la tabla solo debo dar clic derecho

sobre la tabla “person” y seleccionar “Delete”, es importante tener en cuenta que cuando

existen datos relacionados no siempre es fácil borrar las tablas, ejemplo de borrado la figura

9.

Figura 9. Borrar tablas.

Usando la consola de consultas (T-SQL). En primer lugar activaremos la consola para realizar una nueva consulta.

Ahora digitemos los siguientes comandos la consola y ejecutémoslo.

USE Universidad GO CREATE TABLE autos ( id_auto int NULL, marca varchar(20) NULL, modelo varchar(20) NULL ) GO

Estas sentencias en primer lugar selecciona la base de datos Universidad usando la palabra

“USE”, después se creó la tabla “autos” con tres campos: id_auto, marca y modelo, con su

respectivo tamaño e indicando que todos aceptan nulos o valores vacíos (NULL).

Para probar la nueva tabla agregaremos nuestro primer registro, digitando lo siguiente:

USE [Universidad] GO INSERT INTO autos (id_auto,marca,modelo) VALUES ( 1,'Nissan','Sentra') GO

El resultado de esta consulta es la adición de un registro a la tabla autos. Otra forma de

agregar datos usando una variable de la sintaxis es la siguiente:

USE [Universidad] GO INSERT INTO autos VALUES (2,'Toyota','Tercel') INSERT INTO autos VALUES (3,'Honda','civic') GO

Para borrar la tabla usaremos la siguiente consulta

USE Universidad GO DROP TABLE autos GO

Y con esto quedara borrada la tabla.

Í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 Práctica.

Figura 10, Esquema Entidad Relación.

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

tendrá la configuración de la figura 11.

Figura 11. Configuración de tabla “ubicación”

Ahora vamos a crear un llave primaria, utilizando clic derecho sobre el campo “idubicacion”,

se nos desplegara un menú y seleccionamos “Set Primary Key”. Como lo muestra la figura

12.

Figura 12, Creación de llave primaria.

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 lo muestra la figura 13.

Figura 13. Colocación de primary key en 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, como lo muestra la

figura 14.

Figura 14, Creando un campo autonumerico.

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, como lo muestra la figura

15.

Figura 15. Configuración tabla proveedor.

Creación de Índices.

Para poder hacer relaciones necesitamos crear llaves foráneas (FK), estas debe estar

indexadas, para mejor control y uso, para esto daremos clic sobre el campo “idubicacion” y

seleccionaremos “Indices o Claves”, como lo muestra la figura 16.

Figura 16. Creación de índices.

Al seleccionarlo los mostrara la siguiente pantalla, y seleccionamos “Add”, según muestra la

figura 17.

Figura 17. Creación de índices.

Posteriormente en la pestaña “General” opción “Columns”, selecciono el botón que tiene

tres puntos, para seleccionar el campo que quiero indexar, como lo muestra la figura 17.

Figura 17. Selección del campo a 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, según figura 18.

Figura 18. Selección de Ascendente o descente.

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, Según figura 19.

Figura 19. Selección de campo.

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 clic

derecho, y en las opciones ocupo “Relaciones….”, según figura 20

Figura 20, Creación de 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. según figura 21.

Figura 21. Creación de relaciones.

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, según Figura 22.

Figura 22. Selección de la tabla.

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”, según figura 23.

Figura 23. Definición de la relación.

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 clic derecho y seleccionamos “New Database Diagram”, como lo

muestra la figura 24.

Figura 24. Creación de diagrama de base de datos.

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”. Según la figura 25.

Figura 25. Selección de tablas.

Ordenamos un poco las pantallas y podremos observar que hemos podido lograr el

requerimiento puesto al principio de la práctica, como lo vemos en la figura 26.

Figura 26, Diagrama de base de datos.

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 tablas incluyendo más campos y diferentes tipos de datos para verificar su

aplicación, siempre en forma gráfica y de consola.

Investigue como cambiarle nombre a la tabla.

Investigue como cambiar una columna o agregar más.

Investigue como cambiar un tipo de datos.

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.