Untitled

Anuncio
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
smallmoney
int
tinyint
money
datetime2
smalldatetime
decimal
Numéricos aproximados
Float
real
Fecha y hora
fecha
datetimeoffset
datetime
time
Cadenas de caracteres
Char
varchar
text
Cadenas de caracteres Unicode
Nchar
nvarchar
ntext
varbinary
image
Cadenas binarias
Binary
Otros tipos de datos
Cursor
timestamp
hierarchyid
sql_variant
Xml
tabla
uniqueidentifier
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.
Descargar