Sie sind auf Seite 1von 12

Segunda Evaluacin a

Distancia
Base de Datos Avanzadas
V Ciclo
Ingeniera de Sistemas

DATOS DE IDENTIFICACIN

CURSO : Base de Datos Avanzadas

FECHA DE ENTREGA : 06-06-2014

SEMESTRE ACADMICO : 2014 01

ESTUDIANTE : Luis Hoyos Aguinaga

FACULTAD : Facultad de Ingeniera, Arquitectura y


Urbanismo

ESCUELA PROFESIONAL : Ingeniera de Sistemas

PROFESOR : Ing. Victor Jhairo Racchumi Lecca, MBA

Programa Acadmico de Educacin


Superior a Distancia
Primera Evaluacin a Distancia
Indicaciones Generales
No olvides de escribir tus nombres y apellidos en la primera pgina de la prueba, en los espacios
correspondientes, as como la Facultad y Escuela Profesional a la que perteneces.

INSTRUCCIONES

El presente examen estar basado en un caso de Estudio, teniendo como base haber
aprobado el curso de Base de Datos I.

CASO DE ESTUDIOS

La Empresa Blue Towers se encuentra con un proyecto de desarrollo e Implementacin de


un Sistema de Gestin de Atenciones para el departamento de Sistemas.

Para este proyecto la empresa lo ha contratado a Ud. Como Ing. De Sistema para el anlisis
y elaboracin de su motor de datos para este Sistema, para lo cual le ha brindado lo
siguiente:

- El rea de Sistema cuenta con 3 areas:


o Desarrollo de Sistemas
o Redes y Comunicaciones
o Soporte tcnico
- Las solicitudes son de 3 tipos:
o Nivel 1, que son atendidos por operador Telefnico.
o Nivel 2, que son aquellas atenciones especializadas por personal de cada
subarea.
o Nivel 3, cuan el requerimiento es necesario elevarlos al proveedor.
- En cada Solicitud, se registra:
o Fecha del Requerimiento
o Hora de Entrada
o Asunto
o Usuario solicitante
o Cdigo generado (ID de Solicitud)
- Esta solicitud son revisadas y clasificadas de acuerdo a su nivel.
- Para el caso del Nivel 2, son derivadas al personal especializado, que programara
una fecha tentativa de atencin.
- Al ser atendida, registra el motivo del problema, la solucin al problema, tambin la
fecha de atencin.

Los datos que consignan para el Personal son:


Datos de Persona
o Apellidos y Nombres
o Sexo de la persona
o Tipo de Documento de Identidad
o Numero de Documento de Identidad
o Fecha de Nacimiento
o Lugar de Nacimiento
Datos de Contacto
o Tipo de Telfono
o Nmero Telefnico (Puede contener ms de uno)
o Tipo de Mail
o Mail (Puede contener ms de uno)
o Estado Civil de la Persona
o Relacin con otras personas (hijos, Esposa, hermanos, etc)

Se solicita a Ud. Desarrollar el modelo adecuado para este caso de Estudio, brindando el
modelo de Datos, y los Script correspondiente para creacin de los Objetos.
Script:
- Tablas
- Restricciones
- Claves forneas y Primarias.
- Modelo de Datos

Una vez implementado el modelo de datos en la base de datos: Service_X, elaborar:


- Realizar inserciones de registro para consultar datos.
- Realizar un Listado atenciones realizadas en mes de Enero 2014.
- Realizar una listado de personal que atendieron en enero 2014
- Realizar una consulta resumen de nmero de atendidos en enero 2014 por reas.
- Realizar una consulta por tipo motivos de consulta en forma consolidada de enero
del 2014
- Elaborar un procedimiento almacenado que brinde un listado detallado por motivo
de consulta del mes de enero 2014
- Elaborar una vista de datos mostrando el personal existente de la empresa con los
siguientes campos: DNI Apellidos y Nombre Edad rea Nro de Atenciones.
- Elaborar una sub consulta utilizando los tipos de problemas agrupados por meses y
aos.
- Elaborar un procedimiento almacenado brindando un resumen del personal atendido
agrupado por rea y Sexo.
- Mostar todo el personal mayor de 30 aos atendidas en enero 2014.

