Está en la página 1de 59

Contenido

Unidad 1. ............................................................................................................................................. 3 El entorno grfico SSMS ...................................................................................................................... 3 1.1. Introduccin ............................................................................................................................. 3 Unidad 1. Bsico: Introduccin a las bases de datos (I) ...................................................................... 3 Objetivos de un SGBD ..................................................................................................................... 3 Independencia de los datos. ....................................................................................................... 3 Seguridad e integridad. ............................................................................................................... 4 Redundancia mnima................................................................................................................... 5 Facilidad de recuperacin de la informacin .............................................................................. 5 Tipos de bases de datos .................................................................................................................. 6 Tipos de bases de datos segn su ubicacin ............................................................................... 6 Tipos de bases de datos segn la organizacin lgica de los datos ............................................ 9 La base de datos relacional ........................................................................................................... 11 Elementos de una base de datos relacional.............................................................................. 11 1.2. Instalar SQL Server 2005 ........................................................................................................ 14 Objetivo ......................................................................................................................................... 16 Ejercicio paso a paso ..................................................................................................................... 16 1.3. Entrada al SQL Server Management Studio ........................................................................... 16 1.4. Estructura interna de una base de datos ............................................................................... 18 1.5. Crear una base de datos en SSMS .......................................................................................... 19 1.6. Adjuntar una base de datos ................................................................................................... 24 Unidad 1. Ejercicio paso a paso: Adjuntar base de datos ................................................................. 26 Objetivo ......................................................................................................................................... 26 Ejercicio paso a paso ..................................................................................................................... 26 1.7. Conectar y Desconectar la base de datos .............................................................................. 27 Unidad 1. Ejercicio paso a paso: Trasladar una base de datos a otro equipo................................... 28 Objetivo ......................................................................................................................................... 28 Ejercicio paso a paso ..................................................................................................................... 28 1.8. Crear una nueva tabla ............................................................................................................ 29 1.9. Tipos de datos ........................................................................................................................ 30 1

1.10. Valores nulos ........................................................................................................................ 31 1.11. Columna con contador ......................................................................................................... 32 1.12. Clave primaria ...................................................................................................................... 33 1.13. Aadir o eliminar columnas ................................................................................................. 33 1.14. Modificar la definicin de una tabla .................................................................................... 34 1.15. Insertar datos en la tabla ..................................................................................................... 35 1.16. Modificar datos .................................................................................................................... 35 1.17. Eliminar filas ......................................................................................................................... 35 1.18. Relacionar tablas .................................................................................................................. 36 1.19. Abrir una nueva consulta ..................................................................................................... 39 1.20. Escribir y ejecutar cdigo TRANSACT-SQL ........................................................................... 41 1.21. La base de datos predeterminada........................................................................................ 42 1.22. El editor de texto .................................................................................................................. 44 1.23. Configurar un esquema de colores personalizado ............................................................... 44 1.24. Las Vistas .............................................................................................................................. 45 1.25. El panel de diagrama ............................................................................................................ 48 1.26. El panel de criterios .............................................................................................................. 49 1.27. El panel SQL .......................................................................................................................... 50 Ejercicio 1: Crear una base de datos ............................................................................................. 51 Ejercicio 2: Crear y definir tablas................................................................................................... 52 Tabla Libros ............................................................................................................................... 52 Tabla Prstamos ........................................................................................................................ 52 Tabla Usuarios ........................................................................................................................... 53 Ayuda ejercicios unidad 1 ................................................................................................................. 55 Ejercicio 1: Crear una base de datos ............................................................................................. 55 Ejercicio 2: Crear y definir tablas................................................................................................... 55 Ejercicio 3: Insertar datos en las tablas ......................................................................................... 55 Ejercicio 4: Modificar la definicin de las tablas ........................................................................... 56 Prueba evaluativa unidad 1: El entorno grfico SSMS ...................................................................... 57

Unidad 1. El entorno grfico SSMS


1.1. Introduccin
SQL Server 2005 es un sistema gestor de bases de datos relacionales de Microsoft Corporation orientado a sistemas medianos y grandes aunque tambin puede rodar en ordenadores personales. SQL Server Management Studio (SSMS) es la herramienta de SQL Server que permite definir y gestionar todas las bases de datos almacenadas en el servidor SQL Server 2005. En este tema veremos cmo utilizar el SQL Server Management Studio para manejar las bases de datos del servidor y organizaremos el texto en los siguientes puntos: Instalar SQL Server 2005. Entrada al SQL Server Management Studio Las bases de datos: Estructura interna, crear, adjuntar, conectar y desconectar. Las tablas: crear tablas, definirlas, modificar su contenido, etc. Relacionar tablas Las Consultas Las Vistas

Si no sabes lo que es una base de datos relacional o no tienes conocimientos previos acerca de las bases de datos, puedes leer una introduccin a las bases de datos en el siguiente bsico Unidad 1. Bsico: Introduccin a las bases de datos (I) Objetivos de un SGBD Un sistema gestor de bases de datos por definicin debe cumplir los siguientes objetivos: Independencia de los datos. Recordando uno de los problemas que plantean los ficheros convencionales. La independencia de los datos consiste en hacer que los programas no sean tan dependientes de la estructura de los datos. Se han definido dos tipos de independencia: La independencia fsica: consiste en poder modificar la definicin interna de los datos (el esquema interno) sin que ello suponga una modificacin de los programas existentes. Por ejemplo, se puede cambiar la ubicacin de la base de datos, o se puede aadir un ndice sobre una tabla para que las consultas se ejecuten ms rpidamente, sin que eso suponga una variacin en los esquemas externos y conceptual, por lo que los programas (que utilizan el esquema externo) no se vern afectados.

La independencia lgica: consiste en poder cambiar el esquema conceptual sin que ello suponga una modificacin de los programas existentes. Por ejemplo podemos aadir un nuevo dato en la tabla de clientes como la direccin de email sin que los esquemas externos se vean afectados. Seguridad e integridad. La seguridad consiste en que los usuarios no puedan acceder a datos sin autorizacin. Si juntamos toda la informacin de la empresa en un mismo sitio, el SGBD debe tener mecanismos para que cualquier usuario pueda tener acceso a nicamente la informacin que necesita para las tareas que tiene encomendadas.

Esta seguridad se consigue por medio de los esquemas externos, ya que el usuario slo tiene acceso a su esquema externo que le proporciona los datos que el administrador ha considerado incluir en ese esquema. Para el usuario no habr ms datos que estos. Adems los SGBD tienen mecanismos para definir autorizaciones que pueden ser de distinto tipo: autorizacin de lectura, de insercin, de actualizacin, autorizaciones especiales para poder variar el esquema conceptual etc. La integridad se refiere a que la informacin almacenada en la base de datos est libre de errores. Esto no siempre es posible ya que existen distintos tipos de errores que tienen diferentes soluciones: * Fallos de hardware. Estos errores no los puede evitar el SGBD pero se pueden subsanar facilitando copias de seguridad y procesos de recuperacin. * Fallos del programador. Puede que aparezcan datos errneos en la base de datos como consecuencia de errores en el programa que genera estos datos. Para evitar al mximo este tipo de errores el sistema debe ser fcil de programar, cuantos ms controles realice el sistema de forma automtica, menos controles habr que incluir a nivel de programacin por lo que limitaremos la probabilidad de fallo y los programas deben ser probados con juegos de ensayos bien definidos. * Fallos del usuario final. El usuario que introduce datos en la base de datos tambin puede cometer errores, el sistema debe permitir controlar al mximo la informacin que se introduce para limitar el nmero de estos errores, para ello los SGBD incluyen clusulas de validacin de los datos, validaciones de diferentes tipos que veremos con ms detalle ms adelante. * Fallos derivados de la concurrencia. Ya que toda la informacin est centralizada y los distintos usuarios acceden a ella de forma simultnea, pueden ocurrir problemas cuando dos usuarios quieren acceder al mismo dato a la vez. Por ello el SGBD debe tener establecidos mecanismos para evitar este tipo de problema, bloquear registros, abortar automticamente transacciones etc.

Redundancia mnima La redundancia consiste en que exista algn dato repetido en varios lugares. Por ejemplo si tenemos la direccin del cliente en la factura, en la cuenta contable, en los datos generales del cliente; esto como ya vimos anteriormente nos producir varios problemas: la informacin repetida ocupa espacio innecesario. la variacin de un domicilio supone el variar ese domicilio en todos los lugares donde est almacenado. mayor tiempo de proceso posibilidad de inconsistencia

