entre menú y plato con cardinalidades (0,N) y (3,3), respectivamente. Esta solución garantiza que no se puede "repetir" un plato en el (1,1)



Documentos relacionados
ESQUEMA E/R (1) S.V. Feb2012 1

Tema II: Nivel conceptual de una Base de Datos. El modelo E/R

Tema II: Nivel conceptual de una Base de Datos. El modelo E/R

UNIDAD 3 MODELO ENTIDAD- RELACION

Unidad 2. Bases de Datos Relacionales

Bases de Datos OTROS ASPECTOS MODELO E-R

EL MODELO RELACIONAL

Modelo Relacional I. Nos encontramos en la FASE 2: REGLAS DE TRANSFORMACIÓN del Modelo Entidad Relación (MER) al Modelo Relacional (MR).

Sistemas de Bases de Datos I Modelo Conceptual Modelo Entidad-Relación

Fundamentos de Informática

SISTEMAS DE INFORMACIÓN III LABORATORIO

Empleado. Departamento

Sistemas de Bases de Datos I. Modelo Conceptual. Modelo Entidad-Relación

Sistemas de Bases de Datos I. Modelo Conceptual. Modelo Entidad Relación

Modelo Entidad Relación.MER.

Departamento de Informática Universidad de Valladolid Campus de Segovia TEMA 7, SECCIÓN 3: MODELADO DE DATOS

Estructuras de Almacenamiento de Datos

Información: Dato que tiene un significado, el dato fue procesado y se convirtió en información.

Modelado Entidad-Relación

Metodología de Diseño Lógico. Sistemas Gestores de Bases de Datos

Modelo Entidad Relación

TEMA 3: REDUCCIÓN DE UN ESQUEMA E-R A TABLAS

Bases de Datos. Laboratorio III, L106/L111. Profesor: Goyo Celada

Jose Manuel Almagro Domínguez. 2.Farmacia

Diseño Conceptual y Lógico

INSTITUTO TECNOLOGICO SUPERIOR DE LERDO. ALUMNO: JUAN ESQUIVEL VAQUERA. ENSAYO: Modelo entidad-relación. PROFESOR: RICARDO BUSTAMANTE.

CAPÍTULO 4 JERARQUÍAS

Objetivos de los sistemas de bases de datos.

Ap2. FNac. Nombre (1,1) (0,1) Dirige. (1,n) Trabaja_en. Horas. Nombre Sexo. Numero Nombre

DED Diagramas de Estructura Lógica de Datos. Universidad de Oviedo Departamento de Informática

DI SEÑO DE BASES DE DATOS Y SEGURIDAD DE LA INFORMACIÓN (31 de mayo de 2005) 3DUFLDO. APELLIDOS: NOMBRE: TITULACIÓN (Sistemas/Gestión):

Diseño de Base de Datos Relacionales

Transformación ER Relacional para el diseño de bases de datos relacionales

Ing. Yim Isaias Apestegui Florentino

El Sistema de Información (S.I.) regula la distribución, el compartimiento y el almacenamiento de la información.

Gestion y Modelación de Datos Diseño de BD - Modelo Entidad Relación

PRÁCTICA OBLIGATORIA COMPETICIONES FÚTBOL SALA

Diseño de base de datos: Modelo Entidad Relación (II)

Sistemas de Bases de Datos I MODELADO DE DATOS I. Sistema de Bases de Datos I

Gestión base de datos : Modelo Relacional (II)

Apartado A (5 puntos):

DI SEÑO DE BASES DE DATOS Y SEGURIDAD DE LA INFORMACIÓN. (Febrero, 2006) 3DUFLDO. APELLIDOS: NOMBRE: TITULACIÓN (Sistemas/Gestión):

Modelos de Datos. Modelo Entidad-Relación

BASES DE DATOS AVANZADAS. Facultad de Estadística e Informática

Las tres reglas básicas para convertir un esquema en el modelo E/R al relacional son las siguientes:

Unidad 2 MODELO ENTIDAD - RELACIÓN

Metodología de Desarrollo Visual. Universidad Carlos III de Madrid. Maria- Isabel, Sanchez Segura & Arturo, Mora- Soto