Elaborar las consultas en una archivo SQL con el Nombre, Querys.sql


Elaborar los objetos tablas, vistas y procedimientos almacenado en Objects_Alumno.sql
USE [Service_X]
GO

/****** Object: Table [dbo].[Area] Script Date: 06/04/2014 18:43:28 ******/


SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

SET ANSI_PADDING ON
GO

CREATE TABLE [dbo].[Area](


[IDArea] [int] IDENTITY(1,1) NOT NULL,
[Nombre] [varchar](50) NOT NULL,
CONSTRAINT [PK_Area] PRIMARY KEY CLUSTERED
(
[IDArea] 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
--Sexo
USE [Service_X]
GO

/****** Object: Table [dbo].[Sexo] Script Date: 06/04/2014 18:43:43 ******/


SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [dbo].[Sexo](


[idSexo] [int] IDENTITY(1,1) NOT NULL,
[nombre_sexo] [nchar](10) NOT NULL,
CONSTRAINT [PK_Sexo] PRIMARY KEY CLUSTERED
(
[idSexo] 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
-- tipo personal
USE [Service_X]
GO

/****** Object: Table [dbo].[TipoPersonal] Script Date: 06/04/2014 18:44:06


******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

SET ANSI_PADDING ON
GO

CREATE TABLE [dbo].[TipoPersonal](


[IDTipoPersonal] [int] IDENTITY(1,1) NOT NULL,
[Nombre] [varchar](20) NOT NULL,
CONSTRAINT [PK_TipoPersonal] PRIMARY KEY CLUSTERED
(
[IDTipoPersonal] 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
--tipo solicitud
USE [Service_X]
GO

/****** Object: Table [dbo].[TipoSolicitud] Script Date: 06/04/2014 18:44:26


******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

SET ANSI_PADDING ON
GO

CREATE TABLE [dbo].[TipoSolicitud](


[IDTipoSolicitud] [int] IDENTITY(1,1) NOT NULL,
[Nombre] [varchar](30) NOT NULL,
[Descripcion] [varchar](50) NOT NULL,
CONSTRAINT [PK_TipoSolicitud] PRIMARY KEY CLUSTERED
(
[IDTipoSolicitud] 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
--estado civil
USE [Service_X]
GO

/****** Object: Table [dbo].[EstadoCivil] Script Date: 06/04/2014 18:45:04


******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [dbo].[EstadoCivil](


[IdEstadoCivil] [int] IDENTITY(1,1) NOT NULL,
[nombre] [nchar](20) NOT NULL,
CONSTRAINT [PK_EstadoCivil] PRIMARY KEY CLUSTERED
(
[IdEstadoCivil] 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
--Personal
USE [Service_X]
GO

/****** Object: Table [dbo].[Personal] Script Date: 06/04/2014 18:45:26


******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

SET ANSI_PADDING ON
GO

CREATE TABLE [dbo].[Personal](


[IDPersonal] [int] IDENTITY(1,1) NOT NULL,
[IDTipoPersonal] [int] NOT NULL,
[IDSexo] [int] NOT NULL,
[IDEstadoCivil] [int] NOT NULL,
[IDParentesco] [int] NOT NULL,
[DatosPersonal] [varchar](150) NOT NULL,
[DNI] [char](8) NOT NULL,
[FechaNacimiento] [date] NOT NULL,
[LugarNacimiento] [varchar](50) NULL,
[TipoTelefono] [nchar](10) NOT NULL,
[Telefonos] [varchar](40) NOT NULL,
[TipoMail] [nchar](10) NOT NULL,
[Emails] [varchar](50) NOT NULL,
CONSTRAINT [PK_Personal] PRIMARY KEY CLUSTERED
(
[IDPersonal] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF,
IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS =
ON) ON [PRIMARY],
CONSTRAINT [IX_Personal] UNIQUE NONCLUSTERED
(
[DNI] 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

EXEC sys.sp_addextendedproperty @name=N'MS_Description',


@value=N'Documento de Identidad' ,
@level0type=N'SCHEMA',@level0name=N'dbo',
@level1type=N'TABLE',@level1name=N'Personal',
@level2type=N'CONSTRAINT',@level2name=N'IX_Personal'
GO

ALTER TABLE [dbo].[Personal] WITH CHECK ADD CONSTRAINT


[FK_Personal_EstadoCivil] FOREIGN KEY([IDEstadoCivil])
REFERENCES [dbo].[EstadoCivil] ([IdEstadoCivil])
GO

ALTER TABLE [dbo].[Personal] CHECK CONSTRAINT [FK_Personal_EstadoCivil]


GO

ALTER TABLE [dbo].[Personal] WITH CHECK ADD CONSTRAINT


[FK_Personal_Personal] FOREIGN KEY([IDPersonal])
REFERENCES [dbo].[Personal] ([IDPersonal])
GO

ALTER TABLE [dbo].[Personal] CHECK CONSTRAINT [FK_Personal_Personal]


GO

ALTER TABLE [dbo].[Personal] WITH CHECK ADD CONSTRAINT


[FK_Personal_Sexo] FOREIGN KEY([IDSexo])
REFERENCES [dbo].[Sexo] ([idSexo])
GO

ALTER TABLE [dbo].[Personal] CHECK CONSTRAINT [FK_Personal_Sexo]


GO

ALTER TABLE [dbo].[Personal] WITH CHECK ADD CONSTRAINT


[FK_Personal_TipoPersonal] FOREIGN KEY([IDTipoPersonal])
REFERENCES [dbo].[TipoPersonal] ([IDTipoPersonal])
GO

ALTER TABLE [dbo].[Personal] CHECK CONSTRAINT


[FK_Personal_TipoPersonal]
GO
--Solicitud
USE [Service_X]
GO

/****** Object: Table [dbo].[Solicitud] Script Date: 06/04/2014 18:45:46


******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

SET ANSI_PADDING ON
GO

CREATE TABLE [dbo].[Solicitud](


[IDSolicitud] [int] IDENTITY(1,1) NOT NULL,
[IDArea] [int] NOT NULL,
[IDTipoSolicitud] [int] NOT NULL,
[Fecha] [date] NOT NULL,
[Hora] [time](7) NOT NULL,
[Asunto] [varchar](250) NOT NULL,
[UsuarioSolicitante] [varchar](150) NOT NULL,
CONSTRAINT [PK_Solicitud] PRIMARY KEY CLUSTERED
(
[IDSolicitud] 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

ALTER TABLE [dbo].[Solicitud] WITH CHECK ADD CONSTRAINT


[FK_Solicitud_Area] FOREIGN KEY([IDArea])
REFERENCES [dbo].[Area] ([IDArea])
GO

ALTER TABLE [dbo].[Solicitud] CHECK CONSTRAINT [FK_Solicitud_Area]


GO

ALTER TABLE [dbo].[Solicitud] WITH CHECK ADD CONSTRAINT


[FK_Solicitud_TipoSolicitud] FOREIGN KEY([IDTipoSolicitud])
REFERENCES [dbo].[TipoSolicitud] ([IDTipoSolicitud])
GO
ALTER TABLE [dbo].[Solicitud] CHECK CONSTRAINT
[FK_Solicitud_TipoSolicitud]
GO

--Atencion
USE [Service_X]
GO

/****** Object: Table [dbo].[Atencion] Script Date: 06/04/2014 18:46:04


******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

SET ANSI_PADDING ON
GO

CREATE TABLE [dbo].[Atencion](


[IDAtencion] [int] NOT NULL,
[IDSolicitud] [int] NOT NULL,
[IDPersonal] [int] NOT NULL,
[Estado] [bit] NOT NULL,
[Motivo] [varchar](250) NOT NULL,
[Solucion] [varchar](250) NOT NULL,
[FechaTentativa] [datetime] NULL,
[FechaAtencion] [datetime] NULL,
CONSTRAINT [PK_Atencion] PRIMARY KEY CLUSTERED
(
[IDAtencion] 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

ALTER TABLE [dbo].[Atencion] WITH CHECK ADD CONSTRAINT


[FK_Atencion_Personal] FOREIGN KEY([IDPersonal])
REFERENCES [dbo].[Personal] ([IDPersonal])
GO

ALTER TABLE [dbo].[Atencion] CHECK CONSTRAINT [FK_Atencion_Personal]


GO

ALTER TABLE [dbo].[Atencion] WITH CHECK ADD CONSTRAINT


[FK_Atencion_Solicitud] FOREIGN KEY([IDSolicitud])
REFERENCES [dbo].[Solicitud] ([IDSolicitud])
GO

ALTER TABLE [dbo].[Atencion] CHECK CONSTRAINT [FK_Atencion_Solicitud]


GO

----------------------------------------------------------------------------------------------------------
-------------------

-1.- Atenciones realizadas en Enero 2014


SELECT * FROM Atencion
where MONTH(fechaatencion)=1
and YEAR(fechaatencion)=2014
AND Estado=1;
--2.-Personal Atendieron mes de enero 2014
Select * from Personal where IDPersonal in (
SELECT IDPersonal FROM Atencion
where MONTH(fechaatencion)=1
and YEAR(fechaatencion)=2014
AND Estado=1);
--3.- Atenciones por area en el 2014
Select (Select nombre from Area are where are.IDArea=sol.idarea)as
area_solicitante,
Asunto,(Select DatosPersonal from personal per where
idpersonal=usuariosolicitante) as solicitante,
Fecha,aten.motivo,aten.Solucion,aten.FechaAtencion
from Atencion aten inner join Solicitud sol
on aten.idsolicitud=sol.idsolicitud
where YEAR(fechaatencion)=2014
order by 1;
--4.- consulta tipo motivo consolidado
Select Asunto,COUNT(*) from Solicitud
group by Asunto;
--5.-
CREATE PROCEDURE list_det_motivo
@motivo varchar(50)
AS
BEGIN
Select (Select nombre from Area are where are.IDArea=sol.idarea)as
area_solicitante,
Asunto,(Select DatosPersonal from personal per where
idpersonal=usuariosolicitante) as solicitante,
Fecha,aten.motivo,aten.Solucion,aten.FechaAtencion
from Atencion aten inner join Solicitud sol
on aten.idsolicitud=sol.idsolicitud
where YEAR(fechaatencion)=2014 AND MONTH(fechaatencion)=1
and Asunto like @motivo;
END
GO
--6.-
create view datos as
Select DNI,DatosPersonal,DATEDIFF(year,fechanacimiento,getdate())as edad,
(Select nombre from Area are where are.IDArea=sol.IDArea)as area_,
(Select COUNT(*) from Solicitud sol_ where
sol_.UsuarioSolicitante=IDPersonal)as numero_atenciones
from personal per inner join Solicitud sol on
per.IDPersonal=sol.UsuarioSolicitante
where IDTipoPersonal!=0;

--7.-

Select asunto,MONTH(Fecha)as mes,YEAR(Fecha)as ao,COUNT(*) as


cantidad from Solicitud
group by asunto,MONTH(Fecha),YEAR(Fecha);

--8.-
create procedure listarPersonalAtendido
@area_ int ,
@sexo_ int
AS
BEGIN
Select DatosPersonal,DNI,Emails from Personal where IDPersonal
in (Select idpersonal from Solicitud sol inner join Atencion ate
on sol.IDSolicitud=ate.IDSolicitud and Estado=1 and IDArea=@area_)
AND idsexo=@sexo_;
END
GO
--9.- Mostrar todo el personal mayor de 30 aos atendidas en enero 2014

Select DatosPersonal,DNI,FechaNacimiento,telefonos,emails from Personal


where IDPersonal in (
Select IDPersonal from Solicitud so inner join Atencion at
on so.IDSolicitud=at.IDSolicitud
where Estado=1
)
AND DATEDIFF(year,fechanacimiento,getdate())>30

Das könnte Ihnen auch gefallen