Por todo ello hay que evitar al mximo esa redundancia, esto se consigue utilizando herramientas de diseo y obteniendo un diseo ptimo de la base de datos. Facilidad de recuperacin de la informacin Otro objetivo muy importante de un SGBD es el proporcionar al usuario (o programador) unas herramientas potentes de manejo de datos para que pueda de manera sencilla y rpida, obtener toda la informacin que desea sin que, por ello se tenga que hacer un programa complejo. Veremos que el SQL, lenguaje empleado para recuperar informacin de la base de datos, es un lenguaje muy potente y cercano al lenguaje hablado, y adems los SGBD incluyen entornos grficos sencillos de utilizar. El administrador de la base de datos El administrador es el encargado de gestionar y controlar todo el sistema con la ayuda que le proporciona el SGBD. Tiene una gran responsabilidad ya que de l depende que el sistema funcione correctamente y como tiene el mximo nivel de privilegios, sus errores pueden ser desastrosos. Entre sus responsabilidades se incluye: Instalar el SGBD en el sistema informtico (a veces). Realizar el diseo de la base de datos. Crear las bases de datos que se vayan a gestionar. Crear y mantener los esquemas de las bases de datos. Crear y mantener las cuentas de los usuarios de las bases de datos. Colaborar con el administrador del sistema en las tareas de ubicacin, dimensionado y control de los archivos y espacios de disco ocupados por el SGBD. Establecer estndares de uso, polticas de acceso y protocolos de trabajo diario para los usuarios de las bases de datos. Efectuar tareas de explotacin como: Vigilar el trabajo diario colaborando en la resolucin de las dudas de los usuarios. Controlar los tiempos de acceso, tasas de uso, cargas en los servidores, anomalas, etc. Llegado el caso, reorganizar las bases de datos. Disear y efectuar el planning de copias de seguridad peridicas. Restaurar la base de datos despus de un incidente.

Estudiar las auditoras mediante el ajuste de parmetros y con ayuda de las herramientas de monitorizacin del sistema y de las estadsticas. El diccionario de datos Dentro del SGBD, hay una parte que son datos sobre los datos, es una base de datos en la que se almacena toda la informacin necesaria para que el sistema funcione. Esta base de datos es el diccionario de datos y contiene: La estructura lgica y fsica de la base de datos. Las definiciones de todos los objetos de la base de datos: tablas, vistas, ndices, disparadores (triggers) funciones, procedimientos almacenados, etc. El espacio asignado y utilizado por los objetos. Los valores por defecto de las columnas de las tablas. Los privilegios otorgados a los usuarios. Informacin que permita obtener estadsticas y evaluaciones del rendimiento del sistema. Tipos de bases de datos Podemos realizar distintas clasificaciones de las bases de datos: Segn su ubicacin Segn la organizacin lgica de la informacin. Tipos de bases de datos segn su ubicacin 1. Bases de datos locales. En modo local tenemos la base de datos y el usuario ubicados en el mismo ordenador. Un ejemplo de base de datos que funciona en modo local es Microsoft Access, MS Access es una base de datos fcil de manejar por usuarios poco expertos que funciona bien en modo local y mientras no tenga que albergar grandes cantidades de informacin. Ventajas Economa Es la ms barata. Simplicidad No se necesita llevar controles de accesos concurrentes, de transmisin de datos, etc. Desventajas Monousuario En un instante determinado slo la puede utilizar una persona. Capacidad Suele tener una capacidad de almacenamiento limitado.

2. Bases de datos centralizadas En los sistemas centralizados tenemos la base de datos completa en un mismo servidor, y todos los usuarios acceden a ese servidor. Que la base de datos est en un mismo servidor no implica que est en un solo archivo o en el mismo disco, puede estar repartida.

En modo Cliente/Servidor, la base de datos se encuentra en un ordenador (el Servidor) y los usuarios acceden simultneamente a esa base de datos a travs de la red (sea una red local o Internet) desde sus ordenadores a travs de un programa Cliente. A nivel de empresas es el sistema que ms se utiliza en la actualidad. Ventajas Multiusuario Permite que varios usuarios accedan a la vez a la misma informacin. Desventajas Complejidad Tiene que incluir y gestionar un sistema de usuario y subesquemas.

No redundancia Seguridad Al estar todos los datos en el mismo servidor, la Se tienen que realizar controles para garantizar la informacin no se duplica y es ms fcil evitar seguridad de los datos, tanto a nivel interno como fallos debidos a redundancias. a nivel de comunicaciones.

3. Bases de datos distribuidas Tenemos la informacin repartida en distintas localizaciones unidas todas ellas mediante red y un sistema gestor de bases de datos distribuidas. Las distintas localizaciones suelen ser distintas geogrficamente.

Ventajas

Desventajas

Rendimiento Complejidad en el diseo de datos Una clara ventaja es que es posible ubicar los Adems de las dificultades que generalmente se datos en lugares donde se necesitan con ms encuentran al disear una base de datos, el frecuencia, aunque tambin se permita a diseo de una base de datos distribuida debe usuarios no locales acceder a los datos segn considerar la fragmentacin, replicacin y sus necesidades. Esto hace que la informacin ubicacin de los fragmentos en sitios especficos, se recupere de forma ms rpida y gil en las se tiene que trabajar tomando en cuenta su ubicaciones locales. Adems los sistemas naturaleza distribuida, por lo cual no podemos trabajan en paralelo, lo cual permite balancear pensar en hacer joins que afecten a tablas de la carga en los servidores. varios sistemas, etc. Disponibilidad Complejidad tcnica En caso de que falle la base de datos de alguna Se debe asegurar que la base de datos sea localidad, el sistema no se colapsa, puede seguir transparente, se debe lidiar con varios sistemas funcionando excluyendo los datos de la diferentes que pueden presentar dificultades localidad que haya fallado. nicas. Autonoma local Economa en el mantenimiento Un departamento puede controlar los datos que La complejidad y la infraestructura necesaria le pertenecen. implica que se necesitar mayor mano de obra. Economa en la implantacin Es ms barato crear una red de muchas mquinas pequeas, que tener una sola mquina muy poderosa. Seguridad Se debe trabajar en la seguridad de la infraestructura as como cada uno de los sistemas.

Modularidad Integridad Se pueden modificar, agregar o quitar sistemas Se vuelve difcil mantener la integridad, aplicar de la base de datos distribuida sin afectar a los las reglas de integridad a travs de la red puede ser muy caro en trminos de transmisin de dems sistemas (mdulos). datos. Falta de experiencia Las bases de datos distribuidas son un campo relativamente nuevo y poco comn por lo cual no existe mucho personal con experiencia o conocimientos adecuados. Carencia de estndares An no existen herramientas o metodologas que ayuden a los usuarios a convertir un DBMS centralizado en un DBMS distribuido. Tipos de bases de datos segn la organizacin lgica de los datos En un principio existan tres tipos de bases de datos segn su estructura interna (la manera de organizar la informacin): Bases de datos jerrquicos Bases de datos en red Bases de datos relacionales. Ms recientes son las bases de datos orientadas a objetos y las bases de datos multidimensionales. 1. Las bases de datos jerrquicas En una base de datos jerrquica se organizan los datos utilizando estructuras arborescentes (en rbol). Un RBOL es una estructura jerrquica en la que los elementos se suelen denominar NODOS y existen dependencias entre los nodos. La dependencia es de 1:M del tipo padre/hijo. Un hijo no puede tener ms de un padre, pero un padre varios hijos.

Un ejemplo de base de datos jerrquica es el sistema IMS.

2. Las bases de datos en red

Tambin en desuso, en una base de datos en red se utiliza la estructura de grafo/red, como en el caso anterior los distintos objetos estn relacionados entre s mediante relaciones del tipo 1:M pero en este caso un objeto puede estar relacionado como hijo con varios elementos que sern sus padres. En este caso las relaciones que se crean se denominan SET y el equivalente al padre se denomina PROPIETARIO (OWNER) y el equivalente al hijo se denomina MIEMBRO (MEMBER). Un ejemplo de sistema en red es el CODASYL. Tambin existen modelos para realizar el diseo de datos orientado a bases de datos en red.

En red podramos representar lo mismo que la estructura anterior y adems lo siguiente:

Los sistemas jerrquico y en red constituyen la primera generacin de los SGBD. Pero estos sistemas presentan algunos inconvenientes: Es necesario escribir complejos programas de aplicacin para responder a cualquier tipo de consulta de datos, por simple que sta sea. La independencia de datos es mnima. No incluyen controles de integridad. Por lo que pronto fueron sustituidos por los sistemas relacionales. 3. Las bases de datos relacionales Esta es la estructura que se ha impuesto para aplicaciones de gestin, consiste en organizar los datos en forma de tablas, las relaciones entre los objetos se consiguen incluyendo en la tabla del hijo, la clave del objeto padre. Como son las que utilizaremos durante todo el mdulo hemos reservado un apartado especial para ellas. 4. Las bases de datos orientadas a objetos Es un modelo ms reciente, trata de almacenar en la base de datos los objetos completos (estado y comportamiento). La informacin que contienen se organiza en atributos y el comportamiento en operaciones. 5. Las bases de datos mutidimensionales En una base de datos multidimensional los datos se almacenan en tablas de mltiples dimensiones en vez de tablas bidimensionales como las del modelo relacional. Se utilizan para grandes volmenes de informacin.

