Vous êtes sur la page 1sur 11

CARRERA

Ing. En Desarrollo de Software

ASIGNATURA
Base de Datos

UNIDAD III
Diseño

ASIGNACIÓN A CARGO DEL DOCENTE

PRESENTA
Edgar Yahir Ángeles Cruz

DOCENTE
Francisco Javier Luis Juan Barragán

MATRÍCULA
ES1821004574

Hca. Puebla de Zaragoza a 3 de junio de 2019


Índice

INSTRUCCIONES ..................................................................................................................................................... 2
CASO 2. PELETERÍA ................................................................................................................................................. 2
Crear la tabla y los campos .............................................................................................................................. 3
Añade el campo Cve_Prov en la tabla Inventario que es llave foránea llamada Cve_Prov que es de tipo
bigint y este es llave principal de la tabla Proveedor. ....................................................................................... 4
Elimina la llave foránea Cve_Prov de la tabla inventario .................................................................................. 5
Inserta los siguientes campos a la tabla Inventario. ......................................................................................... 5
Se busca realizar una consulta de los campos de cantidad de los productos tengan un costo entre 200 y
800 .................................................................................................................................................................... 6
CODIGO COMPLETO DE LA BASE GENERADA .............................................................................................................. 7
REFLEXIÓN ............................................................................................................................................................. 9
REFERENCIAS BIBLIOGRÁFICAS .............................................................................................................................. 10

pág. 1
INSTRUCCIONES

Caso 2. Peletería

De una peletería y nevería se ha realizado el análisis, al dar inicio al diseño se presenta a


continuación un diccionario de datos de una tabla:

Inventario
Nombre del Descripción Tipo Longitud Campo Tabla en Tabla Campo
campo Llave PK en FK Obligatorio
PK FK
Cve_Prod Clave del Bigint Si No Inventario
producto
Desc_Prod Descripción Text No No
del producto
Cto_Comp Costo de Decimal (8, 2) No No
compra
Fec_Comp Fecha de Date Fecha No No
compra
Fec_Cad Fecha de Date Fecha No No
caducidad

pág. 2
Crear la tabla y los campos

Se crea la base de dato con el nombre de Peletería. Pero aquí solo muestro la creación de la
tabla y los campos que contiene.

-- -----------------------------------------------------
-- Table `Paleteria`.`INVENTARIO`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `Paleteria`.`INVENTARIO` (
`Clv_Pro` BIGINT NOT NULL,
`Desc_Pro` TEXT NULL,
`Cto_Comp` DECIMAL(8,2) NULL,
`Fech_Comp` DATE NULL,
`Fech_Cad` DATE NULL,
PRIMARY KEY (`Clv_Pro`))
ENGINE = InnoDB;

Ilustración 1 - Tabla Inventario

pág. 3
Añade el campo Cve_Prov en la tabla Inventario que es llave foránea llamada Cve_Prov que
es de tipo bigint y este es llave principal de la tabla Proveedor.

Cabe mencionar que antes de insertar esta tabla debe haber creado la otra del Proveedor ya
que marcara error al insertar esta llave foránea.

