D ATA B A S E
F U N D AT I O N S O R A C
LE
Integrantes:
Juan Carlos
Palacios Chalco
Ivan Yunior Toma
Luna
Fabiola Ramos
Huaraya
CASO PRACTICO
Una cafetería contrata a un Profesional para que desarrolle un
Sistema que controle las ventas del negocio. Dicha cafetería se
dedica a la venta de todo tipo de café (Capuccino, Express,
Mocassino, Frappes etc.) además vende productos como
Empanadas (carne, queso, mixto), Pasteles (pyes, tortas por
tajadas, tartaletas etc.) y Sándwiches (pollo,
jamón, queso, hotdog etc.). La Cafetería cuenta con personal que
atiende en el mismo
negocio en los turno de mañana y tarde, los clientes realizan los
pedidos para llevar y/o para consumir en las mesas del mismo
local Cada mesa tiene un numero de mesa y están en un solo
nivel. Para que se pueda controlar las ventas en cada turno el
experto recomienda que el Sistema genere un Ticket de venta
que se le entregará al cliente.
Realizar el Análisis para Modelar y Generar la Base de Datos.
Tiempo estimado (2 horas)
● Realizar el Modelo Conceptual (MER)
● Las tablas deben de estar Normalizadas hasta la 3ra
Forma Normal(3FN)
● Realizar el Modelo Lógico.
● Realizar el Modelo Físico
● Generar el Script para generar la Base de Datos para
la versión ORACLE 21
● Crear las Tablas y Relaciones en APEX de ORACLE.
Se realizo el modelado conceptual en el Programa
Dí[Link] en el siguiente Diagrama.
Modelado Logico en Data Modeler el siguiente
Diagrama
Modelado Relational en Data Modeler el
siguiente Diagrama
Modelado Script en Data Modeler el siguiente
Diagrama En Oracle 21C
CREATE TABLE categoria (
id_menu NUMBER NOT NULL,
bebidas VARCHAR2(100 CHAR) NOT NULL,
postres VARCHAR2(100 CHAR) NOT NULL,
empanadas VARCHAR2(100 CHAR) NOT NULL,
sandwches VARCHAR2(100 CHAR) NOT NULL
);
ALTER TABLE categoria ADD CONSTRAINT categoria_pk PRIMARY KEY ( id_menu );
CREATE TABLE clientes (
id_cliente NUMBER NOT NULL,
nombre_cliente VARCHAR2(150 CHAR) NOT NULL,
apellido_cliente VARCHAR2(150 CHAR) NOT NULL,
numero VARCHAR2(150 CHAR) NOT NULL,
"D.N.I_Cliente" VARCHAR2(10 CHAR) NOT NULL
);
ALTER TABLE clientes ADD CONSTRAINT curso_pk PRIMARY KEY ( id_cliente );
CREATE TABLE mesas (
id_mesa NUMBER NOT NULL,
numeracion VARCHAR2(8 CHAR) NOT NULL,
cantidad VARCHAR2(100 CHAR) NOT NULL,
ape_docente VARCHAR2(100 CHAR) NOT NULL,
user_docente VARCHAR2(100 CHAR) NOT NULL,
pass_docente VARCHAR2(100 CHAR) NOT NULL,
dir_docente VARCHAR2(100 CHAR) NOT NULL,
email_docente VARCHAR2(100 CHAR),
tel_docente VARCHAR2(15 CHAR)
);
ALTER TABLE mesas ADD CONSTRAINT docente_pk PRIMARY KEY ( id_mesa );
CREATE TABLE personal (
id_persona NUMBER NOT NULL,
"D.N.I" VARCHAR2(15 CHAR) NOT NULL,
nombre_personal VARCHAR2(150 CHAR) NOT NULL,
apellido_personal VARCHAR2(150 CHAR) NOT NULL,
celular VARCHAR2(15 CHAR),
direccion VARCHAR2(150 CHAR),
usuario VARCHAR2(150 CHAR) NOT NULL,
contraseña VARCHAR2(150 CHAR) NOT
NULL,
turno_id_carrera NUMBER NOT NULL
);
ALTER TABLE personal ADD CONSTRAINT personal_pk PRIMARY KEY ( id_persona );
CREATE TABLE producto (
id_producto NUMBER NOT NULL,
categoria VARCHAR2(50 CHAR) NOT NULL,
precio_producto VARCHAR2(1000 CHAR) NOT NULL,
cantidad VARCHAR2(100 CHAR) NOT NULL,
user_alumno VARCHAR2(50 CHAR) NOT NULL,
pass_alumno VARCHAR2(100 CHAR) NOT
NULL, fech_nacimiento DATE NOT NULL,
dir_alumno VARCHAR2(150),
correo_alumn VARCHAR2(100 CHAR),
celular_alumn VARCHAR2(15 CHAR),
categoria_id_menu NUMBER NOT NULL
);
ALTER TABLE producto ADD CONSTRAINT alumno_pk PRIMARY KEY ( id_producto );
CREATE TABLE ticket (
id_ticket NUMBER NOT NULL,
id_cliente NUMBER NOT NULL,
fecha_ticket DATE
);
ALTER TABLE ticket ADD CONSTRAINT ticket_pk PRIMARY KEY ( id_ticket,
id_cliente );
CREATE TABLE tipo_de_consumo (
tipo_de_consumo_id NUMBER NOT NULL,
llevar VARCHAR2(150 CHAR) NOT NULL,
consumo_en_mesa VARCHAR2(150 CHAR) NOT NULL
);
ALTER TABLE tipo_de_consumo ADD CONSTRAINT tipo_de_consumo_pk PRIMARY KEY ( tipo_de_consumo_id );
CREATE TABLE turno_personal (
turno_id_carrera NUMBER NOT NULL,
personal_id_persona NUMBER NOT NULL
);
ALTER TABLE turno_personal ADD CONSTRAINT turno_personal_pk PRIMARY KEY ( turno_id_carrera,
personal_id_persona );
ALTER TABLE ventas
ADD CONSTRAINT ventas_pk PRIMARY KEY ( id_venta,
id_ticket,
id_producto );
ALTER TABLE producto
ADD CONSTRAINT producto_categoria_fk FOREIGN KEY ( categoria_id_menu )
REFERENCES categoria ( id_menu );
ALTER TABLE turno_personal
ADD CONSTRAINT turno_personal_personal_fk FOREIGN KEY ( personal_id_persona )
REFERENCES personal ( id_persona );
ALTER TABLE ventas
ADD CONSTRAINT ventas_clientes_fk FOREIGN KEY ( clientes_id_cliente )
REFERENCES clientes ( id_cliente );
ALTER TABLE ventas
ADD CONSTRAINT ventas_mesas_fk FOREIGN KEY ( mesas_id_mesa )
REFERENCES mesas ( id_mesa );
ALTER TABLE ventas
ADD CONSTRAINT ventas_personal_fk FOREIGN KEY ( personal_id_persona )
REFERENCES personal ( id_persona );
ALTER TABLE ventas
ADD CONSTRAINT ventas_producto_fk FOREIGN KEY ( producto_id_producto )
REFERENCES producto ( id_producto );
ALTER TABLE ventas
ADD CONSTRAINT ventas_ticket_fk FOREIGN KEY ( ticket_id_ticket,
ticket_id_cliente )
REFERENCES ticket ( id_ticket,
id_cliente );
ALTER TABLE ventas
ADD CONSTRAINT ventas_tipo_de_consumo_fk FOREIGN KEY ( tipo_de_consumo )
REFERENCES tipo_de_consumo ( tipo_de_consumo_id );
CREATE SEQUENCE tipo_de_consumo_tipo_de_consum START WITH 1 NOCACHE ORDER;
CREATE OR REPLACE TRIGGER tipo_de_consumo_tipo_de_consum
BEFORE INSERT ON tipo_de_consumo
FOR EACH ROW
WHEN ( new.tipo_de_consumo_id IS NULL )
BEGIN
:new.tipo_de_consumo_id := tipo_de_consumo_tipo_de_consum.nextval;
END;
/
PASO 1
Crear el lugar donde
colocar el ddl de la tabla
PASO2
COLOCAR UN NOMBRE
PASO 3
CREAR TABLA
PASO 4
PASO 5