You are on page 1of 19

INGENIERIA DE SISTEMAS

IMPLEMENTACION DE BASE DE DATOS

JHONATAN RIVERA CARBAJAL


U201323120

Implementacin de Base de Datos

Jhonatan Rivera Carbajal

[1]

CENPESCO

ndice

1.

DESCRIPCION FUNCIONAL:.......................................................................................................... 3

2.

REGLAS DE NEGOCIO:.................................................................................................................. 4

3.

ANLISIS DEL MODELO CONCEPTUAL: ........................................................................................ 5


3.1.

Ventajas ............................................................................................................................... 5

3.2.

Desventajas ......................................................................................................................... 5

4.

DIAGRAMA DEL MODELO CONCEPTUAL Y LGICO: ................................................................... 6

5.

SCRIPS DE BASES DE DATOS: ....................................................................................................... 7

6.

5.1.

Reglas de validacin (constraints) ....................................................................................... 7

5.2.

ndices nicos e ndices no nicos....................................................................................... 9

5.3.

Elaboracin de consultas SQL ........................................................................................... 10

5.4.

Elaboracin de stored procedures .................................................................................... 12

5.5.

Elaboracin del trigger ...................................................................................................... 13

5.6.

Elaboracin de comandos DDL.......................................................................................... 15

5.7.

Elaboracin de comandos DCL .......................................................................................... 16

ANLISIS DE PLAN DE EJECUCIN DE CONSULTAS: .................................................................. 18

Implementacin de Base de Datos

Jhonatan Rivera Carbajal

[2]

CENPESCO

1. DESCRIPCION FUNCIONAL:
El Instituto Nacional de Estadstica e Informtica INEI, es un organismo tcnico especializado,
con personera jurdica de derecho pblico interno, con autonoma tcnica y de gestin,
dependiente del Presidente del Consejo de Ministros.
EL INEI desde el 2013 y en adelante ejecuta el Censo Nacional de Pesca Continental,
CENPESCO, a solicitud del Ministerio de la Produccin; los objetivos del Censo estn enfocados
en conocer y disponer de informacin actualizada y confiable sobre los aspectos socio
demogrfico, econmico, entre otros donde para ello se solicitar lo siguiente: nmero de
pescadores, acceso a la educacin y salud, situacin demogrfica, nmero de flota pesquera
artesanal, condiciones de vida, etc. El Censo Nacional de Pesca Continental abarca los 24
departamentos del territorio nacional y el perodo de empadronamiento es de 30 das, sin
embargo, en los 15 das posteriores se proceder a completar posibles zonas que no fuesen
cubiertas durante los 30 das establecidos, se censar al Pescador Artesanal y al Acuicultor
independiente de su condicin de formal e informal, el empadronamiento se viene realizando
desde el 01 de agosto hasta 15 de setiembre del 2013, por lo que las personas vinculadas a la
actividad pesquera artesanal debern concentrarse en los lugares fijados el INEI, las
autoridades locales y los dirigentes de pescadores.

Un censo nacional tienes tres etapas, Prueba Piloto, Trabajo en Campo, y Resultados. El INEI
para cada censo nacional genera un sistema a medida, es decir un sistema propio para el Censo
Nacional de Pesca Continental.
Para CENPESCO se gener los siguientes mdulos:
Convocatoria, Segmentacin, Administracin, Supervisin, Seguimiento, Consistencia, Ingreso
de datos (Digitacin), Resultados (Tabulados) y Georeferenciacin.

La presente documentacin es basada en Trabajo en Campo, especficamente en Digitacin.


Cuando se inicia el trabajo en campo, es decir cuando los empadronadores inician su toma de
datos en los formularios fsicos, los formularios ya completos son enviados a las oficinas
tcnicas de cada provincia y/o distrito de cada departamento para iniciar el ingreso de datos
mediante el sistema.

Implementacin de Base de Datos

Jhonatan Rivera Carbajal

[3]

CENPESCO

Para eso se desarrolla el siguiente proceso.


