Você está na página 1de 16

TIENDA MUSICAL

Base de datos

5 DE JUNIO DE 2017
OSCAR SILVINO CAUICH PECH
Fundamentos base de datos
Profesor: ARIEL RODRIGUEZ WALLE
NDICE PAG

Introduccin-------------------------------------------------------------------2

Descripcin --------------------------------------------------------------------2

Cdigo SQL----------------------------------------------------------------------2

Creacin de tablas-----------------------------------------------------------10

Modelo entidad relacin---------------------------------------------------10

Insercin de datos------------------------------------------------------------10

Consultas -----------------------------------------------------------------------12

Glosario--------------------------------------------------------------------------13

Pgina 1 de 15
INTRODUCCION

Este trabajo se realiz con el fin de proporcionar una base de datos para una tienda de venta de
discos que contiene facturacin, lbumes y ms usando un gestor de base de datos as como el
lenguaje para realizar las consultas y ms en la base de datos

DESCRIPCION

Esta base de datos se dise para una tienda de discos, donde incluye desde la factura que realiza
el cliente la letra de la cancin.

CODIGO SQL

-- 06/04/17 15:06:05

-- 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 tienda_musical

-- -----------------------------------------------------

DROP SCHEMA IF EXISTS `tienda_musical` ;

-- -----------------------------------------------------

-- Schema tienda_musical

-- -----------------------------------------------------

CREATE SCHEMA IF NOT EXISTS `tienda_musical` DEFAULT CHARACTER SET utf8 ;

SHOW WARNINGS;

USE `tienda_musical` ;

-- -----------------------------------------------------

-- Table `disquera`

-- -----------------------------------------------------

DROP TABLE IF EXISTS `disquera` ;

SHOW WARNINGS;

Pgina 2 de 15
CREATE TABLE IF NOT EXISTS `disquera` (

`id_disquera` INT(11) NOT NULL AUTO_INCREMENT,

`desc_disquera` VARCHAR(100) NOT NULL,

PRIMARY KEY (`id_disquera`))

ENGINE = InnoDB

DEFAULT CHARACTER SET = utf8;

SHOW WARNINGS;

-- -----------------------------------------------------

-- Table `album`

-- -----------------------------------------------------

DROP TABLE IF EXISTS `album` ;

SHOW WARNINGS;

CREATE TABLE IF NOT EXISTS `album` (

`id_album` INT(11) NOT NULL AUTO_INCREMENT,

`nom_album` VARCHAR(100) NOT NULL,

`anio` DATE NOT NULL,

`formato` VARCHAR(4) NULL DEFAULT NULL,

`valor` DECIMAL(2,0) NULL DEFAULT NULL,

`id_disquera` INT(11) NOT NULL,

PRIMARY KEY (`id_album`))

ENGINE = InnoDB

DEFAULT CHARACTER SET = utf8;

SHOW WARNINGS;

-- -----------------------------------------------------

-- Table `nacionalidad`

-- -----------------------------------------------------

DROP TABLE IF EXISTS `nacionalidad` ;

SHOW WARNINGS;

CREATE TABLE IF NOT EXISTS `nacionalidad` (

Pgina 3 de 15
`id_nacionalidad` INT(11) NOT NULL AUTO_INCREMENT,

`desc_nacionalidad` VARCHAR(60) NOT NULL,

`abreviacion` VARCHAR(4) NULL DEFAULT NULL,

PRIMARY KEY (`id_nacionalidad`))

ENGINE = InnoDB

DEFAULT CHARACTER SET = utf8;

SHOW WARNINGS;

-- -----------------------------------------------------

-- Table `persona`

-- -----------------------------------------------------

DROP TABLE IF EXISTS `persona` ;

SHOW WARNINGS;

CREATE TABLE IF NOT EXISTS `persona` (

`id_persona` INT(11) NOT NULL AUTO_INCREMENT,

`nro_identificacion` VARCHAR(12) NULL DEFAULT NULL,

`tipo_identificacion` CHAR(2) NULL DEFAULT NULL,

`nombres` VARCHAR(100) NULL DEFAULT NULL,

`apellidos` VARCHAR(100) NULL DEFAULT NULL,

`id_nacionalidad` INT(11) NOT NULL,

PRIMARY KEY (`id_persona`))

ENGINE = InnoDB

DEFAULT CHARACTER SET = utf8;

SHOW WARNINGS;

CREATE UNIQUE INDEX `nro_identificacion_UNIQUE` ON `persona` (`nro_identificacion` ASC);

SHOW WARNINGS;

-- -----------------------------------------------------

