Está en la página 1de 17

Control Semana 6

ADMINISTRACIÓN DE BASES DE DATOS

Instituto IACC

04/03/2021
Desarrollo

DESARROLLO DEL CONTROL:

La empresa para la cual usted trabaja le ha asignado el desarrollo de una aplicación para el
control de su proceso de nómina. Para ello, debe utilizar la teoría de bases de datos en
conjunto con SQL como gestor de bases de datos y realizar las siguientes actividades:

a) Definir la estructura lógica de la base de datos, indicando cuáles tablas serán necesarias (2
puntos).

R: La base de datos de la empresa estará conformada por las siguientes tablas:

 Empleado, formada por los siguientes campos:

 ID_Empleado
 Nombre.
 Apellidos.
 Dirección.
 Teléfono.
 Departamento

 Sucursal, con los campos:

 ID_Sucursal
 Nom_Sucursal

 Puestos, con los campos:

 ID_Puesto
 Nom_Puesto
 Salario
 Turno, con los siguientes campos:

 ID_Turno
 Entrada
 Salida
 Colacion.

b) Crear las diferentes tablas que se requieren para este proceso (2 puntos).

R: Sabemos que las tablas son las estructuras fundamentales para poder almacenar toda la
información en una base de datos, para esto, existen diversas maneras para crear tablas,
podemos hacerlo utilizando el modo gráfico ofrecido por los gestores de bases de datos o
utilizando código SQL, como en el caso presentado.

Como sabemos, en lo estudiado durante la semana, las tablas está formadas or filas y
columnas, donde las primeras representa cierta parte de los datos y las columnas son una
especie de componente que indica que datos serán incuídos, en el caso planteado, tenemos
por ejemplo, la columna “nombre” dentro de la tabla “Empleado” la cual indica que se incluirán
los nombres de lo empleados de la empresa.

Al especificar una tabla se debe indicar el tipo de dato que será introducido, con esto nos
referimos, a enteros, numeros reales, caracteres, expresión de tiempo, un string, etc. Por
ejemplo, en la tabla “Empleado” se tiene una columna llamada “dirección”, que, por estar
compuesta por texto y posiblemente números, se debe indicar el tipo de dato “varchar” que
adminte texto y otros signos además de una longitud de 15, lo que indica que será una línea
xcon 15 caracteres.
La sintaxis que se utilizará es la siguiente:

CREATE TABLE “nombre_tabla” (“columna1” “tipo de datos para la columna 1” “tamaño”,


“columna2” “tipo de datos para la columna 2” “tamaño”, …)

Creación de la tabla “Empleado”, en la base de datos “Control6”

CREATE TABLE `Control6`.`Empleado` ( `id_empleado` INT(16) NOT NULL , `nombre`


VARCHAR(20) NOT NULL , `apellidos` VARCHAR(20) NOT NULL , `direccion`
VARCHAR(15) NOT NULL , `telefono` INT(12) NOT NULL , `departamento` INT(15)
NOT NULL , PRIMARY KEY (`id_empleado`)) ENGINE = InnoDB;

Creación de la tabla “Puestos”, en la base de datos

CREATE TABLE `control6`.`Puestos` ( `id_puestos` INT(16) NOT NULL , `nom_puesto`


VARCHAR(20) NOT NULL , `salario` INT(10) NOT NULL , PRIMARY KEY
(`id_puestos`)) ENGINE = InnoDB;

Creación de la tabla “Turno”, en la base de datos


CREATE TABLE `control6`.`Turno` ( `id_turno` INT(16) NOT NULL , `entrada` INT(10)
NOT NULL
Creación , `salida`
de la tabla INT(10)
“Sucursal” en NOT NULL
la base , `colacion` INT(10) NOT NULL , PRIMARY
de datos:
KEY (`id_turno`)) ENGINE = InnoDB;

Con las siguientes capturas de pantalla del proceso:

CREATE TABLE `control6`.`Sucursal` ( `id_sucursal` INT(16) NOT NULL ,


`nom_sucursal` VARCHAR(20) NOT NULL , PRIMARY KEY (`id_sucursal`)) ENGINE =
InnoDB;

