Você está na página 1de 28

UNIVERSIDAD NACIONAL

PEDRO RUIZ GALLO

FACULTAD DE INGENIERÍA CIVIL, SISTEMAS Y ARQUITECTURA


ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS

Diseño de Base de Datos de


Restaurant “Fiestas”
Fundamentos de Base de Datos

INTEGRANTES
Castillo Burgos christian
Sánchez Herrera Jhonny

DOCENTE
Ing. Rios Campos Pilar

Lambayeque, diciembre del 2017


Universidad Nacional Pedro Ruíz Gallo
Facultad de Ing. Civil, Sistemas y Arquitectura
Escuela Profesional de Ingeniería de Sistemas
a

1. DATOS INFORMATIVOS

Nombre: Fiestas
Ubicación: Av. Salaverry 1820
Distrito/Ciudad: Chiclayo
Tipo: Restaurante

2. OBJETIVOS

2.1. Objetivo General

Crear un modelo de una Base de Datos con el fin aportar una solución
viable a los problemas del almacenamiento y la gestión de la información de las
áreas de dicho negocio.

2.2. Objetivos Específicos

 Conseguir la información necesaria para elaborar un modelo de base de


datos relacional que le permitirá al Restaurante Fiestas manejar los datos
relacionados con su rubro.
 Ofrecer al Restaurante Fiestas una solución viable al problema de
almacenamiento de datos y gestión de la información que tiene
actualmente.
 Identificar los requerimientos de información.
 Efectuar el diseño conceptual entidad-relación de la base de datos.
 Estructurar el diseño lógico de la base de datos.
 Elaborar el diseño físico de la base de datos.
Universidad Nacional Pedro Ruíz Gallo
Facultad de Ing. Civil, Sistemas y Arquitectura
Escuela Profesional de Ingeniería de Sistemas
a

3. METODOLOGÍA APLICADA

Para el desarrollo de este proyecto se aplicaran tres técnicas de análisis de


información las cuales nos permitirán establecer cuáles son los requerimientos, las
mencionaremos a continuación:
 Entrevista y Encuesta.
 Observación directa de los procesos de la Empresa.
 Análisis de la documentación brindada.

4. EMPRESA

4.1. Organigrama
Universidad Nacional Pedro Ruíz Gallo
Facultad de Ing. Civil, Sistemas y Arquitectura
Escuela Profesional de Ingeniería de Sistemas
a

4.2. Misión

Brindar a cada cliente una experiencia única donde se combinen los ricos
platos y bebidas peruanas en un ambiente agradable, desarrollado por un equipo
humano comprometido en la satisfacción del cliente, generando desarrollo
económico a la empresa.

4.3. Visión

Ser reconocidos como un restaurante original, sólido y profesional, con


calidad humana y principios éticos, que ofrece servicios y productos de
excelencia.

4.4. Filosofía al Cliente

Nada nos importa más que la satisfacción del cliente. Por ello vamos a
ofrecer una garantía incondicional de regreso de dinero o cambio del plato de
comida al que no esté satisfecho con el servicio brindado. Esta garantía va a
demostrar nuestro compromiso de ofrecer el mejor servicio y al mismo tiempo
la satisfacción del cliente.

4.5. Metas a largo plazo

 Dentro de unos años llegar a ser una compañía rentable y sólida; lo cual
se evaluará a través de los resultados del balance general.
 Crear una ventaja competitiva en la región.
 Ser reconocidos nacional e internacionalmente por la calidad de los
alimentos que se ofrecen y por la cultura del servicio.
Universidad Nacional Pedro Ruíz Gallo
Facultad de Ing. Civil, Sistemas y Arquitectura
Escuela Profesional de Ingeniería de Sistemas
a

5. DESCRIPCIÓN DEL PROBLEMA.

Con el mundo actual de las tecnologías, una base de datos registrada en


