Está en la página 1de 30

TALLER 2

Gestión de Información I

Grupo I

Cipas
Wilson Giraldo
Diana Cruz

Profesor
Carlos Vélez

23-02-2022
Ibagué
2022
Contenido
INTRODUCCION ............................................................................................................................................................... 3
1. Realice en MySQLWorkbench, el modelo entidad relación que permita representar la siguiente estructura
relacional: ........................................................................................................................................................................ 4
2. Aplique las reglas de normalización o formas normales para depurar y perfeccionar el modelo lógico de la
base de datos y evidéncielo en este apartado, justificando su respuesta. .................................................................. 5
3. Elabore y ejecute en MySQLWorkbench las siguientes sentencias SQL de administración de bases de datos,
(copie y pegue en este apartado las instrucciones que corresponden a cada ítem): ................................................. 6
a. Crear la base de datos ........................................................................................................................................ 6
b. Crear las tablas.................................................................................................................................................... 6
c. Elimine una tabla .............................................................................................................................................. 10
d. Vuelva a crear la tabla eliminada ..................................................................................................................... 10
e. Inserte 10 registros en cada tabla ................................................................................................................... 10
f. Modifique 5 registros en diferentes tablas ..................................................................................................... 19
g. Elimine 5 registros de diferentes tablas .......................................................................................................... 19
4. Realice las siguientes consultas, (copie y pegue en este apartado las instrucciones y tome pantallazos de la
ejecución de las mismas en MySQLWorkbench):........................................................................................................ 19
• Liste el código y el nombre de los alumnos matriculados en la Universidad. ............................................... 19
• Liste todas las facultades en orden alfabetico ascendentemente. ................................................................ 20
• Liste la cédula, el nombre y la categoria de los profesores que tienen nivel de estudios “PREGRADO”. ... 21
• Consulte el salario máximo de los profesores. ............................................................................................... 22
• Liste nombre y cedula de los profesores con categoria ASISTENTE O AUXILIAR. ......................................... 23
• Calcule la suma de los salarios de los profesores registrados........................................................................ 24
• Cuente el número de alumnos matriculados en la Universidad. ................................................................... 25
• Liste todas las materias de primer (1) semestre. ............................................................................................ 26
• Liste todos los departamentos de una determinada facultad. ...................................................................... 27
• Liste todos los datos de las facultades en orden alfabético descendentemente. ........................................ 28
Conclusión ..................................................................................................................................................................... 29
Bibliografía .................................................................................................................................................................... 30
INTRODUCCION

Una base de datos es un "almacén" que permite guardar grandes cantidades de información de
forma organizada, para luego poder usarlo fácilmente. Y estos bases de datos se pueden crear
y diseñar usando diferentes sistemas de Gestor de Bases de Datos, conocido con las siglas
SGBD, que es un software que actúa como interfaz, entre los datos almacenados y el usuario
que desea manejar tales datos.

MySQL Workbench es un software creado por la empresa Sun Microsystems, esta herramienta
permite modelar diagramas de Entidad-Relación para bases de datos MySQL.

Con esta herramienta se puede elaborar una representación visual de las tablas, vistas,
procedimientos almacenados y claves foráneas de la base de datos. Además, es capaz de
sincronizar el modelo en desarrollo con la base de datos real. Se puede realizar una ingeniería
directa e ingeniería inversa para exportare e importar el esquema de una base de datos ya
existente el cual haya sido guardado o hecho copia de seguridad con MySQL Administrador.

MySQL Workbench puede generar también el guión necesario para crear la base de datos que
se ha dibujado en el esquema; es compatible con los modelos de base de datos de DBDesigner
4 y soporta las novedades incorporadas en MySQL 5.x
TALLER 2

1. Realice en MySQLWorkbench, el modelo entidad relación que permita representar la


siguiente estructura relacional:
FACULTAD (cod_facultad, nombre, tot_estudiantes, cod_departamento,
nombre_departamento)
CARRERA (cod_carrera, nombre, cod_dep)
MATERIA ( cod_materia, nombre, cod_carrera, semestre)
PROFESOR (cedula, nombre, fecha_naci, ciudad_naci, dpto._naci, país_naci,
nivel_estudios, categoría)
SEMESTRES_TRABAJADOS (id, cedula, cod_materia, periodo, fecha_ini, fecha_fin,
salario)
ALUMNO (codigo, cedula, nombre, direccion, telefono)
ALUMNO_CARRERA(cod_alumno, cod_carrera, nombre_alumno, semestre_actual,
total_semestres_cursados)
ALUMNO_MATERIA(id, cod_alumno, cod_materia, nota, periodo)
2. Aplique las reglas de normalización o formas normales para depurar y perfeccionar el
modelo lógico de la base de datos y evidéncielo en este apartado, justificando su

