Sunteți pe pagina 1din 24

Universidad Mariano Gálvez De Guatemala

Ingeniería En Sistemas
Base de datos I
Sección a

Base de datos administración de RRHHUMG.

Nombre completo Número de Email Teléfono


carné
Jose Daniel Perez 0900-14-913 josehck8@gmail.com 42854193

Renato Monterroso 0900-15-8984 rmonterrosos96@gmail.com 41974432

Ivan Echeverria 0900-15-2278 iesechc@gmail.com 44669046


Contenido
Introducción ...................................................................................................................... 3
Justificación. ..................................................................................................................... 4
Objetivo general ............................................................................................................... 4
Objetivo especifico ........................................................................................................... 4
Base de datos .................................................................................................................... 5
APEX ................................................................................................................................ 5
Metodología de la aplicación. ........................................................................................... 6
Estructura lógica ............................................................................................................... 8
Diccionario de datos ..................................................................................................... 8
Modelo entidad relación (MER) ................................................................................ 13
Modelo relacional ....................................................................................................... 13
Estructura de almacenamiento ........................................................................................ 14
Integración con APEX .................................................................................................... 16
Queris de la base de datos........................................................................................... 20
Conclusiones................................................................................................................... 24
Introducción

Una base de datos es un “almacén” que nos permite guardar grandes cantidades de
información de forma organizada para que luego podamos encontrar y utilizar
fácilmente. Una base de datos relacional es un conjunto de tablas que contienen datos
provistos en categorías predefinidas. Cada tabla (que a veces se llaman ‘relación’)
contiene una o más categorías de datos en columnas. La definición de una base de datos
relacional resulta en una tabla de metadatos o descripciones formales de las tablas,
columnas, dominios y restricciones.
Justificación.

La problemática de la administración de personal esta palpable en muchas empresas


dentro del país, la importancia que tiene la buena administración del recurso humano en
una empresa puede ser impactante a la hora de cumplir metas o alcanzar resultados. Ya
que el recurso humano es el principal en cualquier empresa es necesario prestar más
atención a la manera de administración que se le puede dar. Sacarle el máximo
beneficio a este recurso es esencial por lo que buscamos con este proyecto dar solución
a problemas de administración del recurso humano.

Objetivo general
• Implementar una base de datos que optimice la administración del personal en
las empresas.

Objetivo especifico
• Aprender a utilizar diferentes herramientas para desarrollar de manera correcta
nuestra base de datos.
• Aplicar el conocimiento obtenido de la clase de base de datos de ingeniería en
sistemas.
• Obtener experiencia diseñando bases de datos relacionales.
Base de datos

Una base de datos es una colección de información organizada de tal modo que sea
fácilmente accesible, gestionada y actualizada. En una sola vista, las bases de datos
pueden ser clasificadas de acuerdo con los tipos de contenido: bibliográfico, de puro
texto, numéricas y de imágenes.

En informática, las bases de datos a veces se clasifican de acuerdo a su enfoque


organizativo. El enfoque más frecuente es la base de datos relacional, una base de datos
tabular en la que los datos se definen de manera que puede ser reorganizada y se accede
en un número de maneras diferentes. Una base de datos distribuida es una que puede ser
dispersada o replicada entre diferentes puntos de una red. Una base de datos de la
programación orientada a objetos es una que es congruente con los datos definidos en
clases y subclases de los objetos.

APEX

Oracle Application Express o APEX es una herramienta RAD (desarrollo de


aplicaciones rápida) que se ejecuta con una base de datos Oracle. Permite desarrollar
prototipos de aplicaciones WEB de forma segura y rápida

APEX es la herramienta que está destinada tanto a usuarios como a desarrolladores.


Para los usuarios que tienen limitada o ninguna experiencia en programación APEX les
permite crear fácilmente informes, cartas y cargar los datos desde hojas de cálculo y
archivos de texto a la base de datos. También permite a los desarrolladores construir
rápidamente formularios, informes y desarrollos menos complejos de aplicaciones web
centradas en una base de datos. El entorno de desarrollo de APEX es completamente
web y permite a los desarrolladores concentrarse en las características y funcionalidades
de las aplicaciones, es decir la lógica del negocio y no de los detalles relacionados con
la interfaz.
Metodología de la aplicación.

