La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Diseño de Bases de Datos Laboratorios 1º y 2º Introducción al SGBD SQL Server de Microsoft ®

Presentaciones similares


Presentación del tema: "Diseño de Bases de Datos Laboratorios 1º y 2º Introducción al SGBD SQL Server de Microsoft ®"— Transcripción de la presentación:

1 Diseño de Bases de Datos Laboratorios 1º y 2º Introducción al SGBD SQL Server de Microsoft ®

2 DBD Laboratorios 1º y 2º © A. Jaime y C. Domínguez Objetivos Cómo instalar SQL Server. Cómo crear usuarios y cómo asignar algunos permisos. Cómo crear y poblar una BD. Cómo guardar consultas en el catálogo del SGBD. Ejercicios: Creación de una BD Manipulación de la BD (actualizaciones y consultas) Construcción (cargar datos) en la BD a partir de fuentes externas

3 DBD Laboratorios 1º y 2º © A. Jaime y C. Domínguez SQL Server 2005 Developer edition Se puede instalar gratuitamente utilizando el convenio MSDNA del dpto. de M. y Computación (ver protocolo). El programa de instalación requiere de Microsoft Windows Installer 3.1 o posterior. Se instalan los siguientes componentes requeridos: Microsoft Windows.NET Framework 2.0 Microsoft SQL Server Native Client Archivos auxiliares de instalzación de SQL Server Requisitos MS Windows...: 2000 Server ó Professional con Service Pack 4 (SP4) o posterior XP Home Edition ó Professional con SP2 o posterior 2003 Server SP1 o posterior Más de 1 GB en total Microsoft ® SQL Server 2000 Enterprise Edition

4 DBD Laboratorios 1º y 2º © A. Jaime y C. Domínguez Instalación: opción sencilla Instalación auto-explicativa. Se dan los siguientes pasos: Comprobación de configuración del sistema e Información de registro:Nombre y Compañía y contraseña (suministrada por el Dpto en CDs MSDNA.). Componentes para instalar: Seleccionar al menos: o Sevicios de bases de datos de SQL Server. Incluye Motor de base de datos SQL Server y servicios de réplica. o Componentes de la estación de trabajo, Herramientas de desarrollo y Libros en pantalla de SQL Server. Incluye Herramientas de administración (Analizador de SQL Server, SQL Sever Management Studio, Administrador de configuración de SQL Server, Monitor de réplica), Características de cliente SQLXML, libros en pantalla de SQL Server. o Integration Services. Incluye herramientas para la importación exportación de datos. Microsoft ® SQL Server 2000 Enterprise Edition

5 DBD Laboratorios 1º y 2º © A. Jaime y C. Domínguez Instalación: opción sencilla Nombre de instancia: Dejar la opción instancia predeterminada. Es posible seleccionar una instancia predeterminada (nombre predeterminado MSSQLSERVER) o con nombre para la instalación. Se permiten varias instancias en un mismo procesador, pero solo una predeterminada. Cuenta de servicio: Especifique un nombre de usuario, una contraseña y un nombre de dominio para las cuentas de servicio de SQL Server. Esta será la cuenta con la que debe iniciarse la sesión. Elegir usar la cuenta del sistema local integrada. Modo de autenticación: Seleccionar Modo mixto (Autenticación de Windows y por contraseña) y poner contraseña al administrador (sa). Microsoft ® SQL Server 2000 Enterprise Edition

6 DBD Laboratorios 1º y 2º © A. Jaime y C. Domínguez SQL Server Management Studio Tenemos instalado servidor y cliente de SQL Server en cada máquina. Acceso a ellos a través de SQL Server Management Studio Inicio Programas Bases de datos Microsoft SQL Server 2005 SQL Server Management Studio Al abrirse, se pide que se conecte a una instancia de SQL Server (asegurarse de que el servidor correspondiente al ordenador local). Para ver todos los servidores registrados seleccionar y acceder al servidor correspondiente a la máquina local y Utilizar autenticación de windows. Otra opción es desde el menú Ver -> Servidores Registrados y seleccionar conectar en el menú contextual del servidor.

