Lab05-Dml en Las BD

También podría gustarte

Está en la página 1de 9

UNIVERSIDAD PRIVADA ANTENOR ORREGO

FACULTAD DE INGENIERÍA
Carrera de Ingeniería de Computación y Sistemas

LAB 04 MODELAMIENTO EER

Autor: Cisneros Bartra Adrián Nicolás

Curso:
Sistemas de Gestión de Base de Datos Ing.
Asesor del Curso:
Heber Abanto

TRUJILLO – PERÚ

2023
Para el siguiente esquema de BD, crear la base de datos y las tablas y sus relaciones utilizando un SGBD
(MySQL, SQL Server, Oracle, etc..), insertar datos en las tablas (mínimo 10 filas por tabla), crear las vistas
necesarias e incluir los índices apropiados para el esquema según consideraciones de búsqueda asumidas
de manera particular:

CREATE DATABASE ecommerce_OK;


USE ecommerce_OK;

CREATE TABLE sales (


id INT NOT NULL AUTO_INCREMENT,
customer_id INT NOT NULL,
product_id INT NOT NULL,
sale_status VARCHAR(255) NOT NULL,
sale_date DATETIME NOT NULL,
PRIMARY KEY (id)
);

CREATE TABLE customers (


id INT NOT NULL AUTO_INCREMENT,
full_name VARCHAR(255) NOT NULL,
email VARCHAR(255) NOT NULL,
customer_gender VARCHAR(255) NOT NULL,
registration_date DATETIME NOT NULL,
PRIMARY KEY (id)
);

CREATE TABLE vendors (


id INT NOT NULL AUTO_INCREMENT,
vendor_name VARCHAR(255) NOT NULL,
registration_date DATETIME NOT NULL,
PRIMARY KEY (id)
);

CREATE TABLE items (


id INT NOT NULL AUTO_INCREMENT,
item_name VARCHAR(255) NOT NULL,
item_price INT NOT NULL,
item_status VARCHAR(255) NOT NULL,
item_creation_date DATETIME NOT NULL,
vendor_id INT NOT NULL,
PRIMARY KEY (id)
);

ALTER TABLE sales


ADD CONSTRAINT fk_sales_customers
FOREIGN KEY (customer_id) REFERENCES customers (id);

ALTER TABLE sales


ADD CONSTRAINT fk_sales_items
FOREIGN KEY (product_id) REFERENCES items (id);

ALTER TABLE items


ADD CONSTRAINT fk_items_vendors
FOREIGN KEY (vendor_id) REFERENCES vendors (id);
-- Inserción de datos en la tabla customers
INSERT INTO customers (full_name, email, customer_gender, registration_date)
VALUES
('Cliente 1', 'cliente1@example.com', 'male', NOW()),
('Cliente 2', 'cliente2@example.com', 'female', NOW()),
('Cliente 3', 'cliente3@example.com', 'male', NOW()),
('Cliente 4', 'cliente4@example.com', 'female', NOW()),
('Cliente 5', 'cliente5@example.com', 'male', NOW()),
('Cliente 6', 'cliente6@example.com', 'female', NOW()),
('Cliente 7', 'cliente7@example.com', 'male', NOW()),
('Cliente 8', 'cliente8@example.com', 'female', NOW()),
('Cliente 9', 'cliente9@example.com', 'male', NOW()),
('Cliente 10', 'cliente10@example.com', 'female', NOW());

-- Inserción de datos en la tabla vendors


INSERT INTO vendors (vendor_name, registration_date)
VALUES
('Vendedor 1', NOW()),
('Vendedor 2', NOW()),
('Vendedor 3', NOW()),
('Vendedor 4', NOW()),
('Vendedor 5', NOW()),
('Vendedor 6', NOW()),
('Vendedor 7', NOW()),
('Vendedor 8', NOW()),
('Vendedor 9', NOW()),
('Vendedor 10', NOW());

INSERT INTO items (item_name, item_price, item_status, item_creation_date, vendor_id)


VALUES
('Producto A', 100, 'activo', NOW(), 1),
('Producto B', 200, 'activo', NOW(), 2),
('Producto C', 150, 'activo', NOW(), 3),
('Producto D', 50, 'activo', NOW(), 4),
('Producto E', 300, 'activo', NOW(), 5),
('Producto F', 120, 'activo', NOW(), 6),
('Producto G', 180, 'activo', NOW(), 7),
('Producto H', 90, 'activo', NOW(), 8),
('Producto I', 75, 'activo', NOW(), 9),
('Producto J', 250, 'activo', NOW(), 10);

INSERT INTO sales (customer_id, product_id, sale_status, sale_date)


VALUES
(1, 2, 'pendiente', NOW()),
(2, 3, 'en proceso', NOW()),
(3, 4, 'enviado', NOW()),
(4, 5, 'entregado', NOW()),
(5, 6, 'cancelado', NOW()),
(6, 7, 'pendiente', NOW()),
(7, 8, 'en proceso', NOW()),
(8, 9, 'enviado', NOW()),
(9, 10, 'entregado', NOW()),
(10, 1, 'cancelado', NOW());
CREATE VIEW sales_by_customer AS
SELECT
sales.id,
sales.customer_id,
sales.product_id,
sales.sale_status,
sales.sale_date,
customers.full_name
FROM sales
JOIN customers
ON sales.customer_id = customers.id;

CREATE VIEW sales_by_item AS


SELECT
sales.id,
sales.customer_id,
sales.product_id,
sales.sale_status,
sales.sale_date,
items.item_name
FROM sales
JOIN items
ON sales.product_id = items.id;

CREATE INDEX idx_sales_customer_id ON sales (customer_id);

CREATE INDEX idx_sales_product_id ON sales (product_id);

CREATE INDEX idx_items_vendor_id ON items (vendor_id);

SELECT *
FROM sales;

SELECT *
FROM sales_by_customer;

SELECT *
FROM sales_by_item;

SELECT *
FROM items;
Inserción de Datos en las Tablas:
MODELADO EER:

También podría gustarte