a) El nmero de formularios por centro poblado enviados a campo dirigido por el supervisor
nacional son ingresados al sistema por el personal de UDRA (Unidad de Distribucin,
Recepcin y Almacenamiento).
b) Los formularios fsicos completos son recepcionados por el personal UDRA y distribuido al
rea de Consistencia, lo cual hacen la primera validacin, verificar los flujos antes de su
ingreso al sistema. Consistencia devuelve los formularios a UDRA.
c) Los formularios fsicos consistenciados son enviados por el personal de UDRA al rea de
Digitacin para su ingreso al sistema.
d) El personal de digitacin ingresa los formularios al sistema por cada capitulo
e) El personal de consistencia realiza la segunda consistencia mediante el sistema, para validar
la coherencia de datos ingresado, usando la herramienta estadstica SPSS.
De los datos consistenciados, se realizan reportes y georeferenciaciones de los avances en campo
mostrados en el sistema web de CENPESCO.

2. REGLAS DE NEGOCIO:

Los centros poblados y nmero de formularios ingresados en UDRA son: solo si se estn
dentro del marco de trabajo y la cantidad de formularios por cada centro poblado.
Solo se podr digitar un formulario si el centro poblado donde pertenece est registrado
y el nmero del formulario est dentro del rango de formularios por centro poblado en
UDRA.
En UDRA se registra el ubigeo o localizacin del centro poblado, referenciado de la tabla
UBIGEO, basado en el CPV 2007 (Censo Nacional de Poblacin y Vivienda 2007).
Cada mdulo como UDRA, Digitacin tienen usuarios propios a dichos mdulos. Cada
operacin se registra el cdigo del usuario.
Cada captulo del formulario son ingresado en tablas diferentes. Siendo el captulo I la
tabla el cual los dems captulos se referenciarn, a su vez el Captulo I se referencia de
UDRA.
Cuando se ingrese los datos de los formularios fsicos, en su mayora son datos binarios;
es decir ceros y unos (0 y 1).

Implementacin de Base de Datos

Jhonatan Rivera Carbajal

[4]

CENPESCO

3. ANLISIS DEL MODELO:


3.1. Ventajas

Las relaciones tienen integridad con las llaves primarias y forneas as como
constraint nicas y check como los DNI y RUC.
La consistencia garantiza la integridad de los datos.
El diccionario de datos empleado para la auditoria de campos

3.2. Desventajas

No se puede realizar la normalizacin a alto nivel, debido a que para los


estadsticos mientras menos tablas se use mejor para su anlisis.
Al ser demasiados datos, los campos tienen nombre codificados segn
diccionario de datos.
La mayora de los datos ingresado son binarios (0 y 1), lo que es difcil deducir
sin una consistencia estadstica la coherencia de los datos.

Implementacin de Base de Datos

Jhonatan Rivera Carbajal

[5]

CENPESCO

4. DIAGRAMA DEL MODELO:

Implementacin de Base de Datos

Jhonatan Rivera Carbajal

[6]

CENPESCO

5. SCRIPS DE BASES DE DATOS:


5.1. REGLAS DE VALIDACIN

5.1.1. Primary Key (Llaves primarias)


ALTER TABLE UBIGEO ADD constraint PK_UBIGEO primary key (ID);
ALTER TABLE UDRA_PESCADOR ADD constraint PK_UDRA_PESCADOR primary key (ID_UDRA_PES);
ALTER TABLE ROLES ADD constraint PK_ROLES primary key (ID_ROL);
ALTER TABLE USERS ADD constraint PK_USER primary key (ID_USER);
ALTER TABLE PESCADOR_CAP1 ADD CONSTRAINT PK_PESCADOR_CAP1 PRIMARY KEY(ID_PESCADOR);
ALTER TABLE JEFE_EQUIPO ADD CONSTRAINT PK_JEFE_EQUIPO PRIMARY KEY(ID_JEFE_EQUIPO);
ALTER TABLE SUPERVISION ADD CONSTRAINT PK_SUPERVISION PRIMARY KEY (ID_SUPERVISION);
ALTER TABLE SEGMENTACION_MAPAS ADD CONSTRAINT PK_SEGMENTACION_MAPAS
PRIMARY KEY (ID_SEGMENTACION_MAPAS);
ALTER TABLE GEO_CENTROS_POBLADOS ADD CONSTRAINT PK_GEO_CENTROS_POBLADOS
PRIMARY KEY(ccdd,ccpp,ccdi,CODCCPP);
ALTER TABLE COMUNIDADES_RESUM ADD CONSTRAINT PK_COMUNIDADES_RESUM
PRIMARY KEY(ccdd,ccpp,ccdi,cod_ccpp);
ALTER TABLE SEGUIMIENTO_ADM ADD CONSTRAINT PK_ID_SEGUIMIENTO_ADM
PRIMARY KEY(ID_SEGUIMIENTO_ADM);

5.1.2. Foreign Key (Llaves forneas)