7 DBD Laboratorios 1º y 2º © A. Jaime y C. Domínguez SQL Server Management Studio Algunas utilidades: Creación y acceso a las BD del catálogo y a sus objetos (con los oportunos permisos) Diseño de BD con la opción Diagramas Gestión de la seguridad (usuarios, permisos, etc.) Ejecución de instrucciones T-SQL Tareas de mantenimiento como restauraciones o copias de seguridad

8 DBD Laboratorios 1º y 2º © A. Jaime y C. Domínguez Acceso a las BD del catálogo Cuando se ve la máquina local en Explorador de objetos se podrán ver al menos las carpetas y objetos comunes: Bases de datos, Seguridad, Objetos de Servidor, Réplica, Administración, Agente SQL Server Abrir la carpeta Bases de datos y mostrará todas las BD del catálogo. Si abrimos la carpeta de una base de datos, podemos observar los objetos que contiene agrupados en: Tablas, Vistas, Sinónimos, Programación, Service Broker, Almacenamiento, Seguridad.

9 DBD Laboratorios 1º y 2º © A. Jaime y C. Domínguez Creación de una nueva BD Click en Bases de Datos y a través del menú contextual elegir Nueva base de datos... En el catálogo NO puede haber dos BD con el mismo nombre. Por eso, nombrar cada BD de un modo especial: Si estás en el grupo de prácticas 1, llámale Empresa1, si estás en el grupo 2 Empresa2, etc. Una vez puesto el nombre de la BD pulsar Aceptar Dejar la BD en el catálogo después del laboratorio. Tener cuidado de NO borrar BD de otros usuarios, ya que todos accedemos al SGBD con el mismo usuario.

10 DBD Laboratorios 1º y 2º © A. Jaime y C. Domínguez Creación de usuarios (inicios de sesión) Sólo puede hacerlo un administrador de BD (ABD) o usuarios con permisos suficientes. El nombre de usuario del ABD es sa. Su contraseña se indicó durante la instalación de SQL Server. Para ver todos los usuarios seleccionar Seguridad e Inicios de sesión Seleccionar Nuevo inicio de sesión... Indicar el nombre de usuario y elegir Autenticación de SQL Server, indicando una contraseña Indicar otras opciones como Exigir condiciones a la contraseña, base de datos predeterminada o idioma predeterminado

11 DBD Laboratorios 1º y 2º © A. Jaime y C. Domínguez Asignación de permisos Podemos asignar permisos a un usuario: opción propiedades en el menú contextual del usuario En la opción Funciones del Servidor del panel izquierdo se seleccionan los privilegios que tendrá el usuario: sysadmin para los ABD, dbcreator para los que crean nuevas BD, etc. En la opción Asignación de usuarios se seleccionan las BD a las que tiene acceso y los permisos sobre cada una Además de los usuarios del SGBD (o inicios de sesión) existen los usuarios de cada BD (en su carpeta de seguridad): dbo es el DB owner o dueño de la BD. Normalmente es el que creó la BD. Puede crear cuentas para la BD

12 DBD Laboratorios 1º y 2º © A. Jaime y C. Domínguez Creación de una nueva tabla Click sobre la BD recién creada. Vemos varias opciones sobre la misma: Diagramas, Tablas, Vistas, Sinónimos, Programación, Seguridad, etc. Elegimos Tablas y Nueva tabla... para crear la tabla empleado Introducir los atributos que figuran abajo. Elegir tipos de datos adecuados entre los disponibles. Indicar el campo clave con la llave amarilla Pulsar (Guardar) poniendo nombre a la tabla y salir DNINombreApellidoFechaNctoDirecciónSalarioDpto Empleado Sexo

13 DBD Laboratorios 1º y 2º © A. Jaime y C. Domínguez Modificación de una tabla Elegir Modificar en el menú contextual de la tabla. Poner NOT NULL en el atributo FechaNcto borrando la selección en la columna permitir valores nulos Poner DEFAULT 0 en Salario seleccionando el atributo Salario rellenar valor predeterminado con un 0. Poner UNIQUE(Nombre, Apellido) elegir Índices y claves en el menú contextual. Agregar un índice indicando las columnas Nombre y Apellido y es unique Sí y Cerrar Poner CHECK CK_Empleado (Sexo IN (H,M)) elegir Restricciones CHECK. Introducir en expresión Sexo IN... Incluir el atributo derivado Edad. Incluir una fórmula adecuada en Especificación de columna calculada (consultar Ayuda -> Índice las funciones datediff y getdate) Salir guardando

