Creando un Modelo de Datos para un Restaurante 1.- Descripción del problema y algunas definiciones Probablemente, la mayoría de nosotros ha tenido la posibilidad de comer en un restaurante. Para unificar conceptos y antes de hablar sobre la construcción del modelo de datos, diremos que un restaurante es un establecimiento comercial donde se siren platos para ser consumidos en el local o para llear. Por lo tanto, para brindar dicho sericio, un restaurante debe adquirir de sus proeedores, una serie de insumos para preparar los platos. !simismo, debe contar con personal adec ad ecua uado do pa para ra re real ali" i"ar ar la lass dis disti tinta ntass fu func ncio ione ness #c #cam amar arer ero, o, co coci cine nero ro,, et etc$ c$ter tera% a% y co con n la infraestructura física para recibir a los clientes que comer&n en el local #establecimiento, mesas, sillas y otros%.
!l in'resar un cliente al restaurante, $ste ser& recibido por un camarero, qui$n tomar& su pedido. Posteriormente, se 'enera un detalle con los platos que se deben preparar para un deter de termi mina nado do ped pedid ido. o. (l co coci cine nero ro se enc encar ar'a 'ar& r& de el elab abor orar ar di dich chos os pl plat atos os,, lo loss qu que e se ser& r&n n consumidos por los clientes. !l terminar de consumir, se re'istrar& la enta, incorporando todos los mon montos tos que deb deber& er&n n ser can cancel celado adoss por los cli client entes es #in #inclu cluyend yendo o pro propin pina a y)o *+ *+! !, ent entre re otros%. i bien, ya tenemos una idea de cómo funciona un restaurante, an necesitamos una base de datos, la que se define como una estructura de orden y funcionamiento para las ariables que cons co nsid ider erar arem emos os.. Cu Cuan ando do te ten' n'am amos os un una a no noci ción ón de có cómo mo se ser& r&n n la ba base se de da dato toss y el funcionamiento de nuestra or'ani"ación, podremos dar inicio a la construcción del modelo de dato da tos. s. (s (spe pecí cífi fica came ment nte, e, un mo mode delo lo de da datos tos es un es esqu quem ema a qu que e or orde dena na y 'o 'obi bier erna na es esta ta información, en donde eisten re'las de inculación. Dicho Dich o lo an ante teri rior or,, po pode demo moss co come men" n"ar ar a co cons nstr truir uir el mo mode delo lo de da dato tos. s. (n pr prim imer er lu lu'a 'arr, determinaremos las principales entidades #con su nombre en sin'ular% y codificaciones, que participar&n en el modelo incluyendo, entre par$ntesis, sus atributos claes/ •
Proeedor #Rut Proveedor %
•
*nsumo #Código Insumo%
•
Plato #Código Plato%
•
Cliente #Rut Cliente%
•
Pedido #Id Pedido%
•
+enta #Código Venta%
•
Mesa #Id Mesa%
•
Personal #Rut Personal%
•
0urno #Código Turno%
•
0ipo Personal #Código Tipo% Nota 1/
as tablas "Turno" y "Tipo Personal" corresponden a codificaciones de "Personal" .
Nota 2/
e podrían considerar otras entidades adicionales, pero la finalidad no es entre'ar un modelo comple2o, sino eplicar claramente cómo operaría un modelo de datos 'eneral para un restaurante.
2.- Reglas de Vinculación y Supuestos ue'o de definir las entidades, debemos establecer al'unas re'las de inculación y supuestos, tales como/ 2.1.- Reglas:
(n primer lu'ar, cuando eistan relaciones de “muchos es a muchos” entre al'unas entidades, se construir& una tabla intermedia, que tendr& el nombre de las entidades que la conforman. (sto, ocurre en las si'uientes relaciones #la tabla intermedia aparece en par$ntesis%/ •
Proeedor e *nsumo #Proveedor_Insumo%
•
*nsumo y Plato #Insumo_Plato%
•
Pedido y Plato #Pedido_Plato%
•
(n se'undo lu'ar, eistir&n relaciones “uno es a mucho”, las que refle2an a todas las relaciones restantes en el modelo de datos que amos a presentar. !l'unas de ellas son/ Personal31 y Pedido
•
Personal y Plato
•
0urno y Personal
•
0urno y Personal31
•
(ntre otras Nota 3/
e duplicó la tabla "Personal" para refle2ar las distintas funciones de los camareros y los cocineros, tal que "Personal" corresponde a los cocineros y "Personal_1" a los camareros. a codificación que los diferencia es el "Código Tipo" . 2.2.- Supuestos: •
(iste sólo un local y no consideraremos la presencia de una carta.
•
0odos los insumos tendr&n un códi'o asociado.
•
•
•
•
os Precios de los insumos pueden ariar dependiendo del Proeedor, por lo que el atributo "Precio_Insumo" se colocó en la tabla intermedia "Proveedor_Insumo" . (istir&n distintos tipos de platos y presentaciones, se'n requerimientos de los clientes. os pedidos sólo podr&n ser solicitados para 4 Consumo en ocal5 o 4Retiro en ocal 5. (sto se refle2ar& en la cate'oría 4 Tipo_Pedido5 dentro de la tabla Pedido. as mesas se encontrar&n enumeradas.
•
•
•
•
•
•
upondremos que el nmero de comensales es apropiado para las distintas mesas. De lo contrario, se debiese cumplir que el nmero de comensales dentro de un pedido, debe ser menor o i'ual a la capacidad m&ima de la mesa. (istir&n una fecha de pedido, que puede ser distinta o no a la fecha de enta. Por simplicidad, suponemos que el Personal del restaurante est& compuesto por cocineros #Personal% y camareros #Personal_1%. De lo contrario, se deben a're'ar los otros car'os dentro de "Tipo_Personal" . 6n camarero #Personal_1% puede atender pedidos en distintas mesas, pero un pedido debe ser atendido por solo un camarero. upondremos que los clientes ser&n identificados por su Rut. o anterior, es para simplificar lo referente a pedidos para retiro en local. De lo contrario, se debe incluir un 4Código_Cliente5 dentro de la tabla "Cliente" . *nicialmente, supondremos que eisten los insumos suficientes para preparar los platos. De lo contrario el camarero #Personal_1% debe inform&rselo al cliente.
3.- Definición y Eplicación del !odelo !l in'resar un cliente 7 o un 'rupo de ellos 7 al restaurante es recibido por un camarero, qui$n lo acomodar& en una mesa, y le ofrecer& las distintas alternatias de platos, que son preparados en el local. Cuando los comensales se deciden, el camarero toma nota del detalle del pedido y lo llea a los cocineros. Posteriormente, el personal de cocina preparar& los platos que ser&n seridos a los clientes. (s importante recalcar que, para poder atender a clientes en el local, es necesario que eistan mesas y asientos disponibles que se a2usten a las necesidades de los clientes. Para preparar los distintos platos se requieren insumos, los que son obtenidos por medio de distintos proeedores. !simismo, un mismo plato tendr& diferentes presentaciones, las que depender&n de las preferencias del cliente por determinados sabores, tama8os, porciones, etc. 0ras finali"ar su comida, el Camarero retira los platos y procede a re'istrar la enta asociada pedido, incorporando todos los montos que deber&n ser cancelados por los clientes. ue'o de pa'ar, los comensales hacen abandono del restaurante. 9tra alternatia, consiste en que el cliente solicite un pedido para retirar en el local en una fecha determinada. Posteriormente, el cliente acudir& al establecimiento a pa'ar y retirar su pedido. Cabe se8alar que la fecha de pedido y la fecha de enta pueden ser diferentes #debiese eistir al'una diferencia para que los cocineros puedan preparar los platos y el cliente se desplace al local en el intertanto%. :inalmente, cabe se8alar que, al re'istrar la enta del pedido, $ste podr& ser cancelado de diersas formas como, por e2emplo, en efectio, cheque al día, tar2eta bancaria, etc$tera.
".- #resentación del !odelo (puesto todo lo anterior, lle'ó la hora de construir nuestro modelo de datos utili"ando Microsoft !ccess ;<1=>. (n primer lu'ar, se construyen las tablas que representaran a cada una de las entidades releantes para nuestro caso, incluyendo las cate'orías claes, for&neas y las dem&s. (n se'undo lu'ar, se construyen las tablas intermedias para las relaciones ?muchos son a muchos?.
:inalmente, debemos establecer las relaciones entre las distintas tablas si'uiendo las re'las de inculación y supuestos mencionados anteriormente. Como resultado, podremos obtener un modelo de datos como el que se muestra a continuación/
Modelo de Datos de un Restaurante utilizando Microsoft Access 2013®.
Por si an quedan al'unas dudas, a continuación, podr&n descar'ar el archio de !ccess> para que puedan reisarlo en su computador. !dem&s, ad2unto la captura de pantalla del modelo de datos y una presentación con el fin de sinteti"ar los conceptos m&s importantes.