Para el desarrollo de nuestro proyecto hemos seguido unos requisitos de información


que son la base en la que hemos desarrollado nuestro proyecto. Estos requisitos están
integrados de la siguiente manera.

Entrevistas a los usuarios.


• Lo que el usuario desea es una base de datos para poder controlar toda el área de
recursos humanos y optimizar la gestión de personal dentro de la empresa.

• Se busca crear una base de datos funcional, rápida y eficaz para el usuario.

• De fácil entendimiento para el usuario.

• De conexiones rápidas y sin caídas de plataforma

Análisis de los documentos a generar


En base a los datos ingresados se generan planillas de los trabajadores y hojas de control
de vacaciones.

Objetivos de la organización
• Disminuir la inconsistencia de la información.

• Disminuir problemas de seguridad.

• Elaborar aplicaciones fáciles de utilizar para el usuario común.

• Reducir la dificultad de acceso a los datos.

Requisitos de procesos.
Tiempos de espera lo más corto posible para realizar ingresos, búsquedas y detallar los
reportes de vacaciones.
Especificaciones del SGBD

El SGBD cuenta con función de manipulación de datos permite modificar y utilizar los
datos de la base de datos. Se realiza mediante el lenguaje de modificación de datos o
DML. Mediante ese lenguaje se puede:

• Añadir datos
Eliminar datos
Modificar datos
Buscar datos

• Otra característica es que se emplea un modelo relacional de datos que


representa todos los datos en la base de datos como sencillas tablas de dos
dimensiones llamadas relaciones. Las tablas son semejantes a los archivos
planos, pero la información en más de un archivo puede ser fácilmente extraída
y combinada.

• Función de control mediante esta función los administradores poseen


mecanismos para proteger las visiones de los datos permitidas a cada usuario,
además de proporcionar elementos de creación y modificación de esos usuarios.
se suelen incluir aquí las tareas de copia de seguridad, carga de ficheros,
auditoria, protección ante ataques externos, configuración del sistema, etc. El
lenguaje que implementa esta función es el lenguaje de control de datos o DCL.

Configuración del equipo físico y del SO donde se programo el proyecto


Se tiene previsto que la implementación funcione bajo los estatutos que a continuación
se nombran requisitos mínimos para el perfecto funcionamiento de la base de datos.

• Sistema operativo Windows server 2012 64 bits versión 1511.

• Procesador Intel Core i3-4170 3,7GHz.

• Espacio disponible en disco duro: 10GB.

• RAM: 4GB.

• DirectX 12.

• Conexión a internet.
Estructura lógica

En esta parte se encierra todo lo detallado del diseño de la base de datos antes de poder
entrar a detalle se necesito crear un diccionario de datos que encierre todo lo que
engloba la estructura lógica. A continuación se representara los nombres , tipos de dato,
descripción y tipo de llave de las tablas implementadas.

Diccionario de datos

Tabla: Aguinaldo
Tipo de llave Nombre del campo Descripción Tipo de dato
Primaria idAguinaldo ID del Aguinaldo Int
Fecha de pago del
Fecha_aguinaldo_pago Date
aguinaldo
valorPercepcion Valor de Float
percepción
estadoPago Estado del pago Int
Foránea contrato_ idContranto ID del contrato Int

Tabla: Bono 14
Tipo de llave Nombre del campo Descripción Tipo de dato
Primaria idBono ID del bono 14 Int
fechaBono14 Fecha del bono 14 Date
Valor de la
valorPercepcion Float
Percepción
estadoBono Estado del bono Int
Foránea contrato_idContrato ID del contrato Int