respuesta.

Para perfeccionar el modelo lógico lo primero que hicimos fue sacar la tabla
departamento ya que esta no es atómica y puede contener varios valores, además de
eso en la tabla carrera encontramos una relación de uno a muchos con la facultad,
donde antes presentaba un código de departamento que no iba allí, también
encontramos un atributo compuesto que era el nombre y lo descompusimos.
3. Elabore y ejecute en MySQLWorkbench las siguientes sentencias SQL de
administración de bases de datos, (copie y pegue en este apartado las instrucciones
que corresponden a cada ítem):

a. Crear la base de datos

Create database administracion;

b. Crear las tablas

USE `administracion` ;

-- -----------------------------------------------------
-- Table `administracion`.`FACULTAD`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `administracion`.`FACULTAD` (
`cod_facultad` INT NOT NULL,
`total_estudiantes` INT NOT NULL,
`nombre_facultad` VARCHAR(45) NOT NULL,
PRIMARY KEY (`cod_facultad`))
ENGINE = InnoDB;

-- -----------------------------------------------------
-- Table `administracion`.`ALUMNO`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `administracion`.`ALUMNO` (
`cod_alumno` INT NOT NULL,
`cedula` INT NOT NULL,
`nombre` VARCHAR(45) NOT NULL,
`apellido` VARCHAR(45) NOT NULL,
`direccion` VARCHAR(45) NOT NULL,
`telefono` INT NOT NULL,
PRIMARY KEY (`cod_alumno`))
ENGINE = InnoDB;

