Está en la página 1de 30

Creacin de base de datos y tablas con SQL Server 2008

En esta entrega realizaremos la creacin de la base de datos para la Terminal de Autobuses. Existen dos formas de crear la base de datos y las tablas en SQL Server, una es grficamente y la otra mediante cdigo, cabe resaltar que en este manual nos centraremos en cmo crear cada una de las actividades que necesitamos, pero no pretendemos explicar los diferentes tipos de utilizacin del cdigo de SQL Server llamado Transact-SQL.

Forma Grafica:
La creacin de una base de datos de forma grafica es de la siguiente manera:

Iniciamos el SQL Server Management Studio para abrir el manejador de base de datos.

En la conexin simplemente nos conectamos con Autentificacin de Windows y el nombre del servidor que tiene predeterminado, y presionamos el botn de conectar.

Nos posicionamos en la parte izquierda en la zona del Explorador de Objetos, seleccionamos la carpeta de Bases de datos, pulsamos con el botn derecho del Mouse > Nueva base de datos.

En la pantalla que nos aparecer para configurar la base de datos, en el Nombre de Base de datos escribimos TerminalAutobuses, para este proyecto la configuracin de la base de datos la dejamos de manera predeterminada, para no meternos en mas descripcin que no es el objetivo de este tutorial.

Bueno como vemos la base de datos ya esta creada en la carpeta de Bases de datos.

Lo siguiente que haremos ser crear tablas. Existen demasiadas formas de disear una base de datos dependiendo las necesidades, lgica del sistema y el diseador. Para nuestro proyecto nos basaremos en un diseo, el cual se recomienda que se siga para llevar la continuidad de todo el tutorial o si ya tienen experiencia en la programacin pueden hacer su propio diseo.

Para nuestra base de datos las tablas sern las siguientes:

Autobuses
Nombre de columna idAutobus numAsientos marca modelo Tipo de dato/Tamao nvarchar 50 int nvarchar 50 nvarchar 50 Valores nulos/llave No Null (llave Primaria) No Null No Null No Null

fechaAdquisicion

datetime

No Null

Boletos
idBoleto idCorrida lugarDestino lugarSalida nombCliente edad idVenta fechaSalida precio clase numAsiento idAutobus idSucursal nvarhar 50 nvarhar 50 nvarhar 50 nvarhar 50 nvarhar 50 Int nvarhar 50 Datetime Money nvarhar 50 int nvarhar 50 nvarhar 50 No Null (llave Primaria) No Null No Null No Null Null No Null No Null No Null No Null No Null No Null No Null No Null

Cajas
idCaja idSucursal abierta nvarchar 50 nvarchar 50 Bit No Null (llave Primaria) No Null No Null

Cancelaciones
idBoleto importe fechaCancelacion idCaja nombUsuario nvarchar 50 Money Datetime nvarchar 50 nvarchar 50 No Null (llave Primaria) No Null No Null No Null No Null

Choferes
idChofer nombre apellidoPaterno apellidoMaterno domicilio cuidad estado nvarchar 50 nvarchar 50 nvarchar 50 nvarchar 50 nvarchar 50 nvarchar 50 nvarchar 50 No Null (llave Primaria) No Null No Null No Null No Null No Null No Null

Corridas
idCorrida lugarDestino LugarOrigen FechaSalida HoraSalida idChofer idAutobus precioAdulto precioNio precioMayor tipoServicio idSucursal nvarchar 50 nvarchar 50 nvarchar 50 Date time(0) nvarchar 50 nvarchar 50 Money Money Money nvarchar 50 nvarchar 50 No Null (llave Primaria) No Null No Null No Null No Null No Null No Null No Null No Null No Null No Null No Null

Cortes
idCaja nombUsuario NumVentas numCancelaciones importeVentas importeCancelaciones efectivoTotal fechaCorte nvarchar 50 nvarchar 50 nvarchar 50 int money money money datetime No Null(llave Primaria) No Null No Null No Null No Null No Null No Null No Null

