Subido por ichaparroc

Proyecto 1 Parque Jurásico

Anuncio
UNIVERSIDAD NACIONAL JORGE BASADRE
GROHMANN
Escuela Profesional de Ingeniería
en Informática y Sistemas
Integrantes
:
➢ Jampier Smith Vasquez Mija 2018-119070
➢ Patrick Peralta Villegas
2018-119066
➢ Luis Padilla Bacas
2018-119065
Docentes
:
➢ Ing. Oliver Santana
➢ Ing. Israel Chaparro
Curso
:
Base de Datos II
Tarea encargada
:
Sistema para Parque Recreacional
Ciclo
:
6to Ciclo
Año de estudios
:
3er año
TACNA - PERÚ
2020
Sistema para Parque Recreacional
1.
Objetivo del proyecto:
Brindar un sistema que dé soporte al Parque Recreacional Jurásico, con la
finalidad de solucionar los problemas que se mencionan en función a las
necesidades que hayan y mejorar aspectos que también necesiten mejoras o
algún agregado.
2.
Ventajas de la solución propuesta:
El sistema ofrecerá un mejor desempeño y control en las actividades que se
realicen, con la información que se recolecte seguir contribuyendo a la mejora
del parque jurásico, con la finalidad de brindar un mejor servicio a los clientes,
obtener un buen reconocimiento y las ganancias correspondientes.
3.
Metodología de trabajo:
4.
Alcance del trabajo:
Sistema Informático de control y reportes para la empresa Jurasic Park S.A.
5.
Requerimientos funcionales:
-
Reporte del listado con las visitas que haya reservadas para el día
siguiente, de manera de que la misma sepa a quienes debe dejar entrar
y cuanto cobrarles.
-
El listado debe contener
(para cada reserva del día pedido):
-
Número de reserva de visita, Hora, Código de la escuela, Nombre
de la escuela,
y por cada tipo de visita de la reserva:
-
Código de tipo de visita, Descripción de tipo de visita, Arancel por
alumno del tipo de visita, Cantidad de alumnos y grado(s).
-
También debe informar la cantidad real de ingresantes que fueron por
cada reserva.
-
Se debe entregar todos los días un listado con las visitas reservadas
para el día siguiente para el Supervisor de Guías, cuando el mismo lo
solicite. El supervisor debe, en base al listado, asignar las distintas
visitas a su personal a cargo.
-
El listado debe contener (para cada visita del día pedido): Número de
reserva de visita, Hora, Código de la escuela, Nombre de la escuela, y
por cada tipo de visita de la reserva: Código de tipo de visita, Descripción
de tipo de visita, grado(s).
-
Al final del día el supervisor informa los guías que se encargaron de cada
tipo de visita en cada reserva.
-
El gerente del área desea poder pedir, en cualquier momento, un listado
con la cantidad de alumnos (reales) que ingresaron. Dicha información
debe salir discriminada día por día para el periodo de tiempo que él
determine, y por cada día discriminado por tipo de visita. Y otro listado
donde pueda observar qué cantidad de cada uno de los grados
reservaron, entre dos fechas a determinar, cada una de los tipos de
visitas que existen.
-
El sistema debe permitir, además, permitir que el responsable de
Recepción de reservas, consulte quienes fueron los guías (Código de
guía, y Nombre de guía), que participaron en una reserva específica,
teniendo identificado cuál fue el guía responsable por cada tipo de visita
de la misma, ya que puede existir una queja de alguna escuela.
-
6.
7.
Además se desea poder realizar un mailing, con Nombre, Domicilio y
Teléfono(s), de todas las escuelas que alguna vez realizaron una
reserva”.
Requerimientos no funcionales:
-
La empresa tiene un área (VISITAS PREHISTÓRICAS) que se
encarga de ofrecer visitas guiadas para escuelas.
-
El área Visitas Prehistóricas vende a las escuelas visitas guiadas al
parque para sus alumnos.
-
Las escuelas realizan reservas telefónicas de las visitas que van a
realizar, y se les cobra el día que realizan la visita, en el momento de
ingresar (según los tipos de visitas que realicen)
-
Las escuelas en el momento de realizar la reserva informan, día, hora,
tipos de visitas, cantidad de alumnos por visita
-
Pueden en una misma reserva contratar distintos tipos de visitas, para
distintos grados de la escuela.
-
Pueden en una misma reserva contratar distintos tipos de visitas, para
distintos grados de la escuela.
Cronograma de trabajo:
8.
Equipo de trabajo:
-
9.
Jampier Smith Vásquez Mija (Analista de Sistemas)
Luis Benito Padilla (Elicitador de Requerimientos y Requisitos)
Patrick Villegas Peralta (Programador SQL y Base de Datos)
Forma de pago y propuesta económica:
Los pagos se harán por. Objetivos de entregables, mediante efectivo o
transferencia bancaria del BCP 5409889--xxxa la empresa de
desarrolladores.
Entregables:
1.
Diseño conceptual (entidades):
2.
Diseño lógico aplicando el modelo entidad relación:
3.
Diccionario de datos:
Mapa de tablas
TABLA DE ESCUELA
Descripción
Nombre de la Tabla
escuela
Descripción de la Tabla
Contiene información respecto a la escuela, que es
considerada como una entidad cliente, la cual hace una reserva
en el parque recreacional.
Objetivo
Almacenar la información respecto a la escuela para futuras
reservas del parque recreacional.
Relaciones
Tiene relación con la tabla: reserva, telefono, email_escuela y
distrito_escolar.
Índices de búsqueda
Los Índices de búsqueda son los campos:
Nº
Nombre de
Campo
Tipo
Dato
Valor
Nulo
Valo
r
PK
FK
Descripción del Campo
1
codigo_esc
uela
int
No
-
Si
No
Identifica el código de la
escuela
2
codigo_distr
ito_escolar
int
No
-
No
Si
Identifica el código del distrito
3
nombre_es
cuela
varchar
(45)
No
-
No
No
Indica el nombre de la
escuela
4
calle_escue
la
varchar
(45)
No
-
No
No
Indica la calle de donde se
encuentra la escuela
5
altura_escu
ela
varchar
(45)
No
-
No
No
Identifica a qué altura está la
escuela
TABLA TELEFONO
Descripción
Nombre de la Tabla
telefono
Descripción de la Tabla
Contiene información respecto al o los teléfono(s) que pueda
tener la escuela.
Objetivo
Almacenar la información respecto al o los teléfono(s) de la
escuela para que pueda haber un medio de comunicación en
que caso haya algo que se necesite coordinar o atender alguna
consulta.
Relaciones
Tiene relación con la tabla: escuela
Índices de búsqueda
Los Índices de búsqueda son los campos:
Nº
Nombre de
Campo
Tipo
Dato
Valor
Nulo
Valo
r
PK
FK
Descripción del Campo
1
codigo_telef
ono
int
No
-
Si
No
Identifica el código de teléfono
2
telefono
varchar
(12)
No
-
No
No
Indica el teléfono
3
codigo_esc
uela
int
No
-
No
Si
Identifica el código de la
escuela
TABLA EMAIL_ESCUELA
Descripción
Nombre de la Tabla
email_escuela
Descripción de la Tabla
Contiene información respecto al o los correo(s) electrónico(s)
que pueda tener la escuela.
Objetivo
Almacenar la información respecto al o los correo(s)
electrónicos(s) de la escuela para que pueda haber un medio
de comunicación en que caso haya algo que se necesite
coordinar o atender alguna consulta.
Relaciones
Tiene relación con la tabla: escuela
Índices de búsqueda
Los Índices de búsqueda son los campos:
Nº
Nombre de
Campo
Tipo
Dato
Valor
Nulo
Valo
r
PK
FK
Descripción del Campo
1
id_email_es
cuela
int
No
-
Si
No
Identifica el código de email
2
email
varchar
(100)
No
-
No
No
Indica el email
3
codigo_esc
uela
int
No
-
No
Si
Identifica el código de la
escuela
TABLA DISTRITO_ESCOLAR
Descripción
Nombre de la Tabla
distrito_escolar
Descripción de la Tabla
Contiene información respecto a los distritos que existen en tal
lugar.
Objetivo
Almacenar la información de los distritos que hayan, para poder
relacionarlas con las escuelas, y saber a donde pertenecen
estas.
Relaciones
Tiene relación con la tabla: escuela
Índices de búsqueda
Los Índices de búsqueda son los campos:
Nº
Nombre de
Campo
Tipo
Dato
Valor
Nulo
Valo
r
PK
FK
Descripción del Campo
1
codigo_distr
ito_escolar
int
No
-
Si
No
Identifica el código del distrito
2
distrito_esc
olar
varchar
(70)
No
-
No
No
Indica el distrito
TABLA RESERVA
Descripción
Nombre de la Tabla
reserva
Descripción de la Tabla
Contiene información respecto a la reserva hecha por la
escuela.
Objetivo
Almacenar la información más relevante de la reserva.
Relaciones
Tiene relación con la tabla: escuela, reserva_tipo_visita y
reserva_por_grado
Índices de búsqueda
Los Índices de búsqueda son los campos:
TABLA TIPO VISITA
Descripción
Nombre de la Tabla
tipo_visita
Descripción de la Tabla
Contiene información respecto a la descripción del tipo de
visita.
Objetivo
Almacenar la información respecto a la descripción del tipo de
visita.
Relaciones
Tiene relación con la tabla: escuela, reserva_tipo_visita y
reserva_por_grado.
Índices de búsqueda
Los Índices de búsqueda son los campos:
TABLA RESERVA_TIPO_VISITA
Descripción
Nombre de la Tabla
reserva_tipo_visita
Descripción de la Tabla
Contiene información respecto a detalles de la reserva.
Objetivo
Almacenar la información respecto a los detalles de la reserva,
para poder hacer las preparaciones necesarias para realizar la
reserva o satisfacer cualquier duda referente a ello..
Relaciones
Tiene relación con la tabla: reserva, tipo_visita y guia.
Índices de búsqueda
Los Índices de búsqueda son los campos:
TABLA RESERVA_POR_GRADO
Descripción
Nombre de la Tabla
reserva_por_grado
Descripción de la Tabla
Contiene información respecto al grado de la escuela que hizo
la reserva.
Objetivo
Almacenar la información respecto al grado correspondiente a
la escuela que realizó la reserva..
Relaciones
Tiene relación con la tabla: reserva y tipo_visita.
Índices de búsqueda
Los Índices de búsqueda son los campos:
TABLA GUIA
Descripción
4.
Nombre de la Tabla
guia
Descripción de la Tabla
Contiene los datos personales del guía.
Objetivo
Almacenar la información respecto al guía que sirve para poder
identificarlo, relacionarlo con las reservas y saber cuales
atendió.
Relaciones
Tiene relación con la tabla: reserva_tipo_visita
Índices de búsqueda
Los Índices de búsqueda son los campos:
Arquitectura del sistema (plataforma):
El sistema se hará vía web. Se comprará dominio y hosting para
almacenamiento y gestor de base de datos phyadmin incluido en hosting Go
Daddy.
5.
Requerimientos de hardware y software mínimos:
El sistema Web funcionará en cualquier dispositivo conectado a Internet.
Como Computadora, laptop, tablet y/o móvil.
6.
Codigo sql
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='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,N
O_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';
-- ------------------------------------------------------ Schema mydb
-- ------------------------------------------------------ Schema jurassicpark
-- ----------------------------------------------------CREATE SCHEMA IF NOT EXISTS `jurassicpark` DEFAULT CHARACTER SET utf8 ;
USE `jurassicpark` ;
-- ------------------------------------------------------ Table `jurassicpark`.`distrito_escolar`
-- ----------------------------------------------------CREATE TABLE IF NOT EXISTS `jurassicpark`.`distrito_escolar` (
`codigo_distrito_escolar` INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`codigo_distrito_escolar`))
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;
-- ------------------------------------------------------ Table `jurassicpark`.`escuela`
-- ----------------------------------------------------CREATE TABLE IF NOT EXISTS `jurassicpark`.`escuela` (
`codigo_escuela` INT NOT NULL AUTO_INCREMENT,
`distrito_escolar_codigo_distrito_escolar` INT NOT NULL,
`nombre_escuela` VARCHAR(45) NOT NULL,
`calle_escuela` VARCHAR(45) NOT NULL,
`altura_escuela` VARCHAR(45) NOT NULL,
PRIMARY KEY (`codigo_escuela`, `distrito_escolar_codigo_distrito_escolar`),
INDEX `fk_ESCUELA_distrito_escolarl_idx` (`distrito_escolar_codigo_distrito_escolar` ASC)
VISIBLE,
CONSTRAINT `fk_ESCUELA_distrito_escolarl`
FOREIGN KEY (`distrito_escolar_codigo_distrito_escolar`)
REFERENCES `jurassicpark`.`distrito_escolar` (`codigo_distrito_escolar`))
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;
-- ------------------------------------------------------ Table `jurassicpark`.`email_escuela`
-- ----------------------------------------------------CREATE TABLE IF NOT EXISTS `jurassicpark`.`email_escuela` (
`id email_escuela` INT NOT NULL AUTO_INCREMENT,
`email` VARCHAR(100) NOT NULL,
`ESCUELA_codigo_escuela` INT NOT NULL,
`ESCUELA_distrito_escolar_codigo_distrito_escolar` INT NOT NULL,
PRIMARY KEY (`id email_escuela`, `ESCUELA_codigo_escuela`,
`ESCUELA_distrito_escolar_codigo_distrito_escolar`),
INDEX `fk_email_escuela_ESCUELA1_idx` (`ESCUELA_codigo_escuela` ASC,
`ESCUELA_distrito_escolar_codigo_distrito_escolar` ASC) VISIBLE,
CONSTRAINT `fk_email_escuela_ESCUELA1`
FOREIGN KEY (`ESCUELA_codigo_escuela` ,
`ESCUELA_distrito_escolar_codigo_distrito_escolar`)
REFERENCES `jurassicpark`.`escuela` (`codigo_escuela` ,
`distrito_escolar_codigo_distrito_escolar`))
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;
-- ------------------------------------------------------ Table `jurassicpark`.`guia`
-- ----------------------------------------------------CREATE TABLE IF NOT EXISTS `jurassicpark`.`guia` (
`codigo_guia` INT NOT NULL AUTO_INCREMENT,
`nombre_guia` VARCHAR(45) NOT NULL,
`apellido_guia` VARCHAR(45) NOT NULL,
`sueldo_hora` DECIMAL(10,0) NOT NULL,
`domicilio` VARCHAR(90) NOT NULL,
PRIMARY KEY (`codigo_guia`))
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;
-- ------------------------------------------------------ Table `jurassicpark`.`reserva`
-- ----------------------------------------------------CREATE TABLE IF NOT EXISTS `jurassicpark`.`reserva` (
`numero_reserva` INT NOT NULL AUTO_INCREMENT,
`fecha_visita` DATETIME NOT NULL,
`hora_visita` TIME NOT NULL,
`ESCUELA_codigo_escuela` INT NOT NULL,
PRIMARY KEY (`numero_reserva`, `ESCUELA_codigo_escuela`),
INDEX `fk_RESERVA_codigo_escuela1_idx` (`ESCUELA_codigo_escuela` ASC) VISIBLE,
CONSTRAINT `fk_RESERVA_codigo_escuela1`
FOREIGN KEY (`ESCUELA_codigo_escuela`)
REFERENCES `jurassicpark`.`escuela` (`codigo_escuela`))
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;
-- ------------------------------------------------------ Table `jurassicpark`.`tipo_visita`
-- ----------------------------------------------------CREATE TABLE IF NOT EXISTS `jurassicpark`.`tipo_visita` (
`codigo_tipo_visita` INT NOT NULL AUTO_INCREMENT,
`descripcion_tipo_visita` VARCHAR(120) NOT NULL,
`arancel_por_alumno` DECIMAL(5,2) NOT NULL,
`ESCUELA_codigo_escuela` INT NOT NULL,
PRIMARY KEY (`codigo_tipo_visita`, `ESCUELA_codigo_escuela`),
INDEX `fk_TIPO_VISITA_ESCUELA1_idx` (`ESCUELA_codigo_escuela` ASC) VISIBLE,
CONSTRAINT `fk_TIPO_VISITA_ESCUELA1`
FOREIGN KEY (`ESCUELA_codigo_escuela`)
REFERENCES `jurassicpark`.`escuela` (`codigo_escuela`))
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;
-- ------------------------------------------------------ Table `jurassicpark`.`reserva_por_grado`
-- ----------------------------------------------------CREATE TABLE IF NOT EXISTS `jurassicpark`.`reserva_por_grado` (
`grado` VARCHAR(10) NOT NULL,
`RESERVA_numero_reserva` INT NOT NULL,
`TIPO_VISITA_codigo_tipo_visita` INT NOT NULL,
`TIPO_VISITA_ESCUELA_codigo_escuela` INT NOT NULL,
PRIMARY KEY (`grado`, `RESERVA_numero_reserva`, `TIPO_VISITA_codigo_tipo_visita`,
`TIPO_VISITA_ESCUELA_codigo_escuela`),
INDEX `fk_RESERVA_POR_GRADO_RESERVAl_idx` (`RESERVA_numero_reserva`
ASC) VISIBLE,
INDEX `fk_RESERVA_POR_GRADO_TIPO_VISITAl_idx`
(`TIPO_VISITA_codigo_tipo_visita` ASC, `TIPO_VISITA_ESCUELA_codigo_escuela` ASC)
VISIBLE,
CONSTRAINT `fk_RESERVA_POR_GRADO_RESERVA1`
FOREIGN KEY (`RESERVA_numero_reserva`)
REFERENCES `jurassicpark`.`reserva` (`numero_reserva`),
CONSTRAINT `fk_RESERVA_POR_GRADO_TIPO_VISITA1`
FOREIGN KEY (`TIPO_VISITA_codigo_tipo_visita` ,
`TIPO_VISITA_ESCUELA_codigo_escuela`)
REFERENCES `jurassicpark`.`tipo_visita` (`codigo_tipo_visita` ,
`ESCUELA_codigo_escuela`))
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;
-- ------------------------------------------------------ Table `jurassicpark`.`reserva_tipo_visita`
-- ----------------------------------------------------CREATE TABLE IF NOT EXISTS `jurassicpark`.`reserva_tipo_visita` (
`TIPO_VISITA_codigo_tipo_visita` INT NOT NULL,
`RESERVA_numero_reserva` INT NOT NULL,
`GUIA_codigo_guia` INT NOT NULL,
`cantidad_alumnos_reservados` INT NOT NULL,
`cantidad_alumnos_reales` INT NOT NULL,
PRIMARY KEY (`TIPO_VISITA_codigo_tipo_visita`, `RESERVA_numero_reserva`),
INDEX `fk_RESERVA_TIPO_VISITA_numero_reserva1_idx` (`RESERVA_numero_reserva`
ASC) VISIBLE,
INDEX `fk_TIPO_VISITA_has_RESERVA_TIPO_VISITA_idx`
(`TIPO_VISITA_codigo_tipo_visita` ASC) VISIBLE,
INDEX `fk_RESERVA_TIPO_VISITA_GUIA1_idx` (`GUIA_codigo_guia` ASC) VISIBLE,
CONSTRAINT `fk_RESERVA_TIPO_VISITA_GUIA1`
FOREIGN KEY (`GUIA_codigo_guia`)
REFERENCES `jurassicpark`.`guia` (`codigo_guia`),
CONSTRAINT `fk_RESERVA_TIPO_VISITA_numero_reserva1`
FOREIGN KEY (`RESERVA_numero_reserva`)
REFERENCES `jurassicpark`.`reserva` (`numero_reserva`),
CONSTRAINT `fk_TIPO_VISITA_has_RESERVA_TIPO_VISITA`
FOREIGN KEY (`TIPO_VISITA_codigo_tipo_visita`)
REFERENCES `jurassicpark`.`tipo_visita` (`codigo_tipo_visita`))
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;
-- ------------------------------------------------------ Table `jurassicpark`.`telefono`
-- ----------------------------------------------------CREATE TABLE IF NOT EXISTS `jurassicpark`.`telefono` (
`codigo_telefono` INT NOT NULL AUTO_INCREMENT,
`telefono` VARCHAR(12) NULL DEFAULT NULL,
`ESCUELA_codigo_escuela` INT NOT NULL,
PRIMARY KEY (`codigo_telefono`),
INDEX `fk_telefono_codigo_escuela1_idx` (`ESCUELA_codigo_escuela` ASC) VISIBLE,
CONSTRAINT `fk_telefono_codigo_escuela1`
FOREIGN KEY (`ESCUELA_codigo_escuela`)
REFERENCES `jurassicpark`.`escuela` (`codigo_escuela`))
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;
SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
Descargar