-- Table `genero`

-- -----------------------------------------------------

DROP TABLE IF EXISTS `genero` ;

Pgina 4 de 15
SHOW WARNINGS;

CREATE TABLE IF NOT EXISTS `genero` (

`id_genero` INT(11) NOT NULL AUTO_INCREMENT,

`desc_genero` VARCHAR(100) NULL DEFAULT NULL,

PRIMARY KEY (`id_genero`))

ENGINE = InnoDB

DEFAULT CHARACTER SET = utf8;

SHOW WARNINGS;

-- -----------------------------------------------------

-- Table `idioma`

-- -----------------------------------------------------

DROP TABLE IF EXISTS `idioma` ;

SHOW WARNINGS;

CREATE TABLE IF NOT EXISTS `idioma` (

`id_idioma` INT(11) NOT NULL AUTO_INCREMENT,

`desc_idioma` VARCHAR(50) NULL DEFAULT NULL,

PRIMARY KEY (`id_idioma`))

ENGINE = InnoDB

DEFAULT CHARACTER SET = utf8;

SHOW WARNINGS;

-- -----------------------------------------------------

-- Table `tema`

-- -----------------------------------------------------

DROP TABLE IF EXISTS `tema` ;

SHOW WARNINGS;

CREATE TABLE IF NOT EXISTS `tema` (

`id_tema` INT(11) NOT NULL AUTO_INCREMENT,

`titulo` VARCHAR(200) NOT NULL,

`letra` TEXT NULL DEFAULT NULL,

Pgina 5 de 15
`id_idioma` INT(11) NOT NULL,

`id_artista` INT(11) NOT NULL,

`id_compositor` INT(11) NOT NULL,

`id_genero` INT(11) NULL DEFAULT NULL,

PRIMARY KEY (`id_tema`))

ENGINE = InnoDB

DEFAULT CHARACTER SET = utf8;

SHOW WARNINGS;

-- -----------------------------------------------------

-- Table `album_tema`

-- -----------------------------------------------------

DROP TABLE IF EXISTS `album_tema` ;

SHOW WARNINGS;

CREATE TABLE IF NOT EXISTS `album_tema` (

`id_album` INT(11) NOT NULL,

`id_tema` INT(11) NOT NULL)

ENGINE = InnoDB

DEFAULT CHARACTER SET = utf8;

SHOW WARNINGS;

-- -----------------------------------------------------

-- Table `factura`

-- -----------------------------------------------------

DROP TABLE IF EXISTS `factura` ;

SHOW WARNINGS;

CREATE TABLE IF NOT EXISTS `factura` (

`id_factura` INT(11) NOT NULL AUTO_INCREMENT,

`cod_facura` VARCHAR(10) NULL DEFAULT NULL,

`fecha` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE


CURRENT_TIMESTAMP,

Pgina 6 de 15
`id_cliente` INT(11) NOT NULL,

`factura_id_factura` INT(11) NOT NULL,

PRIMARY KEY (`id_factura`))

ENGINE = InnoDB

DEFAULT CHARACTER SET = utf8;

SHOW WARNINGS;

-- -----------------------------------------------------

-- Table `detalle_factura`

-- -----------------------------------------------------

DROP TABLE IF EXISTS `detalle_factura` ;

SHOW WARNINGS;

CREATE TABLE IF NOT EXISTS `detalle_factura` (

`id_factura` INT(11) NOT NULL,

`id_album` INT(11) NOT NULL,

`cantidad` INT(11) NOT NULL)

ENGINE = InnoDB

DEFAULT CHARACTER SET = utf8;

SHOW WARNINGS;

-- -----------------------------------------------------

-- Data for table `disquera`

-- -----------------------------------------------------

START TRANSACTION;

USE `tienda_musical`;

INSERT INTO `disquera` (`id_disquera`, `desc_disquera`) VALUES (1, 'sony');

COMMIT;

-- -----------------------------------------------------

-- Data for table `nacionalidad`

-- -----------------------------------------------------

START TRANSACTION;

Pgina 7 de 15
USE `tienda_musical`;

INSERT INTO `nacionalidad` (`id_nacionalidad`, `desc_nacionalidad`, `abreviacion`) VALUES (1,


'mexicana', 'mex');

INSERT INTO `nacionalidad` (`id_nacionalidad`, `desc_nacionalidad`, `abreviacion`) VALUES (2,


'americana', 'amer');

COMMIT;

-- -----------------------------------------------------

-- Data for table `persona`

-- -----------------------------------------------------

START TRANSACTION;

USE `tienda_musical`;