10

La base de datos relacional Elementos de una base de datos relacional Los datos se organizan en relaciones compuestas por tuplas de atributos. Si convertimos esta definicin a tablas tenemos que los datos se organizan en tablas compuestas por filas (registros) y columnas (campos). A cada tabla se le asigna un nombre nico. Una tabla tiene 0 o ms filas, y cada fila contiene la informacin de un determinado sujeto de la relacin. Las filas en un principio estn desordenadas. La lista de los atributos dispuestos en un orden especfico de izquierda a derecha y que forman la definicin de una tabla se denomina esquema de la tabla, mientras que los valores concretos de los datos que estn almacenados en la tabla se llaman ocurrencias. Por ejemplo, tenemos estas dos tablas:

El esquema de la tabla Piezas est compuesto por las columnas (Codigo, Denominacin, Precio, Fabricante, Codigo_segn_fab). Codigo es el cdigo de la pieza, Denominacion el nombre de la pieza, Fabricante el cdigo del fabricante que nos suministra la pieza y Cdigo_segn_fab el cdigo que utiliza ese fabricante para identificar la pieza en su sistema de gestin. Una ocurrencia de fila de la tabla Piezas sera:1, Taburete 3 patas, 25, Fab1, T123-34. Todos los valores de una columna determinada tienen el mismo tipo de datos, y stos estn extrados de un conjunto de valores legales llamado dominio de la columna. Muchas veces el dominio se corresponder con un tipo de datos estndar del sistema. Por ejemplo en la tabla Piezas la columna Codigo est definida sobre el dominio de los enteros. A parte de los valores del dominio, la columna puede contener un valor especial, el valor nulo. El valor nulo (NULL) es importante porque representa la ausencia de valor en el campo y no es lo mismo que el valor cero 0 o la cadena vaca o espacios en blanco. De hecho es un valor tan

11

especial que no funciona como los dems valores, por ejemplo no podemos comparar (con el operador de comparacin =) un campo con el valor nulo, tenemos que utilizar un operador especial (IS NULL). Incluso se han tenido que redefinir los operadores lgicos para tener en cuenta el valor nulo. Ej. En la tabla Fabricantes el campo direccin de la primera fila contiene el valor nulo (null) esto significa que este fabricante no tiene direccin (al menos conocida). En una tabla cada columna tiene un nico nombre y ste no se puede utilizar para nombrar otra columna de la misma tabla pero s de otra tabla. Por ejemplo en la tabla Piezas no se pueden definir dos columnas llamadas Codigo, por eso el segundo cdigo lo hemos llamado Codigo_segun_fab. Pero en la tabla Fabricantes la columna IdFab se poda haber llamado Codigo sin problema. En una tabla no se admiten dos filas con los valores coincidentes en todos sus campos. Esta restriccin no se suele cumplir. Esta regla nos dice que por ejemplo en la tabla Fabricantes no pueden haber dos filas con los valores Fab1, Muebles la Madera, null. Realmente sera informacin redundante, por eso la existencia de esta regla, no obstante en algunos casos muy concretos s es necesario poder almacenar dos ocurrencias de fila idnticas, por esta razn muchos SGBD no cumplen esta regla. Toda tabla debe tener una clave principal (clave primaria). Una clave primaria es cualquier una columna (o combinacin de columnas) que permite identificar de forma unvoca cada una de las filas de la tabla. Para que pueda cumplir su cometido, la clave primaria no puede contener valores nulos ni valores duplicados (no podr haber dos filas con el mismo valor en este campo). Hay SGBD que incluyen el concepto de clave primaria pero no la hacen obligatoria, por lo que en estos sistemas se pueden definir tablas sin clave primaria. En una tabla pueden existir ms de una columna que permita identificar las filas de la tabla, si queremos utilizar tales columnas como identificadores las definiremos como claves secundarias (alternativas). Una clave secundaria tiene las mismas restricciones que una clave primaria, pero como no podemos definir dos claves primarias, definimos la que se vaya a utilizar ms frecuentemente como clave primaria y la otra (u otras) como secundarias. Por ejemplo en la tabla Piezas la clave primaria es el campo Codigo ya que no hay ni puede haber dos piezas con el mismo cdigo. Este campo realmente sirve para identificar las filas de la tabla, sabiendo un valor de cdigo (por ejemplo el 2) sabremos que nos referimos a la fila de la mesa ovalada. En esta misma tabla tenemos una posible clave alternativa, la formada por los campos Fabricante y Codigo_segun_fab ya que en la tabla Piezas es imposible tener dos filas con la misma combinacin de valores en estos campos (el cdigo_segun_fab es el cdigo que utiliza el fabricante para identificar sus piezas).

12

Otro concepto muy importante, fundamental en las bases de datos relacionales, es la clave ajena (externa o fornea). Una clave ajena es un campo (o combinacin de campos) que contiene la referencia a una fila de otra tabla, tambin puede referirse a la misma tabla. En otras palabras, es un campo que seala a un registro de otra tabla, contiene un valor que identifica un registro de la otra tabla. Son los campos que se utilizan para relacionar las tablas entre s. Una tabla puede tener 0, una o varias claves ajenas (externas, forneas). Una clave ajena puede contener valores duplicados y valores nulos. Siguiendo el ejemplo anterior, en la tabla Piezas tenemos la clave ajena Fabricante ya que en este campo nos guardamos un valor que seala a una fila de la tabla Fabricantes, en este campo tenemos el cdigo del fabricante que nos suministra la pieza y este cdigo nos lleva al fabricante correspondiente en la tabla Fabricantes. Por ejemplo la pieza 3 es servida por el fabricante Fab2, valor que seala al fabricante Maderas Asociados. El SGBD deber velar por la integridad de los datos, para ello incluye varias reglas de integridad que se comprobarn de forma automtica sin necesidad de la intervencin externa de los usuarios o de los programas de aplicacin. Existen distintos tipos de reglas de integridad: La integridad de entidades (integridad de claves): Toda tabla debe tener una clave primaria que permite identificar unvocamente los registros que contiene, por lo tanto no puede contener el valor nulo ni valores duplicados. En el ejemplo anterior si intentamos insertar una nueva pieza con el cdigo 2, el sistema no nos dejar porque ya hay una pieza con este mismo cdigo en la tabla. La integridad referencial: En una clave ajena no puede haber un valor no nulo que no exista en la tabla de referencia. Para que no existan errores de integridad referencial en la base de datos, el sistema comprueba automticamente que los valores introducidos en las claves ajenas existan en el campo de referencia en la otra tabla, si no existe, no nos dejar insertar el registro. Volviendo al ejemplo anterior, si intentamos insertar una pieza con un cdigo de fabricante que no existe en la tabla de fabricantes, el sistema no nos dejar. A nivel de control sobre los datos, el SGBD debe de proporcionar herramientas para poder definir restricciones de dominio que se comprobarn de forma automtica (se comprueba que el valor introducido en una columna pertenece al dominio de la columna, al tipo de datos), y reglas de negocio, que son reglas especficas sobre los datos, en este tipo de reglas entran las reglas de validacin y reglas definidas a nivel superior que veremos ms adelante.

13

Una regla de validacin sera por ejemplo que el precio no pueda ser inferior a 10 euros, y una regla de negocio, que no pueda haber ms de 20 fabricantes. Un SGBD relacional sigue la arquitectura de tres niveles en la que tenemos en el nivel externo las vistas, en nivel conceptual el esquema conceptual con la definicin de todas las tablas, columnas que las componen y relaciones entre ellas, en el nivel interno tenemos la definicin fsica de la base de datos. Finalmente tenemos para poder manejar la informacin almacenada en la base de datos un lenguaje que cumple las reglas de Codd, el lenguaje SQL que veremos en prximos temas.

1.2. Instalar SQL Server 2005


