Sei sulla pagina 1di 37

Diseo de Bases de

Datos
Laboratorios 1 y 2
Introduccin al SGBD
SQL Server de
Microsoft

Objetivos
Cmo instalar SQL Server.
Cmo crear usuarios y cmo asignar algunos permisos.
Cmo crear y poblar una BD.
Cmo guardar consultas en el catlogo del SGBD.
Ejercicios:

Creacin de una BD

Manipulacin de la BD (actualizaciones y consultas)

Construccin (cargar datos) en la BD a partir de fuentes


externas

DBD Laboratorios 1

SQL Server 2005


Developer edition

00

r 20 n
osoft rve ditio
MicSrQL Serprise E
Ente

Se puede instalar gratuitamente utilizando el convenio MSDNA del


dpto. de M. y Computacin (ver protocolo).
El programa de instalacin 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 instalzacin 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
Ms de 1 GB en total

DBD Laboratorios 1

00

r 20 n
osoft rve ditio
MicSrQL Serprise E
nte
E

Instalacin: opcin sencilla


Instalacin auto-explicativa. Se dan los siguientes pasos:
Comprobacin de configuracin del sistema e Informacin de
registro:Nombre y Compaa y contrasea (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 rplica.

Componentes de la estacin de trabajo, Herramientas de


desarrollo y Libros en pantalla de SQL Server. Incluye
Herramientas de administracin (Analizador de SQL Server, SQL
Sever Management Studio, Administrador de configuracin de
SQL Server, Monitor de rplica), Caractersticas de cliente
SQLXML, libros en pantalla de SQL Server.

Integration Services. Incluye herramientas para la importacin


exportacin de datos.

DBD Laboratorios 1

00

r 20 n
osoft rve ditio
MicSrQL Serprise E
nte
E

Instalacin: opcin sencilla


Nombre de instancia: Dejar la opcin instancia
predeterminada. Es posible seleccionar una instancia
predeterminada (nombre predeterminado MSSQLSERVER) o
con nombre para la instalacin. Se permiten varias instancias
en un mismo procesador, pero solo una predeterminada.
Cuenta de servicio: Especifique un nombre de usuario, una
contrasea y un nombre de dominio para las cuentas de
servicio de SQL Server. Esta ser la cuenta con la que debe
iniciarse la sesin. Elegir usar la cuenta del sistema local
integrada.
Modo de autenticacin: Seleccionar Modo mixto
(Autenticacin de Windows y por contrasea) y poner
contrasea al administrador (sa).

DBD Laboratorios 1

SQL Server Management Studio


Tenemos instalado servidor y cliente de SQL Server en cada mquina.
Acceso a ellos a travs de SQL Server Management Studio

InicioProgramas Bases de datos Microsoft SQL Server


2005SQL 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 <Buscar
ms..> y acceder al servidor correspondiente a la mquina local y
Utilizar autenticacin de windows.
Otra opcin es desde el men Ver -> Servidores Registrados y
seleccionar conectar en el men contextual del servidor.

DBD Laboratorios 1

SQL Server Management Studio


Algunas utilidades:

Creacin y acceso a las BD del catlogo y a sus objetos (con


los oportunos permisos)

Diseo de BD con la opcin Diagramas

Gestin de la seguridad (usuarios, permisos, etc.)

Ejecucin de instrucciones T-SQL

Tareas de mantenimiento como restauraciones o copias de


seguridad

DBD Laboratorios 1

Acceso a las BD del catlogo


Cuando se ve la mquina local en Explorador de objetos se
podrn ver al menos las carpetas y objetos comunes: Bases
de datos, Seguridad, Objetos de Servidor, Rplica,
Administracin, Agente SQL Server
Abrir la carpeta Bases de datos y mostrar todas las BD del
catlogo.
Si abrimos la carpeta de una base de datos, podemos
observar los objetos que contiene agrupados en: Tablas,
Vistas, Sinnimos, Programacin, Service Broker,
Almacenamiento, Seguridad.

DBD Laboratorios 1

Creacin de una nueva BD


Click en Bases de Datos y a travs del men contextual elegir
Nueva base de datos ...
En el catlogo NO puede haber dos BD con el mismo
nombre. Por eso, nombrar cada BD de un modo especial:

Si ests en el grupo de prcticas 1, llmale Empresa1, si


ests en el grupo 2 Empresa2, etc.

Una vez puesto el nombre de la BD pulsar Aceptar

Dejar la BD en el catlogo despus del laboratorio.


Tener cuidado de NO borrar BD de otros usuarios, ya que
todos accedemos al SGBD con el mismo usuario.
DBD Laboratorios 1

Creacin de usuarios
(inicios de sesin)

Slo puede hacerlo un administrador de BD (ABD) o usuarios


con permisos suficientes.
El nombre de usuario del ABD es sa. Su contrasea se
indic durante la instalacin de SQL Server.
Para ver todos los usuarios seleccionar Seguridad e Inicios
de sesin
Seleccionar Nuevo inicio de sesin...

Indicar el nombre de usuario y elegir Autenticacin de


SQL Server, indicando una contrasea

Indicar otras opciones como Exigir condiciones a la


contrasea, base de datos predeterminada o idioma
predeterminado
DBD Laboratorios 1

10

Asignacin de permisos
Podemos asignar permisos a un usuario: opcin
propiedades en el men contextual del usuario

En la opcin 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 opcin Asignacin de usuarios se seleccionan las BD a las


que tiene acceso y los permisos sobre cada una

Adems de los usuarios del SGBD (o inicios de sesin)


existen los usuarios de cada BD (en su carpeta de seguridad):

dbo es el DB owner o dueo de la BD. Normalmente es el que


cre la BD. Puede crear cuentas para la BD

DBD Laboratorios 1

11

Creacin de una nueva tabla


Click sobre la BD recin creada. Vemos varias opciones sobre
la misma:

Diagramas, Tablas, Vistas, Sinnimos, Programacin,


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

Empleado
DNI Nombre Apellido FechaNcto Direccin Salario Sexo Dpto
DBD Laboratorios 1

12

Modificacin de una tabla


Elegir Modificar en el men contextual de la tabla.
Poner NOT NULL en el atributo FechaNcto borrando la
seleccin 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 expresin Sexo IN...
Incluir el atributo derivado Edad. Incluir una frmula adecuada en
Especificacin de columna calculada (consultar Ayuda -> ndice
las funciones datediff y getdate)
Salir guardando

DBD Laboratorios 1

13

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 algn 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 slo 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 <null> pulsar
Ctrl-0 (control-cero)
DBD Laboratorios 1
14

Definicin de claves extranjeras

Tambin llamadas forneas, externas, ajenas ...

Para ello crear la tabla departamento siguiendo los mismos pasos


utilizados para empleado. Considera que Nmero es un dato
autoincremental (declararlo con tipo numrico y Especificacin de
identidad -> S)

Departamento
Nmero Nombre DNI_Director

A DNI de empleado
De Dpto de empleado

En la tabla Departamento: Claves Nueva clave externa -> hacer clic en


cuadro con ... de Especificacin de tablas y columnas

Seleccionar modificacin y borrado en cascada: Especificacin de


INSERT y UPDATE y cambiar Regla de actualizacin y Regla de
eliminacin. Comprobar que funcionan estas reglas.
Definir la otra clave extranjera de la figura exigiendo actualizacin y
borrado en cascada Qu ocurre?

DBD Laboratorios 1

15

El diseador 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
seccin de la BD).
Se utilizan para definir claves extranjeras, redisear tablas
(por ejemplo aadir, borrar o modificar columnas, cambiar la
clave principal, ...), aadir ndices, crear nuevas tablas o
borrarlas, etc.
Hay una opcin que reorganiza las tablas del diagrama.
Si una tabla incluye el carcter * es porque se ha hecho
alguna modificacin (ejemplo: un nuevo atributo, una
relacin, ...) que todava no se ha grabado
DBD Laboratorios 1