- Bases de Datos (2012/2013) Adjunto Tema 1: Ampliación DER

UNIDAD 3 MODELO RELACIONAL

Modelos de datos. Colección de herramientas conceptuales para describir

Es decir, se va a mostrar la equivalencia más eficiente entre las distintas relaciones representables en E-R y MR.

Base de Datos. Profesores: Franklin Johnson P. José Miguel Rubio L.

Modelo Relacional. El modelo relacional...1 El modelo entidad relación (que vimos ayer) es un modelo conceptual que sirve

Diseño Lógico Estándar. Diseño Lógico Tema 12

Formato de números en Excel 2013

El Modelo Relacional. Estática

Esquema Lógico CHEF. CHEF (nombre:cadena, ciudad:cadena, país:cadena) CP (nombre)

El modelo Entidad-Relación

Diseño Lógico El modelo relacional. M.Sc.Lic. Cimar H. Meneses España

Modelos de Software. Ingeniería en Sistemas de Información

7 Diseño de Bases de Datos Relacionales: Normalización

Contenido. 1. El proceso 2. Los modelos 3. Los diagramas 4. Ejemplo

Modelos y Bases de Datos

[4] Diseño lógico de bases de datos

ž,qjhqlhutd,qirupiwlfd $VLJQDWXUD%DVHVGH'DWRV 35É&7,&$'/ ',6(f2/Ð*,&2'(%' 0RGHOR(QWLGDG,QWHUUHODFLyQ([WHQGLGRÆ0RGHOR5HODFLRQDO

1. Estructura de datos. Se refiere a todos los elementos necesarios para modelar una Base de Datos Relacional.

Informática. Introducción a las bases de datos relacionales. Diseño conceptual. Carmen Graciani Díaz Luis Valencia Cabrera

BASE DE DATOS RELACIONALES

THEME Matriz de Competencias Cocineros Competencias parciales\ Resultados de aprendizaje

Modelo Entidad Relacion Extendido

CC BASES DE DATOS OTOÑO 2018

Unidad 3. Álgebra Relacional y Cálculo Relacional

Creación de una relación de tablas

TRANSFORMACIÓN DE ESQUEMAS E/R A ESQUEMAS RELACIONALES CASOS PRÁCTICOS RESUELTOS

Análisis y Diseño de Sistemas

Diseño de bases de datos. Informática Aplicada Grado en GAP Fac. de Admón. y Dir. de Empresas Univ. Politécnica de Valencia

Tribunal de Selección Técnicos Superiores Categoría Cocinero. 2º Ejercicio de la fase de oposición 18/10/2008

Tema 2: Diseño conceptual de Bases de Datos: el Modelo Entidad Relación

Acciones correctivas, preventivas y de mejora. CONTROL DE CAMBIOS Cambio Realizado Realizado por Fecha Versión

JUAN C. MIRANDA R. Unidad II. Elementos para Interpretar el Modelo Conceptual de Datos 01/06/2012. Unidad Curricular: Base de Datos

Catedra de Base de Datos

Bases de datos 1. Teórico: Diseño Conceptual

BASES DE DATOS 1. Teórico: Diseño Conceptual

Conceptos Objetivos Un modelo... Artefactos Ejercicio. Base de Datos. Modelo Entidad-Relación (E-R) Eduardo Saavedra A.

INTEGRIDAD REFERENCIAL

Unidad II. Diseño Conceptual de una Base de Datos: Modelo Entidad/Relación Extendido. (Elmasri-Korth)

Modelo entidad relación. Qué es el modelo entidad-relación?

Teoría de la Computación

TAREA No. 2 MODELO ENTIDAD RELACIÓN FANNY MILEISIS DIAZ PINTO

Temario. Tema 5. Bases de Datos Activas Tema 6. Disparadores en Oracle Prácticas de Disparadores en Oracle III. BD Semiestructuradas

- Bases de Datos (2012/2013) Tema 2: Diseño lógico. Modelo Relacional

BASES DE DATOS. TEMA 4. Modelización semántica. Modelo entidad-relación

TECNOLOGÍAS DE LA INFORMACIÓN PARA LA INNOVACIÓN. Facultad de Estadística e Informática

Transcripción:

1 Algunas consideraciones generales para el diseño: 1) Tanto la fuente de la que procede la receta, como la ubicación del libro, cinta de vídeo, etc., con la información original son simples atributos del tipo de entidad receta. Puesto que es posible que no se tenga esta información de todas las recetas (aunque no se especifica nada en el enunciado), se opta por especificar estos atributos como opcionales. 2) Si bien en una primera aproximación se podría pensar en identificar receta con plato, se ha optado por modelar ambos conceptos de forma separada. Las razones básicas son las siguientes: La información del tipo de plato, y del ingrediente principal está asociada a cada plato, independientemente de la receta con que se ha elaborado. Se indica que los menús están formados por varios platos, sin que importe el procedimiento de elaboración de cada plato (la receta). Por otra parte, se considera que cada receta sirve para elaborar uno y sólo un plato determinado, y que de cada uno de los platos se tiene al menos una receta. Esta decisión de diseño parece acertada en el contexto del enunciado, aunque no es adecuada para el apartado a) de las modificaciones propuestas, donde una receta no tiene por qué constituir ningún plato concreto, sino que describe un "ingrediente elaborado" que puede ser empleado en otras recetas. Aunque lo más natural sería modelar receta como un tipo de entidad débil con respecto a plato (cada receta se identificaría con el del plato y otro atributo que permitiera distinguir entre las diferentes recetas de un plato), puesto que en el enunciado se indica que las recetas se identifican con un número clave, se opta por modelar receta como un tipo de entidad fuerte (tampoco podría modelarse como débil si se permitieran recetas que no están asociadas a un plato concreto) 3) Para representar la lista de pasos de una receta se ha optado por una solución simple y eficaz, que consiste en identificar cada paso por la receta a que pertenece y un número de orden correlativo. Es decir, se ha modelado el pasoreceta como un tipo de entidad débil con respecto a receta, que tiene a numpaso como discriminador. 4) Para representar los utensilios utilizados en cada paso de una receta, dado que sólo interesa el del utensilio, basta con utilizar un atributo multivaluado y opcional (no en todos los pasos tiene por qué emplearse alguno). Si se dispusiera de información adicional del utensilio (tamaño, material, etc.) sería necesario representarlo con un tipo de entidad independiente. El esquema E/R 2 ilustra este caso donde, además, se ha añadido un identificador adicional que, aunque no es necesario, permite ilustrar otros conceptos ( del utensilio será atributo identificador alternativo) 5) Siguiendo las pautas indicadas para los utensilios, se representan los ingredientes como un tipo de entidad, ya que hay que representar las calorías de cada ingrediente. Para justificar más esta idea se ha añadido el atributo propiedades (no necesario, pues no se menciona en el enunciado). Tanto la cantidad empleada en cada paso como las unidades empleadas en cada paso constituyen atributos de la interrelación correspondiente. Se ha especificado unidad como atributo opcional ya que, en algunos casos, puede no ser necesario (p.e. 2 huevos). tipomenu 6) El modelado del menú y de su composición sugiere varias alternativas: id_menu Si no importa qué plato constituye el primer plato, segundo o postre, se podría considerar la composición como una simple interrelación entre menú y plato con cardinalidades y (3,3), respectivamente. primero segundo postre Esta solución garantiza que no se puede "repetir" un plato en el menú. Para añadir la información del orden bastaría un atributo en la interrelación, pero haría falta una restricción adicional que garantice que en un menú no haya papeles repetidos (p.e. dos primeros). tipoplato Otra solución simple y eficaz para representar el papel de cada plato consiste en utilizar un tipo de interrelación para cada uno de ellos. El inconveniente de esta solución es que hay que añadir una restricción adicional que garantice que los platos de un menú son distintos. Esta es, quizás, la solución más eficaz y fácil de implementar en el modelo relacional.