14 DBD Laboratorios 1º y 2º © A. Jaime y C. Domínguez Introducir valores a la tabla Desde el menú contextual asociado a la tabla creada anteriormente, elegir Abrir tabla Introducir valores y pulsar la tecla, ó hasta que baje a la siguiente fila. Comprobar que todas las restricciones definidas funcionan: Que obliga a introducir algún valor en FechaNcto Que si no se indica valor para salario le asigna valor cero Que no deja poner el mismo nombre y apellido a dos empleados ¿deja que nombre o apellido valgan nulo? Que sólo se puede introducir a Sexo valor h o m Que calcula bien la edad de las personas Para cambiar un valor de una tupla existente a pulsar Ctrl-0 (control-cero)

15 DBD Laboratorios 1º y 2º © A. Jaime y C. Domínguez Definición de claves extranjeras También llamadas foráneas, externas, ajenas... Para ello crear la tabla departamento siguiendo los mismos pasos utilizados para empleado. Considera que Número es un dato autoincremental (declararlo con tipo numérico y Especificación de identidad -> Sí) NúmeroNombreDNI_Director Departamento A DNI de empleado De Dpto de empleado En la tabla Departamento: Claves Nueva clave externa -> hacer clic en cuadro con... de Especificación de tablas y columnas Seleccionar modificación y borrado en cascada: Especificación de INSERT y UPDATE y cambiar Regla de actualización y Regla de eliminación. Comprobar que funcionan estas reglas. Definir la otra clave extranjera de la figura exigiendo actualización y borrado en cascada ¿Qué ocurre?

16 DBD Laboratorios 1º y 2º © A. Jaime y C. Domínguez El diseñador de BD (diagramas de BD) Diagramas de base de datos Nuevo Diagrama de BD inicia un asistente que permite seleccionar las tablas del diagrama. Es posible tener varios diagramas por BD (uno por cada sección de la BD). Se utilizan para definir claves extranjeras, rediseñar tablas (por ejemplo añadir, borrar o modificar columnas, cambiar la clave principal,...), añadir índices, crear nuevas tablas o borrarlas, etc. Hay una opción que reorganiza las tablas del diagrama. Si una tabla incluye el carácter * es porque se ha hecho alguna modificación (ejemplo: un nuevo atributo, una relación,...) que todavía no se ha grabado

17 DBD Laboratorios 1º y 2º © A. Jaime y C. Domínguez El diseñador de BD (2) (diagramas de BD) Crear un diagrama que incluya las dos tablas de la BD. Usando las opciones del diseñador de diagramas crear la tabla proyecto de la figura. Crear también la restricción de integridad referencial indicada en la figura. Mediante el diseñador de diagramas definir Número como clave primaria, Nombre como clave candidata, valor por defecto de Lugar Logroño y Dpto como atributo que no admite valores nulos. (Activar ver -> ventana de propiedades.) NúmeroNombreDpto Proyecto A Número de Departamento Lugar

18 DBD Laboratorios 1º y 2º © A. Jaime y C. Domínguez Borrado de una tabla y de una BD Borrado de una tabla Desde el diagrama: o Seleccionar la tabla y elegir Eliminar tablas de la BD. o La opción Quitar del diagrama no la borra de la BD Desde la opción Tablas se selecciona la tabla y se elige eliminar en el menú contextual. Borrado de una BD: se selecciona la BD y se elige eliminar en el menú contextual

19 DBD Laboratorios 1º y 2º © A. Jaime y C. Domínguez Esquema E/R de la BD BUQUES MOVIMIENTO BUQUE VISITA TIPO PUERTO MAR PAIS REALIZADO PERTENECE VISITA_A ORIGEN BUQUE TIPO SITUADO MarcaTiempo Longitud Latitud Fecha Hora NombreBuque Dueño Tipo Tonelaje Casco FechaInicio FechaFin NombrePaísContinente NombrePuerto NombreMar (1,1) (0,N) (0,1) (0,N) (1,1)(0,N) (1,1) (0,N) (1,1) (0,N) (1,1) (0,N)