-- -----------------------------------------------------
-- Table `administracion`.`CARRERA`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `administracion`.`CARRERA` (
`cod_carrera` INT NOT NULL,
`nombre_carrera` VARCHAR(45) NOT NULL,
`FACULTAD_cod_facultad` INT NOT NULL,
PRIMARY KEY (`cod_carrera`),
INDEX `fk_CARRERA_FACULTAD1_idx` (`FACULTAD_cod_facultad` ASC) VISIBLE,
CONSTRAINT `fk_CARRERA_FACULTAD1`
FOREIGN KEY (`FACULTAD_cod_facultad`)
REFERENCES `administracion`.`FACULTAD` (`cod_facultad`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;

-- -----------------------------------------------------
-- Table `administracion`.`MATERIA`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `administracion`.`MATERIA` (
`cod_materia` INT NOT NULL,
`nombre_materia` VARCHAR(45) NOT NULL,
`semestre` INT NOT NULL,
`CARRERA_cod_carrera` INT NOT NULL,
PRIMARY KEY (`cod_materia`),
INDEX `fk_MATERIA_CARRERA1_idx` (`CARRERA_cod_carrera` ASC) VISIBLE,
CONSTRAINT `fk_MATERIA_CARRERA1`
FOREIGN KEY (`CARRERA_cod_carrera`)
REFERENCES `administracion`.`CARRERA` (`cod_carrera`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;

-- -----------------------------------------------------
-- Table `administracion`.`PROFESOR`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `administracion`.`PROFESOR` (
`cedula` INT NOT NULL,
`nombre` VARCHAR(45) NOT NULL,
`apellido` VARCHAR(45) NOT NULL,
`fecha_naci` DATE NOT NULL,
`ciudad_naci` VARCHAR(45) NOT NULL,
`dpto_naci` VARCHAR(45) NOT NULL,
`pais_naci` VARCHAR(45) NOT NULL,
`nivel_estudio` VARCHAR(45) NOT NULL,
`categoria` VARCHAR(45) NOT NULL,
PRIMARY KEY (`cedula`))
ENGINE = InnoDB;

-- -----------------------------------------------------
-- Table `administracion`.`ALUMNO_MATERIA`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `administracion`.`ALUMNO_MATERIA` (
`ALUMNO_cod_alumno` INT NOT NULL,
`MATERIA_cod_materia` INT NOT NULL,
`nota` DECIMAL(3,2) NOT NULL,
`periodo` INT NOT NULL,
PRIMARY KEY (`ALUMNO_cod_alumno`, `MATERIA_cod_materia`),
INDEX `fk_ALUMNO_has_MATERIA_MATERIA1_idx` (`MATERIA_cod_materia`
ASC) VISIBLE,
INDEX `fk_ALUMNO_has_MATERIA_ALUMNO_idx` (`ALUMNO_cod_alumno` ASC)
VISIBLE,
CONSTRAINT `fk_ALUMNO_has_MATERIA_ALUMNO`
FOREIGN KEY (`ALUMNO_cod_alumno`)
REFERENCES `administracion`.`ALUMNO` (`cod_alumno`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_ALUMNO_has_MATERIA_MATERIA1`
FOREIGN KEY (`MATERIA_cod_materia`)
REFERENCES `administracion`.`MATERIA` (`cod_materia`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;

-- -----------------------------------------------------
-- Table `administracion`.`ALUMNO_CARRERA`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `administracion`.`ALUMNO_CARRERA` (
`ALUMNO_cod_alumno` INT NOT NULL,
`CARRERA_cod_carrera` INT NOT NULL,
`semestre_actual` INT NOT NULL,
`total_semestres_cursados` INT NOT NULL,
PRIMARY KEY (`ALUMNO_cod_alumno`, `CARRERA_cod_carrera`),
INDEX `fk_ALUMNO_has_CARRERA_CARRERA1_idx` (`CARRERA_cod_carrera`
ASC) VISIBLE,
INDEX `fk_ALUMNO_has_CARRERA_ALUMNO1_idx` (`ALUMNO_cod_alumno`
ASC) VISIBLE,
CONSTRAINT `fk_ALUMNO_has_CARRERA_ALUMNO1`
FOREIGN KEY (`ALUMNO_cod_alumno`)
REFERENCES `administracion`.`ALUMNO` (`cod_alumno`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_ALUMNO_has_CARRERA_CARRERA1`
FOREIGN KEY (`CARRERA_cod_carrera`)
REFERENCES `administracion`.`CARRERA` (`cod_carrera`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `administracion`.`SEMESTRE_TRABAJADO`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `administracion`.`SEMESTRE_TRABAJADO` (
`MATERIA_cod_materia` INT NOT NULL,
`PROFESOR_cedula` INT NOT NULL,
`periodo` INT NOT NULL,
`fecha_ini` DATE NOT NULL,
`fecha_fin` DATE NOT NULL,
`salario` INT NOT NULL,
PRIMARY KEY (`MATERIA_cod_materia`, `PROFESOR_cedula`),
INDEX `fk_MATERIA_has_PROFESOR_PROFESOR1_idx` (`PROFESOR_cedula`
ASC) VISIBLE,
INDEX `fk_MATERIA_has_PROFESOR_MATERIA1_idx` (`MATERIA_cod_materia`
ASC) VISIBLE,
CONSTRAINT `fk_MATERIA_has_PROFESOR_MATERIA1`
FOREIGN KEY (`MATERIA_cod_materia`)
REFERENCES `administracion`.`MATERIA` (`cod_materia`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_MATERIA_has_PROFESOR_PROFESOR1`
FOREIGN KEY (`PROFESOR_cedula`)
REFERENCES `administracion`.`PROFESOR` (`cedula`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;

-- -----------------------------------------------------
-- Table `administracion`.`DEPARTAMENTO`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `administracion`.`DEPARTAMENTO` (
`cod_departamento` INT NOT NULL,
`nombre_departamento` VARCHAR(45) NOT NULL,
`FACULTAD_cod_facultad` INT NOT NULL,
PRIMARY KEY (`cod_departamento`),
INDEX `fk_DEPARTAMENTO_FACULTAD1_idx` (`FACULTAD_cod_facultad` ASC)
VISIBLE,
CONSTRAINT `fk_DEPARTAMENTO_FACULTAD1`
FOREIGN KEY (`FACULTAD_cod_facultad`)
REFERENCES `administracion`.`FACULTAD` (`cod_facultad`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;

SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
c. Elimine una tabla

drop table if exists facultad;

d. Vuelva a crear la tabla eliminada

CREATE TABLE IF NOT EXISTS `administracion`.`FACULTAD` (


`cod_facultad` INT NOT NULL,
`total_estudiantes` INT NOT NULL,
`nombre_facultad` VARCHAR(45) NOT NULL,
PRIMARY KEY (`cod_facultad`))
ENGINE = InnoDB;

e. Inserte 10 registros en cada tabla

Tabla alumnos:

insert into alumno (cod_alumno,cedula,nombre,apellido,direccion,telefono)


values
(1,2345,'JUANITO','PEREZ','RICAURTE',2665577),
(2,3456,'CAMILO','RODRIGUE','FERIAS',2778899),
(3,5678,'CARLA','GIRALDO','BOSQUE',2897653),
(4,6543,'JUANITA','VARON','POLA',2556677),
(5,7654,'CRISTIAN','BRIÑEZ','RICAURTE',2667788),
(6,8765,'CAMILA','REINOSO','SALADO',2876542),
(7,7345,'RAMON','VALDES','BOQUERON',2445566),
(8,4562,'SEBASTIAN','RAMIREZ','GALAN',2338800),
(9,9843,'ANDERSON','CRUZ','VERGEL',2665500),
(10,9283,'CONSUELO','CELIS','PRIMAVERA',2772233);
insert into facultad (cod_facultad,total_estudiantes,nombre_facultad)
values
(3,200,'Medicina'),
(35,245,'Ciencias'),
(40,300,'Ingenieria Agronomica'),
(32,700,'Ciencias Humanas'),
(87,400,'Ciencias Economicas y Administrativas'),
(56,234,'Ciencias de la Educacion'),
(57,560,'Ciencias de la Salud'),
(59,569,'Ingenieria Forestal'),
(71,380,'Tecnologias'),
(85,120,'Derecho');
insert into departamento
(cod_departamento,FACULTAD_cod_facultad,nombre_departamento)
values
(18,3,'Salud Publica'),
(44,35,'Ciencias Basicas'),
(32,40,'Biologia'),
(88,32,'Artes'),
(45,87,'Mercadeo'),
(21,56,'Español e ingles'),
(22,56,'Artistica'),
(23,56,'Matematicas'),
(24,56,'Quimica'),
(25,56,'Pedagogia Infantil');
insert into carrera (cod_carrera,nombre_carrera,FACULTAD_cod_facultad)
values
(12,'Odontologia',3),
(18,'Derecho',32),
(30,'Ciencias Sociales',56),
(28,'Educacion Basica',56),
(11,'Fisica, Deportes y Recreacion',56),
(16,'Lengua Castellana',56),
(19,'Ingles',56),
(22,'Matematicas-Estadistica',35),
(45,'Ing. Agroindustrial',40),
(70,'Administracion de Empresas',87);
insert into profesor
(cedula,nombre,apellido,fecha_naci,ciudad_naci,dpto_naci,pais_naci,nivel_estudio,cate
goria)
values
(24176,'leonel','messi',11/12/1976,'ibague','tolima','colombia','normalista','asistente'),
(24006,'guilian','mbape',13/09/1965,'cajamarca','tolima','colombia','pregrado','auxiliar'),
(48190,'james','rodriguez',14/09/1975,'manizales','caldas','colombia','pregrado','asistente'),
(17273,'luis','diaz',15/08/1965,'pereira','risaralda','colombia','maestria','planta'),
(45699,'arturo','calle',16/11/1965,'arauca','arauca','colombia','maestria','planta'),
(56711,'maritza','jimenez',17/09/1955,'bogota','cundinamarca','colombia','normalista','asistente),
(76523,'geral','carrizal',18/02/1965,'medellin','antioquia','colombia','pregrado','auxiliar'),
(43256,'lucia','martinez',19/03/1985,'cajamarca','tolima','colombia','postgrado','planta'),
(12378,'marina','salcedo',20/02/1985,'ibague','tolima','colombia','postgrado','planta'),
(98765,'carolina','olaya',21/12/1965,'pereira','risaralda','colombia','pregrado','auxiliar');
insert into materia (cod_materia,nombre_materia,semestre,CARRERA_cod_carrera)
values
(15,'constitucion politica',2,18),
(12,'calculo',1,12),
(19,'etica',3,30),
(22,'algebra lineal',4,28),
(55,'logica',2,11),
(34,'lectoescritura',1,16),
(28,'ingles',5,19),
(48,'metodologia de investigacion',2,22),
(51,'fisica',3,45),
(31,'matematicas ',2,70);
insert into alumno_materia (ALUMNO_cod_alumno,MATERIA_cod_materia,nota,periodo)
values
(1,15,'3.55',1),
(2,12,'4.25',2),
(3,19,'3.75',1),
(4,22,'4.55',2),
(5,55,'3.98',1),
(6,34,'4.26',2),
(7,28,'4.32',1),
(8,48,'5.00',2),
(9,51,'3.56',1),
(10,31,'4.79',2);
insert into alumno_carrera
(ALUMNO_cod_alumno,CARRERA_cod_carrera,semestre_actual,total_semestres_cur
sados)
values
(1,12,2,4),
(2,18,1,2),
(3,30,3,1),
(4,28,4,5),
(5,11,2,2),
(6,16,1,3),
(7,19,5,2),
(8,22,2,2),
(9,45,3,1),
(10,70,2,3);
insert into semestre_trabajado
(MATERIA_cod_materia,PROFESOR_cedula,periodo,fecha_ini,fecha_fin,salario)
values
(15,24176,1,22/02/2020,30/06/2020,1900000),
(12,17273,2,23/02/2020,01/07/2020,3200000),
(19,24176,1,24/02/2020,02/07/2020,1900000),
(22,17273,2,25/02/2020,25/02/2021,2850000),
(55,45699,1,26/02/2020,04/07/2020,3200000),
(34,56711,2,27/02/2020,05/07/2020,2300000),
(28,76523,1,28/02/2020,06/07/2020,2300000),
(48,43256,2,29/02/2020,07/07/2020,200000),
(51,12378,1,01/03/2020,08/07/2020,2800000),
(31,17273,2,02/03/2020,09/07/2020,2850000);
f. Modifique 5 registros en diferentes tablas

set SQL_SAFE_UPDATES=0;
update profesor set nombre='Maria' where nombre='lucia';
update alumno set nombre='JUAN' where nombre='JUANITO';
update semestre_trabajado set salario=2000000 where PROFESOR_cedula=24176;
update alumno_carrera set total_semestres_cursados=3 where
ALUMNO_cod_alumno=7;
update alumno_materia set nota='2.9' where ALUMNO_cod_alumno=3;

g. Elimine 5 registros de diferentes tablas

delete from alumno_carrera where ALUMNO_cod_alumno=1;


delete from alumno_materia where ALUMNO_cod_alumno=1;
delete from alumno where nombre='JUAN';
delete from profesor where cedula=24006;
delete from semestre_trabajado where PROFESOR_cedula=45699;

4. Realice las siguientes consultas, (copie y pegue en este apartado las instrucciones y
tome pantallazos de la ejecución de las mismas en MySQLWorkbench):

• Liste el código y el nombre de los alumnos matriculados en la Universidad.

select cod_alumno, nombre from alumno;


• Liste todas las facultades en orden alfabetico ascendentemente.

select nombre_facultad from facultad order by nombre_facultad asc;


• Liste la cédula, el nombre y la categoria de los profesores que tienen nivel de estudios
“PREGRADO”.

select nombre, cedula, categoria from profesor where nivel_estudio = 'pregrado';


• Consulte el salario máximo de los profesores.

select max(salario) from semestre_trabajado;


• Liste nombre y cedula de los profesores con categoria ASISTENTE O AUXILIAR.

select nombre, cedula, categoria from profesor where categoria= 'auxiliar' or


categoria='asistente';
• Calcule la suma de los salarios de los profesores registrados.

select sum(salario) from semestre_trabajado;


• Cuente el número de alumnos matriculados en la Universidad.

select sum(total_estudiantes) from facultad;


• Liste todas las materias de primer (1) semestre.

select nombre_materia from materia where semestre=1;


• Liste todos los departamentos de una determinada facultad.

select nombre_departamento, FACULTAD_cod_facultad from departamento where


FACULTAD_cod_facultad=56;
• Liste todos los datos de las facultades en orden alfabético descendentemente.

select nombre_facultad from facultad order by nombre_facultad desc;


Conclusión

Durante la realización de este trabajo, aprendimos acerca del lenguaje SQL, de los
sistemas de gestión de bases de datos, y su importancia y utilidad a la hora de
almacenar, clasificar y manejar información, de cualquier tipo.

MySQL ha sido un gestor de bases de datos muy útil desde que fue creado, y con el
tiempo, nuevas funciones se le añadieron, expandiéndolo y volviéndolo más útil, y
convirtiéndose así en uno de los gestores de bases de datos más utilizados a nivel
mundial, junto a Oracle. Por otro lado, PostgreSQL es un SGBD continuamente
modificado y actualizado por un grupo de desarrolladores a nivel mundial (PostgreSQL
Global Development Group), también basado en el lenguaje SQL.
Bibliografía

https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=&cad=rja&uact=8&ved=2ahUKEwj9xLbyr
ZL2AhUDRzABHYcmBHsQFnoECAQQAQ&url=https%3A%2F%2Fblogs.ua.es%2Fjpm33%2F2014%2F02%2F28%2Fp
arametrizar-consulta-en-mysql-usando-variables%2F&usg=AOvVaw3DY_kKo-HRxkJYDjeP1Ekz

https://blogs.ua.es/jpm33/2014/02/28/parametrizar-consulta-en-mysql-usando-variables/

https://www.tutorialesprogramacionya.com/mysqlya/temarios/descripcion.php?cod=33&punto=34&inicio=

https://ayuda.windev.es/es-ES/?2034003

También podría gustarte