Ilustración 1 Tabla Empleado

Ilustración 2 Tabla Puestos


Ilustración 3 Tabla Sucursal

Ilustración 4 Tabla Turno


c) Indexar dichas tablas de manera que pueda realizar consultas utilizando SQL, de forma
rápida y eficiente (1 punto).

R: Se crearán los índices para las siguientes tablas:

1. Empleado
2. Puestos
3. Sucursal
4. Turno

El índice sirve para poder buscar datos de manera rápida, sin necesidad de recorrer toda la
tabla buscando algo en específico.

CREATE INDEX Clave_Empleado ON empleado (id_empleado);


Creando el índice como se indica en la siguiente captura de pantalla:
Creando el índice como se indica en la siguiente captura de pantalla:

CREATE INDEX Clave_Empleado ON puestos (id_puestos);

Creando el índice como se indica en la siguiente captura de pantalla:


CREATE INDEX Clave_Empleado ON sucursal (id_sucursal);

Creando el índice como se indica en la siguiente captura de pantalla:

CREATE INDEX Clave_Empleado ON turno (id_turno);


Creando el índice como se indica en la siguiente captura de pantalla:

d) Ingresar un mínimo de 10 registros en cada una de las tablas que decida crear. Recuerde
establecer las relaciones entre las mismas para evitar la duplicidad de los datos (2 puntos).

R: Tabla empleado:

INSERT INTO `empleado`(`id_empleado`, `nombre`, `apellidos`, `direccion`, `telefono`,


`departamento`) VALUES (01,'Joaquin','Quintana Novoa','Calle Siempre
Viva',932165498,'Informática');

INSERT INTO `empleado`(`id_empleado`, `nombre`, `apellidos`, `direccion`, `telefono`,


`departamento`) VALUES (02,'Carlos','Pezoa Gaete','Calle
Springfield',962518479,'Recursos Humanos');

INSERT INTO `empleado`(`id_empleado`, `nombre`, `apellidos`, `direccion`, `telefono`,


`departamento`) VALUES (03,'Stephen','Hawking','Calle Camino al
cielo',955555555,'Inventario');

INSERT INTO `empleado`(`id_empleado`, `nombre`, `apellidos`, `direccion`, `telefono`,


`departamento`) VALUES (04,'Alberto','Einstein Pierrot','Calle Camino al
cielo',966666666,'Informática');
INSERT INTO `empleado`(`id_empleado`, `nombre`, `apellidos`, `direccion`, `telefono`,
`departamento`) VALUES (05,'Isaac','Newton Castillo','Calle Siempre
Muerta',977777777,'Mecánica');

INSERT INTO `empleado`(`id_empleado`, `nombre`, `apellidos`, `direccion`, `telefono`,


`departamento`) VALUES (06,'Valentina','Roth Subiabre','Calle Siempre
Lista',988888888,'Recursos Humanos');

INSERT INTO `empleado`(`id_empleado`, `nombre`, `apellidos`, `direccion`, `telefono`,


`departamento`) VALUES (07,'Jack','El Destripador','Calle Los
Girasoles',966655666,'Recursos Humanos');

INSERT INTO `empleado`(`id_empleado`, `nombre`, `apellidos`, `direccion`, `telefono`,


`departamento`) VALUES (08,'Camilo','Henríquez','Calle Puro
Chile',914253678,'Estadística');

INSERT INTO `empleado`(`id_empleado`, `nombre`, `apellidos`, `direccion`, `telefono`,


`departamento`) VALUES (09,'Rodrigo','Rojas de Negri','Calle Los
Litres',789475613,'Estadística');

INSERT INTO `empleado`(`id_empleado`, `nombre`, `apellidos`, `direccion`, `telefono`,


`departamento`) VALUES (10,'Ernestina','Huenchuleo Huenchullan','Calle Las
Araucarias',777892166,'Gerencia');
Tabla puestos:

INSERT INTO `puestos`(`id_puestos`, `nom_puesto`, `salario`) VALUES


(1,'Gerencia',10000000);

INSERT INTO `puestos`(`id_puestos`, `nom_puesto`, `salario`) VALUES


(2,'Informática',1500000);

INSERT INTO `puestos`(`id_puestos`, `nom_puesto`, `salario`) VALUES (3,'Recursos


Humanos',2500000);

INSERT INTO `puestos`(`id_puestos`, `nom_puesto`, `salario`) VALUES


(4,'Mecánica',800000);

INSERT INTO `puestos`(`id_puestos`, `nom_puesto`, `salario`) VALUES


(5,'Estadística',1800000);

INSERT INTO `puestos`(`id_puestos`, `nom_puesto`, `salario`) VALUES


(6,'Mantención',950000);

INSERT INTO `puestos`(`id_puestos`, `nom_puesto`, `salario`) VALUES


(7,'Comunicaciones',1000000);
INSERT INTO `puestos`(`id_puestos`, `nom_puesto`, `salario`) VALUES
(8,'Dirección',1800000);

INSERT INTO `puestos`(`id_puestos`, `nom_puesto`, `salario`) VALUES


(9,'Secretaría',800000);

INSERT INTO `puestos`(`id_puestos`, `nom_puesto`, `salario`) VALUES (10,'Secretaría


Dirección',1800000);

Tabla sucursal:

INSERT INTO `sucursal`(`id_sucursal`, `nom_sucursal`) VALUES (1,'Temuco');

INSERT INTO `sucursal`(`id_sucursal`, `nom_sucursal`) VALUES (2,'Temuco 2');

INSERT INTO `sucursal`(`id_sucursal`, `nom_sucursal`) VALUES (3,'Angol');

INSERT INTO `sucursal`(`id_sucursal`, `nom_sucursal`) VALUES (4,'Angol_Deuco');

INSERT INTO `sucursal`(`id_sucursal`, `nom_sucursal`) VALUES (5,'Los Angeles');


INSERT INTO `sucursal`(`id_sucursal`, `nom_sucursal`) VALUES (6,'Collipulli');

INSERT INTO `sucursal`(`id_sucursal`, `nom_sucursal`) VALUES (7,'Cañete');

INSERT INTO `sucursal`(`id_sucursal`, `nom_sucursal`) VALUES (8,'Los Sauces');

INSERT INTO `sucursal`(`id_sucursal`, `nom_sucursal`) VALUES (9,'Los Sauces 2');

INSERT INTO `sucursal`(`id_sucursal`, `nom_sucursal`) VALUES (10,'Tijerales');

Tabla turno:

INSERT INTO `turno`(`id_turno`, `entrada`, `salida`, `colacion`) VALUES


(1,800,2000,1300);

INSERT INTO `turno`(`id_turno`, `entrada`, `salida`, `colacion`) VALUES


(2,800,1400,1300);

INSERT INTO `turno`(`id_turno`, `entrada`, `salida`, `colacion`) VALUES


(3,1400,2000,1900);

INSERT INTO `turno`(`id_turno`, `entrada`, `salida`, `colacion`) VALUES


(4,2200,800,0000);
e) Ejecutar una consulta donde se muestren todos los empleados existentes con sus beneficios
contractuales asociados (2 puntos).

Nota: Debe escribir las sentencias SQL requeridas para los puntos b, c, d y e

R:

SELECT * FROM `empleado`


INNER JOIN puestos
ON puestos.nom_puesto = empleado.nombre

Obteniéndose el siguiente resultado:


Bibliografía

[Haga triple clic en cualquier parte de este párrafo para escribir la primera referencia

bibliográfica.]

Instrucciones para la sección de las citas bibliográficas:


Escriba la bibliografía aquí en orden alfabético (empezando por el apellido del primer autor o, de
no haber autor, por la primera palabra del título). Esta página ya está formateada con sangrías
francesas. Incluya sólo las citas bibliográficas a las que haya hecho referencia en su trabajo y
asegúrese de incluir todas las citas bibliográficas a las que se haya referido en el mismo.

Ejemplos de un artículo:

Apellido, A. A., Apellido, B. B., y Apellido, C. C. (año). Título del artículo específico. Título
de la Revista, número de la revista, número de página.

También podría gustarte