20 DBD Laboratorios 1º y 2º © A. Jaime y C. Domínguez Esquema relacional de la BD BUQUES NombreBuqueDueñoTipoNombrePuertoNombrePaís Buque NombrePaísContinente País NombreMar Mar NombreBuqueFechaHoraLongitudLatitud MovimientoBuque NombrePuertoNombreMar Puerto NombrePaís TipoTonelajeCasco TipoBuque NombreBuqueNombrePuerto Visita NombrePaísFechaInicioFechaFin

21 DBD Laboratorios 1º y 2º © A. Jaime y C. Domínguez Tarea 1: Creación de la BD BUQUES Crear la BD buques según los esquemas anteriores: Nombre de la BD, distinto según el número de grupo. Buques1 si estás en el grupo de prácticas 1, Buques2 si estás en el grupo 2, etc. Asignar a cada atributo el tipo de datos más adecuado. Definir las claves primarias, restricciones NOT NULL, valores por defecto, claves candidatas, restricciones CHECK y atributos derivados más convenientes. Definir las restricciones de integridad (RI) referencial (claves extranjeras) atendiendo al siguiente criterio: Definir borrado y modificación en cascada para claves extranjeras de un solo atributo. No definir borrado ni modificación en cascada para claves extranjeras de varios atributos (pero sí la RI) !

22 DBD Laboratorios 1º y 2º © A. Jaime y C. Domínguez Tarea 2: comprobar el mantenimiento de las RI Intenta introducir en la tabla Buque el buque llamado Bilbao, cuyo dueño sea Onassis, de tipo 10 y su puerto original Hendaya (France). El sistema tiene que dar un error ¿Por qué? Introduce el Tipo de Buques 10, que son barcos de 3500 Tm. y casco de FibraVidrio Si introducimos ahora el buque anterior, ¿funciona? Inserta las tuplas necesarias para que se pueda insertar la tupla de la tabla Buque. Comprobarás que no se pueden insertar los datos en cualquier orden.

23 DBD Laboratorios 1º y 2º © A. Jaime y C. Domínguez Tarea 3: Comprobar la modificación en cascada Modifica el nombre de mar introducido en la tabla Mar por Atlántico (si es el que has puesto, cámbialo, por ejemplo, por Cantábrico). Fíjate en la tabla Puerto. El valor del atributo con el nombre del mar también se ha modificado. Lo anterior se conoce como modificación en cascada. Cuando se modifica el valor de una clave principal, se modifican también los valores de las claves extranjeras que le hacen referencia. En cambio, no podemos realizar el cambio del nombre del País France a Francia. ¿Por qué? (tiene que ver con una decisión de la tarea anterior).

24 DBD Laboratorios 1º y 2º © A. Jaime y C. Domínguez Tarea 4: Comprobar el borrado en cascada Borra el registro de la tabla TipoBuque Al borrar el registro de TipoBuque, desaparece el valor 10 de su clave principal, y por tanto se borran automáticamente las tuplas con 10 como valor de clave extranjera (el buque que se había insertado). ¿Qué pasará si se borra ahora el país que había almacenado? Borra todos los datos de la BD, de manera que todas las tablas queden vacías

25 DBD Laboratorios 1º y 2º © A. Jaime y C. Domínguez Importar y exportar datos Opción de menú contextual de Base de datos Buques: Tareas Importar datos El asistente guía en la captura de datos. Se pueden importar datos de diversas fuentes. El origen será un archivo de texto y el destino la tabla de la BD que corresponde. El asistente permite hacer algunos ajustes para datos que no corresponden exactamente con lo definido en la BD

26 DBD Laboratorios 1º y 2º © A. Jaime y C. Domínguez Tarea 5: Importar datos desde ficheros de texto Algún formato de fichero puede ser distinto al definido en las tablas. En ese caso, soluciona el problema con ayuda del asistente. Cada fichero corresponde a una tabla y tiene el mismo nombre que se les ha dado en el esquema relacional. Recuerda que NO se pueden introducir los datos en cualquier orden. Queremos obtener un orden que permita importar todos los ficheros de modo que se conserven las RI

