Este proyecto describe el desarrollo de una base de datos para almacenar información de matrículas de estudiantes. Se identificó la necesidad de eliminar datos redundantes al almacenar información de hermanos y personas que viven en la misma dirección. Se realizó el modelado entidad-relación y la normalización de tablas, y luego se implementó la base de datos en MySQL Workbench. Finalmente, se desarrolló una interfaz en Java usando JDBC para interactuar con la base de datos.
1. FACULTAD DE CIENCIAS FÍSICAS Y MATEMÁTICAS
TEMA
PROYECTO DE BASE DE DATOS
INTEGRANTES
Layza Martinez, Rogger.
MATERIA
BASE DE DATOS
DOCENTE
ARTURO DIAZ PULIDO
CICLO
V Ciclo
ESCUELA
Informática
2018
2. RESUMEN
En este proyecto se desea solucionar el problema que genera el llenado de datos
obtenidas de una de fichas de matrículas.
Los datos que se necesitan para poder efectuar la solución son:
Los datos de los Alumnos, con sus respectivos padres, los datos de los cursos y los
datos de la cuenta a relacionarse.
Para poder encontrar la solución se procedió a hacer las normalizaciones respectivas,
para luego generar el diagrama entidad-relación, y luego al diagrama relacional.
Después de tener todos los necesario se pasa a programar en MySQL Workbench,
junto con el lenguaje de programación java (NetBeans).
A la vez se hizo algunas consultas desde NetBeans, para verificar si la base de datos
funciona correctamente.
3. REALIDAD PROBLEMÁTICA
En el centro de ecuación de nivel primaria, tenían la necesidad de implementar o
gestionar la información obtenida de cada alumno, de tal manera que la información
no presente redundancia, digamos que en dicho centro hay matriculados hermanos, se
obtuvo dos veces los mismos datos de los padres. De igual manera puede pasar si
viven en la misma localidad o provincia.
Dando a entender que hay información de más, por lo que los encargados de
administrar dicho centro de estudios tomaron la decisión de ya no usar una simple
“Ficha de matrícula” ya que ocasionaba que se ingrese información de más. O que ya
está en dicho centro.
Los encargados de hacer e implementar una base de datos son estudiantes de “La
Universidad Nacional de Trujillo” de la escuela de “Informática”.
4. INGENIERIA DEL PROYECTO
SCRIPT
-- MySQL WorkbenchForwardEngineering
SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS,FOREIGN_KEY_CHECKS=0;
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL,ALLOW_INVALID_DATES';
-- -----------------------------------------------------
-- Schemaficha_matricula
-- -----------------------------------------------------
DROP SCHEMA IF EXISTS`ficha_matricula`;
-- -----------------------------------------------------
-- Schemaficha_matricula
-- -----------------------------------------------------
CREATE SCHEMA IF NOT EXISTS`ficha_matricula`DEFAULT CHARACTERSET utf8 ;
USE `ficha_matricula`;
-- -----------------------------------------------------
-- Table `ficha_matricula`.`alumno`
-- -----------------------------------------------------
DROP TABLE IF EXISTS`ficha_matricula`.`alumno`;
CREATE TABLE IF NOT EXISTS`ficha_matricula`.`alumno`(
`id` INTNOT NULL AUTO_INCREMENT,
`nombre`VARCHAR(45) NOTNULL,
`apellido`VARCHAR(45) NOTNULL,
`fecha_nac`VARCHAR(45) NOTNULL,
`correo_electronico`VARCHAR(45) NOTNULL,
`tipo_persona_id`INTNOTNULL,
`telefono_fijo`VARCHAR(45) NOTNULL,
`telefon_movil`VARCHAR(45) NOTNULL,
PRIMARYKEY (`id`))
ENGINE = InnoDB;
5. -- -----------------------------------------------------
-- Table `ficha_matricula`.`padres`
-- -----------------------------------------------------
DROP TABLE IF EXISTS`ficha_matricula`.`padres`;
CREATE TABLE IF NOT EXISTS`ficha_matricula`.`padres`(
`id` INTNOT NULL AUTO_INCREMENT,
`nombre`VARCHAR(45) NOTNULL,
`telefono`VARCHAR(45) NOTNULL,
`alumno_id`INTNOTNULL,
PRIMARYKEY (`id`),
INDEX`fk_padres_alumno1_idx`(`alumno_id`ASC),
CONSTRAINT`fk_padres_alumno1`
FOREIGN KEY (`alumno_id`)
REFERENCES `ficha_matricula`.`alumno`(`id`)
ON DELETE NOACTION
ON UPDATE NOACTION)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `ficha_matricula`.`ubicacion`
-- -----------------------------------------------------
DROP TABLE IF EXISTS`ficha_matricula`.`ubicacion`;
CREATE TABLE IF NOT EXISTS`ficha_matricula`.`ubicacion`(
`id` INTNOT NULL AUTO_INCREMENT,
`direccion`VARCHAR(45) NOTNULL,
`localidad`VARCHAR(45) NOTNULL,
`provincia`VARCHAR(45) NOTNULL,
`alumno_id`INTNOTNULL,
PRIMARYKEY (`id`),
INDEX`fk_ubicacion_alumno1_idx`(`alumno_id`ASC),
CONSTRAINT`fk_ubicacion_alumno1`
FOREIGN KEY (`alumno_id`)
REFERENCES `ficha_matricula`.`alumno`(`id`)
ON DELETE NOACTION
ON UPDATE NOACTION)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `ficha_matricula`.`curso`
-- -----------------------------------------------------
DROP TABLE IF EXISTS`ficha_matricula`.`curso`;
CREATE TABLE IF NOT EXISTS`ficha_matricula`.`curso`(
`id` INTNOT NULL AUTO_INCREMENT,
`asignatura`VARCHAR(45) NOTNULL,
`curso` VARCHAR(45) NOTNULL,
`cuota` VARCHAR(45) NOTNULL,
PRIMARYKEY (`id`))
ENGINE = InnoDB;
6. -- -----------------------------------------------------
-- Table `ficha_matricula`.`matricula`
-- -----------------------------------------------------
DROP TABLE IF EXISTS`ficha_matricula`.`matricula`;
CREATE TABLE IF NOT EXISTS`ficha_matricula`.`matricula`(
`id` INTNOT NULL AUTO_INCREMENT,
`monto`VARCHAR(45) NOTNULL,
`fecha`VARCHAR(45) NOTNULL,
`alumno_id`INTNOTNULL,
`curso_id`INT NOT NULL,
PRIMARYKEY (`id`),
INDEX`fk_matricula_alumno1_idx`(`alumno_id`ASC),
INDEX`fk_matricula_curso1_idx`(`curso_id`ASC),
CONSTRAINT`fk_matricula_alumno1`
FOREIGN KEY (`alumno_id`)
REFERENCES `ficha_matricula`.`alumno`(`id`)
ON DELETE NOACTION
ON UPDATE NOACTION,
CONSTRAINT`fk_matricula_curso1`
FOREIGN KEY (`curso_id`)
REFERENCES `ficha_matricula`.`curso`(`id`)
ON DELETE NOACTION
ON UPDATE NOACTION)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `ficha_matricula`.`pago`
-- -----------------------------------------------------
DROP TABLE IF EXISTS`ficha_matricula`.`pago`;
CREATE TABLE IF NOT EXISTS`ficha_matricula`.`pago`(
`id` INTNOT NULL,
`entidad`VARCHAR(45) NOTNULL,
`oficina`VARCHAR(45) NOTNULL,
`dc` VARCHAR(45) NOTNULL,
`numero_cuenta`VARCHAR(45) NOTNULL,
`matricula_id`INTNOT NULL,
PRIMARYKEY (`id`),
INDEX`fk_cambiar_titulo_matricula1_idx`(`matricula_id`ASC),
CONSTRAINT`fk_cambiar_titulo_matricula1`
FOREIGN KEY (`matricula_id`)
REFERENCES `ficha_matricula`.`matricula`(`id`)
ON DELETE NOACTION
ON UPDATE NOACTION)
ENGINE = InnoDB;
SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
7. ÁLGEBRA RELACIONAL
1. Los 3 primerosalumnosmatriculadosenfisica(solomuestra)
select a.nombre,c.cursofrom alumnoa,matriculam,curso+c
where a.id=m.alumno_idand m.curso_id=c.idand c.curso='fisica'Limit3;
2. Padresque tiene hijosconnombres que empiezanconm y vivenenlaesperanza
select p.nombre,a.nombre,u.direccion
from padre p,alumnoa,ubicacionu
where p.alumno_id=a.id
and a.id=u.alumno_id
and a.nombre like 'M%'
and u.direccion='esperanza'
3. Lista de alumnosordenados alfabeticamente que llevanlaasignaturaHidrodinamica.
select a.nombre,c.curso
from alumnosa,matriculam,cursoc
where a.id=m.alumno_id
and m.curso_id=c.id
and c.asignatura='Hidrodinamica'
ORDER BY a.nombre ASC;
17. CONCLUSIONES
Después de haber hecho las operaciones correspondientes para
poder obtener una base de datos, y poder almacenar la información
correctamente.
Se tuvo en cuenta los paso, ya sea en normalización, en el diagrama
entidad-relación, como los demás.
Y respecto al lenguaje java se tuvo que tener en cuenta que los
drivers estén instalados correctamente, para poder trabajar sin ningún
error.
De esta manera la base que se obtuvo puede y optimiza la
información que es indispensabley lo demos ya no usarlo.
18. RECOMENDACIONES
Debido a que este softwareesta en primera fase, puede que tenga
problemas, pero con los conocimientos que uno posee, puede apaciguar
el problema y enseñar al resto que usara el software.
Para que esto no genere una incertidumbre al usar la tecnología, si
no estar a lado de la tecnología ya que hoy en día va en aumento.