2 Si un plato no puede tener diferentes papeles en los menús (siempre es primero, o segundo, o postre, o nada), basta con especificar una exclusión de las interrelaciones con plato. Otra solución adecuada, que incluye de forma natural esta última situación, consiste en representar los platos mediante una especialización con exclusión entre los subtipos. Aunque este esquema es más elegante y general (permite representar más información), puede complicar un poco más la representación de forma innecesaria, por lo que no se utiliza. PRIMERO serprin SEGUNDO serseg POSTRE serpos Otra solución bastante interesante consiste en representar cada plato del menú con un tipo de entidad débil con respecto a menú, que tiene como atributo discriminador partemenu, para describir la parte del menú que representa (primero, segundo, postre). La principal ventaja de esta solución es que permite configurar menús más complejos de un modo más fácil (p.e. menús con entrantes, aperitivos, etc.) también podría plantearse como débil con respecto a partemenu (3,3) para la primera parte id_menu estaren _ formar Teniendo en cuenta las consideraciones efectuadas, se puede plantear el siguiente esquema E/R id_menu partemenu tipoplato recetario esquema E/R 1 constar (3,3) tipomenu cocinar fuente id_receta RECETA tiempototal compbasico ubicación desglosar descripción tiempo cantidad calorías utensilio PASO_RECETA incluir INGREDIENTE numpaso operación unidades propiedades todo ingrediente básico de un plato debe formar parte de la lista de ingredientes de algún paso de las recetas verificar que partemenu no se repite para los platos de un mismo menú Si deseara tener más información (material, tamaño, etc.) de los utensilios empleados, se podría plantear el siguiente esquema, con las mismas restricciones del esquema anterior (es el que se transformará al modelo relacional, salvo la parte del menú):