16

El diseador de BD (2)
(diagramas de BD)

Crear un diagrama que incluya las dos tablas de la BD.


Usando las opciones del diseador de diagramas crear la
tabla proyecto de la figura.
Crear tambin la restriccin de integridad referencial indicada
en la figura.
Mediante el diseador de diagramas definir Nmero como
clave primaria, Nombre como clave candidata, valor por
defecto de Lugar Logroo y Dpto como atributo que no
admite valores nulos. (Activar ver -> ventana de propiedades.)

Proyecto
Nmero Nombre Lugar Dpto
DBD Laboratorios 1

A Nmero de Departamento
17

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.

La opcin Quitar del diagrama no la borra de la BD

Desde la opcin 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

DBD Laboratorios 1

18

Esquema E/R de la BD BUQUES


Longitud
Latitud

MOVIMIENTO
BUQUE

Fecha

MarcaTiempo

Hora

(1,1)
REALIZADO

NombreBuque
Dueo

(0,N)
BUQUE

(0,1)

(1,1)

NombrePuerto

TIPO

VISITA_A

(1,1)

VISITA

(0,N)

PUERTO

Tonelaje
Casco

NombrePas

(1,1)
SITUADO

(1,1)

(0,N)

FechaInicio
FechaFin
Continente

PAIS
NombreMar

