SQL Server

Published on May 2016 | Categories: Documents | Downloads: 36 | Comments: 0 | Views: 369
of 18
Download PDF   Embed   Report

Comments

Content

Curso:2º ASIR
Módulo: SGBD

Autor: Jorge Carlos López Rodríguez

Unidad didáctica: *1*. Ejercicios.

Objetivo: Instalación y configuración de un sistema gestor de bases de datos.
Atendiendo al trabajo de la unidad anterior selecciona un SGBDR de los
propuestos y realiza:
• Estructura y funcionamiento del SGBDR elegido.
• Instalación y configuración.
• Servidor.
• Windows
• Linux
• Cliente.
• Escritorio.
• Web.
Para esta práctiva vamos a utilizar la herramienta SQL Server 2008 Express
Edition, emplearemos la versión ligera ya que es suficiente para administrar la
pequeña base de datos que vamos a conformar.
Instalaremos la paquetería correspondiente sobre un Servidor Windows 2008 de 32 bits
y para manejar la base de datos requeriremos 2 herramientas: un servidor en sí dónde
se almacenará la bbdd y un cliente de escritorio que en este caso será SQLManagement
Studio que sirve para la interacción entre usuario y base de datos.
Esta es su interfaz

El archivo de log y almacenamiento de datos serán especificados a crear la nueva base
de datos, en principio lo dejaremos tal y como viene por defecto

-1-

Autor: Jorge Carlos López Rodríguez

Sistemas Gestores de Bases de Datos 2º A.S.I.R.

En mi caso me ha pedido actualizar parte del sistema para poder instalar
correctamente la herramienta, algunos tales como el service pack de Windows o visual
studio
No necesitaremos instalarla en otro SO porque sólo tiene soporte en Windows

• SISTEMA DE INFORMACIÓN: “Gestión académica de los alumnos del
departamento de informática del IES Gran Capitán”.
• Análisis de requisitos.
Se nos pide realizar el diseño de la base de datos de los alumnos del
departamento de informatica del IES Gran Capitán para ello debemos hacer un modelo
lo más óptimo posible que cumpla las reglas de integridad y pueda responder a
consultas para la obtención de información del modelo.
• Diseño conceptual.

• Diseño lógico.
Este diseño ha de implementarse una vez que tenemos el modelo conceptual
programado y consistirá en pasarlo a tabla, para ello utilizaremos las reglas de
transformación del modelo conceptual al lógico, en el que dependiendo de las
cardinalidades, se progagarán claves e incluso puede darse el caso de creación de
nuevas tablas.

-2-

Curso:2º ASIR
Módulo: SGBD

Autor: Jorge Carlos López Rodríguez

Estas sería nuestras tablas ya con las herencias de claves foráneas y las tablas
que se han generado en las relaciones N:M

-3-

Autor: Jorge Carlos López Rodríguez

Sistemas Gestores de Bases de Datos 2º A.S.I.R.

• Diseño físico.
Llegados aquí podremos exportar un sql con todos los comandos que nos
generan lo que hemos ido haciendo hasta ahora de forma gráfica, quedaría de la
siguiente forma

USE [iesgc]
GO
/****** Object: Table [dbo].[profesores] Script Date: 11/03/2014 21:57:31 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[profesores](
[idprofesor] [int] NOT NULL,
[nombre] [varchar](70) NOT NULL,
[email] [varchar](50) NOT NULL,
CONSTRAINT [PK_profesores] PRIMARY KEY CLUSTERED
(
[idprofesor] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF,
IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS
= ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
/****** Object: Table [dbo].[cursos] Script Date: 11/03/2014 21:57:31 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[cursos](
[idcurso] [int] NOT NULL,
[numero] [varchar](4) NOT NULL,
CONSTRAINT [PK_cursos] PRIMARY KEY CLUSTERED
(
[idcurso] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF,
IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS
= ON) ON [PRIMARY]
) ON [PRIMARY]

-4-

Curso:2º ASIR
Módulo: SGBD

Autor: Jorge Carlos López Rodríguez

GO
SET ANSI_PADDING OFF
GO
/****** Object: Table [dbo].[asignaturas] Script Date: 11/03/2014 21:57:31
******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[asignaturas](
[codigo] [int] NOT NULL,
[nombre] [varchar](30) NULL,
[horas] [numeric](18, 0) NULL,
CONSTRAINT [PK_asignaturas] PRIMARY KEY CLUSTERED
(
[codigo] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF,
IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS
= ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
/****** Object: Table [dbo].[alumnos] Script Date: 11/03/2014 21:57:31 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[alumnos](
[nie] [int] NOT NULL,
[nombre] [varchar](70) NOT NULL,
[emai] [varchar](40) NOT NULL,
[idcurso] [int] NOT NULL,
CONSTRAINT [PK_alumnos] PRIMARY KEY CLUSTERED
(
[nie] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF,
IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS
= ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
/****** Object: Table [dbo].[grupo] Script Date: 11/03/2014 21:57:31 ******/
SET ANSI_NULLS ON
GO