INSERT INTO `persona` (`id_persona`, `nro_identificacion`, `tipo_identificacion`, `nombres`,


`apellidos`, `id_nacionalidad`) VALUES (3, '3', 'credencial elector', 'julian ', 'gutierrez escamilla',
mexicana);

INSERT INTO `persona` (`id_persona`, `nro_identificacion`, `tipo_identificacion`, `nombres`,


`apellidos`, `id_nacionalidad`) VALUES (2, '2', 'numero seguro social', 'fabian', 'castillo', americana);

INSERT INTO `persona` (`id_persona`, `nro_identificacion`, `tipo_identificacion`, `nombres`,


`apellidos`, `id_nacionalidad`) VALUES (1, '1', 'credencial elector', 'carlos', 'gutierrez', americana);

COMMIT;

-- -----------------------------------------------------

-- Data for table `genero`

-- -----------------------------------------------------

START TRANSACTION;

USE `tienda_musical`;

INSERT INTO `genero` (`id_genero`, `desc_genero`) VALUES (1, 'romantico');

COMMIT;

-- -----------------------------------------------------

-- Data for table `tema`

-- -----------------------------------------------------

START TRANSACTION;

Pgina 8 de 15
USE `tienda_musical`;

INSERT INTO `tema` (`id_tema`, `titulo`, `letra`, `id_idioma`, `id_artista`, `id_compositor`,


`id_genero`) VALUES (1, 'tus ojos', 'esos ojos hermosos', NULL, 1, 1, 1);

COMMIT;

-- -----------------------------------------------------

-- Data for table `album_tema`

-- -----------------------------------------------------

START TRANSACTION;

USE `tienda_musical`;

INSERT INTO `album_tema` (`id_album`, `id_tema`) VALUES (1, rosas);

COMMIT;

-- -----------------------------------------------------

-- Data for table `factura`

-- -----------------------------------------------------

START TRANSACTION;

USE `tienda_musical`;

INSERT INTO `factura` (`id_factura`, `cod_facura`, `fecha`, `id_cliente`, `factura_id_factura`)


VALUES (1, '23', '24-05-2017', 1, 1);

COMMIT;

-- -----------------------------------------------------

-- Data for table `detalle_factura`

-- -----------------------------------------------------

START TRANSACTION;

USE `tienda_musical`;

INSERT INTO `detalle_factura` (`id_factura`, `id_album`, `cantidad`) VALUES (1, 1, 3);

COMMIT;

SET SQL_MODE=@OLD_SQL_MODE;

SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;

SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;

Pgina 9 de 15
CREACION DE TABALAS

INSERTAR DATOS

SHOW WARNINGS;

-- -----------------------------------------------------

-- Data for table `disquera`

-- -----------------------------------------------------

START TRANSACTION;

USE `tienda_musical`;

INSERT INTO `disquera` (`id_disquera`, `desc_disquera`) VALUES (1, 'sony');

COMMIT;

-- -----------------------------------------------------

-- Data for table `nacionalidad`

-- -----------------------------------------------------

START TRANSACTION;

USE `tienda_musical`;

INSERT INTO `nacionalidad` (`id_nacionalidad`, `desc_nacionalidad`, `abreviacion`) VALUES (1,


'mexicana', 'mex');

Pgina 10 de 15
INSERT INTO `nacionalidad` (`id_nacionalidad`, `desc_nacionalidad`, `abreviacion`) VALUES (2,
'americana', 'amer');

COMMIT;

-- -----------------------------------------------------

-- Data for table `persona`

-- -----------------------------------------------------

START TRANSACTION;

USE `tienda_musical`;

INSERT INTO `persona` (`id_persona`, `nro_identificacion`, `tipo_identificacion`, `nombres`,


`apellidos`, `id_nacionalidad`) VALUES (3, '3', 'credencial elector', 'julian ', 'gutierrez escamilla',
mexicana);

INSERT INTO `persona` (`id_persona`, `nro_identificacion`, `tipo_identificacion`, `nombres`,


`apellidos`, `id_nacionalidad`) VALUES (2, '2', 'numero seguro social', 'fabian', 'castillo', americana);

INSERT INTO `persona` (`id_persona`, `nro_identificacion`, `tipo_identificacion`, `nombres`,


`apellidos`, `id_nacionalidad`) VALUES (1, '1', 'credencial elector', 'carlos', 'gutierrez', americana);

COMMIT;

-- -----------------------------------------------------

-- Data for table `genero`

-- -----------------------------------------------------

START TRANSACTION;

USE `tienda_musical`;