Existen diferentes versiones (ediciones) del producto, por lo que es un producto muy verstil, que puede cumplir con las exigencias de cualquier empresa, puede ser utilizado para gestionar bases de datos en un PC en modo local a gestionar todo el sistema de informacin de grandes empresas pasando por sistemas que requieran menos potencia y por sistemas mviles. Actualmente se utiliza ms en entornos Cliente/servidor con equipos medianos y grandes. Para realizar este curso te recomendamos instalar la versin gratuita: Express. Puedes descargarla desde la pgina web de Microsoft, desde el enlace para iniciar descarga. Las ediciones disponibles SQL Server 2005 son las siguientes: SQL Server 2005 Express Edition. Gratuita. Con lmite de memoria (lo que limitar tambin en nmero de usuarios) y tamao de las BD.

SQL Server 2005 Workgroup Edition. Para pequeas empresas. Sin lmite de usuarios y tamao de las BD. No incluye caractersticas avanzadas.

SQL Server 2005 Standard Edition. Para empresas medianas. Sin lmite de usuarios y tamao de las BD. Incluye herramientas avanzadas de administracin y anlisis de datos.

14

SQL Server 2005 Enterprise Edition. Es el nivel ms alto, para grandes empresas. Aade al nivel anterior: Mayor potencia. Servicios especficos para grandes empresas. Puede aprovechar configuraciones multiprocesador, grandes cantidades de RAM, almacenes de datos del orden de TeraBytes (1000 GB).

SQL Server 2005 Developer Edition. Para entornos de desarrollo. Mismas posibilidades que la Enterprise. Licencia que limita su uso en entornos de explotacin.

SQL Server 2005 Mobile Edition. Para dispositivos pequeos. Base de datos compacta Diseada para admitir una lista amplia de dispositivos inteligentes y Tablet PC.

SQL Server 2005 Compact Edition. Gratuita. Formato compacto. Para aplicaciones de mviles y escritorio. Si la instalacin se realiza a partir del archivo descargado de Internet, la descarga se empaqueta como un nico ejecutable mediante una tecnologa de instalacin de Microsoft llamada SFXCab. Al hacer doble clic en el .exe se inicia automticamente el proceso de instalacin. Tan slo deberemos seguir el asistente. Los puntos ms importantes a tener en cuenta son: Habilitar el SQL Server Management Studio en la instalacin (si no lo est por defecto) cuando nos pregunte qu componentes deseamos instalar. Indicar que se trata de una Instancia predeterminada.

15

Lo ideal es que en este punto instales el programa, para ir probando lo que vayas aprendiendo de aqu en adelante. Puedes realizar el siguiente Ejercicio Instalacin de SQL Server 2005. El videotutorial prctico de instalacin tambin te ayudar.

Objetivo Descargar e instalar la versin gratuita de SQL Server 2005: La edicin Express. Ejercicio paso a paso 1. Accede a la pgina web de Microsoft, en su apartado de descarga de SQL Server Express 2. Haz clic en Ejecutar. 3. Acepta los trminos y condiciones de uso del programa, despus de leerlos. 4. Pulsa Instalar. 5. Asegrate de que incluyes en la instalacin el Management Studio Express, en la ventana Seleccin de caractersticas. 6. Establece el Nombre de instancia como Instancia predeterminada. 7. Instala el programa y cuando termine pulsa Finalizar.

1.3. Entrada al SQL Server Management Studio


Aunque trabaje en modo local, la entrada a la herramienta es la misma. Para empezar se ingresa a travs del acceso directo Server Management Studio. o a travs de Inicio, Programas, Microsoft SQL Server 2005, SQL

16

Lo primero que se deber hacer es establecer la conexin con el servidor:

Seleccionamos el nombre del servidor y pulsamos el botn Conectar. Se abrir la ventana inicial del SQL Server Management Studio (en adelante SSMS):

En la parte izquierda se tiene abierto el panel Explorador de Objetos en el que aparece debajo del nombre del servidor con el que estamos conectados una serie de carpetas y objetos que forman parte del servidor.

En el panel de la derecha se muestra la zona de trabajo, que vara segn lo que tengamos seleccionado en el Explorador de objetos, en este caso se observa el contenido de la carpeta que representa el servidor ord01.

17

En la parte superior se tiene el men de opciones y la barra de herramientas Estndar.

Con las siguientes opciones: 1. Nueva consulta 2. Consulta de motor de Base de datos 6. Consulta de SQL Server Mobile 7. Abrir archivo 11. Resumen

12. Explorador de Objetos 13. Explorador de Plantillas 14. Ventana de Propiedades

3. Consulta MDX de Analysis Services 8. Guardar 4. Consulta DMX de Analysis Services 9. Guardar todo 5. Consulta MXLA de Analysis Services

10. Servidores registrados

En caso de que utilice la versin Express, es posible que no disponga de algunos de stos botones.

1.4. Estructura interna de una base de datos


Antes de empezar tenemos que tener claro cmo se organiza la informacin en una base de datos SQL Server 2005. Las bases de datos de SQL Server 2005 utilizan tres tipos de archivos: Archivos de datos principales En una base de datos SQLServer los datos se pueden repartir en varios archivos para mejorar el rendimiento de la base de datos. El archivo de datos principal es el punto de partida de la base de datos y apunta a los otros archivos de datos de la base de datos. Cada base de datos tiene obligatoriamente un archivo de datos principal. La extensin recomendada para los nombres de archivos de datos principales es .mdf. Archivos de datos secundarios Los archivos de datos secundarios son todos los archivos de datos menos el archivo de datos principal. Puede que algunas bases de datos no tengan archivos de datos secundarios, mientras 18

que otras pueden tener varios archivos de datos secundarios. La extensin de nombre de archivo recomendada para los archivos de datos secundarios es .ndf. Adems los archivos de datos se pueden agrupar en grupos de archivos. Para cada base de datos pueden especificarse hasta 32.767 archivos y 32.767 grupos de archivos. Archivos de registro Los archivos de registro (archivos de log) almacenan toda la informacin de registro que se utiliza para recuperar la base de datos, el tambin denominado registro de transacciones. Como mnimo, tiene que haber un archivo de registro por cada base de datos, aunque puede haber varios. La extensin recomendada para los nombres de archivos de registro es .ldf. SQL Server 2005 no exige las extensiones de nombre de archivo .mdf, .ndf y .ldf, pero estas extensiones ayudan a identificar las distintas clases de archivos y su uso. Cada base de datos tiene al menos 2 archivos (un archivo de datos principal y un archivo de registro) y opcionalmente un grupo de archivos. Los archivos de datos y de registro de SQL Server se pueden colocar en sistemas de archivos FAT o NTFS. Se recomienda utilizar NTFS por los aspectos de seguridad que ofrece. No se pueden colocar grupos de archivos de datos de lectura y escritura, y archivos de registro, en un sistema de archivos NTFS comprimido. Slo las bases de datos de slo lectura y los grupos de archivos secundarios de slo lectura se pueden colocar en un sistema de archivos NTFS comprimido.

1.5. Crear una base de datos en SSMS


En el Explorador de objetos, si se despliega la carpeta Bases de datos aparecen Bases de datos del sistema y las bases de datos de usuario despus de la carpeta Instantneas...

19

Despus de la instalacin, en la carpeta Bases de datos del sistema se habr creado una especial denominada master se utiliza como base de datos de usuario por defecto. Las dems bases de datos forman tambin parte del diccionario de datos y las utiliza el sistema para llevar a cabo su gestin.

Las bases de datos de los usuarios se deben crear preferentemente fuera de la carpeta Bases de datos del sistema. Para crear una nueva base de datos de usuario nos posicionamos sobre la carpeta Bases de datos y con el botn derecho del ratn desplegamos el men contextual del que elegimos la opcin Nueva base de datos

Se abre a continuacin el cuadro de dilogo donde definiremos la base de datos que queremos crear:

20

Lo mnimo a introducir ser el campo Nombre de la base de datos, ste es el nombre de la base de datos lgica, la base de datos a la que nos referiremos dentro del SSMS, a nivel conceptual (en la imagen Mibase). Esta base de datos est asociada a dos archivos fsicos, en la parte inferior aparecen esos archivos. Para facilitarnos la tarea, al teclear el nombre de la bd lgica, se rellenan automticamente los nombres de los archivos fsicos, el de datos con el mismo nombre y el del archivo de registro con el mismo nombre seguido de _log. Estos nombres son los nombres que se asumen por defecto pero los podemos cambiar, posicionando el cursor en el nombre y cambindolo. Para cada archivo fsico podemos definir una serie de parmetros como el tipo de archivo (si es de datos o de transacciones Registro) y su ocupacin inicial (Tamao inicial). Si no indicamos ninguna ubicacin podemos ver que los guarda en la carpeta del SQL Server/MSSQL.n/MSSQL/DATA. n representa un nmero que puede variar de una instalacin a otra.

21