(0,N)
PERTENECE

DBD Laboratorios 1

(0,N)

(0,N)

ORIGEN

(0,N)

TIPO

Tipo

MAR

19

Esquema relacional de la BD BUQUES


MovimientoBuque
NombreBuque Fecha

TipoBuque

Hora Longitud Latitud

Buque

Tipo

Tonelaje Casco

Pas

NombreBuque Dueo

Tipo NombrePuerto NombrePas

Puerto
NombrePuerto NombrePas

NombrePas Continente

Mar
NombreMar

NombreMar

Visita
NombreBuque NombrePuerto NombrePas

DBD Laboratorios 1

FechaInicio

FechaFin

20

Tarea 1: Creacin de la BD BUQUES

Crear la BD buques segn los esquemas anteriores:


Nombre de la BD, distinto segn el nmero de grupo. Buques1
si ests en el grupo de prcticas 1, Buques2 si ests en el
grupo 2, etc.
Asignar a cada atributo el tipo de datos ms adecuado.
Definir las claves primarias, restricciones NOT NULL, valores
por defecto, claves candidatas, restricciones CHECK y
atributos derivados ms convenientes.
Definir las restricciones de integridad (RI) referencial (claves
extranjeras) atendiendo al siguiente criterio:
Definir borrado y modificacin en cascada para claves
extranjeras de un solo atributo.
No definir borrado ni modificacin en cascada para claves
extranjeras de varios atributos (pero s la RI)

DBD Laboratorios 1

21

Tarea 2: comprobar el
mantenimiento de las RI
Intenta introducir en la tabla Buque el buque llamado Bilbao,
cuyo dueo 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.

Comprobars que no se pueden insertar los datos en


cualquier orden.

DBD Laboratorios 1

22

Tarea 3: Comprobar la
modificacin en cascada
Modifica el nombre de mar introducido en la tabla Mar por
Atlntico (si es el que has puesto, cmbialo, por ejemplo,
por Cantbrico).
Fjate en la tabla Puerto. El valor del atributo con el
nombre del mar tambin se ha modificado.
Lo anterior se conoce como modificacin en cascada.
Cuando se modifica el valor de una clave principal, se
modifican tambin los valores de las claves extranjeras
que le hacen referencia.
En cambio, no podemos realizar el cambio del nombre del
Pas France a Francia.
Por qu? (tiene que ver con una decisin de la tarea
anterior).
DBD Laboratorios 1

23

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
automticamente las tuplas con 10 como valor de clave
extranjera (el buque que se haba insertado).

Qu pasar si se borra ahora el pas que haba


almacenado?
Borra todos los datos de la BD, de manera que todas las
tablas queden vacas

DBD Laboratorios 1

24

Importar y exportar datos


Opcin de men contextual de Base de datos Buques:
Tareas Importar datos
El asistente gua 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

DBD Laboratorios 1

25