ALTER TABLE UDRA_PESCADOR ADD CONSTRAINT FK_UDRA_PESCADOR_UBIGEO
foreign key (ID_UBIGEO) references UBIGEO(ID_UBIGEO);
ALTER TABLE USERS ADD constraint FK_USER_ROLES foreign key (ID_USER)
REFERENCES ROLES (ID_ROL);
ALTER TABLE USERS ADD constraint FK_USER_UBIGEO foreign key (ID_UBIGEO)
REFERENCES UBIGEO (ID_UBIGEO);
ALTER TABLE PESCADOR_CAP1 ADD CONSTRAINT FK_PESCADOR_CAP1_UDRA_PESCADOR
FOREIGN KEY (ID_UDRA_PES) REFERENCES UDRA_PESCADOR(ID_UDRA_PES);

Implementacin de Base de Datos

Jhonatan Rivera Carbajal

[7]

CENPESCO

ALTER TABLE PESCADOR_CAP1 ADD CONSTRAINT FK_PESCADOR_CAP1_USERS


FOREIGN KEY (ID_USER) REFERENCES USERS(ID_USER);
ALTER TABLE
FOREIGN KEY
ALTER TABLE
FOREIGN KEY

PESCADOR_CAP2
(ID_PESCADOR)
PESCADOR_CAP3
(ID_PESCADOR)

ADD CONSTRAINT FK_PESCADOR_CAP2_PESCADOR_CAP1


REFERENCES PESCADOR_CAP1(ID_PESCADOR);
ADD CONSTRAINT FK_PESCADOR_CAP3_PESCADOR_CAP1
REFERENCES PESCADOR_CAP1(ID_PESCADOR);

ALTER TABLE PESCADOR_CAP4 ADD CONSTRAINT FK_PESCADOR_CAP4_PESCADOR_CAP1


FOREIGN KEY (ID_PESCADOR) REFERENCES PESCADOR_CAP1(ID_PESCADOR);
ALTER TABLE PESCADOR_CAP5 ADD CONSTRAINT FK_PESCADOR_CAP5_PESCADOR_CAP1
FOREIGN KEY (ID_PESCADOR) REFERENCES PESCADOR_CAP1(ID_PESCADOR);
ALTER TABLE PESCADOR_CAP6 ADD CONSTRAINT FK_PESCADOR_CAP6_PESCADOR_CAP1
FOREIGN KEY (ID_PESCADOR) REFERENCES PESCADOR_CAP1(ID_PESCADOR);
ALTER TABLE PESCADOR_CAP7 ADD CONSTRAINT FK_PESCADOR_CAP7_PESCADOR_CAP1
FOREIGN KEY (ID_PESCADOR) REFERENCES PESCADOR_CAP1(ID_PESCADOR);
ALTER TABLE PESCADOR_CAP8 ADD CONSTRAINT FK_PESCADOR_CAP8_PESCADOR_CAP1
FOREIGN KEY (ID_PESCADOR) REFERENCES PESCADOR_CAP1(ID_PESCADOR);
ALTER TABLE PESCADOR_CAP9 ADD CONSTRAINT FK_PESCADOR_CAP9_PESCADOR_CAP1
FOREIGN KEY (ID_PESCADOR) REFERENCES PESCADOR_CAP1(ID_PESCADOR);
ALTER TABLE PESCADOR_CAP10 ADD CONSTRAINT FK_PESCADOR_CAP10_PESCADOR_CAP1
FOREIGN KEY (ID_PESCADOR) REFERENCES PESCADOR_CAP1(ID_PESCADOR);

5.1.3. Check
ALTER TABLE ROLES ADD constraint CK_ROLES check (ESTADO='S' OR ESTADO='N');
ALTER TABLE SEGUIMIENTO_ADM ADD CONSTRAINT CK_ID_SEGUIMIENTO_ADM
CHECK(estado=1 OR estado=0);

ALTER TABLE PESCADOR_CAP1 ADD CONSTRAINT CK_PESCADOR_CAP1


CHECK(TAC IN(1,2,3));
ALTER TABLE USERS ADD CONSTRAINT CK_AP_PATERNO
CHECK(AP_PATERNO LIKE'[A-Z]%');
ALTER TABLE USERS ADD CONSTRAINT CK_AP_MATERNO
CHECK(AP_PATERNO LIKE'[A-Z]%');
ALTER TABLE USERS ADD CONSTRAINT CK_NOMBRES
CHECK(NOMBRES LIKE'[A-Z]%');