Tabla: CierreNomina
Tipo de llave Nombre del campo Descripción Tipo de dato
Primaria ID de cierre de
idCierre Int
nomina
Foránea nomina_idNomina ID de la nomina Int
fechaCierre Fecha de cierre Date
totalPercibido Total percibido Float
totalDeducido Total deducido Float
Tabla: Contrato
Tipo de llave Nombre del campo Descripción Tipo de dato
Primaria idContrato ID del contrato Int
fechaCreacion Fecha de creación Varchar2(50)
estadoCivil Estado civil Varchar2(50)
lugar Lugar Varchar2(50)
inicioRelacion Inicio de relación Varchar2(50)
duracionContrato Duración del Varchar2(50)
contrato
Servicios Varchar2(50)
serviciosTrabajador brindados por el
trabajador
Jornada del Varchar2(50)
jornadaTrabajador
trabajador
Cláusulas del
clausulasCrontrato Varchar2(50)
contrato
Nombre del
nombreEmpleador Varchar2(50)
empleador
horasLaborales Horas laborales Int
sueldoBase Sueldo base Number(6,2)
Foránea empleado_idEmpleado ID del empleado Int
Foránea horario_idHorario ID del horario Int
Foránea puesto_idPuestos ID del puesto Int

Tabla: Departamento
Tipo de llave Nombre del campo Descripción Tipo de dato
Primaria idDepartamento ID del Int
departamento
Nombre del
nombreDepartamento Varchar2(55)
departamento
Jefe del
jefeDepartamento Varchar2(55)
departamento

Tabla: Despido
Tipo de llave Nombre del campo Descripción Tipo de dato
Primaria idDespido ID de despido Int
causaDespido Causa del despido Varchar2(75)
fechaDespido Fecha de despido Date
Monto de
montoIndem Float
indemnización
Foránea contrato_idContrato ID del contrato Int
Tabla: DetalleNomina
Tipo de llave Nombre del campo Descripción Tipo de dato
Foránea nominaIdNomina ID de la nomina Int
Foránea contratoIdContrato ID del contrato Int
Foránea id_PD ID del PD Int
valorPDcalculado Valor calado del PD Float

Tabla: Empleado
Tipo de llave Nombre del campo Descripción Tipo de dato
Primaria idEmpleado ID del empleado Int
dpi DPI Varchar2(50)
nit NIT Varchar2(50)
primerNombre Primer nombre Varchar2(50)
segundoNombre Segundo nombre Varchar2(50)
apellidoPaterno Apellido paterno Varchar2(50)
apellidoMaterno Apellido materno Varchar2(50)
edad Edad Int
email e-mail Varchar2(50)
Contacto de
contactoEmergencia Varchar2(50)
emergencia
telefono Teléfono Varchar2(50)
Dirección de
direccionDomicilio Varchar2(50)
domicilio
Fecha de creación
fechaCreacionEmpleado Varchar2(50)
del documento
nivelAcademico Nivel académico Varchar2(50)
noCuenta Número de cuenta Int
cuentabanco_idBanco ID de cuenta Int

Tabla: HoraExtra
Tipo de llave Nombre del campo Descripción Tipo de dato
Primaria idHorasExtra ID de horas extras Int
fechaHoras Fecha y Hora Date
Cantidad de horas
cantidadHoras Int
extras
personaAutorizo Persona que Varchar2(45)
autorizo
Foránea contrato_idContrato ID contrato Int

Tabla: Horario
Tipo de llave Nombre del campo Descripción Tipo de dato
Primaria idHorario ID del horario Int
horaEntrada Hora de entrada Date
horaSalida Hora de salida Date
diasDescanso Días de descanso Int
Tabla: Nomina
Tipo de llave Nombre del campo Descripción Tipo de dato
Primaria idNomina ID de la nomina Int
fechaEmision Fecha de emisión Date
Nombre de la
nombreEmpresa Varchar2(55)
empresa
Foránea periodo_idPeriodo ID del periodo Int
totalDeducido Total deducido Float
Total percibido a
totalPercibidoPagar Float
pagar
estado Estado Int

Tabla: PercepcionDeducacion
Tipo de llave Nombre del campo Descripción Tipo de dato
Primaria id_PD ID del PD Int
nombrePD Nombre del PD Varchar2(10)
valorPorcentaje Valor del Float
Porcentaje
descripcionPD Descripción del PD Varchar2(128)
facOperacion Fac Operación Int

Tabla: Periodo
Tipo de llave Nombre del campo Descripción Tipo de dato
Primaria idPeriodo ID del periodo Int
fechaInicio Fecha de inicio Date
fechaFin Fecha de fin Date

