Está en la página 1de 11

Bases de datos relacionales

Actividad 5. Proyecto integrador Etapa 2

Equipo 8:
David Israel Martínez de la Rosa
Benjamín Rangel Palma

Plantel:
Coyoacán

Docente:
Efrén Juárez Castillo
PROYECTO INTEGRADOR ETAPA 1

Introducción
Cierta institución educativa ha solicitado el desarrollo de un prototipo de sistema de
control escolar para la gestión de alumnos, profesores y asignaturas.
objetivo es desarrollar la estructura de base de datos necesaria para cubrir la
solicitud. Inicialmente se plantea el siguiente Modelo entidad -relación.

DBMS Sistema manejador de base de datos


Instalación
Descarga de MySQL
Ejecución de Instalación de MysQL
Modelo Entidad - Relación
Se decide dejar el diagrama como se propone ya que con él es suficiente y cumple
con el planteamiento solicitado llevar la gestión de alumnos, profesores y asignaturas
Se indica que las personas pueden ser profesores o alumnos, los profesores imparten
asignaturas puede ser una o varias a su vez los profesores pertenecen a un
departamento, los alumnos toman asignaturas una o varias de las cuales se lleva el
registro del periodo en el que fueron tomadas, dentro de las asignaturas registra el
grado escolar al que pertenece cada asignatura
Si bien podríamos agregar más información cumple con lo solicitado por la institución
educativa
Identificación de Entidades y Atributos
Entidad Atributos
Persona id
nif
nombre
apellido1
apellido2
ciudad
direccion
telefono
fecha_nacimiento
sexo ('H', 'M')
tipo ('profesor', 'alumno')
Profesor id_profesor,
id_departamento
Grado id
nombre
asignatura id
nombre
creditos
tipo ('básica', 'obligatoria', 'optativa')
curso
cuatrimestre
id_profesor
id_grado
curso_escolar id
anyo_inicio
anyo_fin
alumno_se_matricula_asignatura id_alumno
id_asignatura
id_curso_escolar);
Generación de diagrama Entidad Relación Prototipo
PROYECTO INTEGRADOR ETAPA 2

En la etapa 1 del Proyecto identificaste las entidades y atributos y generaste tu


diagrama entidad-relación con esa información.

Creación de la estructura de la base de datos.


El script usado en la actividad es el siguiente:
CREATE DATABASE universidad CHARACTER SET utf8mb4;
USE universidad;

CREATE TABLE departamento (


id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
nombre VARCHAR(50) NOT NULL
);

CREATE TABLE persona (


id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
nif VARCHAR(9) UNIQUE,
nombre VARCHAR(25) NOT NULL,
apellido1 VARCHAR(50) NOT NULL,
apellido2 VARCHAR(50),
ciudad VARCHAR(25) NOT NULL,
direccion VARCHAR(50) NOT NULL,
telefono VARCHAR(9),
fecha_nacimiento DATE NOT NULL,
sexo ENUM('H', 'M') NOT NULL,
tipo ENUM('profesor', 'alumno') NOT NULL
);

CREATE TABLE profesor (


id_profesor INT UNSIGNED PRIMARY KEY,
id_departamento INT UNSIGNED NOT NULL,
FOREIGN KEY (id_profesor) REFERENCES persona(id),
FOREIGN KEY (id_departamento) REFERENCES departamento(id)
);

CREATE TABLE grado (


id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
nombre VARCHAR(100) NOT NULL
);

CREATE TABLE asignatura (


id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
nombre VARCHAR(100) NOT NULL,
creditos FLOAT UNSIGNED NOT NULL,
tipo ENUM('básica', 'obligatoria', 'optativa') NOT NULL,
curso TINYINT UNSIGNED NOT NULL,
cuatrimestre TINYINT UNSIGNED NOT NULL,
id_profesor INT UNSIGNED,
id_grado INT UNSIGNED NOT NULL,
FOREIGN KEY(id_profesor) REFERENCES profesor(id_profesor),
FOREIGN KEY(id_grado) REFERENCES grado(id)
);

CREATE TABLE curso_escolar (


id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
anyo_inicio YEAR NOT NULL,
anyo_fin YEAR NOT NULL
);