Implementacin de Base de Datos

Jhonatan Rivera Carbajal

[8]

CENPESCO

5.1.4. Unicas (Unique)


ALTER TABLE PESCADOR_CAP2 ADD CONSTRAINT UK_PESCADOR_CAP2
UNIQUE(ID_PESCADOR);
ALTER TABLE PESCADOR_CAP3 ADD CONSTRAINT UK_PESCADOR_CAP3
UNIQUE(ID_PESCADOR);
ALTER TABLE PESCADOR_CAP4 ADD CONSTRAINT UK_PESCADOR_CAP4
UNIQUE(ID_PESCADOR);
ALTER TABLE PESCADOR_CAP5 ADD CONSTRAINT UK_PESCADOR_CAP5
UNIQUE(ID_PESCADOR);
ALTER TABLE PESCADOR_CAP6 ADD CONSTRAINT UK_PESCADOR_CAP6
UNIQUE(ID_PESCADOR);
ALTER TABLE PESCADOR_CAP7 ADD CONSTRAINT UK_PESCADOR_CAP7
UNIQUE(ID_PESCADOR);
ALTER TABLE PESCADOR_CAP8 ADD CONSTRAINT UK_PESCADOR_CAP8
UNIQUE(ID_PESCADOR);
ALTER TABLE PESCADOR_CAP9 ADD CONSTRAINT UK_PESCADOR_CAP9
UNIQUE(ID_PESCADOR);
ALTER TABLE PESCADOR_CAP10 ADD CONSTRAINT UK_PESCADOR_CAP10
UNIQUE(ID_PESCADOR);

5.2. ndices nicos e ndices no nicos


CREATE INDEX IX_UBIGEO_ALL ON UBIGEO(CCDD, CCPP, CCDI, CODCCPP ASC);
CREATE INDEX IX_GEO_ALL ON GEO_CENTROS_POBLADOS(CCDD, CCPP, CCDI, CODCCPP
ASC);
CREATE INDEX IX_CENTROS_POBLADOS ON COMUNIDADES_RESUM(CCDD, CCPP, CCDI,
COD_CCPP ASC);
CREATE CLUSTERED INDEX IX_PESCADOR_CAP2 ON PESCADOR_CAP2(ID_PESCADOR);
CREATE CLUSTERED INDEX IX_PESCADOR_CAP3 ON PESCADOR_CAP3(ID_PESCADOR);
CREATE CLUSTERED INDEX IX_PESCADOR_CAP4 ON PESCADOR_CAP4(ID_PESCADOR);
CREATE CLUSTERED INDEX IX_PESCADOR_CAP5 ON PESCADOR_CAP5(ID_PESCADOR);
CREATE CLUSTERED INDEX IX_PESCADOR_CAP6 ON PESCADOR_CAP6(ID_PESCADOR);

Implementacin de Base de Datos

Jhonatan Rivera Carbajal

[9]

CENPESCO

CREATE CLUSTERED INDEX IX_PESCADOR_CAP7 ON PESCADOR_CAP7(ID_PESCADOR);


CREATE CLUSTERED INDEX IX_PESCADOR_CAP8 ON PESCADOR_CAP8(ID_PESCADOR);
CREATE CLUSTERED INDEX IX_PESCADOR_CAP9 ON PESCADOR_CAP9(ID_PESCADOR);
CREATE CLUSTERED INDEX IX_PESCADOR_CAP10 ON PESCADOR_CAP10(ID_PESCADOR);
CREATE INDEX IX_UBIGEO_ALL ON UBIGEO(CCDD, CCPP, CCDI, CODCCPP ASC)
INCLUDE (nomb_dep, nomb_pro, nomb_dist, nomccpp);
CREATE INDEX IX_GEO_ALL ON GEO_CENTROS_POBLADOS(CCDD, CCPP, CCDI, CODCCPP
ASC);
INCLUDE (DEPARTAMENTO, PROVINCIA, DISTRITO, CENTRO_POBLADO);
CREATE INDEX IX_CENTROS_POBLADOS ON COMUNIDADES_RESUM(CCDD, CCPP, CCDI,
COD_CCPP ASC);

5.3. Consultas SQL


/* 1.- Mostrar la cantidad de formularios por
digitar*/

centros poblados en UDRA a

SELECT nomb_dep, nomb_pro, nomb_dist, nomccpp, FORMULARIOS


