Sunteți pe pagina 1din 6

BASE DE DATOS

BASE DE DATOS

Actividad virtual 04: Entregable

Administración de base de datos.

1. Instrucciones:
1. Consulta el material de referencia de la semana 6 y 7.
2. Identifica los diferentes tipos de proposiciones.
3. Herramientas recomendadas: para elaborar este producto puedes
trabajar con las herramientas predeterminadas de Word y AQL
Server, en este mismo documento
4. Guarda el archivo y envíalo a través del ícono Enviar Actividad virtual
No. 4, que encuentras en tu aula virtual.

Página
1
BASE DE DATOS

BASE DE DATOS

Se cuenta con la siguiente base de datos que guarda los principales datos de
docentes de una universidad. Cada docente tiene una determinada profesión y
calificación (Excelente, muy bueno, bueno, regular y observado); además, se
almacena los reconocimientos de cada docente junto con las asignaturas que
puede dictar.

Página
2
BASE DE DATOS

BASE DE DATOS

BDDocentes
CREATE DATABASE DBDocentes

CREATE TABLE tblCalificacion(


IDCalificacion VARCHAR (1) PRIMARY KEY,
calNombre VARCHAR(20) NOT NULL)

CREATE TABLE tblProfesion(


IDProfesion INT PRIMARY KEY,
proNombre VARCHAR(150) NOT NULL,
proNombreBreve VARCHAR(20) NOT NULL,
proDescripcion VARCHAR(500) NOT NULL)

CREATE TABLE tblDocente(


DNI VARCHAR(8) PRIMARY KEY,
docApellidoPaterno VARCHAR(50) NOT NULL,
docApellidoMaterno VARCHAR(50),
docNombres VARCHAR(40) NOT NULL,
docGenero VARCHAR(1) NOT NULL,
docFechaNacimiento DATE NOT NULL,
docCorreoElectronicoPersonal VARCHAR(70) NOT NULL,
docCorreoElectronicoInstitucional VARCHAR(70) NOT NULL,
docSueldo DECIMAL(7,2) NOT NULL,
docAniosExperiencia INT NOT NULL,
IDProfesion INT NOT NULL,
IDCalificacion VARCHAR (1) NOT NULL,
FOREIGN KEY (IDProfesion) REFERENCES tblProfesion(IDProfesion),
FOREIGN KEY (IDCalificacion) REFERENCES tblCalificacion(IDCalificacion))

CREATE TABLE tblAsignatura(


IDAsignatura VARCHAR(6) PRIMARY KEY,
asiNombre VARCHAR(150) NOT NULL,
asiAbreviatura VARCHAR(3) NOT NULL,
asiDescripcion VARCHAR(500) NOT NULL)

CREATE TABLE tblDocenteAsignatura(


DNI VARCHAR(8) NOT NULL,
IDAsignatura VARCHAR(6) NOT NULL,
PRIMARY KEY (DNI,IDAsignatura),
FOREIGN KEY (DNI) REFERENCES tblDocente(DNI),
FOREIGN KEY (IDAsignatura) REFERENCES tblAsignatura(IDAsignatura))

CREATE TABLE tblReconocimiento(


IDReconocimiento INT PRIMARY KEY,
recFechaRegistro DATE NOT NULL,
recBonificacion DECIMAL(7,2) NOT NULL,
recObservaciones VARCHAR(1000) NOT NULL,
DNI VARCHAR(8) NOT NULL,
FOREIGN KEY (DNI) REFERENCES tblDocente(DNI))

Página
3
BASE DE DATOS

BASE DE DATOS

Se le solicita elaborar las siguientes consultas tomando en cuenta la base de


datos mostrada en la captura anterior:

1) Listar el DNI, nombres, apellido paterno, apellido materno, nombre de


profesión y nombre de calificación de todos los docentes que no cuenten
con correo electrónico personal. Ordene el resultado de forma descendente
por el apellido paterno. (3 puntos)
SELECT tblDocente.DNI, tblDocente.docNombres,
tblDocente.docApellidoPaterno, tblDocente.docApellidoMaterno,
tblProfesion.proNombre, tblCalificacion.calNombre
FROM tblDocente
INNER JOIN tblProfesion ON
tblDocente.IDProfesion=tblProfesion.IDProfesion
INNER JOIN tblCalificacion ON
tblDocente.IDCalificacion=tblCalificacion.IDCalificacion
WHERE tblDocente.docCorreoElectronicoPersonal = ''

ORDER BY tblDocente.docApellidoPaterno DESC

2) Listar el nombre y abreviatura de las asignaturas que no cuentan con


docentes que las puedan dictar. Ordene el resultado por nombre de
asignatura de forma ascendente. (3 puntos)
SELECT asiNombre, asiAbreviatura
FROM tblAsignatura
WHERE asiDescripcion = ''

ORDER BY asiNombre

3) Mostrar el DNI, nombres, apellido paterno, apellido materno y nombre de