INSERT INTO `genero` (`id_genero`, `desc_genero`) VALUES (1, 'romantico');

COMMIT;

-- -----------------------------------------------------

-- Data for table `tema`

-- -----------------------------------------------------

START TRANSACTION;

USE `tienda_musical`;

INSERT INTO `tema` (`id_tema`, `titulo`, `letra`, `id_idioma`, `id_artista`, `id_compositor`,


`id_genero`) VALUES (1, 'tus ojos', 'esos ojos hermosos', NULL, 1, 1, 1);

Pgina 11 de 15
COMMIT;

-- -----------------------------------------------------

-- Data for table `album_tema`

-- -----------------------------------------------------

START TRANSACTION;

USE `tienda_musical`;

INSERT INTO `album_tema` (`id_album`, `id_tema`) VALUES (1, rosas);

COMMIT;

-- -----------------------------------------------------

-- Data for table `factura`

-- -----------------------------------------------------

START TRANSACTION;

USE `tienda_musical`;

INSERT INTO `factura` (`id_factura`, `cod_facura`, `fecha`, `id_cliente`, `factura_id_factura`)


VALUES (1, '23', '24-05-2017', 1, 1);

COMMIT;

-- -----------------------------------------------------

-- Data for table `detalle_factura`

-- -----------------------------------------------------

START TRANSACTION;

USE `tienda_musical`;

INSERT INTO `detalle_factura` (`id_factura`, `id_album`, `cantidad`) VALUES (1, 1, 3);

CONSULTAS

use tienda_musical;

SELECT

from persona

Pgina 12 de 15
GLOSARIO

Crea base de datos


CREATE DATATABASE mibasedeatos;

1.- Lenguaje de definicin de datos (DDL).

DDL est compuesto por sentencias para la creacin (CREATE), modificacin (ALTER) y borrado
(DROP) de los componentes principales de una base de datos:

base de datos (DATABASE)


tablas (TABLE)
vistas (VIEW)
ndices (INDEX)
procedimientos almacenados (PROCEDURE)
disparadores (TRIGGER).

2.- Lenguaje de manipulacin de datos (DML).

DML est compuesto por sentencias que sirven para:

consultar (SELECT)
insertar (INSERT)
modificar (UPDATE)
borrar (DELETE)

3.- Lenguaje de control de datos (DCL).

DCL est compuesto por sentencias SQL para controlar las funciones de administracin:

Confirmar la operacin (COMMIT)


Retroceder la operacin (ROLLBACK)
Dar permisos (GRANT)
Quitar permisos (REVOKE)

Sentencia
Objetivo
DDL
Alter
Recompilar un procedimiento almacenado.
procedure
Aadir o redefinir una columna, modificar la asignacin de
Alter Table
almacenamiento.
Recoger estadsticas de rendimiento sobre los objetos de la BD
Analyze
para utilizarlas en el optimizador basado en costes.
Create Table Crear una tabla.
Create Index Crear un ndice.
Drop Table Eliminar una tabla.

Pgina 13 de 15
Drop Index Eliminar un ndice.
Grant Conceder privilegios o papeles, roles, a un usuario o a otro rol.
Truncate Eliminar todas las filas de una tabla.

PRIMARY KEY

La clave primaria, PRIMARY KEY, identifica de manera nica cada fila de una tabla.

La columna definida como clave primaria (PRIMARY KEY) debe ser UNIQUE (valor nico) y NOT
NULL (no puede contener valores nulos).
CREATE TABLE personas { identificador int NOT NULL, nombre varchar(255) NOT NULL,
apellido1 varchar(255) NOT NULL, PRIMARY KEY (identificador) }

FOREIGN KEY

La clave externa o FOREIGN KEY, es una columna o varias columnas, que sirven para sealar
cual es la clave primaria de otra tabla.

La columna o columnas sealadas como FOREIGN KEY, solo podrn tener valores que ya existan
en la clave primaria PRIMARY KEY de la otra tabla.

CREATE TABLE departamentos { dep int NOT NULL,


departamento varchar(255),
PRIMARY KEY (dep)
}

CREATE TABLE personas


{
per int NOT NULL,
nombre varchar(255),
apellido1 varchar(255),
dep int NOT NULL,
PRIMARY KEY (per),
FOREIGN KEY (dep) REFERENCES departamentos(dep)
}

EL asterisco * significa que queremos todas las columnas de la tabla.


FROM CLAUSULA QUE DETERMINA DE DONDE OBTENEMOS LA OPERACIN

Pgina 14 de 15
Pgina 15 de 15

Você também pode gostar