FROM UDRA_PESCADOR U
INNER JOIN UBIGEO L
ON U.ID_UBIGEO = L.ID_UBIGEO;

Implementacin de Base de Datos

Jhonatan Rivera Carbajal

[10]

CENPESCO

/* 2.- Listar los pescadores que no se acordaron(8888...) o no


especificaron (99999...) su DNI o RUC */
select S2_1_AP AP_PATERNO, S2_1_AM AP_MATERNO, S2_1_NOM NOMBRES, S2_4 DNI,
S2_5 RUC
FROM PESCADOR_CAP2
WHERE S2_4 IN ('88888888','99999999') OR S2_5 IN
('88888888888','99999999999');

/* 3.- Listar los informes de supervision donde se encontro observaciones*/


SELECT N_SUP SUPERVISOR,DNI_SUP DNI, DEP,PROV,DIST,CCPP, OBS_1
OBSERVACIONES,
CONCAT(DAY(CREATED),'/',MONTH(CREATED),'/',YEAR(CREATED))AS FECHA
FROM SUPERVISION
WHERE OBS_1 IS NOT NULL
ORDER BY CREATED;

Implementacin de Base de Datos

Jhonatan Rivera Carbajal

[11]

CENPESCO

5.4. Elaboracin de stored procedures


/* 1. Listar los formularios donde se completo de digitar los 10 capitulos
del formulario*/
CREATE PROCEDURE SP_FORMULARIOS_COMPLETOS
AS
BEGIN
SELECT CCDD,CCPP,CCDI,CODCCPP,nomb_dep, nomb_pro, nomb_dist, nomccpp,NFORM
FROM UDRA_PESCADOR U
INNER JOIN PESCADOR_CAP1 P1 ON P1.ID_UDRA_PES = U.ID_UDRA_PES
INNER JOIN PESCADOR_CAP2 P2 ON P1.ID_PESCADOR = P2.ID_PESCADOR
INNER JOIN PESCADOR_CAP3 P3 ON P1.ID_PESCADOR = P3.ID_PESCADOR
INNER JOIN PESCADOR_CAP4 P4 ON P1.ID_PESCADOR = P4.ID_PESCADOR
INNER JOIN PESCADOR_CAP5 P5 ON P1.ID_PESCADOR = P5.ID_PESCADOR
INNER JOIN PESCADOR_CAP6 P6 ON P1.ID_PESCADOR = P6.ID_PESCADOR
INNER JOIN PESCADOR_CAP7 P7 ON P1.ID_PESCADOR = P7.ID_PESCADOR
INNER JOIN PESCADOR_CAP8 P8 ON P1.ID_PESCADOR = P8.ID_PESCADOR
INNER JOIN PESCADOR_CAP9 P9 ON P1.ID_PESCADOR = P9.ID_PESCADOR
INNER JOIN PESCADOR_CAP10 P10 ON P1.ID_PESCADOR = P10.ID_PESCADOR
INNER JOIN UBIGEO L ON U.ID_UBIGEO = L.ID_UBIGEO
END;

/* 2. Lista los formularios que fueron digitados por un usuario, si no se


especifica un usuario muestra todos*/
CREATE PROCEDURE SP_DIGITADOS_POR_USUARIO
@ID_USER INT = NULL
AS
BEGIN
IF @ID_USER IS NULL
BEGIN
SELECT P1.ID_USER,AP_PATERNO,AP_MATERNO,NOMBRES,nomb_dep DEPARTAMENTO,
nomb_pro PROVINCIA,nomb_dist DISTRITO,nomccpp CENTRO_POBLADO, NFORM
FROM UDRA_PESCADOR U
INNER JOIN PESCADOR_CAP1 P1 ON P1.ID_UDRA_PES = U.ID_UDRA_PES
INNER JOIN UBIGEO L ON U.ID_UBIGEO = L.ID_UBIGEO
INNER JOIN USERS US ON P1.ID_USER = US.ID_USER
ORDER BY CCDD,nomb_dep,CCPP, nomb_pro,CCDI,nomb_dist,CODCCPP
END
ELSE
BEGIN
SELECT P1.ID_USER,AP_PATERNO,AP_MATERNO,NOMBRES,nomb_dep DEPARTAMENTO,
nomb_pro PROVINCIA,nomb_dist DISTRITO,nomccpp CENTRO_POBLADO, NFORM
FROM UDRA_PESCADOR U
INNER JOIN PESCADOR_CAP1 P1 ON P1.ID_UDRA_PES = U.ID_UDRA_PES
INNER JOIN UBIGEO L ON U.ID_UBIGEO = L.ID_UBIGEO
INNER JOIN USERS US ON P1.ID_USER = US.ID_USER
WHERE P1.ID_USER = @ID_USER
ORDER BY CCDD,nomb_dep,CCPP, nomb_pro,CCDI,nomb_dist,CODCCPP
END
END ;