Estos son los archivos mnimos en los que se almacenar la base de datos, pero como ya vimos anteriormente se puede almacenar en ms archivos, los tenemos que definir todos en esta ventana a continuacin de los dos obligatorios. Para aadir ms archivos fsicos disponemos del botn Agregar. Al pulsar el botn Agregar se crea una nueva fila en la tabla de archivos fsicos donde deberemos escribir el nombre del archivo, su tipo (desplegando la lista podemos elegir entre de datos o de registro) y dems parmetros.

22

Al agregar un nuevo archivo se activa el botn Quitar, siempre que estemos posicionados encima de un archivo secundario para poder as eliminarlo si lo queremos. No podemos eliminar ni el de datos primario, ni el de registro inicial. Si nos fijamos en la zona de la izquierda, vemos que nos encontramos en la pestaa General, podemos cambiar otros parmetros de la base de datos pulsando en Grupos de archivos o en Opciones:

Al final pulsamos en Aceptar y se crear la base de datos.

23

Aparecer dentro de la carpeta Bases de datos. Si no se ve pulsa en el icono Actualizar

Desde el Explorador de Windows podemos ver que en la carpeta indicada se han creado los archivos fsicos con los nombres que le hemos indicado.

1.6. Adjuntar una base de datos


En ocasiones no necesitaremos crear la base de datos desde cero, porque sta ya estar creada. ste es el caso de los ejercicios del curso. Para realizarlos, debers adjuntar una base de datos ya existente a tu servidor. Para ello, lo que tenemos que hacer es pegar los archivos en la ubicacin que queramos, y luego indicar al SQL Server que vamos a utilizar esta base de datos, de la siguiente manera: En el Explorador de objetos, sobre la carpeta Bases de datos desplegar el men contextual y elegir Adjuntar...

24

En la siguiente ventana se elige la base de datos:

Pulsando en Agregar se indica el archivo de datos primario en su ubicacin y automticamente se adjuntar la base de datos lgica asociada a este archivo.

25

Finalmente se pulsa en Aceptar y aparece la base de datos en nuestro servidor.

La opcin Adjuntar slo se utiliza la primera vez, cuando todava no tenemos la base de datos en el disco. Realiza el siguiente Ejercicio Adjuntar base de datos. En l adjuntars las bases de datos que vas a utilizar en los ejercicios que se plantearn ms adelante. Unidad 1. Ejercicio paso a paso: Adjuntar base de datos Objetivo Importar bases de datos al servidor de SQL Server que has instalado. Ejercicio paso a paso 1. En la carpeta Ejercicios del curso, busca U3_Consultas_simples.zip y GestionA.zip y extrae su contenido en una carpeta que llamars Bases de datos. 2. Abre el SQL Server Management Studio Express. 3. Haz clic con el botn secundario del ratn sobre la carpeta Bases de datos que se encuentra en el Explorador de objetos del SSMS. 4. En el men contextual, elige Adjuntar... 5. Pulsa el botn Agregar y busca el directorio Bases de datos que contiene las dos bases que has descargado. 6. Selecciona la primera base (Gestion.mdf) y pulsa Aceptar. 7. Pulsa el botn Agregar de nuevo y esta vez selecciona GestionA.mdf. Cambia su nombre lgico (el campo Adjuntar como) a Gestion. As es como nos referiremos a ella.

26

8. Si todo va bien, te indicar que se han adjuntado correctamente y las vers en el Explorador de objetos (GestionA y GestionSimples). Si no las ves, pulsa el botn Actualizar .

1.7. Conectar y Desconectar la base de datos


Una vez hemos creado la base de datos o la hemos adjuntado a nuestro servidor, nos daremos cuenta de que no podremos manipular los archivos de la base desde fuera del gestor SSMS, por ejemplo, desde el Explorador de Windows. Es decir, no podremos copiar, cortar, mover o eliminar los archivos fuente mdf, ndf y ldf. Si lo intentamos se mostrar un aviso de que la base de datos est en uso. sto es as porque SQL Server sigue en marcha, a pesar de que se cierre el gestor. Ten en cuenta que el servidor de base de datos normalmente se crea para que sirva informacin a diferentes programas, por eso sera absurdo que dejara de funcionar cuando cerramos el programa gestor, que slo se utiliza para realizar modificaciones sobre la base. Para poder realizar acciones sobre la base de datos, sta debe estar desconectada. Para ello, desde el SSMS, desplegamos el men contextual de la base de datos que nos interese manipular y seleccionaremos la opcin Poner fuera de conexin:

Aparecer un smbolo a la izquierda de la base de datos indicndonos que la base de datos est desconectada, a partir de este momento Windows nos dejar manipular los archivos. Para volver a conectar la base de datos y seguir trabajando con ella, accederemos al mismo men contextual pero elegiremos la opcin Poner en conexin:

El caso ms inmediato en el que puedes necesitar conectar y desconectar la base de datos es copiar a un pendrive los archivos de las bases que utilizars en los ejercicios para poder trabajar en diferentes ordenadores con ellos. Para aprender cmo hacerlo, visita el siguiente Ejercicio Trasladar una base de datos a otro equipo. 27

Unidad 1. Ejercicio paso a paso: Trasladar una base de datos a otro equipo Objetivo Copiar una base de datos que est en uso en un servidor, y adjuntarla o actualizarla en otro. Ejercicio paso a paso Vamos a suponer que tenemos una base de datos en el servidor de clase y queremos llevarnos la base de datos a nuestra casa para seguir trabajando con ella. 1. Sabemos que la base de datos est en los archivos fsicos que definimos cuando definimos la base de datos, estos archivos se localizan en una determina ruta. Esta informacin se encuentra en las propiedades de la base de datos, para acceder a la ventana de propiedades de la base de datos (parecida la que se abri cuando creamos la base de datos) utilizamos como siempre el men contextual que nos llevar a la ventana Propiedades de la base de datos:

2. Una vez sabemos la ruta, utilizamos el Explorador de Windows para abrir a la carpeta donde se encuentran los archivos.

28

3. Volvemos al SSMS y desconectamos la base de datos, como ya hemos visto: Desde el men contextual y eligiendo Tareas>Poner fuera de conexin. 4. Ahora que ya est desconectada, copiamos los archivos desde el Explorador de Windows, por ejemplo, a nuestro pendrive. Ya tenemos una copia de la base de datos de clase. Ahora vamos a ver cmo incluirla en el otro ordenador, es decir, en casa. En caso de que la base de datos no exista, debers adjuntarla como ya hemos visto: Desde el men contextual de bases de datos y eligiendo la Adjuntar... En caso de que la base de datos ya exista y lo que quieras sea actualizarla, debers: 1. Desconectar la base existente desde SSMS. 2. Sobreescribir los archivos fsicos por los nuevos que llevas en el pendrive, desde el Explorador de Windows. 3. Volver a conectar la base de datos desde SSMS.

En caso de que tu versin de SQL Server no tenga las opciones Poner en conexin y Poner fuera de conexin, debers utilizar la opcin Separar... y luego volver a adjuntarla.

1.8. Crear una nueva tabla

Para crear una nueva tabla primero nos tenemos que posicionar en la base de datos donde queremos que se almacene la tabla, desplegar el men contextual y seleccionar la opcin Nueva tabla.

29

En la ventana que se abre debemos definir las columnas de la tabla:

A cada columna se le asigna un nombre, un tipo de datos, y opcionalmente una serie de propiedades, en este tema veremos las bsicas y las dems las veremos con ms detalle cuando veamos la instruccin SQL CREATE TABLE. De momento no tenemos definida ninguna columna, al teclear un nombre se crea una primera entrada en esta tabla con la definicin de la primera columna. En la columna Tipo de datos elegimos qu tipo de valores se podrn almacenar en la columna.

1.9. Tipos de datos

Podemos elegir entre todos los tipos que aparecen arriba. Algunos tipos no necesitan ms, como por ejemplo el tipo entero (int), y otros se pueden completar con una longitud, como los tipos alfanumricos:

30

En este ejemplo hemos definido una columna (Codigo) de tipo Entero corto (Smallint), y una columna (Nombre) que almacenar hasta 20 caracteres alfanumricos (nchar(20)), en este caso la longitud la indicamos en la pestaa Propiedades de columna en la propiedad Longitud. Las propiedades de la columna pueden variar dependiendo del tipo de datos de la columna seleccionada, por ejemplo los campos enteros no tienen la propiedad longitud, ya que el propio tipo define la longitud del campo, en cambio los campos de tipo numeric o decimal no tiene la propiedad longitud pero s las propiedades escala y precisin, los valores que permiten definir el tamao del campo.

1.10. Valores nulos