cualquier dispositivo que se pueda utilizar crea una mayor confianza para consultar
una información que podría ser útil en el momento. Todas las empresas requieren
almacenar información, cada elemento informativo (nombre, dirección, sueldo, etc.)
es lo que se conoce como dato (Sánchez, J. 2004) continuando con al autor citado,
una base de datos ayuda, agiliza y ordena de manera precisa cierta información que
requiere en específico y que en un momento dado donde se quiera localizar o
buscar, se haga con la mayor rapidez posible y cumplir con ciertas tareas planteadas.
En los restaurantes, este sistema de gestión de bases de datos es utilizado de
manera inusual, por este motivo el manejo de la misma permitirá generar un cambio
significativo en la atención del servicio, la cual fue el caso del restaurante Fiestas
que no contaba con una base de datos y no le permitía poseer un registro de los
clientes que visitaban el mismo, donde se evidenció la poca atención personalizada
por parte del equipo de trabajo al no conocer los gustos y exigencias de los clientes
quedando inconforme y poco satisfecho al momento de culminar el servicio.
Dentro de este orden de ideas, la falta de esta atención personalizada genera
que los clientes no sientan la necesidad de volver al restaurante debido a que no
encuentran un servicio exclusivo, dirigiéndose otros lugares en búsqueda del mismo
perdiendo preferencia por el restaurarte Fiestas; en consecuencia no permitirá
generar entradas económicas al bajar la afluencia de clientes, de la misma forma
disminuirá la calidad del servicio creando desatención a los comensales e
indiferencia hacia el mejoramiento del mismo por parte del equipo de trabajo.

6. SOLUCIÓN PROPUESTA

Conocer a los comensales y satisfacer sus necesidades se vuelven los objetivos


principales y fundamentales que tiene el Restaurante Fiestas como meta y propósito.
Para ello se busca observar el comportamiento que demuestra el comensal en su llegada
al restaurante y anticiparse a toda exigencia posible, de esta manera lograr que su
estadía sea gratificante generando el constante regreso de los mismos, haciéndoles sentir
que el restaurante Fiestas forma parte de una necesidad propia a satisfacer; esto
conlleva a la producción de ganancias y el aumento de publicidad directa por parte del
Universidad Nacional Pedro Ruíz Gallo
Facultad de Ing. Civil, Sistemas y Arquitectura
Escuela Profesional de Ingeniería de Sistemas
a

cliente con otras personas al hacer referencia de su buena experiencia y excelente


servicio que le fue brindado dentro del mismo.

Con referencia a lo anterior se propone el diseño de una base de datos dentro del
restaurante Fiestas para el registro cronológico de todas las actividades y elementos
dentro del servicio del restaurante que el cliente disfrutó, de esta manera llevar así, un
seguimiento para próximas visitas del mismo cliente para mejorar el servicio de
atención.

7. DESCRIPCIÓN DE REQUERIMIENTOS DE INFORMACIÓN.

El restaurante Fiestas necesita implantar un sistema que le permita un mayor


control en la documentación (de las ventas o pedidos realizados), que pueda
almacenar una carta o guarde cada plato de comida que va a ofrecer.
Con el análisis de los datos recopilados fue posible establecer cuáles son las fuentes
de información necesarias que deben ser cubiertas por este modelo.
El restaurante cuenta con cierta cantidad de empleados de diferentes áreas por eso se
requiere guardar los datos de cada uno de ellos. Los requerimientos son los
siguientes: Nombre y Apellidos Paterno y Materno del empleado, el sueldo de cada
uno, el horario de trabajo y el área al que pertenece.
En el Área de Ventas el almacenamiento de información se realiza manualmente por
eso es necesario mostrar en el sistema de manera ordenada los pedidos del día con
los detalles de cada uno de ellos y el total de consumo.
Los empleados del Restaurante Fiestas necesitan visualizar el precio de cada plato
de comida, el pedido y también la capacidad y el estado de cada mesa (libre u
ocupada).
Universidad Nacional Pedro Ruíz Gallo
Facultad de Ing. Civil, Sistemas y Arquitectura
Escuela Profesional de Ingeniería de Sistemas
a

8. DETALLE DE ENTIDADES, ATRIBUTOS Y RELACIONES

Entidad Atributos Relacionada con


Cliente Dni* Pedido
Nombre
Apellido_paterno
Apellido_materno
Teléfono
Observación

Mesa Mesa_id* Pedido


Num_max_comensales
Estado

Pedido Pedido_id* Cliente


Fecha Mesa
Detalle Pedido
Empleado
Detalle Pedido Detalle_id* Pedido
Total Plato

Empleado Empleado_dni* Pedido


Nombre Turno
Apellido Horario
Teléfono
Dirección

