1. UNIVERSIDAD DE GUAYAQUIL
FACULTAD DE CIENCIAS FISICAS Y
MATEMATICAS
CARERRA DE ING. EN SISTEMAS
COMPUTACIONALES
ELECTIVAS III
TEMA: PROYECTO ELECTIVA III
AUTORES: JIMMY CARAGUAY OGOÑO
TUTOR: ING. MARÍA ISABEL GALARZA S.
CICLO I - (2018 – 2019)
GUAYAQUIL – GUAYAS – ECUADOR
2. 1. Ingresar a la página http://www.ecuadorencifras.gob.ec/ecuador-en-cifras/ y luego al
Menú Estadísticas por Fuentes y descargar las siguientes bases de Datos:
Matrimonios 2016, Matrimonios 2017, Divorcios2016 y Divorcios2017. Estas bases
de datos se descargan en un archivo empaquetado, dentro del cual se encontrarán 3
archivos por cada descarga. El proyecto se realizará con los cuatro archivos CSV
(Comma Separated Values, Valores separados por coma).
3. 2. Cree una nueva Base de Datos en Sql Server.
Creamos la Base de datos llamada cifras
3. Agregar a cada archivo de Excel tres columnas: Tipo (1=Matrimonios /2=Divorcio,
Nombre (Matrimonio/Divorcio) y código_secuencial. El código debe empezar en 1
para los archivos del 2016 y para el 2017 deben empezar con la secuencia que terminó
el 2016 más 1.
Tabla de Divorcios 2016.
5. Tabla de Matrimonios 2017.
4. Importar los cuatro archivos CSV descargados a la nueva base de Datos en Sql
Server con un nombre descriptivo.
6. Hacemos click derecho en la base de datos creada en este caso CIFRAS, vamos a tareas
y luego importar datos.
Seleccionamos el origen de datos, en este caso Excel y el achivo a importar.
7. Seleccionamos un destino para la importacion de los datos en este caso es OLEDB
proveedor de SQL Server y la base de datos CIFRAS.
8. La informacion guardada en excel sera almacenada en una tabla de la Base de datos
Cifras o en una vista.
9. Le damos un nombre a esas nuevas tablas q se crearan en la BD CIFRAS en este caso
Matrimonios 2017 y asi con el resto de archivos excel.
Como se muestra en la imagen ya se encuentran todas las tablas con la información
importada de los archivos Excel.
5. Cree un script para crear una nueva tabla de Matrimonios_unificada basada en la
estructura del año 2017 y cree la nueva tabla ejecutando el Script. Observar imagen
siguiente.
USE [cifras]
GO
/****** Object: Table [dbo].[Divorcios_Unificada] Script Date: 17/08/2018
13:49:09 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Divorcios_Unificada](
[ofi_insc] [float] NULL,
[prov_insc] [nvarchar](255) NULL,
[cant_insc] [nvarchar](255) NULL,
[parr_insc] [nvarchar](255) NULL,
[anio_insc] [float] NULL,
[mes_insc] [nvarchar](255) NULL,
[dia_insc] [float] NULL,
[fecha_insc] [datetime] NULL,
[anio_div] [float] NULL,
[mes_div] [nvarchar](255) NULL,
[dia_div] [float] NULL,
[fecha_div] [nvarchar](255) NULL,
[anio_mat] [float] NULL,
[mes_mat] [nvarchar](255) NULL,
[dia_mat] [float] NULL,
[fecha_mat] [nvarchar](255) NULL,
[mcap_bie] [nvarchar](255) NULL,
[dur_mat] [float] NULL,
10. [cau_div] [nvarchar](255) NULL,
[nac_hom] [nvarchar](255) NULL,
[cod_paish] [float] NULL,
[anio_nach] [float] NULL,
[mes_nach] [nvarchar](255) NULL,
[dia_nach] [float] NULL,
[fecha_nach] [nvarchar](255) NULL,
[edad_hom] [float] NULL,
[hijos_hom] [float] NULL,
[p_etnica_hom] [nvarchar](255) NULL,
[niv_insth] [nvarchar](255) NULL,
[sabe_leerh] [nvarchar](255) NULL,
[prov_habh] [nvarchar](255) NULL,
[cant_habh] [nvarchar](255) NULL,
[parr_habh] [nvarchar](255) NULL,
[area_resh] [nvarchar](255) NULL,
[nac_muj] [nvarchar](255) NULL,
[cod_paism] [float] NULL,
[anio_nacm] [float] NULL,
[mes_nacm] [nvarchar](255) NULL,
[dia_nacm] [float] NULL,
[fecha_nacm] [nvarchar](255) NULL,
[edad_muj] [float] NULL,
[hijos_muj] [float] NULL,
[p_etnica_muj] [nvarchar](255) NULL,
[niv_instm] [nvarchar](255) NULL,
[sabe_leerm] [nvarchar](255) NULL,
[prov_habm] [nvarchar](255) NULL,
[cant_habm] [nvarchar](255) NULL,
[parr_habm] [nvarchar](255) NULL,
[area_resm] [nvarchar](255) NULL,
[tipo] [float] NULL,
[nombre] [nvarchar](255) NULL,
[codigo_secuencial] [float] NULL
) ON [PRIMARY]
GO
6. Cree un script para crear una nueva tabla de Divorcios_unificada basada en la
estructura del año 2017 y cree la nueva tabla ejecutando el Script. Observar imagen
siguiente.
USE [cifras]
GO
/****** Object: Table [dbo].[Matrimonios_Unificada] Script Date: 17/08/2018
13:50:55 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Matrimonios_Unificada](
[ofi_insc] [float] NULL,
[prov_insc] [nvarchar](255) NULL,
[cant_insc] [nvarchar](255) NULL,
[parr_insc] [nvarchar](255) NULL,
11. [anio_insc] [float] NULL,
[mes_insc] [nvarchar](255) NULL,
[dia_insc] [float] NULL,
[fecha_insc] [nvarchar](255) NULL,
[hijos_rec] [float] NULL,
[mcap_bie] [nvarchar](255) NULL,
[nac_hom] [nvarchar](255) NULL,
[cod_paish] [float] NULL,
[anio_nach] [float] NULL,
[mes_nach] [nvarchar](255) NULL,
[dia_nach] [float] NULL,
[fecha_nach] [nvarchar](255) NULL,
[edad_hom] [float] NULL,
[nmatanth] [float] NULL,
[est_civih] [nvarchar](255) NULL,
[p_etnica_hom] [nvarchar](255) NULL,
[niv_insth] [nvarchar](255) NULL,
[sabe_leerh] [nvarchar](255) NULL,
[prov_habh] [nvarchar](255) NULL,
[cant_habh] [nvarchar](255) NULL,
[parr_habh] [nvarchar](255) NULL,
[area_resh] [nvarchar](255) NULL,
[nac_muj] [nvarchar](255) NULL,
[cod_paism] [float] NULL,
[anio_nacm] [float] NULL,
[mes_nacm] [nvarchar](255) NULL,
[dia_nacm] [float] NULL,
[fecha_nacm] [datetime] NULL,
[edad_muj] [float] NULL,
[nmatantm] [float] NULL,
[est_civim] [nvarchar](255) NULL,
[p_etnica_muj] [nvarchar](255) NULL,
[niv_instm] [nvarchar](255) NULL,
[sabe_leerm] [nvarchar](255) NULL,
[prov_habm] [nvarchar](255) NULL,
[cant_habm] [nvarchar](255) NULL,
[parr_habm] [nvarchar](255) NULL,
[area_resm] [nvarchar](255) NULL,
[tipo] [float] NULL,
[nombre] [nvarchar](255) NULL,
[codigo_secuencial] [float] NULL
) ON [PRIMARY]
GO
7. Exportar la tabla de Divorcios2016 a Divorcios_unificado. Leer Punto 11.
8. Exportar la tabla de Divorcios2017 a Divorcios_unificado. Leer Punto 11.
9. Exportar la tabla de Matrimonios2016 a Matrimonios_unificado. Leer Punto 11.
10. Exportar la tabla de Matrimonios 2017 a Matrimonios _unificado. Leer Punto 11.
11. Debido a diferentes tipos de datos omita los campos cau_div, cod_paish y
cod_paism en el proceso de exportación, botón Editar asignaciones.
12. Hacemos click derecho en la base de datos creada en este caso CIFRAS, vamos a tareas
y luego exportar datos.
Seleccionamos el origen de los datos que es en el servidor nativo Cliente SQL Server
y la de base datos Cifras.
13. Seleccionamos el destino de los datos que es en el servidor nativo Cliente SQL Server
en la de base datos Cifras.
Seleccionamos las tablas Divorcios 2016 y 2017 del cual vamos exportar la
información a la nueva tabla vacía, la cual es Divorcio Unificada y así hacemos lo
mismo con las de Matrimonio
14. Omitimos ciertos campos para q no aparezcan en la nueva tabla las cuales son
cau_div, cod_paish y cod_paism
Las nuevas tablas listas para aplicar los scripts necesarios.
15. 12. Realizar los siguientes procedimientos almacenados (SP):
a. Obtener Duración Mínima (MIN), máxima (MAX) y promedio (AVG) de los
matrimonios. Para esto, utilizar campo dur_mat el cual contiene la duración de los
matrimonios en años. No requiere gráfico estadístico.
Aquí podemos que se creo un procedimiento almacenado para extraer el mínimo
y el máximo donde se usaron los comando MIN y MAX para obtenerlos de los
respectivos campos.
CREATE PROCEDURE SP_Duracion_Matrimonios
As
begin
SELECT MIN(D.dur_mat) as DuracionMinima, MAX(D.dur_mat) as
DuracionMaxima , AVG(D.dur_mat)as Promedio
FROM Divorcios_Unificada as D;
end
exec SP_Duracion_Matrimonios
b. Listado de la Cantidad de Matrimonios durante el año 2017 agrupadas por
meses. Gráfico Lineal.
CREATE PROCEDURE SP_MATRI2017_MES
As
begin
select COUNT(*) as MATRIMONIOS_2017, mes_insc AS MES
into MatrimonioMes2017
16. from Matrimonios_Unificada where anio_insc = '2017'
GROUP BY mes_insc
end
En este procedimiento almacenado se creo para extraer infomacion de lo
smatrimonios que se dieron en el 2017 usamos los comando COUNT para contar
el total de matrimonios y luego el comando GROUP BY para agruparlos por mes
Este es el resultado de la consulta Query
Usando el Power Pivot para esxtraer información de la Base de datos y asi gestionar
esa información.
17. En este grafico lineal podemos observa que en el mes de diciembre se dieron mas
matrimonios durante el 2017
c. Listado de cantidad de Matrimonios que se dieron en el año 2017 agrupadas
por provincia. Gráfico de barras.
CREATE PROCEDURE SP_MATRI2017_PROV
As
begin
select COUNT(*) as MATRIMONIOS_2017, prov_insc AS PROVINCIA
into MatrimonioProv2017
from Matrimonios_Unificada where anio_insc = '2017'
GROUP BY prov_insc
end
EXEC SP_MATRI2017_PROV
Este es el código analizado para mostrar todos los matrimonios en el año 2017
4371
5646
7271
4237 4496 4781 4744 5000
4540
5038 5054 5175
0
1000
2000
3000
4000
5000
6000
7000
8000
Matrimonios por mes 2017
Total
18. Esta es la tabla resultante una vez ejecutado el procedimiento almacenado.
Esta tabla resulta de la extracción de la Base de Datos a Excel a través de
Power Pivot.
19. En la Grafica podemos Observar que se llevaron acabo matrimonios con mas
frecuencia en las provincias del Guayas Y Pichincha.
d. Informe unificado de matrimonios y Divorcios durante el año 2016 agrupados
por meses y Tipo (Matrimonio o Divorcio) con un gráfico lineal o de barras donde se
visualicen ambos datos para ver el comportamiento de ambos registros.
CREATE PROCEDURE SP_MES_TIPO
As
begin
SELECT MONTH( convert(datetime,fecha_insc,101)) as num_mes,
rtrim(ltrim(mes_insc)) as MES,
NOMBRE AS TIPO, COUNT(*) AS TOTAL
INTO INFORME2016
FROM Matrimonios2016
WHERE fecha_insc IS NOT NULL
GROUP BY MONTH( convert(datetime,fecha_insc,101)), rtrim(ltrim(mes_insc)), nombre
UNION
SELECT MONTH( convert(datetime,fecha_insc,101)) as num_mes,
rtrim(ltrim(mes_insc)) as MES,
NOMBRE AS TIPO, COUNT(*) AS TOTAL
FROM Divorcios2016
WHERE fecha_insc IS NOT NULL
GROUP BY MONTH( convert(datetime,fecha_insc,101)), rtrim(ltrim(mes_insc)), nombre
order BY MONTH( convert(datetime,fecha_insc,101)), rtrim(ltrim(mes_insc)), nombre
end
exec SP_MES_TIPO
SELECT * FROM INFORME2016
SELECT * FROM INFORME2016 Where tipo = 'divorcio'
SELECT * FROM INFORME2016 Where tipo = 'matrimonio'
0
2000
4000
6000
8000
10000
12000
14000
16000
18000
Azuay
Bolívar
Cañar
Carchi
Chimborazo
Cotopaxi
ElOro
Esmeraldas
Galápagos
Guayas
Imbabura
Loja
LosRíos
Manabí
MoronaSantiago
Napo
Orellana
Pastaza
Pichincha
SantaElena
SantoDomingode…
Sucumbíos
Tungurahua
ZamoraChinchipe
Matrimonios por provincia 2017
Total
20. En este query usamos dos select para poder obtener esta tabla uno es para obtener los
matrimonios y otro es para obtener los divorcios en el 2016 los cuales estan agrupados
por numero de mes, mes y tipo, en los datos de la en especial en fecha_insc se tenia un
problema no sepodia obtener el mes ya que elformato de lainformacion se encontraba
con / (yyyy/mm/dd) lo cual no daba un error si usabamos el comando MONTH
directamente asi q ante devimos usar el CONVERT y pasarlo a DATETIME
Tabla resultante en la consulta de query anterior
num_mes Mes Matrimonio Divorcio
1 Enero 3765 1985
2 Febrero 4958 1926
3 Marzo 4473 2168
4 Abril 4680 1755
5 Mayo 4189 1860
6 Junio 4344 2002
7 Julio 4911 1993
8 Agosto 5378 2443
9 Septiembre 5142 2423
10 Octubre 5050 2419
11 Noviembre 4434 2211
21. 12 Diciembre 6414 2463
Tabla resultante usando el Power Pivot cuya informacion es extraida de la base datos
Cifras y query usado enteriormente
En este grafico podemos analizar que en el año 2016 hubo más matrimonios
que divorcios.
13. Para los procedimientos almacenados realizar un tablero de control donde
se visualicen los datos obtenidos de cada Stored Procedure y su gráfico estadístico en
las herramientas Qlik View, Qlik Sense, Pentaho, Tableau, PowerBI, Reporting Services
de Sql Server.
La herramienta que se utilizó para esta práctica fue Qlik View
0
1000
2000
3000
4000
5000
6000
7000
Enero
Febrero
Marzo
Abril
Mayo
Junio
Julio
Agosto
Septiembre
Octubre
Noviembre
Diciembre
1 2 3 4 5 6 7 8 9 10 11 12
Informe unificadode Matrimonios y Divorcios 2016
Matrimonio Divorcio
23. 14. OPCIONAL: En un solo procedimiento realizar lo siguiente:
a. Edad promedio a la que se casan los varones.
b. Edad promedio a la que se casan las mujeres.
c. Edad promedio a la que se divorcian los varones.
d. Edad promedio a la que se divorcian las mujeres.
CREATE PROCEDURE SP_EDADES
As
begin
select nombre as TIPO ,'Hombres' as Genero,AVG(edad_hom) as
Edad_promedio,MIN(edad_hom) as Edad_Min,MAX(edad_hom) as Edad_Max
from Matrimonios_Unificada
24. where edad_hom IS NOT NULL
GROUP BY nombre
union
select nombre as TIPO, 'Mujeres' as Genero,AVG(edad_muj) as
Edad_promedio,MIN(edad_muj) as Min_Matri_MUJ,MAX(edad_muj) as Max_Matri_Muj
from Matrimonios_Unificada
where edad_muj IS NOT NULL
GROUP BY nombre
union
select nombre as TIPO,'Hombres' as Genero ,AVG(edad_hom) as
Edad_promedio,MIN(edad_hom) as Min_Matri_Hom,MAX(edad_hom) as Max_Matri_Hom
from Divorcios_Unificada
where edad_hom IS NOT NULL
GROUP BY nombre
union
select nombre as TIPO,'Mujeres' as Genero ,AVG(edad_muj) as
Edad_promedio,MIN(edad_muj) as Min_Matri_Hom,MAX(edad_muj) as Max_Matri_Muj
from Divorcios_Unificada
where edad_muj IS NOT NULL
GROUP BY nombre
end
exec SP_EDADES
15. Realizar comentarios de los resultados del análisis de la información obtenida