Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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
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):
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
Tabla alumnos:
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;
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):
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