Turno Turno_id* Empleado


Tipo
Universidad Nacional Pedro Ruíz Gallo
Facultad de Ing. Civil, Sistemas y Arquitectura
Escuela Profesional de Ingeniería de Sistemas
a

Área Área_id* Empleado


Sueldo
Tipo

Plato Plato_id* Detalle_pedido


Nombre
Precio
Descripción

Comprobante Compr_id* Detalle_pedido


Fecha
Tipo

Boleta Boleta_id* Supertipo Comprobante

Factura Factura_id* Supertipo Comprobante


Ruc
Igv

* = Atributo Identificador Principal


Universidad Nacional Pedro Ruíz Gallo
Facultad de Ing. Civil, Sistemas y Arquitectura
Escuela Profesional de Ingeniería de Sistemas
a

9. MODELO LÓGICO

El modelo lógico contempla el siguiente diccionario de datos:

CLIENTE

Campo Tipo de dato Nulo PK


Dni char(8) NOT NULL Y
Nombre varchar(50) NOT NULL N
apellido_paterno varchar(50) NOT NULL N
apellido_materno varchar(50) NOT NULL N
Teléfono char(9) NULL N
Observación varchar(50) NULL N

AREA

Campo Tipo de dato Nulo PK


area_id char(6) NOT NULL Y
Sueldo Doublé NOT NULL N
Tipo varchar(50) NOT NULL N

COMPROBANTE

Campo Tipo de dato Nulo PK


compr_id char(6) NOT NULL Y
fecha Date NOT NULL N
tipo char(1) NOT NULL N
boleta_id char(6) NULL N
factura_id char(6) NULL N
ruc char(12) NULL N
igv Doublé NULL N
Universidad Nacional Pedro Ruíz Gallo
Facultad de Ing. Civil, Sistemas y Arquitectura
Escuela Profesional de Ingeniería de Sistemas
a

EMPLEADO

Campo Tipo de dato Nulo PK


empleado_dni char(8) NOT NULL Y
nombre varchar(50) NOT NULL N
apellido varchar(50) NOT NULL N
telefono char(9) NOT NULL N
direccion varchar(50) NULL N

DETALLE_PEDIDO

Campo Tipo de dato Nulo PK


detalle_id char(6) NOT NULL Y
total Doublé NOT NULL N

MESA

Campo Tipo de dato Nulo PK


mesa_id char(6) NOT NULL Y
num_max_com int(11) NOT NULL N
estado varchar(1) NOT NULL N

PEDIDO

Campo Tipo de dato Nulo PK


pedido_id char(10) NOT NULL Y
fecha Date NOT NULL N
Universidad Nacional Pedro Ruíz Gallo
Facultad de Ing. Civil, Sistemas y Arquitectura
Escuela Profesional de Ingeniería de Sistemas
a

PLATO

Campo Tipo de dato Nulo PK


plato_id char(6) NOT NULL Y
nombre varchar(50) NOT NULL N
precio Doublé NOT NULL N
descripcion varchar(100) NULL N

TURNO

Campo Tipo de dato Nulo PK


turno_id char(6) NOT NULL Y
Tipo varchar(10) NOT NULL N

10. MODELO FÍSICO DE DATOS

A continuación se presenta el código “scripts” que dará origen al modelo físico en el


Sistema de Gestión de Base de Datos:

CREATE TABLE AREA

id_area CHAR (6) NOT NULL ,

sueldo NUMBER NOT NULL ,

tipo VARCHAR2 (50)

;
Universidad Nacional Pedro Ruíz Gallo
Facultad de Ing. Civil, Sistemas y Arquitectura
Escuela Profesional de Ingeniería de Sistemas
a

ALTER TABLE AREA

ADD CONSTRAINT "TIPO EMPLEADO PK" PRIMARY KEY ( id_area ) ;

CREATE TABLE CLIENTE

dni CHAR (8) NOT NULL ,

nombre VARCHAR2 (50) NOT NULL ,

apellido_paterno VARCHAR2 (50) NOT NULL ,

apellido_materna VARCHAR2 (50) NOT NULL ,

telefono CHAR (9) ,

observacion VARCHAR2 (50) ,

id_pedido CHAR (10) NOT NULL

CREATE UNIQUE INDEX CLIENTE__IDX ON CLIENTE