Tambin podemos indicar si la columna permitir valores nulos o no, o bien cambiando la propiedad Permitir valores nulos que aparece debajo de la propiedad Longitud, o bien simplemente marcando o desmarcando la casilla de la columna Permitir valores nulos que se encuentra al lado de la columna Tipo de datos. Si la casilla est marcada, el usuario podr no rellenar el campo cuando inserte una fila de datos en la tabla.

31

1.11. Columna con contador

En la mayora de los sistemas gestores de bases de datos tenemos un tipo de datos de tipo contador, autonumrico, autoincremental, etc. Este tipo hace que el propio sistema es el encargado de rellenar el campo con un valor que va incrementando conforme se crean ms filas de datos en la tabla. Las columnas de este tipo se utilizan normalmente para numerar las filas de la tabla, como no habrn dos filas con el mismo valor (el sistema se encarga de incrementar el valor cada vez que se crea una nueva fila), estos campos se suelen utilizar como claves primarias. En SQL Server 2005 no existe el tipo de datos Contador pero se consigue el mismo funcionamiento asignando a la columna un tipo de datos numrico y definiendo la columna como columna de identidad. En las propiedades de la columna marcamos S en la propiedad (Identidad) y a continuacin podemos indicar en qu valor queremos que empiece el contador (Inicializacin de identidad) y en cunto incrementar cada vez que se cree un nuevo registro (Incremento de identidad). Aunque este tipo de columnas se utiliza frecuentemente como clave primaria, SQL Server no le asigna automticamente esta funcin, la tenemos que definir nosotros mismos, pero s fuerza a que sea una columna sin valores nulos. No se puede definir ms de una columna de identidad por tabla.

32

1.12. Clave primaria


Para definir una columna como clave primaria, posicionamos el puntero del ratn sobre la columna, desplegamos el men contextual y seleccionamos la opcin Establecer Clave principal:

Aparecer una llave a la izquierda del nombre, smbolo de las claves principales:

Para definir una clave primaria compuesta por varias columnas, seleccionamos las columnas manteniendo pulsada la tecla Ctrl y luego seleccionamos la opcin. Para quitar una clave principal, hacemos lo mismo pero en esta ocasin seleccionamos la opcin Quitar clave principal.

Tambin podemos utilizar el icono de la barra de herramientas.

1.13. Aadir o eliminar columnas


Una vez definidas algunas columnas, si queremos aadir una nueva columna entre dos, nos posicionamos en la segunda y seleccionamos la opcin Insertar columna del men contextual. La nueva columna se colocar delante:

33

Del mismo modo si queremos eliminar la definicin de una columna, nos posicionamos en la columna a eliminar y seleccionamos la opcin Eliminar columna:

O simplemente hacemos clic en la zona a la izquierda del nombre y pulsamos la tecla Supr. Finalmente guardamos la tabla, nos pedir el nombre de la tabla:

La nueva tabla aparecer en la lista de tablas de la base de datos:

1.14. Modificar la definicin de una tabla


Para entrar a la ventana de definicin de la tabla utilizamos la opcin Modificar de su men contextual (Tambin es posible que se llame Diseo):

Se abrir la ventana que ya conocemos para definir las columnas de la tabla.

34

1.15. Insertar datos en la tabla


Ahora que tenemos la tabla creada podemos rellenarla con datos. Para eso debemos abrir la tabla:

Se abrir una ventana parecida a esta:

La primera columna sirve para indicarnos el estado de una fila, por ejemplo el * nos indica que es una nueva fila, esta fila realmente no est en la tabla, nos sirve de contenedor para los nuevos datos que queremos insertar. Para insertar una nueva fila de datos slo tenemos que rellenar los campos que aparecen en esa fila (la del *), al cambiar de fila los datos se guardarn automticamente en la tabla a no ser que alguno infrinja alguna regla de integridad, en ese caso SQL Server nos devuelve un mensaje de error para que corrijamos el dato errneo, si no lo podemos corregir entonces slo podemos deshacer los cambios.

1.16. Modificar datos


Para modificar un valor que ya est en una fila de la tabla slo tenemos que posicionarnos en el campo y rectificar el valor. En cuanto modificamos un valor, la fila aparece con un lpiz escribiendo (ver imagen), este lpiz nos indica que la fila se ha modificado y tiene nuevos datos por guardar. Al salir de la fila sta se guardar automticamente a no ser que el nuevo valor infrinja alguna regla de integridad. Si queremos salir de la fila sin guardar los cambios, tenemos que cancelar la actualizacin pulsando la tecla ESC.

1.17. Eliminar filas


Para eliminar una fila completa, la seleccionamos y pulsamos la tecla Supr o bien desplegamos su men contextual y seleccionamos la opcin Eliminar.

35

En cualquiera de los dos casos nos aparece un mensaje de confirmacin.

1.18. Relacionar tablas


Como ya hemos visto, en una base de datos relacional, las relaciones entre las tablas se implementan mediante la definicin de claves ajenas, que son campos que contienen valores que sealan a un registro en otra tabla, en esta relacin as creada, la tabla referenciada se considera principal y la que contiene la clave ajena es la subordinada. Desde el entorno grfico del SSMS podemos definir claves ajenas entrando en el diseo de la tabla y desplegando el men contextual del campo que va a ser clave ajena:

Selecciona la opcin Relaciones y se abre la ventana:

36

Al pulsar el botn que se encuentra en la fila Especificacin de tablas y columnas se abre el dilogo donde definiremos la relacin:

En la parte derecha se tiene la tabla en la que esta y el campo que va a actuar como clave ajena, slo queda elegir en el desplegable de la izquierda la tabla a la que hace referencia la clave y al seleccionar una tabla, a la izquierda del campo clave ajena se puede elegir el campo de la otra tabla por el que se relacionarn las tablas. En nuestro caso ser:

De esta forma se ha definido una relacin entre las tablas Facturas y Clientes. Para ver las relaciones existentes entre las diferentes tablas tenemos los diagramas. 37

Primero debe definir el diagrama, para ello selecciona la opcin correspondiente:

Si no tiene todava ningn diagrama creado aparece un mensaje:

Elegimos S y se crea digamos el soporte donde se pintar el diagrama. A continuacin nos aparece el nuevo diagrama ahora si elegimos crear un nuevo diagrama nos preguntar las tablas a incluir en el diagrama:

Seleccionamos cada una y pulsamos Agregar, cuando hayamos agregado al diagrama todas las que queremos pulsamos en Cerrar y aparecern en el diagrama las tablas con las relaciones que tengan definidas en ese momento:

38

La llave indica la tabla principal (padre) y el smbolo infinito seala la tabla que contiene la clave ajena. En el examinador de objetos en la carpeta Diagramas de base de datos aparecen todos los diagramas definidos hasta el momento:

Hemos aprendido hasta ahora lo bsico para poder crear una base de datos y rellenarla con tablas relacionadas entre s y con datos, ahora veamos cmo recuperar esos datos.

1.19. Abrir una nueva consulta


Vamos a ver ahora cmo crear consultas SQL y ejecutarlas desde el entorno del SSMS. Para ello debemos abrir la zona de trabajo de tipo Query, abriendo una nueva consulta, seleccionando previamente el servidor y pulsando el botn de la barra de botones o si queremos realizar la consulta sobre un servidor con el cual todava no hemos establecido conexin, seleccionando de la barra de mens la opcin Nuevo>Consulta de motor de base de datos:

39

. En este ltimo caso nos aparecer el cuadro de dilogo para establecer la conexin (el mismo que vimos al principio del tema). A continuacin se abrir una nueva pestaa donde podremos teclear las sentencias SQL:

Adems aparece una nueva barra de botones que nos permitir ejecutar los comandos ms tiles del modo query.

40

1.20. Escribir y ejecutar cdigo TRANSACT-SQL


Slo tenemos que teclear la sentencia a ejecutar, por ejemplo empezaremos por crear la base de datos. Utilizaremos la sentencia CREATE DATABASE mnima: CREATE DATABASE ventas; Al pulsar el botn Ejecutar se ejecuta la sentencia y aparece en la parte inferior el resultado de la ejecucin, en la pestaa Mensajes:

Si ahora desplegamos la carpeta Bases de Datos del Explorador de Objetos, observaremos la base de datos que hemos creado:

41

Si la ejecucin de la sentencia produce un error, el sistema nos devolver el mensaje de error escrito en rojo en la pestaa Mensajes. Podemos incluir en una misma consulta varias sentencias SQL, cuando pulsamos Ejecutar se ejecutarn todas una detrs de otra. Si tenemos varias consultas y slo queremos ejecutar una, la seleccionaremos antes de ejecutarla.

1.21. La base de datos predeterminada