Implementacin de Base de Datos

Jhonatan Rivera Carbajal

[12]

CENPESCO

5.5. Elaboracin del trigger


/* Se crea una tabla para almacenar los datos "no limpios" es decir datos
que no son coherentes*/
CREATE TABLE CONSISTENCIA(
ID_CONSITENCIA INT IDENTITY(1,1) NOT NULL,
ID_USER INT,
ID_UDRA_PES INT,
ID_PESCADOR INT,
CAP INT,
FECHA DATETIME
);
ALTER TABLE CONSISTENCIA ADD CONSTRAINT PK_CONSISTENCIA PRIMARY
KEY(ID_CONSITENCIA);

/* 1.- Se desencadenara cuando en el Captulo 2 se inserte DNI o ruc


invlidos o nulos, para luego el area de Consistencia valide dicho ingreso
*/
CREATE TABLE CONSISTENCIA(
ID_CONSITENCIA INT IDENTITY(1,1) NOT NULL,
ID_USER INT,
ID_UDRA_PES INT,
ID_PESCADOR INT,
CAP INT,
FECHA DATETIME
);
ALTER TABLE CONSISTENCIA ADD CONSTRAINT PK_CONSISTENCIA PRIMARY
KEY(ID_CONSITENCIA);
CREATE TRIGGER TR_CONSISTENCIA_CAP2
ON PESCADOR_CAP2 AFTER INSERT
AS
BEGIN
DECLARE @DNI VARCHAR(8),@RUC CHAR(11), @ID_USER INT,@ID_UDRA_PES INT,
@ID_PESCADOR INT, @CAP INT = 2, @FECHA DATETIME = GETDATE()
SELECT @ID_PESCADOR = ID_PESCADOR, @DNI = S2_4, @RUC = S2_5 FROM inserted;
IF(@DNI IN('77777777','88888888','99999999') OR @RUC
IN('77777777777','88888888888','99999999999') OR @DNI IS NULL OR @RUC
IS NULL)
BEGIN
SELECT @ID_USER = ID_USER, @ID_UDRA_PES = ID_UDRA_PES FROM
PESCADOR_CAP1 WHERE ID_PESCADOR = @ID_PESCADOR
INSERT INTO
CONSISTENCIA(ID_USER,ID_UDRA_PES,ID_PESCADOR,CAP,FECHA)
VALUES(@ID_USER,@ID_UDRA_PES,@ID_PESCADOR,@CAP,@FECHA)
END
END

Implementacin de Base de Datos

Jhonatan Rivera Carbajal

[13]

CENPESCO

/* 2. Desencadenara cuando la fecha del formulario fisico del capitulo 10 sea mayor
la fecha de digitacion del capitulo 1 (digitado), impediendo su ingreso */

ALTER TRIGGER TR_CONSISTENCIA_CAP10