id_pedido ASC

ALTER TABLE CLIENTE

ADD CONSTRAINT "CLIENTE PK" PRIMARY KEY ( dni ) ;

CREATE TABLE COMPROBANTE

id_compr CHAR (6) NOT NULL ,

fecha DATE ,

id_pedido CHAR (10) NOT NULL ,


Universidad Nacional Pedro Ruíz Gallo
Facultad de Ing. Civil, Sistemas y Arquitectura
Escuela Profesional de Ingeniería de Sistemas
a

id_plato CHAR (6) NOT NULL ,

detalle_id CHAR (50) NOT NULL ,

id_boleta CHAR (6) NOT NULL ,

id_factura CHAR (6) NOT NULL ,

ruc CHAR (12) NOT NULL ,

igv NUMBER NOT NULL

CREATE UNIQUE INDEX COMPROBANTE__IDX ON COMPROBANTE

id_pedido ASC

ALTER TABLE COMPROBANTE

ADD CONSTRAINT "COMPROBANTE DE PAGO PK" PRIMARY KEY ( id_compr ) ;

CREATE TABLE DETALLE_PEDIDO

detalle_id CHAR (50) NOT NULL ,

total INTEGER NOT NULL ,

id_pedido CHAR (10) NOT NULL ,

id_compr CHAR (6) NOT NULL ,

id_plato CHAR (6) NOT NULL ,

DETALLE_PEDIDO_ID NUMBER NOT NULL ,

id_compr1 CHAR (6) NOT NULL

;
Universidad Nacional Pedro Ruíz Gallo
Facultad de Ing. Civil, Sistemas y Arquitectura
Escuela Profesional de Ingeniería de Sistemas
a

-- Error - Index DETALLE_PEDIDO__IDX has no columns

CREATE UNIQUE INDEX DETALLE_PEDIDO__IDX ON DETALLE_PEDIDO

id_compr ASC

CREATE UNIQUE INDEX DETALLE_PEDIDO__IDX ON DETALLE_PEDIDO

id_compr1 ASC

ALTER TABLE DETALLE_PEDIDO

ADD CONSTRAINT PK_DET_PEDIDO PRIMARY KEY ( id_pedido, id_plato, detalle_id ) ;

ALTER TABLE DETALLE_PEDIDO

ADD CONSTRAINT DETALLE_PEDIDO_PK UNIQUE ( DETALLE_PEDIDO_ID ) ;

CREATE TABLE EMPLEADO

dni_empleado CHAR (8) NOT NULL ,

nombre VARCHAR2 (50) NOT NULL ,

apellido VARCHAR2 (50) NOT NULL ,

telefono CHAR (9) NOT NULL ,

dirección VARCHAR2 (50) NOT NULL ,

id_turno CHAR (6) NOT NULL ,

id_area CHAR (6) NOT NULL

;
Universidad Nacional Pedro Ruíz Gallo
Facultad de Ing. Civil, Sistemas y Arquitectura
Escuela Profesional de Ingeniería de Sistemas
a

ALTER TABLE EMPLEADO

ADD CONSTRAINT "EMPLEADO PK" PRIMARY KEY ( dni_empleado ) ;

CREATE TABLE MESA

id_mesa CHAR (6) NOT NULL ,

num_max_com INTEGER NOT NULL ,

estado VARCHAR2 (1) NOT NULL ,

id_pedido CHAR (10) NOT NULL

CREATE UNIQUE INDEX MESA__IDX ON MESA

id_pedido ASC

ALTER TABLE MESA

ADD CONSTRAINT "MESA PK" PRIMARY KEY ( id_mesa ) ;

CREATE TABLE PEDIDO

id_pedido CHAR (10) NOT NULL ,

fecha DATE NOT NULL ,

id_mesa CHAR (6) NOT NULL ,

dni CHAR (8) NOT NULL ,


Universidad Nacional Pedro Ruíz Gallo
Facultad de Ing. Civil, Sistemas y Arquitectura
Escuela Profesional de Ingeniería de Sistemas
a

dni_empleado CHAR (8) NOT NULL

CREATE UNIQUE INDEX PEDIDO__IDX ON PEDIDO

dni ASC

CREATE UNIQUE INDEX PEDIDO__IDXv1 ON PEDIDO

