1 Sistema de ventas 2 Sitio social de fotografías

Transcripción

1 Sistema de ventas 2 Sitio social de fotografías
CC42A/CC55A - BASES DE DATOS
Profesor: Claudio Gutiérrez
Auxiliar: Mauricio Monsalve
MODELO ENTIDAD-RELACIÓN
1 Sistema de ventas
Le contratan para hacer una BD que permita apoyar la gestión de un sistema de ventas. La empresa
necesita llevar un control de proveedores, clientes, productos y ventas.
Un proveedor tiene un RUT, nombre, dirección, teléfono y página web. Un cliente también tiene RUT
nombre, dirección, pero puede tener varios teléfonos de contacto. La dirección se entiende por calle, número,
comuna y ciudad.
Un producto tiene un id único, nombre, precio actual, stock y nombre del proveedor. Además se organizan
en categorías, y cada producto va sólo en una categoría. Una categoría tiene id, nombre y descripción.
Por razones de contabilidad, se debe registrar la información de cada venta con un id, fecha, cliente,
descuento y monto final. Además se debe guardar el precio al momento de la venta, la cantidad vendida y el
monto total por el producto.
2 Sitio social de fotografías
Actualmente son muy populares los sitios web sociales que almacenan fotografías (Flickr, Fotolog, etc.).
En este problema modelaremos uno teniendo en cuenta lo siguiente:
1. Los usuarios tienen nombres de usuario, contraseña, varios correos, un nombre real, fecha de
nacimiento, dirección.
2. Los usuarios pueden subir un número indeterminado de fotografías. Al respecto, una dato
importante de un usuario es el número de fotografías que ha subido al sitio.
3. Una foto tiene un nombre de archivo, un número de identificación, un instante de subida, un
puntaje promedio (de las calificaciones que la fotografía ha recibido), título y descripción.
4. Los usuarios pueden calificar las fotos de cualquier usuario. El puntaje de la fotografía es el
promedio ponderado de las calificaciones realizadas.
5.
Los usuarios pueden elegir fotos favoritas.
6.
Las fotos pueden pertenecer a galerías de fotos hechas por un usuario.
7. Los usuarios pueden dejar comentarios en las fotos. En particular, un usuario puede realizar
varios comentarios a una misma foto.
8. Un usuario puede tener una página principal con algo de texto. En esta página aparecerán las
fotografías subidas por el usuario así como sus galerías y fotos favoritas.
9. Un usuario, opcionalmente, puede tener un blog en su página web. Y sin página web, no puede
tener blog.
10. Un blog consiste de posts creados por el usuario propietario del blog. Opcionalmente, un post
puede tener una fotografía asociada.
11. Cualquier usuario puede comentar el post de otro usuario (en un blog).
3 Solución al problema 1
3.1 Diagrama resultante
3.2 Comentarios
La dificultad de este problema reside en el modelamiento de una venta. Como se indicó, la entidad
“Producto” sólo posee un precio actual. El precio de un producto, al momento de su venta, puede no ser igual
a su precio actual (el último precio, en un contexto cronológico). Por eso es necesario conservar, de alguna
manera, el precio al momento de la venta. Como el precio depende de cada producto, el mejor lugar para
guardar el atributo “precio” es en la relación “vendido”, que es la relación que conecta “Producto” y “Venta”.
Los atributos derivados “nombre_proveedor” y “nombre_cliente” (aunque este último podría ser omitido
según la interpretación del enunciado) son de deducción evidente. En el caso de “monto_total”, su valor sale
de la suma de los precios de cada producto vendido ponderados por su cantidad, aplicando el descuento.
4 Solución al problema 2
4.1 Diagrama resultante
4.2 Comentarios
Este problema es potencialmente complicado. Si el concepto de entidad débil no está claro, se hace
improbable su solución. Como se observa en la figura, hay seis entidades débiles contra dos entidades
tradicionales. Nota: se han incluido varios atributos no especificados en el enunciado, pero lo central de este
problema son las entidades.
“Página” es una entidad débil porque no se puede entender sin un usuario. Para el usuario BD, “la página
de BD” se define por su relación con BD. Al no poder definirse completamente, es una entidad débil.
“Blog” es una entidad débil por el mismo motivo que página. Sin embargo, uno diría “el blog de BD”, con
lo que relacionaría directamente “Blog” y “Usuario”. Pero como se indicó, un blog pertenece a una página web
y no puede existir sin ésta. Considerando que “Página” es entidad débil de “Usuario”, la mejor decisión es
hacer “Blog” entidad débil de “Página”. Así, “Blog” también es definido por “Usuario”, transitivamente.
“Post” es entidad débil porque un post no se puede entender sin un blog. Sin embargo, un blog puede
tener varios posts. Por ello, “Post” necesita una llave parcial. El momento en que el usuario escribe el post -el
atributo “instante”- sirve para completar la identificación de “Post”.
Un comentario sería, en principio, una relación entre un usuario y una fotografía o post, dependiendo del
caso. Sin embargo, un mismo usuario puede comentar más de una vez una fotografía o post. Esto va más allá
de lo que puede almacenar una relación. Por ende, un comentario se hace una entidad. Y es definido por el
usuario que comenta, el elemento comentado (la fotografía o el post) y un tercer elemento (una llave parcial).
Como un usuario no debería ser capaz de realizar dos comentarios en un mismo instante, el “instante” en que
el comentario es realizado parece ser un buen candidato para una llave parcial.
“Galería” es entidad débil porque se ha dicho que un usuario la crea pero no se ha agregado ningún
elemento que la pueda definir. Suponiendo que un usuario no tiene dos galerías con un mismo título (¿cómo las
diferenciaría a priori?), una galería se podría definir con un usuario y un título. Luego, “Galería” es entidad
débil de “Usuario”, con “título” como llave parcial.

Documentos relacionados