proyecto:diagrama_er
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
proyecto:diagrama_er [2024/07/02 20:10] – ahogan | proyecto:diagrama_er [2024/07/02 22:30] (current) – [Relaciones no pueden tener llaves] ahogan | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ======Indicaciones | + | ======Indicaciones para el diagrama E/R====== |
En general, se diseña un diagrama E/R antes de definir las tablas. En el contexto de los proyectos, hemos detectado muchos problemas con los diagramas E/R entregados, pues los datos ya vienen como tablas. Igual, en muchos casos las tablas crudas están mal diseñadas, y la mejor forma de resolver este problema es definir un diagrama E/R y luego convertir ese diagrama a un modelo relacional más limpio. | En general, se diseña un diagrama E/R antes de definir las tablas. En el contexto de los proyectos, hemos detectado muchos problemas con los diagramas E/R entregados, pues los datos ya vienen como tablas. Igual, en muchos casos las tablas crudas están mal diseñadas, y la mejor forma de resolver este problema es definir un diagrama E/R y luego convertir ese diagrama a un modelo relacional más limpio. | ||
Line 12: | Line 12: | ||
* **Entidades débiles deberían tener una llave parcial** | * **Entidades débiles deberían tener una llave parcial** | ||
* **No se pueden reemplazar relaciones con entidades débiles** | * **No se pueden reemplazar relaciones con entidades débiles** | ||
+ | * **Relaciones no pueden tener llaves** | ||
* **Evitar poner múltiples relaciones en vez de roles** | * **Evitar poner múltiples relaciones en vez de roles** | ||
Line 53: | Line 54: | ||
En resumen, al crear una entidad débil sin llave parcial, indica un problema. Una alternativa puede ser una clase de jerarquía, donde las sub-clases son la misma entidad pero con la información opcional/ | En resumen, al crear una entidad débil sin llave parcial, indica un problema. Una alternativa puede ser una clase de jerarquía, donde las sub-clases son la misma entidad pero con la información opcional/ | ||
+ | |||
=====No se pueden reemplazar relaciones con entidades débiles===== | =====No se pueden reemplazar relaciones con entidades débiles===== | ||
Line 88: | Line 90: | ||
En este caso, la tabla '' | En este caso, la tabla '' | ||
+ | |||
+ | =====Relaciones no pueden tener llaves===== | ||
+ | |||
+ | Consider, por ejemplo, datos CSV con un esquema asi: | ||
+ | |||
+ | < | ||
+ | Estudiante(_rut_, | ||
+ | Inscripción(_id_, | ||
+ | </ | ||
+ | |||
+ | Es un ejemplo muy parecido al ejemplo anterior, salvo que ahora, lo que tuvimos como una relación ('' | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Hay dos opciones. La primera es ignorar el atributo _id_ de los datos, y simplemente usar (como antes): | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | La otra opción es definir '' | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Ojo que dadas las relaciones de multiplicidad exactamente uno, se pueden combinar las tablas de '' | ||
+ | |||
+ | < | ||
+ | Estudiante(_rut_, | ||
+ | Inscripción(_id_, | ||
+ | Curso(_código, | ||
+ | </ | ||
+ | |||
+ | En el caso de que el mismo estudiante no pueda inscribir el mismo curso dos veces, se puede elegir la primera o la segunda opción. En el caso de que el mismo estudiante pueda inscribir el mismo curso varias veces, hay que elegir la segunda opción. | ||
=====Evitar poner múltiples relaciones en vez de roles===== | =====Evitar poner múltiples relaciones en vez de roles===== |
proyecto/diagrama_er.1719951011.txt.gz · Last modified: 2024/07/02 20:10 by ahogan