id_mesa ASC

ALTER TABLE PEDIDO

ADD CONSTRAINT "PEDIDO PK" PRIMARY KEY ( id_pedido ) ;

CREATE TABLE PLATO

id_plato CHAR (6) NOT NULL ,

nombre VARCHAR2 (50) NOT NULL ,

precio NUMBER NOT NULL ,

descripcion VARCHAR2 (100) NOT NULL ,

id_pedido CHAR (10) NOT NULL ,

DET_PEDIDO_DET_PEDIDO_ID NUMBER NOT NULL

;
Universidad Nacional Pedro Ruíz Gallo
Facultad de Ing. Civil, Sistemas y Arquitectura
Escuela Profesional de Ingeniería de Sistemas
a

ALTER TABLE PLATO

ADD CONSTRAINT "PLATO PK" PRIMARY KEY ( id_plato ) ;

CREATE TABLE TURNO

id_turno CHAR (6) NOT NULL

ALTER TABLE TURNO

ADD CONSTRAINT "TURNO PK" PRIMARY KEY ( id_turno ) ;

ALTER TABLE CLIENTE

ADD CONSTRAINT CLIENTE_PEDIDO_FK FOREIGN KEY

id_pedido

REFERENCES PEDIDO

id_pedido

ON DELETE CASCADE

ALTER TABLE MESA

ADD CONSTRAINT MESA_PEDIDO_FK FOREIGN KEY

id_pedido
Universidad Nacional Pedro Ruíz Gallo
Facultad de Ing. Civil, Sistemas y Arquitectura
Escuela Profesional de Ingeniería de Sistemas
a

REFERENCES PEDIDO

id_pedido

ON DELETE CASCADE

ALTER TABLE PEDIDO

ADD CONSTRAINT PEDIDO_CLIENTE_FK FOREIGN KEY

dni

REFERENCES CLIENTE

dni

ON DELETE CASCADE

ALTER TABLE PEDIDO

ADD CONSTRAINT PEDIDO_MESA_FK FOREIGN KEY

id_mesa

REFERENCES MESA

id_mesa

)
Universidad Nacional Pedro Ruíz Gallo
Facultad de Ing. Civil, Sistemas y Arquitectura
Escuela Profesional de Ingeniería de Sistemas
a

ON DELETE CASCADE

ALTER TABLE EMPLEADO

ADD CONSTRAINT Relation_1 FOREIGN KEY

id_area

REFERENCES AREA

id_area

ON DELETE CASCADE

ALTER TABLE PEDIDO

ADD CONSTRAINT Relation_15 FOREIGN KEY

dni_empleado

REFERENCES EMPLEADO

dni_empleado

ON DELETE CASCADE

ALTER TABLE DETALLE_PEDIDO

ADD CONSTRAINT Relation_16 FOREIGN KEY


Universidad Nacional Pedro Ruíz Gallo
Facultad de Ing. Civil, Sistemas y Arquitectura
Escuela Profesional de Ingeniería de Sistemas
a

id_pedido

REFERENCES PEDIDO

id_pedido

ON DELETE CASCADE

ALTER TABLE DETALLE_PEDIDO

ADD CONSTRAINT Relation_17 FOREIGN KEY

id_plato

REFERENCES PLATO

id_plato

ON DELETE CASCADE

ALTER TABLE PLATO

ADD CONSTRAINT Relation_17 FOREIGN KEY

id_pedido

REFERENCES DETALLE_PEDIDO

