crear base de datos con mysql workbench

Upload: syco2001

Post on 05-Jul-2018

245 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/16/2019 Crear Base de Datos Con Mysql Workbench

    1/18

    CURSO DE BASE DE DATOS AVANZADA 301125A_289MOMENTO INTERMEDIO - FASE 2DESARROLLO DE LA PARTE INDIVIDUALRODRIGO BURITICA PAREDES CC 94472151CEAD PALMIRAGRUPO COLABORATIVO 301125_7

    PUNTO 1 - RESPUESTA A PREGUNTAS ORIENTADORAS

    Pregunta 1. Qué es SQL y cuáles son sus principales componentes.

    El Structured Query Language o simplemente SQL, es un lenguaje estándar quepermite crear y manejar bases de datos relacionales. Pueden crearse "pequeños"programas en él, como los Scripts o los Procedimientos Almacenados, que luegopueden ser utilizados desde java, por ejemplo, o simplemente escribirse yejecutarse líneas de SQL desde una consola para manipular la base de datos.

    El SQL se compone principalmente de sentencias de Definición (aquellas con las

    que se crea, elimina o se modifica la estructura de una base de datos), sentenciasde Manipulación (con las que se ingresan, modifican, consultan o eliminan datos,etc.) y sentencias de Control (aquellas con las que se controlan permisos,concurrencias, etc.)

    Pregunta 2. Que es una llave foránea y cual su utilidad.

    Una llave o clave foránea es un campo de una tabla que es llave primaria en otratabla, es decir, los datos que se ingresen en ese campo, deben existir en la tablade la cual tiene dependencia ese campo, en el campo llave primaria de aquella.

    Esto permitirá relacionar los datos de una tabla con los de otra.

    Pregunta 3. Que puede pasar si no se define adecuadamente la integridadreferencial.

    La integridad referencial permite controlar que los datos que recibe una llaveforánea efectivamente sean datos existentes en la llave primaria de la tabla de la

  • 8/16/2019 Crear Base de Datos Con Mysql Workbench

    2/18

    cual es dependiente. De no definirse la integridad referencial, la relación puedepermitir datos erróneos.

    Pregunta 4 Que es una llave candidata y de un ejemplo.

    Una llave candidata es un campo que cumple con características de la llaveprimaria, como es el hecho de ser único. Por ejemplo -no sé si aún es así- enUnivalle los estudiantes tenían un código el cual los identificaba, siendo élseguramente la llave primaria en la entidad o tabla de estudiantes, pero cada unoigualmente tendría número de identificación personal (cédula, tarjeta de identidad,etc.) el cual perfectamente podría ser también la llave primaria.

    Pregunta 5 Cuáles son las operaciones que se hacen con DDL

    El Lenguaje de Definición de Datos (DDL) es el que se utiliza para crear, modificary eliminar tablas, principalmente. Las operaciones básicas son:

    CREATE, crear tablas

    ALTER, modificar estructura de las tablasDROP, eliminar tablas

    Pregunta 6 Que operaciones se realizan con DML

    El Lenguaje de Manipulación de Datos (DML) es el que se utiliza para manipularlos datos dentro de las tablas. Sus operaciones básicas son:

    SELECT, consultar datos en una tablaUPDATE, actualizar datos en las tablas

    INSERT, insertar datos en las tablasDELETE, borrar datos en las tablas

  • 8/16/2019 Crear Base de Datos Con Mysql Workbench

    3/18

    PUNTO 2 - CREACION DE LA BASE DE DATOS

    Iniciamos el servidor xampp

    Entramos a MySQL Workbench y creamos el nuevo modelorburiticap_aeropuerto

  • 8/16/2019 Crear Base de Datos Con Mysql Workbench

    4/18

    Comenzamos a crear las tablas

  • 8/16/2019 Crear Base de Datos Con Mysql Workbench

    5/18

    Creamos las Llaves Foráneas para que se creen las relaciones

    Modelo terminado

  • 8/16/2019 Crear Base de Datos Con Mysql Workbench

    6/18

    Vamos a Exportar el Script de SQL

    Creamos el archivo para el Script

  • 8/16/2019 Crear Base de Datos Con Mysql Workbench

    7/18

    Vista previa del Script antes de exportarse

    Entramos a nuestra conexión mysqlxampp creada previamente hacia elservidor mysql del xampp

  • 8/16/2019 Crear Base de Datos Con Mysql Workbench

    8/18

    Abrimos el Script y lo ejecutamos

    En Schemas verificamos que la BD esté creada

  • 8/16/2019 Crear Base de Datos Con Mysql Workbench

    9/18

    CODIGO DEL SCRIPT DE SQL

    -- MySQL Script generated by MySQL Workbench-- 06/01/16 01:51:39-- Model: New Model Version: 1.0-- 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='TRADITIONAL,ALLOW_INVALID_DATES';

    -- ------------------------------------------------------- Schema rburiticap_aeropuerto-- -----------------------------------------------------DROP SCHEMA IF EXISTS `rburiticap_aeropuerto` ;

    -- ------------------------------------------------------- Schema rburiticap_aeropuerto

    -- -----------------------------------------------------CREATE SCHEMA IF NOT EXISTS `rburiticap_aeropuerto` DEFAULTCHARACTER SET utf8 ;USE `rburiticap_aeropuerto` ;

    -- ------------------------------------------------------- Table `rburiticap_aeropuerto`.`aeropuertos`-- -----------------------------------------------------DROP TABLE IF EXISTS `rburiticap_aeropuerto`.`aeropuertos` ;

    CREATE TABLE IF NOT EXISTS `rburiticap_aeropuerto`.`aeropuertos` (

    `cod_aeropuerto` INT NOT NULL,`descripcion` VARCHAR(100) NOT NULL,PRIMARY KEY (`cod_aeropuerto`))

    ENGINE = InnoDB;

    -- ------------------------------------------------------- Table `rburiticap_aeropuerto`.`genero`-- -----------------------------------------------------

  • 8/16/2019 Crear Base de Datos Con Mysql Workbench

    10/18

    DROP TABLE IF EXISTS `rburiticap_aeropuerto`.`genero` ;

    CREATE TABLE IF NOT EXISTS `rburiticap_aeropuerto`.`genero` (`id_genero` CHAR(1) NOT NULL,`descripcion` VARCHAR(9) NULL,PRIMARY KEY (`id_genero`))

    ENGINE = InnoDB;

    -- ------------------------------------------------------- Table `rburiticap_aeropuerto`.`tipo_documento`-- -----------------------------------------------------DROP TABLE IF EXISTS `rburiticap_aeropuerto`.`tipo_documento` ;

    CREATE TABLE IF NOT EXISTS `rburiticap_aeropuerto`.`tipo_documento` (`id_tipo_documento` CHAR(2) NOT NULL,`descripcion` VARCHAR(45) NULL,PRIMARY KEY (`id_tipo_documento`))

    ENGINE = InnoDB;

    -- ------------------------------------------------------- Table `rburiticap_aeropuerto`.`marca`-- -----------------------------------------------------DROP TABLE IF EXISTS `rburiticap_aeropuerto`.`marca` ;

    CREATE TABLE IF NOT EXISTS `rburiticap_aeropuerto`.`marca` (`id_marca` INT NOT NULL,`nom_marca` VARCHAR(45) NOT NULL,PRIMARY KEY (`id_marca`))

    ENGINE = InnoDB;

    -- ------------------------------------------------------- Table `rburiticap_aeropuerto`.`nacionalidad`-- -----------------------------------------------------DROP TABLE IF EXISTS `rburiticap_aeropuerto`.`nacionalidad` ;

    CREATE TABLE IF NOT EXISTS `rburiticap_aeropuerto`.`nacionalidad` (`id_nacionalidad` INT NOT NULL,

  • 8/16/2019 Crear Base de Datos Con Mysql Workbench

    11/18

      `nacionalidad` VARCHAR(45) NOT NULL,PRIMARY KEY (`id_nacionalidad`))

    ENGINE = InnoDB;

    -- ------------------------------------------------------- Table `rburiticap_aeropuerto`.`departamento`-- -----------------------------------------------------DROP TABLE IF EXISTS `rburiticap_aeropuerto`.`departamento` ;

    CREATE TABLE IF NOT EXISTS `rburiticap_aeropuerto`.`departamento` (`id_departamento` INT NOT NULL,`departamento` VARCHAR(45) NOT NULL,`id_nacionalidad` INT NOT NULL,PRIMARY KEY (`id_departamento`),CONSTRAINT `id_nacionalidad`FOREIGN KEY (`id_nacionalidad`)REFERENCES `rburiticap_aeropuerto`.`nacionalidad` (`id_nacionalidad`)ON DELETE NO ACTIONON UPDATE NO ACTION)

    ENGINE = InnoDBCOMMENT = ' ';

    CREATE INDEX `id_nacionalidad_idx` ON `rburiticap_aeropuerto`.`departamento`(`id_nacionalidad` ASC);

    -- ------------------------------------------------------- Table `rburiticap_aeropuerto`.`ciudad`-- -----------------------------------------------------DROP TABLE IF EXISTS `rburiticap_aeropuerto`.`ciudad` ;

    CREATE TABLE IF NOT EXISTS `rburiticap_aeropuerto`.`ciudad` (`id_ciudad` INT NOT NULL,`ciudad` VARCHAR(45) NOT NULL,`id_departamento` INT NOT NULL,`cod_aeropuerto` INT NOT NULL,PRIMARY KEY (`id_ciudad`),CONSTRAINT `cod_aeropuerto`FOREIGN KEY (`cod_aeropuerto`)

  • 8/16/2019 Crear Base de Datos Con Mysql Workbench

    12/18

      REFERENCES `rburiticap_aeropuerto`.`aeropuertos` (`cod_aeropuerto`)ON DELETE NO ACTIONON UPDATE NO ACTION,

    CONSTRAINT `id_departamento`FOREIGN KEY (`id_departamento`)REFERENCES `rburiticap_aeropuerto`.`departamento` (`id_departamento`)ON DELETE NO ACTIONON UPDATE NO ACTION)

    ENGINE = InnoDB;

    CREATE INDEX `cod_aeropuerto_idx` ON `rburiticap_aeropuerto`.`ciudad`(`cod_aeropuerto` ASC);

    CREATE INDEX `id_departamento_idx` ON `rburiticap_aeropuerto`.`ciudad`(`id_departamento` ASC);

    -- ------------------------------------------------------- Table `rburiticap_aeropuerto`.`personas`-- -----------------------------------------------------

    DROP TABLE IF EXISTS `rburiticap_aeropuerto`.`personas` ;

    CREATE TABLE IF NOT EXISTS `rburiticap_aeropuerto`.`personas` (`id_persona` INT NOT NULL,`doc_persona` VARCHAR(12) NOT NULL,`id_tipo_documento` CHAR(2) NOT NULL,`nom_persona` VARCHAR(45) NOT NULL,`apell_persona` VARCHAR(45) NOT NULL,`fecha_nacimiento` DATE NOT NULL,`fecha_ingreso` DATE NOT NULL,`id_genero` CHAR(1) NOT NULL,

    `celular` VARCHAR(12) NOT NULL,`id_ciudad` INT NOT NULL,PRIMARY KEY (`id_persona`),CONSTRAINT `id_tipo_documento`FOREIGN KEY (`id_tipo_documento`)REFERENCES `rburiticap_aeropuerto`.`tipo_documento` (`id_tipo_documento`)ON DELETE NO ACTIONON UPDATE NO ACTION,

    CONSTRAINT `id_genero`

  • 8/16/2019 Crear Base de Datos Con Mysql Workbench

    13/18

      FOREIGN KEY (`id_genero`)REFERENCES `rburiticap_aeropuerto`.`genero` (`id_genero`)ON DELETE NO ACTIONON UPDATE NO ACTION,

    CONSTRAINT `id_ciudad`FOREIGN KEY (`id_ciudad`)REFERENCES `rburiticap_aeropuerto`.`ciudad` (`id_ciudad`)ON DELETE NO ACTIONON UPDATE NO ACTION)

    ENGINE = InnoDB;

    CREATE INDEX `tipo_documento_idx` ON `rburiticap_aeropuerto`.`personas`(`id_tipo_documento` ASC);

    CREATE INDEX `id_genero_idx` ON `rburiticap_aeropuerto`.`personas`(`id_genero` ASC);

    CREATE INDEX `id_ciudad_idx` ON `rburiticap_aeropuerto`.`personas`(`id_ciudad` ASC);

    -- ------------------------------------------------------- Table `rburiticap_aeropuerto`.`cargo`-- -----------------------------------------------------DROP TABLE IF EXISTS `rburiticap_aeropuerto`.`cargo` ;

    CREATE TABLE IF NOT EXISTS `rburiticap_aeropuerto`.`cargo` (`id_cargo` INT NOT NULL,`descripcion` VARCHAR(50) NOT NULL,PRIMARY KEY (`id_cargo`))

    ENGINE = InnoDB;

    -- ------------------------------------------------------- Table `rburiticap_aeropuerto`.`funcionarios`-- -----------------------------------------------------DROP TABLE IF EXISTS `rburiticap_aeropuerto`.`funcionarios` ;

    CREATE TABLE IF NOT EXISTS `rburiticap_aeropuerto`.`funcionarios` (`id_funcionario` INT NOT NULL,

  • 8/16/2019 Crear Base de Datos Con Mysql Workbench

    14/18

      `id_persona` INT NOT NULL,`id_cargo` INT NOT NULL,PRIMARY KEY (`id_funcionario`),CONSTRAINT `id_cargo`FOREIGN KEY (`id_cargo`)REFERENCES `rburiticap_aeropuerto`.`cargo` (`id_cargo`)ON DELETE NO ACTIONON UPDATE NO ACTION,

    CONSTRAINT `id_persona`FOREIGN KEY (`id_persona`)REFERENCES `rburiticap_aeropuerto`.`personas` (`id_persona`)ON DELETE NO ACTIONON UPDATE NO ACTION)

    ENGINE = InnoDB;

    CREATE INDEX `id_cargo_idx` ON `rburiticap_aeropuerto`.`funcionarios`(`id_cargo` ASC);

    CREATE INDEX `id_persona_idx` ON `rburiticap_aeropuerto`.`funcionarios`(`id_persona` ASC);

    -- ------------------------------------------------------- Table `rburiticap_aeropuerto`.`mantenimiento`-- -----------------------------------------------------DROP TABLE IF EXISTS `rburiticap_aeropuerto`.`mantenimiento` ;

    CREATE TABLE IF NOT EXISTS `rburiticap_aeropuerto`.`mantenimiento` (`cod_mantenimiento` INT NOT NULL,`descripcion` VARCHAR(45) NOT NULL,`fecha_mantenimiento` DATETIME NOT NULL,

    PRIMARY KEY (`cod_mantenimiento`))ENGINE = InnoDB;

    -- ------------------------------------------------------- Table `rburiticap_aeropuerto`.`aeronaves`-- -----------------------------------------------------DROP TABLE IF EXISTS `rburiticap_aeropuerto`.`aeronaves` ;

  • 8/16/2019 Crear Base de Datos Con Mysql Workbench

    15/18

    CREATE TABLE IF NOT EXISTS `rburiticap_aeropuerto`.`aeronaves` (`cod_aeronave` INT NOT NULL,`descripcion` VARCHAR(45) NOT NULL,`id_marca` INT NOT NULL,`piloto` INT NOT NULL,`copiloto` INT NOT NULL,`auxiliar` INT NOT NULL,`cod_mantenimiento` INT NOT NULL,PRIMARY KEY (`cod_aeronave`),CONSTRAINT `piloto`FOREIGN KEY (`piloto`)REFERENCES `rburiticap_aeropuerto`.`funcionarios` (`id_funcionario`)ON DELETE NO ACTIONON UPDATE NO ACTION,

    CONSTRAINT `copiloto`FOREIGN KEY (`copiloto`)REFERENCES `rburiticap_aeropuerto`.`funcionarios` (`id_funcionario`)ON DELETE NO ACTIONON UPDATE NO ACTION,

    CONSTRAINT `auxiliar`

    FOREIGN KEY (`auxiliar`)REFERENCES `rburiticap_aeropuerto`.`funcionarios` (`id_funcionario`)ON DELETE NO ACTIONON UPDATE NO ACTION,

    CONSTRAINT `id_marca`FOREIGN KEY (`id_marca`)REFERENCES `rburiticap_aeropuerto`.`marca` (`id_marca`)ON DELETE NO ACTIONON UPDATE NO ACTION,

    CONSTRAINT `cod_mantenimiento`FOREIGN KEY (`cod_mantenimiento`)

    REFERENCES `rburiticap_aeropuerto`.`mantenimiento` (`cod_mantenimiento`)ON DELETE NO ACTIONON UPDATE NO ACTION)

    ENGINE = InnoDB;

    CREATE INDEX `id_funcionario_idx` ON `rburiticap_aeropuerto`.`aeronaves`(`piloto` ASC);

    CREATE INDEX `id_funcionario_idx1` ON `rburiticap_aeropuerto`.`aeronaves`

  • 8/16/2019 Crear Base de Datos Con Mysql Workbench

    16/18

    (`copiloto` ASC);

    CREATE INDEX `id_funcionario_idx2` ON `rburiticap_aeropuerto`.`aeronaves`(`auxiliar` ASC);

    CREATE INDEX `id_marca_idx` ON `rburiticap_aeropuerto`.`aeronaves`(`id_marca` ASC);

    CREATE INDEX `cod_mantenimiento_idx` ON `rburiticap_aeropuerto`.`aeronaves`(`cod_mantenimiento` ASC);

    -- ------------------------------------------------------- Table `rburiticap_aeropuerto`.`itinerarios`-- -----------------------------------------------------DROP TABLE IF EXISTS `rburiticap_aeropuerto`.`itinerarios` ;

    CREATE TABLE IF NOT EXISTS `rburiticap_aeropuerto`.`itinerarios` (`cod_itinerario` INT NOT NULL,`destino` INT NOT NULL,

    `tarifa` DECIMAL(8) NOT NULL,PRIMARY KEY (`cod_itinerario`),CONSTRAINT `destino`FOREIGN KEY (`destino`)REFERENCES `rburiticap_aeropuerto`.`ciudad` (`id_ciudad`)ON DELETE NO ACTIONON UPDATE NO ACTION)

    ENGINE = InnoDB;

    CREATE INDEX `id_ciudad_idx` ON `rburiticap_aeropuerto`.`itinerarios` (`destino`ASC);

    -- ------------------------------------------------------- Table `rburiticap_aeropuerto`.`estado_vuelo`-- -----------------------------------------------------DROP TABLE IF EXISTS `rburiticap_aeropuerto`.`estado_vuelo` ;

    CREATE TABLE IF NOT EXISTS `rburiticap_aeropuerto`.`estado_vuelo` (`cod_estado_vuelo` INT NOT NULL,

  • 8/16/2019 Crear Base de Datos Con Mysql Workbench

    17/18

      `descripcion` VARCHAR(45) NOT NULL,PRIMARY KEY (`cod_estado_vuelo`))

    ENGINE = InnoDB;

    -- ------------------------------------------------------- Table `rburiticap_aeropuerto`.`vuelos`-- -----------------------------------------------------DROP TABLE IF EXISTS `rburiticap_aeropuerto`.`vuelos` ;

    CREATE TABLE IF NOT EXISTS `rburiticap_aeropuerto`.`vuelos` (`cod_vuelo` INT NOT NULL,`cod_aeronave` INT NOT NULL,`cod_itinerario` INT NOT NULL,`cod_estado_vuelo` INT NOT NULL,`fecha_salida` DATETIME NOT NULL,`fecha_llegada` DATETIME NOT NULL,PRIMARY KEY (`cod_vuelo`),CONSTRAINT `cod_itinerario`FOREIGN KEY (`cod_itinerario`)

    REFERENCES `rburiticap_aeropuerto`.`itinerarios` (`cod_itinerario`)ON DELETE NO ACTIONON UPDATE NO ACTION,

    CONSTRAINT `cod_aeronave`FOREIGN KEY (`cod_aeronave`)REFERENCES `rburiticap_aeropuerto`.`aeronaves` (`cod_aeronave`)ON DELETE NO ACTIONON UPDATE NO ACTION,

    CONSTRAINT `cod_estado_vuelo`FOREIGN KEY (`cod_estado_vuelo`)REFERENCES `rburiticap_aeropuerto`.`estado_vuelo` (`cod_estado_vuelo`)

    ON DELETE NO ACTIONON UPDATE NO ACTION)

    ENGINE = InnoDB;

    CREATE INDEX `cod_itinerario_idx` ON `rburiticap_aeropuerto`.`vuelos`(`cod_itinerario` ASC);

    CREATE INDEX `cod_aeronave_idx` ON `rburiticap_aeropuerto`.`vuelos`(`cod_aeronave` ASC);

  • 8/16/2019 Crear Base de Datos Con Mysql Workbench

    18/18

     CREATE INDEX `cod_estado_vuelo_idx` ON `rburiticap_aeropuerto`.`vuelos`(`cod_estado_vuelo` ASC);

    SET SQL_MODE=@OLD_SQL_MODE;SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;