27 DBD Laboratorios 1º y 2º © A. Jaime y C. Domínguez Consultas Para escribir una consulta desde el menú contextual de la base de datos Nueva consulta o bien el acceso directo Nueva consulta. Se abre una ventana en la que escribir instrucciones T-SQL (SQL de SQL Server). Podemos escribir consultas SELECT u operaciones SQL como INSERT, DELETE, etc. Escribir primero el comando use Buques1 que indica que la consulta se ejecutará sobre la base de datos Buques1. Escribir la consulta AndraMari SELECT * FROM Visita WHERE NombreBuque = AndraMari Ejecutar la consulta ( ! ) para ver el resultado. El resultado puede verse en distintos formatos: Consulta -> Resultados en. Se pueden guardar como scripts con extensión.sql y abrirlos posteriormente. Guardárla como Consulta_visitas_AndraMari También es posible utilizar QBE Consulta -> Diseñar consulta en el editor... Para escribir una consulta desde el menú contextual de la base de datos Nueva consulta o bien el acceso directo Nueva consulta. Se abre una ventana en la que escribir instrucciones T-SQL (SQL de SQL Server). Podemos escribir consultas SELECT u operaciones SQL como INSERT, DELETE, etc. Escribir primero el comando use Buques1 que indica que la consulta se ejecutará sobre la base de datos Buques1. Escribir la consulta AndraMari SELECT * FROM Visita WHERE NombreBuque = AndraMari Ejecutar la consulta ( ! ) para ver el resultado. El resultado puede verse en distintos formatos: Consulta -> Resultados en. Se pueden guardar como scripts con extensión.sql y abrirlos posteriormente. Guardárla como Consulta_visitas_AndraMari También es posible utilizar QBE Consulta -> Diseñar consulta en el editor... ? ??

28 DBD Laboratorios 1º y 2º © A. Jaime y C. Domínguez Vistas Una vista puede entenderse como una tabla virtual o como una consulta almacenada. Para crear una vista Vistas -> Nueva Vista. Se abre el asistente para creación de vistas que coincide con el QBE de las consultas. Crear una vista utilizando el asistente de todos los datos de las visitas realizadas por el buque AndraMari. Ponerle por nombre Vista_visitas_AndraMari Podemos ver el resultado de una vista en Abrir vista del menú contextual de la vista creada. Una vista puede entenderse como una tabla virtual o como una consulta almacenada. Para crear una vista Vistas -> Nueva Vista. Se abre el asistente para creación de vistas que coincide con el QBE de las consultas. Crear una vista utilizando el asistente de todos los datos de las visitas realizadas por el buque AndraMari. Ponerle por nombre Vista_visitas_AndraMari Podemos ver el resultado de una vista en Abrir vista del menú contextual de la vista creada. ? ??

29 DBD Laboratorios 1º y 2º © A. Jaime y C. Domínguez Vistas Es posible crear vistas sin utilizar el asistente. Nueva consulta y escribir el comando SQL de creación de vista: use Buques1 -- (vista sobre la BD Buques1) go -- (termina el lote de instrucciones, CREATE VIEW debe -- ser la primera instrucción de un lote de consultas) CREATE VIEW [dbo].[vista_visitas_andramari2] AS AndraMari SELECT * FROM Visita WHERE NombreBuque = AndraMari Es posible crear vistas sin utilizar el asistente. Nueva consulta y escribir el comando SQL de creación de vista: use Buques1 -- (vista sobre la BD Buques1) go -- (termina el lote de instrucciones, CREATE VIEW debe -- ser la primera instrucción de un lote de consultas) CREATE VIEW [dbo].[vista_visitas_andramari2] AS AndraMari SELECT * FROM Visita WHERE NombreBuque = AndraMari ? ??