(
Universidad Nacional Pedro Ruíz Gallo
Facultad de Ing. Civil, Sistemas y Arquitectura
Escuela Profesional de Ingeniería de Sistemas
a

DETALLE_PEDIDO_ID

ON DELETE CASCADE

ALTER TABLE DETALLE_PEDIDO

ADD CONSTRAINT Relation_19 FOREIGN KEY

id_compr

REFERENCES COMPROBANTE

id_compr

ON DELETE CASCADE

ALTER TABLE COMPROBANTE

ADD CONSTRAINT Relation_19 FOREIGN KEY

id_pedido,

id_plato,

detalle_id

REFERENCES DETALLE_PEDIDO

id_pedido,

id_plato,

detalle_id
Universidad Nacional Pedro Ruíz Gallo
Facultad de Ing. Civil, Sistemas y Arquitectura
Escuela Profesional de Ingeniería de Sistemas
a

ON DELETE CASCADE

ALTER TABLE DETALLE_PEDIDO

ADD CONSTRAINT Relation_19v1 FOREIGN KEY

id_compr

REFERENCES COMPROBANTE

id_compr

ON DELETE CASCADE

ALTER TABLE EMPLEADO

ADD CONSTRAINT Relation_2 FOREIGN KEY

id_turno

REFERENCES TURNO

id_turno

ON DELETE CASCADE

;
Universidad Nacional Pedro Ruíz Gallo
Facultad de Ing. Civil, Sistemas y Arquitectura
Escuela Profesional de Ingeniería de Sistemas
a

CREATE SEQUENCE DETALLE_PEDIDO_DETALLE_PEDIDO_

NOCACHE

ORDER ;

CREATE OR REPLACE TRIGGER DETALLE_PEDIDO_DETALLE_PEDIDO_

BEFORE INSERT ON DETALLE_PEDIDO

FOR EACH ROW

WHEN (NEW.DETALLE_PEDIDO_ID IS NULL)

BEGIN

SELECT DETALLE_PEDIDO_DETALLE_PEDIDO_.NEXTVAL INTO :NEW.DETALLE_PEDIDO_ID


FROM DUAL;

END;

/
11. CONSULTAS SQL

Mostrar los datos de los empleados que tienen un sueldo igual a S/.800.
SELECT *
FROM empleado
INNER JOIN area ON ( area.area_id = empleado.area_id )
WHERE area.sueldo =800;

Mostrar el dni, nombres y apellidos de los empleados que realizaron pedidos,


también mostrar el pedido_id y la fecha.

SELECT e.empleado_dni, e.nombre, e.apellido, p.pedido_id, p.fecha


FROM empleado e
JOIN pedido p ON ( e.empleado_dni = p.empleado_dni );

Mostrar el compr_id, fecha, tipo de la tabla comprobante y el total consumido que


sea mayor o igual que 100.
SELECT C.COMPR_ID, C.FECHA, C.TIPO, D.TOTAL AS TOTAL_CONSUMIDO
FROM COMPROBANTE C
JOIN DETALLE_PEDIDO D ON ( C.COMPR_ID = D.ID_COMPROBANTE )
WHERE D.TOTAL >=100
Universidad Nacional Pedro Ruíz Gallo
Facultad de Ing. Civil, Sistemas y Arquitectura
Escuela Profesional de Ingeniería de Sistemas
a

Mostrar los empleados que ganan más de S/. 1000

SELECT DISTINCT e.empleado_dni, e.nombre, e.apellido, a.tipo, a.sueldo


FROM empleado e
JOIN area a ON ( e.area_id = a.area_id )
WHERE a.sueldo >1000;

Mostrar el comprobante de tipo Boleta, también mostrar a que detalle pertenece y el


total

SELECT c.compr_id, c.fecha, c.tipo, d.detalle_id, d.total


FROM comprobante c
JOIN detalle_pedido d ON ( c.detalle_id = d.detalle_id )
WHERE c.tipo = 'B';

Mostrar las mesas cuyo estado es Ocupado

SELECT mesa_id AS Numero_mesa, estado


FROM mesa
WHERE estado = "O";
Universidad Nacional Pedro Ruíz Gallo
Facultad de Ing. Civil, Sistemas y Arquitectura
Escuela Profesional de Ingeniería de Sistemas
a

Mostrar los empleados que trabajan turno Mañana

SELECT e.empleado_dni AS DNI, e.nombre, e.apellido, e.direccion, t.tipo AS turno


FROM empleado e
JOIN turno t ON ( e.turno_id = t.turno_id )
WHERE tipo = "Mañana";

Mostrar los Empleados que trabajan en Caja.

SELECT e.empleado_dni AS DNI, e.nombre, e.apellido, a.area_id, a.tipo


FROM empleado e
JOIN area a ON ( e.area_id = a.area_id )
WHERE a.area_id = "1";

Mostrar el DNI, nombre, apellido de los empleados que sus apellidos comiencen
con R.

SELECT empleado_dni AS DNI, nombre, apellido


FROM empleado
WHERE apellido LIKE 'R%'

Você também pode gostar