Cuando ejecutamos consultas desde el editor, nos tenemos que fijar sobre qu base de datos se va a actuar. Fijndonos en la pestaa de la consulta, en el nombre aparece el nombre del servidor seguido de un punto y el nombre de la base de datos sobre la que se va a actuar y luego un guin y el nombre de la consulta.

En la imagen anterior tenemos ord01.master SQLQuery1.sql, lo que nos indica que la consulta se llama SQLQuery1.sql, y que se va a ejecutar sobre la base de datos master que se encuentra en el servidor ord01. Cuando creamos una nueva consulta, sta actuar sobre la base de datos activa en ese momento. Por defecto la base de datos activa es la predeterminada (master). Si queremos que la base de datos activa sea por ejemplo la base de datos ventas, hacemos clic sobre su nombre en el Explorador de objetos, y sta pasar a ser la base de datos activa. Si ahora creamos una nueva consulta, sta actuar sobre la base de datos ventas. Si queremos crear una consulta que siempre acte sobre una determinada base de datos y no nos queremos preocupar de qu base de datos tenemos activa podemos aadir al principio de la consulta la instruccin USE nombreBaseDatos; esto har que todas las instrucciones que aparezcan despus, se ejecuten sobre la base de datos indicada. Por ejemplo: USE ventas; SELECT * FROM pedidos; Obtiene todos los datos de la tabla pedidos que se encuentra en la base de datos ventas. Si no utilizamos USE y almacenamos la consulta, al abrirla otra vez, coger como base de datos la predeterminada (no la activa) y se volver a ejecutar sobre la base de datos master. Normalmente utilizaremos como base de datos la nuestra y no la base de datos master, por lo que nos ser til cambiar el nombre de la base de datos por defecto, esto lo podemos hacer cambiando la base de datos por defecto en el id de sesin. Para ello, cuando vamos a conectar con el servidor:

42

Pulsamos en el botn Opciones >>

En la pestaa Propiedades de conexin, en el cuadro Conectar con base de datos: Seleccionamos <Examinar servidor > para elegir la base de datos.

43

La elegimos y aceptamos. A partir de ese momento la base de datos elegida ser la que SQL Server coja por defecto en todas las sesiones de ese usuario.

1.22. El editor de texto


Para facilitarnos la redaccin y correccin de las sentencias, el editor de SQL presenta las palabras de distintos colores segn su categora y podemos utilizar el panel Explorador de Objetos para arrastrar desde l los objetos sobre la zona de trabajo y as asegurarnos de que los nombres de los objetos (por ejemplo nombre de tabla, de columna, etc.) sean los correctos. Como hemos dicho el texto que se escribe en este editor de cdigo se colorea por categora. Los colores son los mismos que se utilizan en todo el entorno SQL Server. En esta tabla aparecen los colores ms comunes. Color Rojo Verde oscuro Negro sobre fondo plateado Fucsia Verde Azul Verde azulado Rojo oscuro Gris oscuro Categora Cadena de caracteres Comentario Comando SQLCMD Funcin del sistema Tabla del sistema Palabra clave Nmeros de lnea o parmetro de plantilla Procedimiento almacenado de SQL Server Operadores

1.23. Configurar un esquema de colores personalizado


En el men Herramientas>Opciones, desplegando la opcin Entorno, Fuentes y colores, se puede ver la lista completa de colores y sus categoras, as como configurar un esquema de colores personalizado:

44

En la lista Mostrar valores para, seleccionamos el entorno que se ver afectado. El botn Usar predeterminados nos permite volver a la configuracin predeterminada. Ahora slo nos queda aprender a redactar sentencias SQL, cosa que se ver en otro momento, mientras tanto podemos utilizar el Generador de Consulta que incluye SSMS y que veremos a continuacin en el apartado sobre vistas.

1.24. Las Vistas


Las consultas que hemos visto hasta ahora son trozos de cdigo SQL que podemos guardar en un archivo de texto y abrir y ejecutar cuando queramos, pero si queremos que nuestra consulta de recuperacin de datos se guarde en la propia base de datos y se comporte como una tabla (algo parecido a una consulta almacenada de Access), la tenemos que definir como una vista. Esta vista tiene la ventaja entre otras de poder ser utilizada como si fuese una tabla en otras consultas. Realmente al ejecutarla obtenemos una tabla lgica almacenada en memoria y lo que se guarda en la base de datos es su definicin, la instruccin SQL que permite recuperar los datos.

45

Para definir una vista en el Explorador de Objetos desplegamos la base de datos donde la guardaremos y elegimos la opcin Nueva vista del men contextual de la carpeta Vistas, se pondr en funcionamiento el generador de consultas pidindonos las tablas en las que se basar la vista. Pulsamos sobre la tabla a aadir al diseo de la vista y pulsamos el botn Agregar, podemos aadir as cuntas tablas queramos. Despus de Cerrar, vemos a la derecha del Explorador de Objetos la pestaa con la definicin de la vista que puede incluir varios paneles:

46

La aparicin de estos paneles es configurable, en la barra de herramientas Diseador de vistas los iconos remarcados en azul son los correspondientes a cada panel:

47

Nosotros, a lo largo del curso, crearemos las vistas desde el panel SQL que veremos ms adelante.

1.25. El panel de diagrama


Es el primero que aparece, incluye una representacin grfica de las tablas con sus campos y de la forma en que se juntan en la vista. En este caso, como las tablas tienen relaciones definidas (claves ajenas), esta relacin ha aparecido automticamente al aadir la segunda tabla. Pero se puede cambiar el tipo de relacin eligiendo la opcin correspondiente en el men contextual que aparece con el clic derecho sobre la relacin:

Desde el panel diagrama podemos aadir cmodamente campos de las tablas a la consulta marcando la casilla correspondiente. En la imagen anterior la nica casilla seleccionada es la del * en la tabla Libros por lo que se visualizarn todas las columnas de la tabla Libros y ninguna de la tabla Prstamos. Conforme vamos marcando casillas de las tablas del panel diagrama, los cambios se ven reflejados en los dems paneles excepto en el panel de resultados que se actualiza ejecutando la consulta.

48

1.26. El panel de criterios


Es una rejilla en la que podemos definir las columnas del resultado de la consulta (las columnas de la vista).