-- -----------------------------------------------------
-- Table `Paleteria`.`INVENTARIO`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `Paleteria`.`INVENTARIO` (
`Clv_Pro` BIGINT NOT NULL,
`Desc_Pro` TEXT NULL,
`Cto_Comp` DECIMAL(8,2) NULL,
`Fech_Comp` DATE NULL,
`Fech_Cad` DATE NULL,
`Cve_Prov` BIGINT NULL,
PRIMARY KEY (`Clv_Pro`),
INDEX `Cve_Prov _idx` (`Cve_Prov` ASC),
CONSTRAINT `Cve_Prov `
FOREIGN KEY (`Cve_Prov`)
REFERENCES `Paleteria`.`PROVEEDOR` (`Cve_Prov`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;

Ilustración 2 - Creación de llave foránea

pág. 4
Elimina la llave foránea Cve_Prov de la tabla inventario

ALTER TABLE `Paleteria`.`INVENTARIO`


DROP FOREIGN KEY `Cve_Prov `;
ALTER TABLE `Paleteria`.`INVENTARIO`
DROP COLUMN `Cve_Prov`,
DROP INDEX `Cve_Prov _idx` ;

Ilustración 3 - Alter table al eliminar la llave foránea de Proveedor

Inserta los siguientes campos a la tabla Inventario.

Inventario
Clave Descripción Costo Cantidad FechaCompra
100000 Saborizante sabor limón 500 grs 265.78 5 2017/03/12
124634 Saborizante sabor mango 500 grs 453.78 7 2016/11/28
342643 Saborizante sabor sandia 500 grs 321.87 10 2017/01/24
642362 Conservador orgánico 10 grs 124.00 100 2017/04/15

INSERT INTO `Paleteria`.`INVENTARIO` (`Clv_Pro`, `Desc_Pro`, `Cto_Comp`, `Fech_Comp`)


VALUES ('100000', 'Saborizante sabor limón 500 grs', '265.78', '2017-03-12')
,('124634', 'Saborizante sabor mango 500 grs', '453.78', '2016-11-28')
,('342643', 'Saborizante sabor sandia 500 grs', '321.87', '2017-01-24')
,('642362', 'Conservador orgánico 10 grs', '124.00', '2017-04-15');

pág. 5
Ilustración 4 - Insert y Select para mostrar los datos

Se busca realizar una consulta de los campos de cantidad de los productos tengan un costo
entre 200 y 800

SELECT * FROM Paleteria.INVENTARIO WHERE Cto_Comp > 200 and Cto_Comp < 800;

Ilustración 5 - Consulta de los productos con costo entre 200 y 800

pág. 6
Codigo Completo de la base generada

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

-- -----------------------------------------------------
-- Table `Paleteria`.`PROVEEDOR`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `Paleteria`.`PROVEEDOR` (
`Cve_Prov` BIGINT NOT NULL,
PRIMARY KEY (`Cve_Prov`))
ENGINE = InnoDB;

-- -----------------------------------------------------
-- Table `Paleteria`.`INVENTARIO`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `Paleteria`.`INVENTARIO` (
`Clv_Pro` BIGINT NOT NULL,
`Desc_Pro` TEXT NULL,
`Cto_Comp` DECIMAL(8,2) NULL,
`Fech_Comp` DATE NULL,
`Fech_Cad` DATE NULL,
`Cve_Prov` BIGINT NULL,
PRIMARY KEY (`Clv_Pro`),
INDEX `Cve_Prov _idx` (`Cve_Prov` ASC),
CONSTRAINT `Cve_Prov `
FOREIGN KEY (`Cve_Prov`)
REFERENCES `Paleteria`.`PROVEEDOR` (`Cve_Prov`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;

ALTER TABLE `Paleteria`.`INVENTARIO`


DROP FOREIGN KEY `Cve_Prov `;
ALTER TABLE `Paleteria`.`INVENTARIO`
DROP COLUMN `Cve_Prov`,
DROP INDEX `Cve_Prov _idx` ;

pág. 7
INSERT INTO `Paleteria`.`INVENTARIO` (`Clv_Pro`, `Desc_Pro`, `Cto_Comp`, `Fech_Comp`)
VALUES
('100000', 'Saborizante sabor limón 500 grs', '265.78', '2017-03-12')
,('124634', 'Saborizante sabor mango 500 grs', '453.78', '2016-11-28')
,('342643', 'Saborizante sabor sandia 500 grs', '321.87', '2017-01-24')
,('642362', 'Conservador orgánico 10 grs', '124.00', '2017-04-15');

SELECT * FROM Paleteria.INVENTARIO WHERE Cto_Comp > 200 and Cto_Comp < 800;

pág. 8
Reflexión

En relación con lo a prendido a lo largo del curso, me permitió comprender y entender como las
bases de datos son esenciales en nuestra vida para el almacenamiento de la información en la
que esta base de datos debe están bien constituida y armada, para evitar redundancia de datos,
tenemos que generar una base de datos normaliza y bien implementada para el correcto
funcionamiento de algún sistema que la utilice.

pág. 9
Referencias Bibliográficas

Ftp.tcrc.edu.tw. (n.d.). MySQL: MySQL 5.0 Reference Manual. [online] Disponible en:
http://ftp.tcrc.edu.tw/MySQL/doc/refman/5.0/es/

pág. 10

Vous aimerez peut-être aussi