profesión del docente que tiene la mayor cantidad de reconocimientos. (3
puntos)
SELECT tblDocente.DNI, tblDocente.docNombres,
tblDocente.docApellidoPaterno, tblDocente.docApellidoMaterno,
tblProfesion.proNombre
FROM tblDocente
INNER JOIN tblProfesion ON
tblDocente.IDProfesion=tblProfesion.IDProfesion
INNER JOIN tblReconocimiento ON tblDocente.DNI=tblReconocimiento.DNI

WHERE tblReconocimiento.recObservaciones = 'Docente con mayores


Bonificaciones'

4) Listar el nombre completo de cada docente con el monto total de


bonificación que recibió por algún reconocimiento. Sólo considere los
reconocimientos que se hicieron entre marzo y diciembre del año pasado.
(3 puntos)

SELECT tblDocente.docNombres + ' ' + tblDocente.docApellidoPaterno +


' ' + tblDocente.docApellidoMaterno
AS NombreCompleto, tblReconocimiento.recBonificacion

Página
4
BASE DE DATOS

BASE DE DATOS

FROM tblDocente
INNER JOIN tblReconocimiento ON tblDocente.DNI=tblReconocimiento.DNI

WHERE tblreconocimiento.recFechaRegistro BETWEEN '01/03/2018' AND


'31/12/2018'

5) Listar el nombre completo y años de experiencia de los docentes que


pueden dictar más de 4 asignaturas. (3 puntos)

SELECT tblDocente.docNombres + ' ' + tblDocente.docApellidoPaterno +


' ' + tblDocente.docApellidoMaterno
AS NombreCompleto, tblDocente.docAniosExperiencia
FROM tblDocente
INNER JOIN tblProfesion ON
tblDocente.IDProfesion=tblProfesion.IDProfesion

WHERE tblProfesion.proDescripcion = 'Docente que puede dictar 4


asignaturas'

6) Crear un procedimiento almacenado que reciba como parámetro dos fechas


y luego muestre el DNI, nombre completo, nombre de calificación y nombre
de profesión de los docentes que recibieron más de un reconocimiento
entre las dos fechas indicadas. (3 puntos)

SET DATEFORMAT DMY


DECLARE @FechaInicial DATE
DECLARE @FechaFinal DATE
SET @FechaInicial='01/01/2018'
SET @FechaFinal='31/12/2018'

SELECT tblDocente.DNI, tblDocente.docNombres + ' ' +


tblDocente.docApellidoPaterno + ' ' + tblDocente.docApellidoMaterno
AS NombreCompleto,
tblCalificacion.calNombre, tblProfesion.proNombre
FROM tblDocente
INNER JOIN tblCalificacion ON
tblDocente.IDCalificacion=tblCalificacion.IDCalificacion
INNER JOIN tblProfesion ON
tblDocente.IDProfesion=tblProfesion.IDProfesion
INNER JOIN tblReconocimiento ON tblDocente.DNI=tblReconocimiento.DNI
WHERE tblReconocimiento.recObservaciones = 'Docente con más de un
reconocimiento'
AND tblReconocimiento.recFechaRegistro BETWEEN @FechaInicial AND
@FechaFinal

7) Crear una vista que muestre el código, nombre y descripción de las 3


profesiones que tienen mayor cantidad de docentes. (2 puntos)

Página
5
BASE DE DATOS

BASE DE DATOS

SELECT proNombre, COUNT(IDProfesion) AS Cantidad


FROM tblProfesion
GROUP BY proNombre
ORDER BY Cantidad DESC

DECLARE @MayorCantProfesionales1 INT


DECLARE @MayorCantProfesionales2 INT
DECLARE @MayorCantProfesionales3 INT
SET @MayorCantProfesionales1=4
SET @MayorCantProfesionales2=7
SET @MayorCantProfesionales3=9

SELECT IDProfesion, proNombre, proDescripcion


FROM tblProfesion
WHERE IDProfesion = @MayorCantProfesionales1
AND IDProfesion = @MayorCantProfesionales2

AND IDProfesion = @MayorCantProfesionales3

Consideraciones para la entrega exitosa del producto académico:

 Solamente debe entregar la resolución de las 7 preguntas mostradas


anteriormente, NO es necesario que envíe la base de datos.
 Se le solicita solo subir este archivo de Microsoft Word con la solución de las 7
preguntas mostradas anteriormente, evite comprimirlo por favor.

Ejemplo de cómo debe presentar la resolución de cada pregunta:


Listar los nombres, apellido paterno y apellido materno de los docentes que nacieron
antes del año 1990. Ordenar el resultado de forma descendente por apellido paterno.

SELECT Nombres,ApellidoPaterno,ApellidoMaterno
FROM tblDocente
WHERE YEAR(fechaNacimiento)<1990
ORDER BY ApellidoPaterno DESC

Página
6

S-ar putea să vă placă și