ON PESCADOR_CAP10 AFTER INSERT
AS
BEGIN
DECLARE @F_D INT,@F_M INT, @F_A INT,@ID_UDRA_PES INT, @ID_PESCADOR INT,
@FECHA_CAP1 DATETIME
SELECT @F_D = F_D, @F_M = F_M, @F_A = F_A, @ID_PESCADOR = ID_PESCADOR FROM
inserted;
SELECT @FECHA_CAP1 = FECHA FROM PESCADOR_CAP1 WHERE ID_PESCADOR =
@ID_PESCADOR
IF(YEAR(@FECHA_CAP1)<@F_A)
BEGIN
ROLLBACK
PRINT CONCAT('NO SE PUEDE INGRESA EL FORMULARIO [', @ID_PESCADOR
,'] , FECHA[ANO] CAP 10 NO PUEDE SER MAYOR DEL CAP1')
END
ELSE
BEGIN
IF(MONTH(@FECHA_CAP1)<@F_M)
BEGIN
ROLLBACK
PRINT CONCAT('NO SE PUEDE INGRESA EL FORMULARIO [',
@ID_PESCADOR ,'] , FECHA[MES] CAP 10 NO PUEDE SER MAYOR
DEL CAP1')
END
ELSE
BEGIN
IF(DAY(@FECHA_CAP1)<@F_D)
BEGIN
ROLLBACK
PRINT CONCAT('NO SE PUEDE INGRESA EL FORMULARIO
[', @ID_PESCADOR ,'] , FECHA[DIA] CAP 10 NO PUEDE
SER MAYOR DEL CAP1')
END
END
END
END

Implementacin de Base de Datos

Jhonatan Rivera Carbajal

[14]

CENPESCO

5.6. Elaboracin de comandos DDL


/* Se agrega campos de fecha a cada captulo para guardar la fecha del
sistema al momento de digitar*/
ALTER TABLE PESCADOR_CAP2
ADD FECHA DATETIME;
ALTER TABLE PESCADOR_CAP3
ADD FECHA DATETIME;
ALTER TABLE PESCADOR_CAP4
ADD FECHA DATETIME;
ALTER TABLE PESCADOR_CAP5
ADD FECHA DATETIME;
ALTER TABLE PESCADOR_CAP6
ADD FECHA DATETIME;
ALTER TABLE PESCADOR_CAP7
ADD FECHA DATETIME;
ALTER TABLE PESCADOR_CAP8
ADD FECHA DATETIME;
ALTER TABLE PESCADOR_CAP9
ADD FECHA DATETIME;
ALTER TABLE PESCADOR_CAP10
ADD FECHA DATETIME;
/* Se agrega un constraint para validar que el tipo de actividad sea solo
1(pesca),2(acuicultura),3(ambos) */
ALTER TABLE PESCADOR_CAP1 ADD CONSTRAINT CK_PESCADOR_CAP1 CHECK(TAC
IN(1,2,3));

Implementacin de Base de Datos

Jhonatan Rivera Carbajal

[15]

CENPESCO

5.7. Elaboracin de comandos DCL


CREATE LOGIN digitacion_cenpesco
WITH PASSWORD = 'digitacion';
CREATE LOGIN admin_cenpesco
WITH PASSWORD = 'admin';
GO
-- Creando usuarios para la BD
CREATE USER digitacion_cenpesco FOR LOGIN digitacion_cenpesco;
CREATE USER admin_cenpesco FOR LOGIN admin_cenpesco;
/* Otorgando permisos a usuarios solo para digitacion */
GRANT SELECT,INSERT ON PESCADOR_CAP1
TO digitacion_cenpesco;
GRANT SELECT,INSERT ON PESCADOR_CAP2
TO digitacion_cenpesco;
GRANT SELECT,INSERT ON PESCADOR_CAP3
TO digitacion_cenpesco;
GRANT SELECT,INSERT ON PESCADOR_CAP4
TO digitacion_cenpesco;
GRANT SELECT,INSERT ON PESCADOR_CAP5
TO digitacion_cenpesco;
GRANT SELECT,INSERT ON PESCADOR_CAP6
TO digitacion_cenpesco;
GRANT SELECT,INSERT ON PESCADOR_CAP7
TO digitacion_cenpesco;
GRANT SELECT,INSERT ON PESCADOR_CAP8
TO digitacion_cenpesco;
GRANT SELECT,INSERT ON PESCADOR_CAP9
TO digitacion_cenpesco;
GRANT SELECT,INSERT ON PESCADOR_CAP10
TO digitacion_cenpesco;
/* Otorando permisos total */
GRANT SELECT,INSERT,DELETE,UPDATE
TO admin_cenpesco;
GRANT SELECT,INSERT,DELETE,UPDATE
TO admin_cenpesco;
GRANT SELECT,INSERT,DELETE,UPDATE
TO admin_cenpesco;
GRANT SELECT,INSERT,DELETE,UPDATE
TO admin_cenpesco;
GRANT SELECT,INSERT,DELETE,UPDATE
TO admin_cenpesco;
GRANT SELECT,INSERT,DELETE,UPDATE
TO admin_cenpesco;
GRANT SELECT,INSERT,DELETE,UPDATE
TO admin_cenpesco;
GRANT SELECT,INSERT,DELETE,UPDATE
TO admin_cenpesco;

Implementacin de Base de Datos

Jhonatan Rivera Carbajal

ON PESCADOR_CAP1
ON PESCADOR_CAP2
ON PESCADOR_CAP3
ON PESCADOR_CAP4
ON PESCADOR_CAP5
ON PESCADOR_CAP6
ON PESCADOR_CAP7
ON PESCADOR_CAP8

[16]

CENPESCO

GRANT SELECT,INSERT,DELETE,UPDATE ON PESCADOR_CAP9


TO admin_cenpesco;
GRANT SELECT,INSERT,DELETE,UPDATE ON PESCADOR_CAP10
TO admin_cenpesco;

/* Se agrega constraint para validar los nombres y fechas de nacimiento


(99 es en caso de omision)*/
ALTER TABLE PESCADOR_CAP2 ADD CONSTRAINT
CHECK(S2_1_AP LIKE'[A-Z]%');
ALTER TABLE PESCADOR_CAP2 ADD CONSTRAINT
CHECK(S2_1_AM LIKE'[A-Z]%');
ALTER TABLE PESCADOR_CAP2 ADD CONSTRAINT
CHECK(S2_1_NOM LIKE'[A-Z]%');
ALTER TABLE PESCADOR_CAP2 ADD CONSTRAINT
CHECK(S2_2D<=31 OR S2_2D=99);
ALTER TABLE PESCADOR_CAP2 ADD CONSTRAINT
CHECK(S2_2M<=12 OR S2_2M=99);
ALTER TABLE PESCADOR_CAP2 ADD CONSTRAINT
CHECK(S2_2A<=2013 OR S2_2A=9999);

Implementacin de Base de Datos

Jhonatan Rivera Carbajal

[17]

CK_PESCADOR_CAP2_S2_1_AP
CK_PESCADOR_CAP2_S2_1_AM
CK_PESCADOR_CAP2_S2_1_NOM
CK_PESCADOR_CAP2_S2_2D
CK_PESCADOR_CAP2_S2_2M
CK_PESCADOR_CAP2_S2_2A

CENPESCO

6. ANALISIS DEL PLAN DE EJECUCION DE CONSULTAS:


6.1. Consulta 01
SELECT P1.ID_USER,AP_PATERNO,AP_MATERNO,NOMBRES,nomb_dep DEPARTAMENTO,
nomb_pro PROVINCIA,nomb_dist DISTRITO,nomccpp CENTRO_POBLADO, NFORM
FROM UDRA_PESCADOR U
INNER JOIN PESCADOR_CAP1 P1 ON P1.ID_UDRA_PES = U.ID_UDRA_PES
INNER JOIN UBIGEO L ON U.ID_UBIGEO = L.ID_UBIGEO
INNER JOIN USERS US ON P1.ID_USER = US.ID_USER
WHERE P1.ID_USER =
ORDER BY CCDD,nomb_dep,CCPP, nomb_pro,CCDI,nomb_dist,CODCCPP

Operador

Costo CPU

Costo IO

SELECT

Costo Operador
Estimado

Nmero
de Filas

0%

415.217

Nested Loops

0.0017356

0.0017359 (1%)

549

Busqueda de indice
PK_USER

0.0001581

0.003125

0.0032831 (50%)

549

Sort

0.0057341

0.003125

0.016995 (14%)

549

Hash Match (inner


join)

0.395193

0.395195(32%)

549

Hash Match (inner


join)

0.022096

0.0226077(18%)

549

Index Scan
(IX_UBIGEO_ALL)

0.0039562

0.023865
7

0.0238309(23%)

549

Examen ndice
(Pk_udra_pescador)

0.0003

0.00125

0.003425(3%)

549

Examen ndice
(Pk_pescador)

0.0013329

0.006088

0.0074209(6%)

549

Implementacin de Base de Datos

Jhonatan Rivera Carbajal

[18]

CENPESCO

6.2. Consulta 02
SELECT N_SUP SUPERVISOR,DNI_SUP DNI, DEP,PROV,DIST,CCPP, OBS_1
OBSERVACIONES,
CONCAT(DAY(CREATED),'/',MONTH(CREATED),'/',YEAR(CREATED))AS FECHA
FROM SUPERVISION
WHERE OBS_1 IS NOT NULL
ORDER BY CREATED;

Operador

Costo CPU

Costo IO

SELECT

Costo Operador
Estimado

Nmero
de Filas

0 (0%)

46

Sort

0.0004967

0.0112613 0.011758(60%)

46

Computer Scalar

0.0000046

0.0000046 (0%)

46

Filter

0.0000706

0.0000706(0%)

10

Examen de ndice
clster (Clustered)

0.0003187

0.0075694 0.0078881 (40%)

Implementacin de Base de Datos

Jhonatan Rivera Carbajal

[19]

10

CENPESCO

You might also like