3 id_menu partemenu tipoplato recetario esquema E/R 2 constar (3,3) tipomenu cocinar fuente ubicación id_receta RECETA tiempototal compbasico desglosar id_utensilio descripción tiempo cantidad calorías UTENSILIO usar PASO_RECETA incluir INGREDIENTE material numpaso operación unidades propiedades 7) La posibilidad de que un paso de una receta consista en la realización de una receta determinada se puede modelar mediante una especialización del tipo de entidad pasoreceta en los subtipos refreceta y detallep. Además hay que cambiar la cardinalidad de la interrelación plato con receta a, puesto que una receta no tiene por qué constituir un plato. id_receta tiempototal cocinar RECETA tipoplato ubicación fuente desglosar numpaso descripción compbasico PASO_RECETA basar cantidad tiempo INGREDIENTE necesitar DETALLE_P REF_RECETA propiedades calorías unidades utensilio operación recetario esquema E/R 3 (excepto menú) una receta no puede estar basada en sí misma. Nota: En todos los esquemas E/R se ha utilizado la notación de cardinalidad de la interrelación.

4 8) La posibilidad de que un menú disponga de varios platos para elegir se puede modelar cambiando simplemente la cardinalidad máxima de las interrelaciones entre menú y plato. id_m enu tipomenu si no se especifica la exclusión de las interrelaciones con plato (un plato podría pertenecer a partes distintas en diferentes menús), entonces hay que: verificar que los platos de un menú son distintos. primero segundo postre si se quiere que un plato sólo pueda ser de un tipo ( siempre!) tipoplato También se puede usar la solución basada en la representación explícita de las partes del menú: partem enu id_m enu constar CARTA_ formar No obstante, dado que en este problema la mayor ventaja de esta solución es que permite que haya platos repetidos en un menú (en diferentes partes), que no es necesario, resulta más simple y eficaz modelarlo como en la primera propuesta. Además hay que verificar que ocurrencias en constar con todas partemenu id_menu Obsérvese que en el modelo relacional la solución anterior conduce a esta última. partemenu constar Nota: Para simplificar la presentación, en los esquemas E/R se ha omitido la descripción de los dominios, incluyéndose solamente en el esquema relacional (son los mismos).