En cada fila de la rejilla se define una columna del resultado o una columna que se utiliza para obtener el resultado. En Columna tenemos el nombre de la columna de la se obtienen los datos o la expresin cuando se trata de una columna calculada. En Alias escribimos el nombre que tendr la columna en la vista, tambin corresponde con el encabezado de la columna en la rejilla de resultado. Si se deja el campo en blanco, por defecto se asume el mismo nombre que hay en Columna. En Tabla tenemos el nombre de la tabla del origen de la consulta a la que pertenece la Columna, por ejemplo la primera columna del resultado se saca de la columna Codigo de la tabla LIBROS y se llamar CodLibro. La cuarta columna de la vista coger sus datos de la columna Usuario de la tabla Prestamos y se llamar Usuario (Alias se ha dejado en blanco por lo que asume el nombre que hay en Columna. En la columna Resultados indicamos si queremos que la columna se visualice o no, las columnas con la casilla marcada se visualizan. Las columnas Criterio de ordenacin y Tipo de orden permiten ordenar las filas del resultado segn una o ms columnas. Se ordena por las columnas que tienen algo en Tipo de orden y cuando se ordena por varias columnas Criterio de ordenacin indica que primero se ordena por la columna que lleva el n 1 y despus por la columna que lleva el n 2 y as sucesivamente. En el ejemplo las filas del resultado se ordenarn primero por cdigo de libro y despus por cdigo de prstamo, todas las filas dentro del mismo libro se ordenarn por cdigo de prstamo.

49

Si queremos aadir unos criterios de seleccin tenemos las columnas Filtro y O

En cada celda indicamos una condicin que debe cumplir la columna correspondiente y se puede combinar varias condiciones mediante O (OR) e Y (AND) segn coloquemos las condiciones en la misma columna o en columnas diferentes. En el ejemplo anterior tenemos la condicin compuesta: ((usuario=1) AND (Dias>5)) OR (Usuario=2). Podemos variar el orden de aparicin de las columnas arrastrando la fila correspondiente de la rejilla hasta el lugar deseado. Tambin podemos Elimnar filas de la rejilla para eliminar columnas del resultado, lo conseguimos seleccionando la fila haciendo clic sobre su extremo izquierda y cuando aparece toda la fila remarcada pulsamos Supr o desde el men contextual de la fila. Podemos definir consultas ms complejas como por ejemplo consultas de resumen, pulsando sobre el botn Agrupar por de la barra de herramientas, se aade a la rejilla una nueva columna Agrupar por con las siguientes opciones:

1.27. El panel SQL


En l vemos la instruccin SQL generada, tambin podemos redactar directamente la sentencia SQL en el panel y ver los cambios equivalentes en los distintos paneles. Para ver estos cambios debemos de ejecutar o Comprobar la sintaxis para que se actualicen los dems paneles.

50

Por defecto el generador aade a la consulta una clusula TOP (100) PERCENT que indica que se visualizarn el 100% de las filas. Esta clusula no la hemos definido nosotros sino que la aade automticamente el generador. Una vez tenemos la vista definida la guardamos y podremos hacer con ella casi todo lo que podemos hacer con una tabla. De hecho si nos fijamos en el Explorador de objetos, en la carpeta Vistas:

Vemos que la estructura es muy similar a la estructura de una tabla. Y que podemos modificar su definicin y ejecutarla, igual que con las tablas: Modificar para modificar la definicin de la vista Abrir vista para ejecutarla y ver los datos como si fuese una tabla real.

Ejercicio 1: Crear una base de datos Se desea implementar una base de datos para el control de una biblioteca. Crea la base de datos con el nombre Biblioteca y las opciones por defecto.

51

Ejercicio 2: Crear y definir tablas Crea las tablas Libros, Prstamos y Usuarios de forma que sigan el siguiente esquema: Tabla Libros NOMBRE CAMPO TIPO DE DATOS TAMAO Codigo Nombre Editorial Autor Genero PaisAutor Paginas AnyEdicion Precio Dias Numrico Texto Texto Texto Texto Texto Numrico Fecha/Hora Moneda Numrico Entero Byte 60 25 25 20 20 Entero Fecha mediana

Tabla Prstamos NOMBRE CAMPO TIPO DE DATOS TAMAO Codigo Libro Usuario FSalida FMaxima FDevol Autonumrico Numrico Numrico Fecha/Hora Fecha/Hora Fecha/Hora Byte Byte Fecha mediana Fecha mediana Fecha mediana

52

Tabla Usuarios NOMBRE CAMPO TIPO DE DATOS TAMAO Codigo Nombre Apellidos DNI Domicilio Poblacion Provincia FNacim Autonumrico Texto Texto Texto Texto Texto Texto Fecha/Hora 15 25 12 50 30 20 Fecha mediana Entero

Maximo_permitido Numrico

Ejercicio 3: Insertar datos en las tablas Inserta los datos en las tablas de forma que el resultado sea el siguiente:

53

Ejercicio 4: Modificar la definicin de las tablas Observando los datos, averigua: Claves primarias Claves ajenas Valores no nulos (supondremos que una columna no admite nulos si en los datos sumnistrados no hay ningn nulo en esa columna). Modifica la definicin de las tablas para incorporar esta informacin.

54

Ayuda ejercicios unidad 1


Ejercicio 1: Crear una base de datos Para crear la base de datos con el nombre Biblioteca y las opciones por defecto: 1. Abre el SQL Server Management Studio Express que instalaste. 2. Haz clic con el botn secundario del ratn sobre la carpeta Bases de datos del Explorador de objetos. 3. Selecciona Nueva base de datos... 4. Llmala Biblioteca y deja los nombres y caractersticas de los archivos con su definicin predeterminada. Pulsa Aceptar. 5. Despliega el contenido de la nueva carpeta Biblioteca pulsando sobre el signo + para comprobar que se ha creado correctamente. Ejercicio 2: Crear y definir tablas Para crear las tablas: 1. Despliega el contenido de la base de datos Biblioteca, en el Explorador de objetos. 2. Despliega el men contextual de Tablas y escoge la opcin Nueva tabla... 3. Escribe el nombre de cada columna y escoge el tipo de datos en el desplegable. En la zona inferior, en la pestaa Propiedades de columna, busca el campo que define el tamao del dato y cmbialo si es necesario. 4. Cuando hayas acabado, pulsa el botn Guardar o cierra la tabla y dale el nombre correspondiente. 5. Repite los pasos para cada una de las tres tablas. Ejercicio 3: Insertar datos en las tablas Para insertar los datos en las tablas. 1. Despliega el contenido de la carpeta Tablas de Biblioteca, en el Explorador de objetos. 2. Despliega el men contextual de una de las tablas y escoge la opcin Abrir tabla. Rellena los campos. 3. Repite la operacin para las otras dos tablas.

55

Ejercicio 4: Modificar la definicin de las tablas Para modificar la definicin de las tablas: Ten en cuenta que las claves primarias sern los campos codigo de cada tabla. Adems, el campo Libro de la tabla Prestamos es clave ajena, hace referencia al Codigo de Libros. Y el campo Usuario tambin es clave ajena, hace referencia al Codigo de Usuarios 1. Despliega el contenido de la carpeta Tablas de Biblioteca, en el Explorador de objetos. 2. Despliega el men contextual de la tabla que quieras modificar y escoge la opcin Diseo (o Modificar). 3. Incluye la clave primaria seleccionando la columna Codigo y pulsando el botn en forma de llave de la barra de herramientas. 4. Si la tabla contiene una clave ajena, indcalo desplegando el men contextual del campo que quieres relacionar y seleccionando Relaciones... 5. No olvides marcar o desmarcar la casilla Permite valores nulos convenientemente. 6. Repite la operacin para las otras dos tablas.

56

Prueba evaluativa unidad 1: El entorno grfico SSMS


Slo una respuesta es vlida por pregunta. Haz clic en la respuesta que consideres correcta. Contesta todas las preguntas y haz clic en el botn Corregir para ver la solucin. Si pulsas Restablecer podrs repetir la evaluacin. a) El Explorador de objetos... a) Es un panel que muestra el contenido de nuestro servidor: bases de datos, tablas, etc. ordenados jerrquicamente. b) Permite acceder a elementos de nuestro servidor rpidamente y efectuar acciones sobre ellos mediante el men contextual. c) A y B son ciertas. d) d) A y B son falsas. b) En qu carpeta se deben, por lo general, crear las bases de datos? a) b) c) d) Bases de datos > Bases de datos del sistema. Bases de datos. Objetos del servidor. d) Administracin.

c) Como mnimo, una base de datos en SQL Server debe conener los archivos fsicos: a) b) c) d) mdf y ldf, es decir, el principal y el de registro. mdf, ndf y ldf: Principal, secundario y de registro. mdf y ndf: Principal y secundario. mdf: Principal.

d) Para copiar los archivos fsicos de una base de datos... a) Deberemos acceder a la carpeta donde est guardada, mediante el explorador de windows, y copiarlos. b) Deberemos desconectarla antes de intentar copiarla, si no el sistema no nos dejar hacerlo porque est en uso. c) Deberemos utilizar la herramienta de copias de seguridad, porque no se puede acceder a ella desde fuera del gestor SSMS. d) Todas son falsas. e) Para incluir una base de datos en nuestro servidor... a) Es necesario crearlo desde el mismo servidor. b) Es necesario, por seguridad, crear la base de datos en un servidor diferente al que lo ejecutar. c) Podemos crear una nueva o adjuntar una ya existente. d) Deberemos hacerlo mediante instrucciones SQL, ya que el entorno grfico no lo permite.

57

f) Al definir las columnas de una tabla, qu informacin deberemos especificar? a) b) c) d) El rango de valores que soporta. El nombre, tipo y si admite nulos, para cada columna. La longitud de la cadena. Las variables.

g) Si definimos una columna de identidad (IDENTITY)... a) b) c) d) SQL Server automticamente la define como clave principal. ) sta admitir nulos. sta deber ser de tipo nchar. El sistema generar su valor, que ser un nmero incrementado.

h) Para modificar los datos de una tabla: a) Desde el Explorador de objetos, desplegamos su men contextual y elegimos la opcin Modificar. b) Desde el Explorador de objetos, desplegamos su men contextual y elegimos la opcin Abrir tabla. c) A y B son ciertas. d) A y B son falsas. i) Para relacionar dos tablas, por ejemplo empleados y oficinas. a) Deberemos llamar del mismo modo al campo que las relacionar y el gestor se encarga automticamente de crear la relacin. b) Deberemos seleccionar el campo de la tabla padre empleados y pulsar el botn definir hijos para aadir el campo de oficinas. c) Deberemos, necesariamente, escribir instrucciones SQL que se encarguen de establecer las relaciones. d) Deberemos desplegar el men contextual del campo que las relaciona y elegir Relaciones. j) a) b) c) d) Si pulsamos el botn Nueva consulta... Se abrir una pestaa nueva en forma de editor, donde podremos escribir consultas SQL. Podremos utilizar la zona de edicin para escribir varias consultas, una detrs de otra. Dispondremos de un editor que colorear las palabras en funcin de su categora. Todas son ciertas.

58

59