Data">
Nothing Special   »   [go: up one dir, main page]

Juan Lorca Control Semana 6

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 11

Administradores de bases de datos - SQL

JUAN M. LORCA GAJARDO

ADMINISTRACIÓN DE BASES DE DATOS

Instituto IACC

04 de abril de 2021
Antecedentes:

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.

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

c) Indexar dichas tablas de manera que pueda realizar consultas utilizando SQL, de forma
rápida y eficiente.
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.

e) Ejecutar una consulta donde se muestren todos los empleados existentes con sus
beneficios contractuales asociados.

Nota: Debe escribir las sentencias SQL requeridas para los puntos b, c, d y e.
Desarrollo:
a) Definir la estructura lógica de la base de datos, indicando cuáles tablas serán necesarias.

Para crear la base de datos de la empresa, formaremos las siguientes estructuras:

Estructura Datos
Empleado, A. ID_Empleado
B. Nombre.
C. Apellidos.
D. Dirección.
E. Teléfono.
F. Departamento
Sucursal G. ID_Sucursal
H. Nom_Sucursal
Puestos I. ID_Puesto
J. Nom_Puesto
K. Salario
Turno L. ID_Turno
M. Entrada
N. Salida
O. Colación
b) Crear las diferentes tablas que se requieren para este proceso.

Las tablas son estructuras fundamentales para almacenar la información en una base de datos,
existiendo diversos modos para crear tablas, utilizando el modo gráfico ofrecido por los
gestores de bases de datos o utilizando código SQL, como el ejemplo presentado.

Las tablas estarán formadas por filas y columnas, las primeras representan cierta parte de los
datos y las columnas, una especie de componente que indica que datos serán incluidos, como
en el caso planteado, tenemos la columna “nombre” dentro de la tabla “Empleado” la cual
indica que se incluirán los nombres de lo empleados de la empresa.

Debemos especificar en una tabla, el tipo de dato que será introducido (enteros, números
reales, caracteres, tiempo, string), debemos indicar el tipo de dato “varchar” que admitirá
(texto y otros signos) además de la longitud de datos, por ejemplo 15, que indica una línea con
15 caracteres.
La sintaxis que se utilizará es la siguiente:

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 “Control6”

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 “Control6”

CREATE TABLE `control6`.`Turno` ( `id_turno` INT(16) NOT NULL , `entrada` INT(10) NOT NULL , `salida` INT(10) NOT
NULL , `colacion` INT(10) NOT NULL , PRIMARY KEY (`id_turno`)) ENGINE = InnoDB;

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

CREATE TABLE `control6`.`Sucursal` ( `id_sucursal` INT(16) NOT NULL , `nom_sucursal` VARCHAR(20) NOT NULL ,
PRIMARY KEY (`id_sucursal`)) ENGINE = InnoDB;
Tabla Empleados:

Tabla Puestos
Tabla Sucursal:

Tabla Turnos
c) Indexar dichas tablas de manera que pueda realizar consultas utilizando SQL, de forma
rápida y eficiente.
Se crearán los índices para las siguientes tablas:
1. Empleado
2. Puestos
3. Sucursal
4. Turno
El índice permite 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);

CREATE INDEX Clave_Empleado ON puestos (id_puestos);


CREATE INDEX Clave_Empleado ON sucursal (id_sucursal);

CREATE INDEX Clave_Empleado ON turno (id_turno);


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.

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');
e) Ejecutar una consulta donde se muestren todos los empleados existentes con sus
beneficios contractuales asociados.
SELECT * FROM `empleado`
INNER JOIN puestos
ON puestos.nom_puesto = empleado.nombre
Bibliografía:

IACC (2019). Administradores de bases de datos-SQL II. Administración de Base de datos.


Semana 6.

También podría gustarte