inicioCaja
idCaja idsucursal nombUsuario fechaApertura efectivoApertura nvarchar 50 nvarchar 50 nvarchar 50 Datetime Money (llave Primaria)

Sucursales
idSucursal nombSucursal calleSuc coloniaSuc ciudadSuc estadosuc nvarchar 50 nvarchar 50 nvarchar 50 nvarchar 50 nvarchar 50 nvarchar 50 No Null (llave Primaria) No Null No Null No Null No Null No Null

Usuarios
nombUsuario contrasea cuentaHabilitada realizaVenta realizaCancelacion realizaCorte administrador fechaInicio cajaAsignada nvarchar 50 nvarchar 50 Bit Bit Bit Bit Bit Datetime nvarchar 50 No Null (llave Primaria) No Null No Null No Null No Null No Null No Null No Null No Null

Ventas
idVenta nombUsuario idCaja importeVenta fechaVenta numBoletos nvarchar 50 nvarchar 50 nvarchar 50 Money Datetime Int No Null (llave Primaria) No Null No Null No Null No Null No Null

De forma grafica las tablas se crean de la siguiente manera: Desplegamos la base de datos TerminalAutobuses en el + que tiene del lado izquierdo, seleccionamos la carpeta Tablas y con el botn derecho del Mouse > Nueva Tabla

Despus vamos llenando las tablas con los nombres de las columnas, el tipo de datos y si se permitirn valores nulos.

Para establecer la llave primaria en una columna se selecciona la columna y se da click con el botn derecho de mouse y seleccionar Establecer clave principal.

Una vez que terminamos crear las columnas y establecer la llave primaria, se guarda la tabla y se le asigna un nombre, damos click nuevamente con el botn derecho sobre la pestaa dbo.table y seleccionamos Guardar Table.

Aqu elegimos el nombre que queremos darle a la tabla, as una por una vamos creando las tablas.

Mediante Cdigo Transact-SQL Primero crearemos la base de datos: Abrimos una ventana de consulta, para esto presionamos el botn Nueva consulta.

En la ventana de consultas ingresamos los siguientes comandos; CREATE DATABASE <<Nombre_de_la_base>> en nuestro caso el nombre sera TerminalAutobuses y despus presionamos el botn Ejecutar. La base de datos ya esta creada ahora vamos a crear las tablas.

En la ventana de consulta borramos el cdigo escrito y ahora escribimos los siguiente comandos para crear la tabla usuarios, Primero para hacer referencia a la base de datos que vamos a utilizar se escribe USE << Nombre_de_la_base >> Se pueden escribir varias consultas en la misma ventana de consultas, para separar cada consulta se utiliza la palabra clave GO para que no generar un error, Podemos escribir despus de USE TerminalAutobuses GO el cdigo para crear la tabla o podemos ejecutar una por una cada instruccin, lo ms recomendable es que se haga una por una ya que a veces se generan errores de cdigo y es algo difcil identificar cuales comando se ejecutaron correctamente y cules no. De la siguiente forma creamos una tabla mediante cdigo Transact-SQL

? 1 2 3

CREATE TABLE <<Nombre_Tabla>> ( <Nombre_Columna1> <tipo_Dato(<tamao>)> <valor_Nulo> <Nombre_Columna2> <tipo_Dato(<tamao>)> <valor_Nulo> ...)

4 5

GO

Un ejemplo para crear la tabla Autobuses seria de la siguiente manera, especificamos la llave primaria despus del tipo y tamao de dato, con la instruccin PRIMARY KEY : ? 1 2 3 4 5 6 7 8

CREATE TABLE Autobuses( idAutobus nvarchar(50)PRIMARY KEY NOT NULL, numAsientos int NOT NULL, marca nvarchar(50) NULL, modelo nvarchar(50) NULL, fechaAdquisicion nvarchar(50) NULL ) GO