CREATE TABLE alumno_se_matricula_asignatura (


id_alumno INT UNSIGNED NOT NULL,
id_asignatura INT UNSIGNED NOT NULL,
id_curso_escolar INT UNSIGNED NOT NULL,
PRIMARY KEY (id_alumno, id_asignatura, id_curso_escolar),
FOREIGN KEY (id_alumno) REFERENCES persona(id),
FOREIGN KEY (id_asignatura) REFERENCES asignatura(id),
FOREIGN KEY (id_curso_escolar) REFERENCES curso_escolar(id)
);

Llenado de la base de datos


Para tabla departamentos
INSERT INTO `universidad`.`departamento` (`id`, `nombre`) VALUES
('1', 'Licenciatura');
INSERT INTO `universidad`.`departamento` (`id`, `nombre`) VALUES
('2', 'Posgrado');

Para tabla persona


INSERT INTO `universidad`.`persona` (`id`, `nif`, `nombre`,
`apellido1`, `apellido2`, `ciudad`, `direccion`, `telefono`,
`fecha_nacimiento`, `sexo`, `tipo`)
VALUES ('1', 'c-16', 'Aya ', 'Velazquez', 'Nieto', 'CDMX', 'CALLE
AGUSTIN LARA NO. 69-B', '5618 2233', '1989-03-04', 'M',
'profesor');

