Está en la página 1de 7

Universidad Estatal a Distancia

Escuela de Ciencias Exactas y Naturales

Bachillerato en Ingeniería de Software

Cátedra: Ingeniería de Software

Curso de Bases de Datos

Código 00826

Proyecto 1

Modelo relacional y Script de Base de Datos para Call Center

José Roberto Saborío Orozco

113980269

Tercer Cuatrimestre

Año 2019
Introducción
El presente documento pretende introducir los conceptos básicos en la construcción de
bases de datos relacionales por medio de MySQL. ​De la misma forma, pretende
familiarizar al autor con la herramienta, así como con el MySQL Workbench. Este
trabajo es meramente introductorio, por lo que no se extiende a la elaboración propia
del Script en MySQL, sino a la generación del mismo, una vez creado el modelo
relacional, a partir de la herramienta.

Este documento consta de las siguientes partes:

● Esta presente introducción como antesala a los contenidos primordiales del


documento.
● Un desarrollo dividido en dos partes. En la primera, se genera el modelo
relacional a partir de la herramienta MySQL Workbench, mientras que en la
segunda se adjunta el script producido en cuestión.
● Una serie de conclusiones producto del análisis al ejecutar dichos
procedimientos.
Desarrollo
Parte 1. Elaboración del modelo relacional

Parte 2. Script generado por el ​Forward Engineering ​de Mysql


Workbench

-- MySQL Workbench Forward Engineering

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,NO
_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';

-- -----------------------------------------------------
-- Schema CallCenter
-- -----------------------------------------------------

-- -----------------------------------------------------
-- Schema CallCenter
-- -----------------------------------------------------
CREATE SCHEMA IF NOT EXISTS `CallCenter` DEFAULT CHARACTER SET utf8 ;
USE `CallCenter` ;

-- -----------------------------------------------------
-- Table `CallCenter`.`Tipo`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `CallCenter`.`Tipo` (
`tipo_Codigo` INT NOT NULL AUTO_INCREMENT,
`tipo_Nombre` VARCHAR(45) NOT NULL,
PRIMARY KEY (`tipo_Codigo`))
ENGINE = InnoDB;

-- -----------------------------------------------------
-- Table `CallCenter`.`EstadoAgente`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `CallCenter`.`EstadoAgente` (
`estado_Codigo` INT NOT NULL AUTO_INCREMENT,
`estado_Nombre` VARCHAR(45) NOT NULL,
PRIMARY KEY (`estado_Codigo`))
ENGINE = InnoDB;

-- -----------------------------------------------------
-- Table `CallCenter`.`Agente`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `CallCenter`.`Agente` (
`agente_Codigo` INT NOT NULL,
`agente_Nombre` VARCHAR(45) NOT NULL,
`agente_Usuario` VARCHAR(45) NOT NULL,
`agente_Ext` INT NOT NULL,
`agente_Estado` INT NOT NULL,
`agente_Nac` DATE NOT NULL,
`agente_Salario` DECIMAL NOT NULL,
`agente_Puesto` VARCHAR(45) NOT NULL,
PRIMARY KEY (`agente_Codigo`),
INDEX `agente_Estado_idx` (`agente_Estado` ASC) VISIBLE,
CONSTRAINT `agente_Estado`
FOREIGN KEY (`agente_Estado`)
REFERENCES `CallCenter`.`EstadoAgente` (`estado_Codigo`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;

-- -----------------------------------------------------
-- Table `CallCenter`.`EstadoCaso`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `CallCenter`.`EstadoCaso` (
`estado_Codigo` INT NOT NULL,
`estado_Nombre` VARCHAR(45) NOT NULL,
PRIMARY KEY (`estado_Codigo`))
ENGINE = InnoDB;

-- -----------------------------------------------------
-- Table `CallCenter`.`Caso`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `CallCenter`.`Caso` (
`caso_Codigo` INT NOT NULL AUTO_INCREMENT,
`caso_FechaOpen` DATETIME NOT NULL,
`caso_Agente` INT NOT NULL,
`caso_Tipo` INT NOT NULL,
`caso_Desc` VARCHAR(100) NOT NULL,
`caso_Estado` INT NOT NULL,
`caso_FechaClose` DATETIME NOT NULL,
PRIMARY KEY (`caso_Codigo`),
INDEX `caso_Agente_idx` (`caso_Agente` ASC) VISIBLE,
INDEX `caso_Tipo_idx` (`caso_Tipo` ASC) VISIBLE,
INDEX `casp_Estado_idx` (`caso_Estado` ASC) VISIBLE,
CONSTRAINT `caso_Agente`
FOREIGN KEY (`caso_Agente`)
REFERENCES `CallCenter`.`Agente` (`agente_Codigo`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `caso_Tipo`
FOREIGN KEY (`caso_Tipo`)
REFERENCES `CallCenter`.`Tipo` (`tipo_Codigo`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `caso_Estado`
FOREIGN KEY (`caso_Estado`)
REFERENCES `CallCenter`.`EstadoCaso` (`estado_Codigo`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;

-- -----------------------------------------------------
-- Table `CallCenter`.`SubCaso`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `CallCenter`.`SubCaso` (
`caso_Codigo` INT NOT NULL,
`subcaso_Codigo` INT NOT NULL,
`subcaso_Desc` VARCHAR(100) NOT NULL,
`subcaso_Tipo` INT NOT NULL,
`subcaso_FechaClose` DATETIME NOT NULL,
PRIMARY KEY (`caso_Codigo`, `subcaso_Codigo`),
INDEX `subcaso_Tipo_idx` (`subcaso_Tipo` ASC) VISIBLE,
CONSTRAINT `caso_Codigo`
FOREIGN KEY (`caso_Codigo`)
REFERENCES `CallCenter`.`Caso` (`caso_Codigo`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `subcaso_Tipo`
FOREIGN KEY (`subcaso_Tipo`)
REFERENCES `CallCenter`.`Tipo` (`tipo_Codigo`)
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;
Conclusiones
De forma puntual se encontraron las siguientes conclusiones:
● La estandarización de las bases de datos relaciones permite que hoy en día se
puedan generar desde la formulación pura de su diagrama.
● La generación de scripts permite replicar las bases de datos en cualquier
momento y en cualquier lugar sin necesidad de reprogramarlas, lo que acelera
los procesos de respaldo y reproducción de información.
● La intuitividad de los procedimientos permite que, actualmente, cualquier
persona con un conocimiento bajo o medio en el uso de computadores pueda
crear su propia base de datos, disminuyendo la brecha digital y aumentando las
posibilidades para un sin fin de proyectos.

También podría gustarte