Tarea 5: Importar datos


desde ficheros de texto
Algn 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

DBD Laboratorios 1

26

???

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
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 extensin .sql y abrirlos posteriormente.
Guardrla como Consulta_visitas_AndraMari
Tambin es posible utilizar QBE Consulta -> Disear consulta en el editor...

DBD Laboratorios 1

27

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 creacin 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.
DBD Laboratorios 1

28

Vistas

???

Es posible crear vistas sin utilizar el asistente. Nueva consulta y


escribir el comando SQL de creacin de vista:
use Buques1 -- (vista sobre la BD Buques1)
go -- (termina el lote de instrucciones, CREATE VIEW debe
-- ser la primera instruccin de un lote de consultas)
CREATE VIEW [dbo].[vista_visitas_andramari2] AS
SELECT * FROM Visita WHERE NombreBuque = AndraMari

DBD Laboratorios 1

29

???

Procedimientos almacenados
Un procedimiento almacenado (PA) es un conjunto de instrucciones T-SQL
precompiladas y que se almacenan en una BD.
Programacin -> Procedimientos almacenados Nuevo procedimiento
almacenado...
Junto a CREATE PROCEDURE cambiar <Procedure_Name, sysname,
ProcedureName> por el nombre del procedimiento. En este caso [dbo].
[PA_visitas_andramari]
Se pueden introducir parmetros al PA. Por ahora no los utilizaremos. Para ello,
ponerlos como comentario precedindolos de --.
Despus de AS se puede poner una consulta SELECT (u operaciones SQL como
INSERT, DELETE, etc.). Introducir en este caso la consulta
SELECT * FROM Visita WHERE NombreBuque = AndraMari
Comprobar que el PA funciona correctamente ejecutndolo ( ! ).

DBD Laboratorios 1

30

???

Ejecucin 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 botn de
ejecucin ( ! )
Escribir PA_visitas_andramari, seleccionarlo y pulsar el
botn de ejecucin ( ! )
En la parte de abajo se puede ver el resultado de la
consulta.

DBD Laboratorios 1

31

Tarea 6: Introduccin de consultas


como procedimientos almacenados
Crea sendos procedimientos almacenados para las
siguientes consultas sin usar subconsultas:

VisitasCadiz: Nombre de buque junto al nmero de visitas


al puerto de Cdiz realizadas por buques con ms de
1000 toneladas.

SantVigoCadiz: Nombres de aquellos buques que hayan


ido en menos de 5 das desde el puerto de Santander al
de Cdiz, habiendo hecho escala en el puerto de Vigo.

DBD Laboratorios 1

32

Tarea 6: Introduccin 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 espaoles y no hayan
estado nunca en puertos americanos

BuquesMasVisitas: Para cada puerto obtener el buque


que ms das lo visit durante el ao 2000

DBD Laboratorios 1

33

Antes de marcharse
Mantener en el catlogo la BD de buques creada
Cerrar la sesin de profesor sin apagar la mquina

DBD Laboratorios 1

34

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 prrafo de la
seccin Mltiples acciones en cascada
R1 A B

DBD Laboratorios 1

R2 C D

35

Alguna duda que ha


podido surgir (2)
Cuando se define una clave candidata con UNIQUE Qu
diferencia hay entre elegir restriccin o ndice?

Pulsar el botn Ayuda de la ventana Disear tabla


ndices y claves. Leer la explicacin sobre Crear UNIQUE.

En ambas opciones se crea un ndice. Buscando en la


ayuda no se encuentra ninguna explicacin sobre la
diferencia, pero s aconsejan utilizar restriccin en lugar
de ndice por dar mejor rendimiento.

DBD Laboratorios 1

36

Alguna informacin on-line


Ayuda de SQL-Server
Libros on-line: se pueden instalar con SQL Server.
Tambin estn en www.microsoft.com
Hay algunos videos gratuitos con demostraciones de
SQL Server 2005 (en ingls) en:
http://msdn2.microsoft.com/es-es/express/aa718391.aspx#3

DBD Laboratorios 1

37

Potrebbero piacerti anche