INSERT INTO `universidad`.`persona` (`id`, `nif`, `nombre`,


`apellido1`, `apellido2`, `ciudad`, `direccion`, `telefono`,
`fecha_nacimiento`, `sexo`, `tipo`)
VALUES ('2', 'c-7', 'Juan ', 'Miguel ', 'Barba', 'Puebla ', 'CALLE
ZARAGOZA NO. 1010', '2236 9568', '1967-06-09', 'H', 'alumno');

INSERT INTO `universidad`.`persona` (`id`, `nif`, `nombre`,


`apellido1`, `apellido2`, `ciudad`, `direccion`, `telefono`,
`fecha_nacimiento`, `sexo`, `tipo`)
VALUES ('3', 'c-8', 'Roberto ', 'Carlos ', 'Portela', 'Guadalajara
', ' BLVD. BENITO JUAREZ NO. 1466-A', '5263 5859', '1994-08-
10', 'H', 'alumno');
INSERT INTO `universidad`.`persona` (`id`, `nif`, `nombre`,
`apellido1`, `apellido2`, `ciudad`, `direccion`, `telefono`,
`fecha_nacimiento`, `sexo`, `tipo`)
VALUES ('4', 'c-5', 'Oscar ', 'Cespedes', 'Cabrera', 'CDMX', 'AV.
5 DE MAYO NO 1100-A', '2236 5987', '1981-05-18', 'H', 'profesor');

INSERT INTO `universidad`.`persona` (`id`, `nif`, `nombre`,


`apellido1`, `apellido2`, `ciudad`, `direccion`, `telefono`,
`fecha_nacimiento`, `sexo`, `tipo`)
VALUES ('5', 'c-1', 'Maria ', 'Juana ', 'Singh', 'CDMX', 'AV. 5
DE MAYO NO 1253', '5411 2659', '1977-03-06', 'M', 'alumno');

Para tabla profesor


INSERT INTO `universidad`.`profesor` (`id_profesor`,
`id_departamento`) VALUES ('1', '2');
INSERT INTO `universidad`.`profesor` (`id_profesor`,
`id_departamento`) VALUES ('4', '1');

Para tabla grado


INSERT INTO `universidad`.`grado` (`id`, `nombre`) VALUES ('2',
'Segundo semestre');
INSERT INTO `universidad`.`grado` (`id`, `nombre`) VALUES ('3',
'Tercer semestre');
INSERT INTO `universidad`.`grado` (`id`, `nombre`) VALUES ('5',
'Sexto semestre');

Para tabla asignatura


INSERT INTO `universidad`.`asignatura` (`id`, `nombre`,
`creditos`, `tipo`, `curso`, `cuatrimestre`, `id_profesor`,
`id_grado`) VALUES ('1', 'Análisis Matemático', '5',
'obligatoria', '1', '5', '1', '5');

INSERT INTO `universidad`.`asignatura` (`id`, `nombre`,


`creditos`, `tipo`, `curso`, `cuatrimestre`, `id_profesor`,
`id_grado`) VALUES ('2', 'Sistemas Digitales', '4', 'obligatoria',
'1', '5', '4', '5');

INSERT INTO `universidad`.`asignatura` (`id`, `nombre`,


`creditos`, `tipo`, `curso`, `cuatrimestre`, `id_profesor`,
`id_grado`) VALUES ('3', 'Introducción a la Programación', '5',
'obligatoria', '1', '3', '4', '3');

INSERT INTO `universidad`.`asignatura` (`id`, `nombre`,


`creditos`, `tipo`, `curso`, `cuatrimestre`, `id_profesor`,
`id_grado`) VALUES ('4', 'Álgebra', '3', 'básica', '1', '2', '1',
'2');

INSERT INTO `universidad`.`asignatura` (`id`, `nombre`,


`creditos`, `tipo`, `curso`, `cuatrimestre`, `id_profesor`,
`id_grado`) VALUES ('5', 'Análisis Matemático', '4', 'optativa',
'1', '3', '1', '3');

Para tabla curso_escolar


INSERT INTO `universidad`.`curso_escolar` (`id`, `anyo_inicio`,
`anyo_fin`) VALUES ('1', 2019, 2020);
INSERT INTO `universidad`.`curso_escolar` (`id`, `anyo_inicio`,
`anyo_fin`) VALUES ('2', 2020, 2021);
INSERT INTO `universidad`.`curso_escolar` (`id`, `anyo_inicio`,
`anyo_fin`) VALUES ('3', 2021, 2022);
INSERT INTO `universidad`.`curso_escolar` (`id`, `anyo_inicio`,
`anyo_fin`) VALUES ('4', 2022, 2023);

Para tabla alumno_se_matricula_asignatura


INSERT INTO `universidad`.`alumno_se_matricula_asignatura`
(`id_alumno`, `id_asignatura`, `id_curso_escolar`) VALUES ('2',
'5', '3');
INSERT INTO `universidad`.`alumno_se_matricula_asignatura`
(`id_alumno`, `id_asignatura`, `id_curso_escolar`) VALUES ('3',
'2', '3');
INSERT INTO `universidad`.`alumno_se_matricula_asignatura`
(`id_alumno`, `id_asignatura`, `id_curso_escolar`) VALUES ('5',
'1', '3');
CONCLUSIONES
Al terminar la segunda etapa del proyecto integrador podemos empezar a darnos
cuenta del proceso por el cual pasa una base de datos. Desde su planeación, su
creación y su llenado para lograr crear un sistema en el cual una organización se va a
poder hacer un uso adecuado y eficiente de su información. En la etapa uno hicimos
uso de la tabla Entidad-Relación, en la cual podemos definir nuestras tablas y campos
para tener una mejor planeación de nuestra base. Luego, en la etapa dos procedimos
a crear nuestra base de acuerdo a lo visto en la etapa uno, continuando con el llenado
con información de prueba. El proyecto continuara en la etapa tres donde se
realizarán consultas, creando vistas y procedimiento. Obteniendo así las habilidades
necesarias para poder manejar de buena manera las bases de datos, que en la
actualidad son de suma importancia al usarse ampliamente en el campo laboral.

REFERENCIAS
Beynon, P. (2014). Sistemas de Bases de Datos [Versión electrónica]. Recuperado de
https://elibro.net/es/lc/uvm/titulos/46796
MySQL (2020). MySQL 8.0 Reference Manual [Sitio Web]. Recuperado de
https://dev.mysql.com/doc/refman/8.0/en/information-schema.html
Sánchez, J. (2020). Ejercicios. Realización de consultas SQL [Sitio Web]. Recuperado
de https://josejuansanchez.org/bd/ejercicios-consultas-sql/index.html#datos-1
Beynon, P. (2014). Sistemas de Bases de Datos [Versión electrónica]. Recuperado de
https://elibro.net/es/lc/uvm/titulos/46796

También podría gustarte