30 DBD Laboratorios 1º y 2º © A. Jaime y C. Domínguez Procedimientos almacenados Un procedimiento almacenado (PA) es un conjunto de instrucciones T-SQL precompiladas y que se almacenan en una BD. Programación -> Procedimientos almacenados Nuevo procedimiento almacenado... Junto a CREATE PROCEDURE cambiar por el nombre del procedimiento. En este caso [dbo].[PA_visitas_andramari] Se pueden introducir parámetros al PA. Por ahora no los utilizaremos. Para ello, ponerlos como comentario precediéndolos de --. Después de AS se puede poner una consulta SELECT (u operaciones SQL como INSERT, DELETE, etc.). Introducir en este caso la consulta AndraMari SELECT * FROM Visita WHERE NombreBuque = AndraMari Comprobar que el PA funciona correctamente ejecutándolo ( ! ). Un procedimiento almacenado (PA) es un conjunto de instrucciones T-SQL precompiladas y que se almacenan en una BD. Programación -> Procedimientos almacenados Nuevo procedimiento almacenado... Junto a CREATE PROCEDURE cambiar por el nombre del procedimiento. En este caso [dbo].[PA_visitas_andramari] Se pueden introducir parámetros al PA. Por ahora no los utilizaremos. Para ello, ponerlos como comentario precediéndolos de --. Después de AS se puede poner una consulta SELECT (u operaciones SQL como INSERT, DELETE, etc.). Introducir en este caso la consulta AndraMari SELECT * FROM Visita WHERE NombreBuque = AndraMari Comprobar que el PA funciona correctamente ejecutándolo ( ! ). ? ??

31 DBD Laboratorios 1º y 2º © A. Jaime y C. Domínguez Ejecución de un procedimiento almacenado Se puede ejecutar desde el menú contextual de la BD Nueva consulta. Primero hay que poner USE Buques1 (el nombre que se le haya puesto a la BD) y ejecutar ello solo con el botón de ejecución ( ! ) Escribir PA_visitas_andramari, seleccionarlo y pulsar el botón de ejecución ( ! ) En la parte de abajo se puede ver el resultado de la consulta. ? ??

32 DBD Laboratorios 1º y 2º © A. Jaime y C. Domínguez Tarea 6: Introducción de consultas como procedimientos almacenados Crea sendos procedimientos almacenados para las siguientes consultas sin usar subconsultas: VisitasCadiz: Nombre de buque junto al número de visitas al puerto de Cádiz realizadas por buques con más de 1000 toneladas. SantVigoCadiz: Nombres de aquellos buques que hayan ido en menos de 5 días desde el puerto de Santander al de Cádiz, habiendo hecho escala en el puerto de Vigo.

33 DBD Laboratorios 1º y 2º © A. Jaime y C. Domínguez Tarea 6: Introducción de consultas como procedimientos almacenados (2) Crea sendos procedimientos almacenados para las siguientes consultas: TodosEspNoAmer: Nombres de aquellos buques que hayan visitado todos los puertos españoles y no hayan estado nunca en puertos americanos BuquesMasVisitas: Para cada puerto obtener el buque que más días lo visitó durante el año 2000

34 DBD Laboratorios 1º y 2º © A. Jaime y C. Domínguez Antes de marcharse Mantener en el catálogo la BD de buques creada Cerrar la sesión de profesor sin apagar la máquina

35 DBD Laboratorios 1º y 2º © A. Jaime y C. Domínguez Alguna duda que ha podido surgir ¿Por qué NO permite que dos claves extranjeras como las de la figura admitan cascade? Seleccionar Ayuda y buscar por cascade. Seleccionar Restricciones de integridad..., y leer el 2º párrafo de la sección Múltiples acciones en cascada ABCD R1R2

36 DBD Laboratorios 1º y 2º © A. Jaime y C. Domínguez Alguna duda que ha podido surgir (2) Cuando se define una clave candidata con UNIQUE ¿Qué diferencia hay entre elegir restricción o índice? Pulsar el botón Ayuda de la ventana Diseñar tabla Índices y claves. Leer la explicación sobre Crear UNIQUE. En ambas opciones se crea un índice. Buscando en la ayuda no se encuentra ninguna explicación sobre la diferencia, pero sí aconsejan utilizar restricción en lugar de índice por dar mejor rendimiento.

37 DBD Laboratorios 1º y 2º © A. Jaime y C. Domínguez Alguna información on-line Ayuda de SQL-Server Libros on-line: se pueden instalar con SQL Server. También están en Hay algunos videos gratuitos con demostraciones de SQL Server 2005 (en inglés) en:


Descargar ppt "Diseño de Bases de Datos Laboratorios 1º y 2º Introducción al SGBD SQL Server de Microsoft ®"

Presentaciones similares


Anuncios Google