-5-

Autor: Jorge Carlos López Rodríguez

Sistemas Gestores de Bases de Datos 2º A.S.I.R.

SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[grupo](
[idgrupo] [int] NOT NULL,
[nombre] [varchar](50) NOT NULL,
[aula] [numeric](18, 0) NOT NULL,
[idcurso] [int] NOT NULL,
[nie] [int] NOT NULL,
[idprofesor] [int] NOT NULL,
CONSTRAINT [PK_grupo_1] PRIMARY KEY CLUSTERED
(
[idgrupo] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF,
IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS
= ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
/****** Object: Table [dbo].[RAG] Script Date: 11/03/2014 21:57:31 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[RAG](
[nie] [int] NOT NULL,
[idgrupo] [int] NOT NULL
) ON [PRIMARY]
GO
/****** Object: Table [dbo].[RAA] Script Date: 11/03/2014 21:57:31 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[RAA](
[codigo] [int] NOT NULL,
[nie] [int] NOT NULL,
[1ev] [numeric](18, 0) NOT NULL,
[2ev] [numeric](18, 0) NOT NULL,
[3ev] [numeric](18, 0) NOT NULL,
[final] [numeric](18, 0) NOT NULL
) ON [PRIMARY]
GO
/****** Object: Table [dbo].[RPG] Script Date: 11/03/2014 21:57:31 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-6-

Curso:2º ASIR
Módulo: SGBD

Autor: Jorge Carlos López Rodríguez

CREATE TABLE [dbo].[RPG](
[idgrupo] [int] NOT NULL,
[idprofesor] [int] NOT NULL
) ON [PRIMARY]
GO
/****** Object: Table [dbo].[RGPA] Script Date: 11/03/2014 21:57:31 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[RGPA](
[codigo] [int] NOT NULL,
[idgrupo] [int] NOT NULL,
[idprofesor] [int] NOT NULL,
CONSTRAINT [PK_RGPA] PRIMARY KEY CLUSTERED
(
[codigo] ASC,
[idgrupo] ASC,
[idprofesor] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF,
IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS
= ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object: ForeignKey [FK_RCG] Script Date: 11/03/2014 21:57:31 ******/
ALTER TABLE [dbo].[alumnos] WITH CHECK ADD CONSTRAINT [FK_RCG]
FOREIGN KEY([idcurso])
REFERENCES [dbo].[cursos] ([idcurso])
ON UPDATE CASCADE
GO
ALTER TABLE [dbo].[alumnos] CHECK CONSTRAINT [FK_RCG]
GO
/****** Object: ForeignKey [FK_DEL] Script Date: 11/03/2014 21:57:31 ******/
ALTER TABLE [dbo].[grupo] WITH CHECK ADD CONSTRAINT [FK_DEL]
FOREIGN KEY([nie])
REFERENCES [dbo].[alumnos] ([nie])
ON UPDATE CASCADE
GO
ALTER TABLE [dbo].[grupo] CHECK CONSTRAINT [FK_DEL]
GO
/****** Object: ForeignKey [FK_TUT] Script Date: 11/03/2014 21:57:31 ******/
ALTER TABLE [dbo].[grupo] WITH CHECK ADD CONSTRAINT [FK_TUT]
FOREIGN KEY([idprofesor])
REFERENCES [dbo].[profesores] ([idprofesor])
GO
ALTER TABLE [dbo].[grupo] CHECK CONSTRAINT [FK_TUT]
GO
/****** Object: ForeignKey [FK_RAA_alumnos] Script Date: 11/03/2014 21:57:31
******/

-7-

Autor: Jorge Carlos López Rodríguez

Sistemas Gestores de Bases de Datos 2º A.S.I.R.

ALTER TABLE [dbo].[RAA] WITH CHECK ADD CONSTRAINT [FK_RAA_alumnos]
FOREIGN KEY([nie])
REFERENCES [dbo].[alumnos] ([nie])
ON UPDATE CASCADE
GO
ALTER TABLE [dbo].[RAA] CHECK CONSTRAINT [FK_RAA_alumnos]
GO
/****** Object: ForeignKey [FK_RAA_asignaturas] Script Date: 11/03/2014
21:57:31 ******/
ALTER TABLE [dbo].[RAA] WITH CHECK ADD CONSTRAINT
[FK_RAA_asignaturas] FOREIGN KEY([codigo])
REFERENCES [dbo].[asignaturas] ([codigo])
ON UPDATE CASCADE
GO
ALTER TABLE [dbo].[RAA] CHECK CONSTRAINT [FK_RAA_asignaturas]
GO
/****** Object: ForeignKey [FK_RAG_alumnos] Script Date: 11/03/2014 21:57:31
******/
ALTER TABLE [dbo].[RAG] WITH CHECK ADD CONSTRAINT
[FK_RAG_alumnos] FOREIGN KEY([nie])
REFERENCES [dbo].[alumnos] ([nie])
ON UPDATE CASCADE
GO
ALTER TABLE [dbo].[RAG] CHECK CONSTRAINT [FK_RAG_alumnos]
GO
/****** Object: ForeignKey [FK_RGPA_asignaturas1] Script Date: 11/03/2014
21:57:31 ******/
ALTER TABLE [dbo].[RGPA] WITH CHECK ADD CONSTRAINT
[FK_RGPA_asignaturas1] FOREIGN KEY([codigo])
REFERENCES [dbo].[asignaturas] ([codigo])
ON UPDATE CASCADE
GO
ALTER TABLE [dbo].[RGPA] CHECK CONSTRAINT [FK_RGPA_asignaturas1]
GO
/****** Object: ForeignKey [FK_RGPA_grupo] Script Date: 11/03/2014 21:57:31
******/
ALTER TABLE [dbo].[RGPA] WITH CHECK ADD CONSTRAINT
[FK_RGPA_grupo] FOREIGN KEY([idgrupo])
REFERENCES [dbo].[grupo] ([idgrupo])
ON UPDATE CASCADE
GO
ALTER TABLE [dbo].[RGPA] CHECK CONSTRAINT [FK_RGPA_grupo]
GO
/****** Object: ForeignKey [FK_RGPA_profesores] Script Date: 11/03/2014
21:57:31 ******/
ALTER TABLE [dbo].[RGPA] WITH CHECK ADD CONSTRAINT
[FK_RGPA_profesores] FOREIGN KEY([idprofesor])
REFERENCES [dbo].[profesores] ([idprofesor])
ON UPDATE CASCADE
GO

-8-

Curso:2º ASIR
Módulo: SGBD

Autor: Jorge Carlos López Rodríguez

ALTER TABLE [dbo].[RGPA] CHECK CONSTRAINT [FK_RGPA_profesores]
GO
/****** Object: ForeignKey [FK_RPG_grupo] Script Date: 11/03/2014 21:57:31
******/
ALTER TABLE [dbo].[RPG] WITH CHECK ADD CONSTRAINT [FK_RPG_grupo]
FOREIGN KEY([idgrupo])
REFERENCES [dbo].[grupo] ([idgrupo])
ON UPDATE CASCADE
GO
ALTER TABLE [dbo].[RPG] CHECK CONSTRAINT [FK_RPG_grupo]
GO
/****** Object: ForeignKey [FK_RPG_profesores] Script Date: 11/03/2014
21:57:31 ******/
ALTER TABLE [dbo].[RPG] WITH CHECK ADD CONSTRAINT
[FK_RPG_profesores] FOREIGN KEY([idprofesor])
REFERENCES [dbo].[profesores] ([idprofesor])
ON UPDATE CASCADE
GO
ALTER TABLE [dbo].[RPG] CHECK CONSTRAINT [FK_RPG_profesores]
GO

• Implementación.
• Carga de datos utilizando ficheros de texto.
Para la insercción de datos, hemos utilizado también la herramienta
management studio, que de un modo sencillo nos permite introducir los datos mediante
interfaz gráfica

A continuación veremos la forma de introducir datos

• Pruebas.
• Actualizaciones.

-9-

Autor: Jorge Carlos López Rodríguez

Sistemas Gestores de Bases de Datos 2º A.S.I.R.

Bien, en este apartado vamos demostrar como ha ido quedando la insercción
de datos y si el modelo es congruente, para ello comenzaremos metiendo datos en las
tablas básicas. Partimos de este esquema.

La tabla cursos, permite introducir unicamente dos valores, un identificador y el
número (sólo va a haber dos tipos ya que los ciclos formativos así lo tienen estimado)

La tabla alumnos nos proporcionará la información básica del estudiante y
relacionarlo con un curso 1º o 2º, el grupo al que pertenece se verá más tarde en otra
relación

Si metemos un curso que no existe, nos saltará un error

-10-

Curso:2º ASIR
Módulo: SGBD

Autor: Jorge Carlos López Rodríguez

La tabla asignaturas dotará de un código, nombre y horas a los módulos que se
imparten

Tabla profesores es bien sencilla pues clasificará a los profesores del
departamento

La tabla grupo servirá para saber que alumnos pertenecen a dicho grupo, el
aula en el que se ubica, curso al que pertenece y delegado de dicho curso(nie) y el
tutor (idprofesor)

La tabla RAA nos ha surgido nueva tras la relación N:M entre alumnos y
asignaturas para saber que nota ha tenido cada alumno en las distintas evaluaciones y
la final, pongamos un ejemplo

-11-

Autor: Jorge Carlos López Rodríguez

Sistemas Gestores de Bases de Datos 2º A.S.I.R.

El alumno con nie 2, en la asignatura 1 (ISO) ha sacado 6 en las tres
evaluaciones por lo que de nota final tiene un 6, no pasaría lo mismo con el alumno
con nie 1 que ha suspendido con un 4 la asignatura de Hardware
La tabla RAG nos sirve para identificar a cada alumno con su grupo
correspondiente (recordemos que antes lo que hicimos fue relacionarlo con curso, no
con grupo)

La tabla RPG relaciona profesores y los grupos a los que le dan clases

La tabla RGPA quizá es la más compleja por ser ternaria y nos vale para ver
las asignaturas que cada profesor da en un grupo determinado

por ejemplo la asignatura 1 (ISO) es dada por el profesor 5 (Rafa) en el grupo 2
(2º ASIR)
-12-

Curso:2º ASIR
Módulo: SGBD

Autor: Jorge Carlos López Rodríguez

• Consultas.
Vamos a responder a unas consultas sencillas para ver si se han introducido
bien los datos
Saca por pantalla todos los alumnos

Saca por pantalla el email de los alumnos del curso 1

-13-

Autor: Jorge Carlos López Rodríguez

Sistemas Gestores de Bases de Datos 2º A.S.I.R.

Dime los alumnos que han sacado una nota final mayor que 5

Dame el nombre de los alumnos que tienen el mismo curso que Pepe Cuesta
Martos

Datos de alumnos del aula 210 (curso , tutor, email, grupo, etc..)
select * from alumnos, grupo, RAG
where
alumnos.nie=RAG.nie and
grupo.idgrupo=RAG.idgrupo
and aula = 210

-14-

Curso:2º ASIR
Módulo: SGBD

Autor: Jorge Carlos López Rodríguez

alumnos que dan ISO
select alumnos.nombre, asignaturas.nombre, RAA.codigo from asignaturas, RAA,
alumnos
where alumnos.nie=RAA.nie and
asignaturas.codigo=RAA.codigo and
asignaturas.nombre='ISO'

Alumnos 2º ASIR
select alumnos.nombre, grupo.nombre from alumnos, grupo, RAG
where alumnos.nie=RAG.nie and
grupo.idgrupo=RAG.idgrupo
and grupo.nombre='2º ASIR'

-15-

Autor: Jorge Carlos López Rodríguez

Sistemas Gestores de Bases de Datos 2º A.S.I.R.

Alumnos matriculados en Administración de Sistemas de Bases de Datos.
select alumnos.nombre, asignaturas.nombre, RAA.codigo from asignaturas, RAA,
alumnos
where alumnos.nie=RAA.nie and
asignaturas.codigo=RAA.codigo and
asignaturas.nombre='ASGBD'

Nota más alta en la primera evaluación de seguridad.
select MAX(RAA.[1ev]) AS 'nota más alta'
from alumnos, asignaturas, RAA
where alumnos.nie=RAA.nie and
asignaturas.codigo=RAA.codigo and
asignaturas.nombre='SEG'

-16-

Curso:2º ASIR
Módulo: SGBD

Autor: Jorge Carlos López Rodríguez

Boletín de notas de la primera evaluación.
select alumnos.nombre, asignaturas.nombre, RAA.[1ev] from
alumnos, asignaturas, RAA where alumnos.nie=RAA.nie and
asignaturas.codigo=RAA.codigo

Lista de delegados con su dirección de correo electrónico.
select alumnos.nombre, grupo.nombre, alumnos.email
from alumnos, grupo where alumnos.nie=grupo.nie

-17-

Autor: Jorge Carlos López Rodríguez

Sistemas Gestores de Bases de Datos 2º A.S.I.R.

Profesores y asignaturas que imparte.
select profesores.nombre, asignaturas.nombre, grupo.nombre, RGPA.idprofesor from
profesores, asignaturas, grupo, RGPA
where profesores.idprofesor=RGPA.idprofesor and
asignaturas.codigo=RGPA.codigo and
grupo.idgrupo=RGPA.idgrupo

Tutores.
select profesores.nombre, grupo.nombre from profesores, grupo
where profesores.idprofesor=grupo.idprofesor

-18-

Sponsor Documents

Or use your account on DocShare.tips

Hide

Forgot your password?

Or register your new account on DocShare.tips

Hide

Lost your password? Please enter your email address. You will receive a link to create a new password.

Back to log-in

Close