Taller SQL
(Profe en la img, aparece la fecha como varchar, cuando lo quise cambiar ya no podía, pero en el
código aparece que el tipo de dato es DATE)
-- MySQL Script generated by MySQL Workbench
-- Tue Sep 9 23:10:11 2025
-- 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='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,N
O_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';
-- -----------------------------------------------------
-- Schema TALLER_MAR_09
-- -----------------------------------------------------
DROP SCHEMA IF EXISTS TALLER_MAR_09 ;
-- -----------------------------------------------------
-- Schema TALLER_MAR_09
-- -----------------------------------------------------
CREATE SCHEMA IF NOT EXISTS TALLER_MAR_09 DEFAULT CHARACTER SET utf8 ;
SHOW WARNINGS;
USE TALLER_MAR_09 ;
-- -----------------------------------------------------
-- Table Autor
-- -----------------------------------------------------
DROP TABLE IF EXISTS Autor ;
SHOW WARNINGS;
CREATE TABLE IF NOT EXISTS Autor (
idAutor INT NOT NULL,
Nombre VARCHAR(45) NOT NULL,
Nacionalidad VARCHAR(45) NOT NULL,
Fecha_Nacimiento VARCHAR(45) NOT NULL,
PRIMARY KEY (idAutor))
ENGINE = InnoDB;
SHOW WARNINGS;
-- -----------------------------------------------------
-- Table Edición
-- -----------------------------------------------------
DROP TABLE IF EXISTS Edición ;
SHOW WARNINGS;
CREATE TABLE IF NOT EXISTS Edición (
idEdición INT NOT NULL,
ISBN VARCHAR(45) NOT NULL,
Año VARCHAR(45) NOT NULL,
PRIMARY KEY (idEdición))
ENGINE = InnoDB;
SHOW WARNINGS;
-- -----------------------------------------------------
-- Table Libro
-- -----------------------------------------------------
DROP TABLE IF EXISTS Libro ;
SHOW WARNINGS;
CREATE TABLE IF NOT EXISTS Libro (
idLibro INT NOT NULL,
Titulo VARCHAR(45) NOT NULL,
Idioma VARCHAR(45) NOT NULL,
Número_pag VARCHAR(45) NOT NULL,
Referencia INT NOT NULL,
PRIMARY KEY (idLibro))
ENGINE = InnoDB;
SHOW WARNINGS;
-- -----------------------------------------------------
-- Table Copia
-- -----------------------------------------------------
DROP TABLE IF EXISTS Copia ;
SHOW WARNINGS;
CREATE TABLE IF NOT EXISTS Copia (
idCopia INT NOT NULL,
Número VARCHAR(45) NOT NULL,
Alquiler VARCHAR(45) NOT NULL,
Edición_idEdición INT NOT NULL,
PRIMARY KEY (idCopia))
ENGINE = InnoDB;
SHOW WARNINGS;
-- -----------------------------------------------------
-- Table Usuario
-- -----------------------------------------------------
DROP TABLE IF EXISTS Usuario ;
SHOW WARNINGS;
CREATE TABLE IF NOT EXISTS Usuario (
idUsuario INT NOT NULL,
DNI VARCHAR(45) NOT NULL,
nYAP VARCHAR(45) NOT NULL,
Domicilio VARCHAR(45) NOT NULL,
PRIMARY KEY (idUsuario))
ENGINE = InnoDB;
SHOW WARNINGS;
-- -----------------------------------------------------
-- Table Autor_has_Libro
-- -----------------------------------------------------
DROP TABLE IF EXISTS Autor_has_Libro ;
SHOW WARNINGS;
CREATE TABLE IF NOT EXISTS Autor_has_Libro (
Autor_idAutor INT NOT NULL,
Libro_idLibro INT NOT NULL,
PRIMARY KEY (Autor_idAutor, Libro_idLibro))
ENGINE = InnoDB;
SHOW WARNINGS;
-- -----------------------------------------------------
-- Table Copia_has_Usuario
-- -----------------------------------------------------
DROP TABLE IF EXISTS Copia_has_Usuario ;
SHOW WARNINGS;
CREATE TABLE IF NOT EXISTS Copia_has_Usuario (
Copia_idCopia INT NOT NULL,
Usuario_idUsuario INT NOT NULL,
Fecha_Prestamo DATE NOT NULL,
Fecha_Devolución DATE NOT NULL,
PRIMARY KEY (Copia_idCopia, Usuario_idUsuario))
ENGINE = InnoDB;
SHOW WARNINGS;
SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
Conclusiones
Es fundamental la comprensión de las cardinalidades, para lograr que se generen las tablas
intermedias, con sus debidos atributos. Además, al realizar la actividad me ayudo a comprender de
una menor manera el diagrama E-R y modelo.