Tabla: Puesto
Tipo de llave Nombre del campo Descripción Tipo de dato
Primaria idPuesto ID del puesto Int
nombrePuesto Nombre del Varchar2(55)
puesto
ID del
idDepartamento Int
departamento
Foránea ID del
departamentoIdDepartamento Int
departamento

Tabla: RegistroIgss
Tipo de llave Nombre del campo Descripción Tipo de dato
Numero de carné
Primaria noCarnetigss Int
del IGSS
Foránea contrato_idContrato ID del contrato Int
Tabla: RegistroIrtra
Tipo de llave Nombre del campo Descripción Tipo de dato
Primaria carnetIrtra Carne del IRTRA Int
Foránea contrato_idContrato ID del contrato Int

Tabla: Suspensión
Tipo de llave Nombre del campo Descripción Tipo de dato
Primaria idregistroSuspension ID del registro de Int
suspensión
Fecha de inicio
fecha_inicioSuspension Date
de la suspensión
Fecha de
fechaCulminacionSuspension culminación de Date
la suspensión
motivoSuspension Varchar2(45)
cantidadDiasSuspension Int
autorizo Varchar2(45)
estadoSus Int
Foránea contrato_idContrato Int

Tabla: Vacaciones
Tipo de llave Nombre del campo Descripción Tipo de dato
Primaria idVacaciones ID de las Int
vacaciones
Fecha de inicio
fechaInicioVacaciones Date
de vacaciones
Fecha de
fechaCulminacionVacaciones culminación de Date
vacaciones
mesSolicitado Mes solicitado Int
Cantidad de días
cantidadDiasHabiles Int
hábiles
Estado de
estadoVaciones Int
vacaciones
Persona que
encargadoAutorizacion Varchar2(45)
autorizo
Foránea contrato_idContrato ID del contrato Int
Modelo entidad relación (MER)

Modelo relacional
Estructura de almacenamiento

Normativa de explotación
Incluirá aspectos legales, sociales y éticos, políticas de la empresa, niveles de
información pública y privada, controles de tipo físico, acceso a las instalaciones.
Identificaciones de usuarios por contraseña y un sistema de doble autenticación y
controles del sistema operativo.

• Usuario con derecho a crear borrar y modificar objetos que además puede
conceder privilegios a otro usuario sobre objetos que ha creado.
• Un usuario con derecho a consultar o actualizar y sin derecho a crear o borrar
objetos.
• Autorización: usar derechos de acceso dado por el terminal.
• Identificar y autorizar a los usuarios, uso de código de acceso y palabras clave
exámenes, impresiones digitales.
• Diferentes tipos de cuentas, en especial del ABD con permisos para creación de
cuentas, concesión, revocación de privilegios y asignación de niveles de
seguridad.
• Manejo de la tabla de usuarios con código contraseña, registro de las
operaciones trabajadas por usuario para facilitar la auditoria de la base de datos.
Servicios de seguridad:
• Autenticación
• Sistema de archivos encriptado
• Seguridad IP
• Servicios de seguridad en Sistemas Operativos
• Tarjetas inteligentes
• Tecnológicas de clave pública.
Las restricciones para la integridad pretenden asegurar que las modificaciones no
provoquen la perdida de consistencia de datos, para esto se usara la regla de la entidad y
la regla de la integridad referencial.

Especificaciones para los programas.

Carpetas de diseño incluye los siguientes aspectos :


• Cuadro de despliegue
• Estructura de registros
• Especificaciones de procedimientos
• Plan de desarrollo
• Costo de paquete.
Requerimientos de sistema donde se implementara
• Sistema operativo Windows server 2012 64 bits versión 1511.
• Procesador Intel Core i3-4170 3,7GHz.
• Espacio disponible en disco duro: 10GB.
• RAM: 4GB.
• DirectX 12.
Integración con APEX
1) Se instalo Oracle 11g en un ambiente virtual con Windows server 2012 R2

2) Se creó un workspace con el nombre UMGRRHH


3) Dentro de ápex creamos todas las tablas para nuestro proyecto

- Para cada tabla se creó un script por aparte.