Esquema relacional de la Base de Datos "Recetario" DOMINIOS tpnombre = cadena[32]; tptexto = cadena[255]; tpplato = ( carne, pescado, huevos, verdura,... ); tpunidad = ( gramo, pizca, cucharada,... ); tppartemenu = ( primero, segundo, postre ); ESQUEMAS DE RELACION (esquema E/R 2) Receta ( id-receta : natural, clave primaria; fuente : tpnombre; ubicacion : tpnombre; tiempototal : tptiempo, NO NULO; : tpnombre, NO NULO, clave ajena de Plato); verificar que toda receta tiene al menos un paso id_receta, ocurrencia en PasoReceta PasoReceta ( id-receta : natural, clave ajena de Receta; tiempo : tptiempo, NO NULO; descripcion : tptexto; operación : tptexto, NO NULO; (id-receta, numpaso) clave primaria); Utensilio ( { sobraría en ER1 (Utensilio atributo multivaluado), quedando sólo usoutensilios(id-receta, numpaso, nombutensilio) } id-utensilio : natural, clave primaria; nombutensilio: tpnombre, NO NULO, UNICO; material : tpnombre); usoutensilios ( id-receta : natural; id-utensilio : natural, clave ajena de Utensilio; (id-receta, numpaso, id-utensilio) clave primaria; (id-receta, numpaso) clave ajena de pasoreceta); Ingrediente ( nombingred : tpnombre; calorias : natural, NO NULO; propiedades : tptexto); usoingredientes ( id-receta : natural; nombingred : tpnombre, clave ajena de ingrediente; cantidad : natural, NO NULO; unidades : tpunidad; (id-receta, numpaso, id-ingred) clave primaria; (id-receta, numpaso) clave ajena de pasoreceta); Plato ( : tpnombre, clave primaria; tipoplato : tpplato; : tptexto; : natural, NO NULO; {en céntimos de euro, o redondeado a euros;, si no, nº real con 2 decimales} ingredbasico: tpnombre, clave ajena de Ingrediente); verificar que de todo plato hay al menos una receta. verificar que si ingredbasico es no nulo, se usa en todas las recetas del plato. Menu ( {corresponde al primer esquema E/R presentado, con 3 interrelaciones binarias} id-menu : natural, clave primaria; tipomenu : tpnombre; : natural, NO NULO; primero : tpnombre, NO NULO, clave ajena de Plato; segundo : tpnombre, NO NULO, clave ajena de Plato; postre : tpnombre, NO NULO, clave ajena de Plato); verificar que primero, segundo y postre son distintos. 5

el esquema correspondiente al tipo de entidad débil PlatoMenu (apartado 6) quedaría: Plato_Menu ( partemenu : tppartemenu; refplato : tpnombre, NO-NULO, clave ajena de Plato; (id-menu, refplato) UNICO; (id-menu, partemenu) clave primaria); garantiza que no se repiten platos en un menú verificar que id-menu, ocurrencia en PlatoMenu Obsérvese que queda más compleja que la solución anterior. apartado a) hay que modificar PasoReceta, añadiendo refreceta y quitando la restricción de NO-NULO al atributo tiempo PasoReceta ( id-receta : natural; refreceta : natural, clave ajena de Receta; tiempo : tptiempo; descripcion : tptexto; (id-receta, numpaso) clave primaria); verificar que si refreceta es nulo, tiempo es NO-NULO, y que si refreceta es NO-NULO, tiempo es NULO. verificar que una receta no está basada en sí misma además, en las relaciones usoutensilios y usoingredientes, hay que verificar que en el PasoReceta referenciado, refreceta es NULO. apartado b) las referencias a platos que hay en menu se transforman en relaciones: Menu ( id-menu : natural, clave primaria; tipomenu : tpnombre; : natural, NO NULO); cartaprimeros ( cartasegundos ( cartapostres ( verificar que todo menú tiene al menos un primero, un segundo, y un postre id_menú en Menú ocurrencia en cartaprimeros, cartasegundos, y en cartapostres otra solución más simple, correspondiente al último esquema E/R sería la siguiente: Carta_Menu ( partemenu : tppartemenu, NO-NULO; (id-menu, partemenu) UNICO; { sólo si un menú sólo tuviera 3 platos (uno por cada parte del menú)} verificar que id_menú en Menú, y partemenu ocurrencia en carta_menu { todo menú tiene 3 platos} Observaciones: 1) Para facilitar la lectura, la especificación de clave primaria se ha puesto de forma redundante (no sería necesario) 2) En la especificación de claves ajenas que no se indique lo contrario se sobreentiende que las op. de borrado y modificación están restringidas 6