Despus solo presionamos el botn Ejecutar. As crearemos cada una de las tablas hasta terminar con todas las tablas, esta es la forma de crear la base de datos mediante cdigo Transact-SQL.

Y bien espero que esta primer tutorial de la primera entrega les ayude mucho para aprender a crear bases de datos y tablas fcilmente en SQL Server 2008, cualquier duda o sugerencia las pueden dejar en los comentarios y se las resuelvo con gusto, Gracias.

Creacin de relaciones y llenado de tablas.

Que tal espero que estos tutoriales les ayuden con el desarrollo de su base de datos. Bien, pues en esta entrega nos basaremos en la creacin de relaciones y llenado de tablas de nuestra base de datos de manera sencilla, primero lo haremos grficamente y posteriormente mediante cdigo Transact-SQL.

Creacin de relaciones.
Que son las relaciones en una base de datos? Para entender mejor que son las relaciones en las bases de datos me encontr esta explicacin bastante clara en Internet.

Las relaciones permiten ver como se determinan los vnculos, la cardinalidad y las dependencias entre las tablas. Conceptualmente una relacin es un vnculo que se forma entre dos tablas. Este vnculo se da gracias a las llaves primarias. que no son ms que un campo que posee ciertas caractersticas especiales. Un campo que acta de llave primaria (Primary key o simplemente PK) indica que cada registro se pueda identificar de otro, lo hace nico e irrepetible. De este modo no pueden existir dos registros con el mismo valor de PK. Un campo que acta como llave fornea (Foraing Key, o FK) a diferencia del PK se vincula (all es cuando se hace la relacin) con un campo PK de otra tabla y hace que su valor dependa de este PK. Es decir, si por ejemplo tenemos un PK = 1, el valor que asumir la FK de la segunda tabla ser FK = PK = 1. Decimos que se ha formado una relacin, porque el valor de una se traslada o se asocia con la de otra. [answers.yahoo.com]

Forma Grafica:

Creamos un nuevo diagrama de base de datos, desplegamos los elementos de la base de datos en el +, Seleccionamos la carpeta Diagramas de base de datos, hacemos click con el botn derecho y click sobre Nuevo diagrama de base de datos.

Presionamos Agregar en la pantalla que nos aparece hasta terminar de agregar todas las tablas.

Ahora nos aparecern grficamente en la ventana de diagrama las tablas y sus columnas, para relacionarlas basta con seleccionar la llave primaria de la tabla que queremos relacionar y arrastrarla sin soltar el botn hasta la columna de la otra tabla de la cual ser la llave fornea, soltamos el botn cuando nos posicionemos en la columna correcta, si nos equivocamos basta con cambiar la columna en la prxima ventana que nos aparecer [como se muestra en las imgenes].

Podemos dejar el nombre de la relacin por defecto, que es lo ms recomendable, o pueden cambiar el nombre segn sea el caso, presionamos el botn Aceptar.

En esta ventana la dejamos como se ve en la imagen, estas son las reglas para la comprobacin de datos existentes, cuando se hace una insercin de una llave fornea [una llave fornea no es ms que una llave primaria referenciada en otra tabla ] primero comprueba que exista la llave primaria en la tabla a la que se hace referencia, para que as pueda existir un vinculo, igualmente cuando existe un borrado y actualizacin. Presionamos el botn Aceptar.

Como podemos ver las relaciones ya se han creado haremos esto con todas las tablas que tengan llaves forneas, o solo a las que vamos a necesitar, a veces no es conveniente hacer una relacin, pero hacemos un campo que hace referencia a una llave primaria de otra tabla.

Una vez que terminamos de haces todas nuestra relaciones guardamos nuestro diagrama de base de datos dando click en la pestaa de la ventana del diagrama y hacemos click en Guardar Diagrama1.

Ingresamos el nombre con el que guardaremos nuestro diagrama y listo.

Mediante Cdigo Transact-SQL: Las relaciones su pueden hacer alterando la tabla con la siguiente consulta:

Abrimos una Nueva Consulta. Y escribimos el formato de la consulta de la siguiente forma: Primero hacemos referencia a la base de datos que usaremos:

? 1 2

USE TerminalAutobuses GO

El formato para crea relaciones es el siguiente: ? 1 2 3 4 5

ALTER TABLE <<tabla_con_la_llave_foranea>> ADD CONSTRAINT <<nombre_de_la_relacion>> FOREIGN KEY(<<nombre_de_la_llave_foranea>>)REFERENCES <<tabla_de_la_llave_primaria>> GO

Ejemplo:

Y presionamos Ejecutar. En este ejemplo creamos una relacin con dos tablas, la tablaBoletos y la tabla Autobuses, la relacin la llamamos fk_Boletos_Autobuses, la llave fornea es idAutobus de la tabla Boletos, y hacemos referencia que idAutubus es llave primaria deAutobuses. As podemos ir creando todas las relaciones con nuestras tablas.

Las relaciones sern las siguientes;

Llaves Primarias Choferes idChofer Corridas idCorrida Autobuses idAutobus Sucursales idSucursal

Llaves Forneas Corridas idChofer Boletos IdCorrida Boletos idAutobus Boletos idSucursal Cajas idSucursal

Cajas idCaja

InicioCaja IdCaja

Cortes idCaja Cancelaciones idCaja Ventas idCaja Usuarios nombUsuario InicioCaja nombUsuario

Cortes nombUsuario Cancelaciones nombUsuario Ventas nombUsuario

Llenado de tablas.
Podemos llenar las tablas fcilmente mediante la edicin de filas, antes de hacer un llenado de tablas tenemos que tener en cuenta primero que nada las llaves primarias y la lgica de las relaciones, tenemos que crear llaves primarias para poder hacer referencia a las llaves forneas, que son las mismas llaves primarias pero en otra tabla, es decir; tenemos que crear una Sucursal para poder crear una Caja, una Choferes para poder crearCorridas, Autobuses y Usuarios para poder crear un Inicio de Caja y venta de boletos, etc.

Nos posicionamos en la tabla a la que deseamos editar los datos, damos click con el botn derecho y seleccionamos Editar las primeras 200 filas.

Se abrir la ventana de edicin de tablas y vamos ingresando los datos de las tablas. Para confirmarlos solo falta con hacer clic en la zona donde est el * como indica la imagen donde se encuentra el puntero.Si ingresamos fechas debemos hacerla con el formato Ao-Mes-Dia0000-00-00, los tipo bit se ingresaran como True o False.

Mediante cdigo Transact-SQL:

Abrimos una nueva ventana de consulta y escribimos el cdigo con el siguiente formato: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

USE TerminalAutobuses GO INSERT INTO <<Nombre_Tabla>> (<<Columna1>> ,<<Columna2>> ,<<Columna3>> ,.... ) VALUES (<<Valor1>> ,<<Valor2>> ,<<valor3>> ,.... ) GO

Ejemplo:

Y presionamos Ejecutar. As vamos llenando las tablas en las que necesitamos tener datos por el momento. Aqu los datos de nvarchar debemos encerrarlos entre comillas simples , los tipos Int y Money sin comillas, los Datetime pueden ir con comillas o sin ellas, los tipos bit se ingresan para verdadero como 1 y falso como 0.

Por el momento las tablas que no interesa llenar son las de: Sucursal, por lo menos una sucursal. Cajas, por lo menos una caja. Usuarios, por lo menos un usuario. Autobuses, dependiendo cuantas corridas se hagan. Corridas, las que se deseen. Choferes, dependiendo las corridas que pueda realizar el chfer. Estas son las nicas tablas que necesitamos llenar para despus manipular estos datos por medio de Visual y los Web Services.Y esto es todo por el momento, dudas o sugerencias pueden contactarme en los comentarios o en mi Twitter o Facebook Gracias.

También podría gustarte