4) Al momento de crear todas nuestras tablas a través de scripts o querys. El


siguiente paso fue crear la aplicación en el cual los usuarios van a estar
utilizando.

o El nombre de la aplicación se llama RRHHUMG

5) Para cada tabla se creó un formulario y un reporte.


6) Los formularios los utilizaran los usuarios para ingresar la información a la base
de datos de una forma fácil y presentable.
7) Los formularios permiten actualizar y eliminar registros.
Queris de la base de datos
BONO 14 create table bono14 (
idBono int not null,
fechaBono14 date not null,
valorPercepcion float not null,
estadoBono int not null,
contrato_idContrato int not null,
foreign key(contrato_idContrato)
references contrato(idContrato)
)
CIERRE NOMINA create table cierreNomina (
idCierre int not null,
nomina_idNomina int not null,
fechaCierre date not null,
totalPercibido float not null,
totalDeducido float not null,
primay key(idCierre),
foreign key(nomina_idNomina) references
nomina(idNomina)
);
CONTRATO create table contrato(
idContrato int not null,
fechaCreacion varchar2(50) not null,
estadoCivil varchar2(50) not null,
lugar varchar2(50) null,
inicioRelacion varchar2(50) not null,
duracionContrato varchar2(50) not null,
serviciosTrabajador varchar2(50) not null,
jornadaTrabajador varchar2(50) not null,
clausulasCrontrato varchar2(50) not null,
nombreEmpleador varchar2(50) not null,
horasLaborales int not null,
sueldoBase number(6,2) not null,
empleado_idEmpleado int not null,
horario_idHorario int not null,
puesto_idPuestos int not null,
primary key(idContrato),
CONSTRAINT
fk_empleado_idEmpleado
FOREIGN KEY (empleado_idEmpleado)
REFERENCES empleado(idEmpleado),
CONSTRAINT fk_horario_idHorario
FOREIGN KEY (horario_idHorario)
REFERENCES horario(idHorario),
CONSTRAINT fk_puesto_idPuestos
FOREIGN KEY (puesto_idPuestos)
REFERENCES puesto(idPuesto));
DEPARTAMENTO create table departamento (
idDepartamento int not null,
nombreDepartamento varchar2(55) not
null,
jefeDepartamento varchar2(55) not null,
primary key(idDepartamento)
DESPIDO create table despido (
idDespido int not null,
causaDespido varchar2(75) not null,
fechaDespido date not null,
montoIndem float not null,
contrato_idContrato int not null,
primary key(idDespido),
foreign key(contrato_idContrato)
references contrato(idContrato)
);
DETALLE NOMINA create table detallenomina (
nominaIdNomina int not null,
contratoIdContrato int not null,
id_PD int not null,
valorPDcalculado float not null,
foreign key(nominaIdNomina) references
nomina(idNomina),
foreign key(contratoIdContrato)
references contrato(idContrato),
foreign key(id_PD) references
percepcionDeducacion(id_PD));
EMPLEO create table empleado (
idEmpleado int not null,
dpi varchar2(50) not null,
nit varchar2(50) not null,
primerNombre varchar2(50) not null,
segundoNombre varchar2(50) not null,
apellidoPaterno varchar2(50) not null,
apellidoMaterno varchar2(50) not null,
edad int not null,
email varchar2(50) not null,
contactoEmergencia varchar2(50) not
null,
telefono varchar2(50) not null,
direccionDomicilio varchar2(50) not null,
fechaCreacionEmpleado varchar2(50) not
null,
nivelAcademico varchar2(50) not null,
noCuenta int not null,
cuentabanco_idBanco int not null,
primary key(idEmpleado));
HORA EXTRA create table vacaciones (
create table horaextra (
idHorasExtra int not null,
fechaHoras date not null,
cantidadHoras int not null,
personaAutorizo varchar2(45) not null,
contrato_idContrato int not null,
primary key(idHorasExtra,fechaHoras),
foreign key(contrato_idContrato)
references contrato(idContrato)
);
HORARIO create table horario(
idHorario int not null,
horaEntrada date not null,
horaSalida date not null,
diasDescanso int not null,
primary key(idHorario)
);
NOMINA create table nomina (
idNomina int not null,
fechaEmision date not null,
nombreEmpresa varchar2(55) not null,
periodo_idPeriodo int not null,
totalDeducido float not null,
totalPercibidoPagar float not null,
estado int not null,
primary key(idNomina),
foreign key(periodo_idPeriodo) references
periodo(idPeriodo)
)
PERCEPCION DE DUCACION create table percepcionDeducacion (
id_PD int not null,
nombrePD varchar2(10) not null,
valorPorcentaje float not null,
descripcionPD varchar2(128) not null,
facOperacion int not null,
primary key(id_PD)
);
PERIODO create table periodo (
idPeriodo int not null,
fechaInicio date not null,
fechaFin date not null,
primary key(idPeriodo)
)
PUESTO create table puesto (
idPuesto int not null,
nombrePuesto varchar2(55) not null,
idDepartamento int not null,
departamentoIdDepartamento int not null,
primary key(idPuesto),
foreign
key(departamentoIdDepartamento)
references departamento(idDepartamento)
);
REGISTRO IGSS create table registroigss (
noCarnetigss int not null,
contrato_idContrato int not null,
primary key(noCarnetigss),
foreign key(contrato_idContrato)
references contrato(idContrato)
)
create table resgistroirtra (
REGISTRO IRTRA carnetIrtra int not null,
contrato_idContrato int not null,
primary key(carnetIrtra),
foreign key(contrato_idContrato)
references contrato(idContrato)
)
SUSPENSION create table suspension (
idregistroSuspension int not null,
fecha_inicioSuspension date not null,
fechaCulminacionSuspension date not
null,
motivoSuspension varchar2(45),
cantidadDiasSuspension int not null,
autorizo varchar2(45) not null,
estadoSus int not null,
contrato_idContrato int not null,
primary key(idregistroSuspension),
foreign key(contrato_idContrato)
references contrato(idContrato)
)
AGUINALDO create table aguinaldo (
idAguinaldo int not null,
fecha_aguinaldo_pago date not null,
valorPercepcion float not null,
estadoPago int not null,
contrato_idContrato int not null,
primary key(idAguinaldo),
foreign key(contrato_idContrato)
references contrato(idContrato)
);
VACACIONES create table vacaciones (
idVacaciones int not null,
fechaInicioVacaciones date not null,
fechaCulminacionVacaciones date not
null,
mesSolicitado int not null,
cantidadDiasHabiles int not null,
estadoVaciones int not null,
encargadoAutorizacion varchar2(45) not
null,
contrato_idContrato int not null,
primary key(idVacaciones),
foreign key(contrato_idContrato)
references contrato(idContrato));
Conclusiones

• Se desarrolla el sistema de recursos humanos en la plataforma APEX, con el fin


de dar soluciones y automatización de tareas, implementando diversas
herramientas que permiten dar soluciones al problema planteado estableciendo
un control de calidad con el fin de cumplir las necesidades de los clientes.

• Se realizo un análisis de campo de acuerdo a las necesidades de los empleados


de acuerdo al sistema utilizado en el cual los tiempos de espera eran
inapropiados y la facilidad de uso del sistema no era la adecuada por lo que esta
implementación pretende disminuir la inconsistencia de la información,
disminuir problemas de seguridad y elaborar aplicaciones fáciles de utilizar para
el usuario común reduciendo el tiempo a lo más corto posible para realizar
ingresos, búsquedas y detallar los reportes relacionadas al área de recursos
humanos.

Se analiza la transición del modelo de diseño a el modelo arquitectónico con el


fin de comprender de una mejor manera al sistema, utilizando herramientas case
para el estudio de esto incluyendo los aspectos legales, sociales y éticos,
políticas de la empresa en los niveles de información pública y privada
estableciendo e implementando controles de calidad de tipo físico y lógico.

• Microsoft SQL Server constituye un determinante para los productos de bases


de datos para la elección para una amplia gama de clientes corporativos y
proveedores de servicios cubriendo las necesidades y requerimientos de los
clientes innovando producto de manera significativa para facilitar la utilización,
escalabilidad, confiabilidad y almacenamiento de datos.