You are on page 1of 6

Associacions binries M a N (molts a molts) que realment no ho sn

El problema Considerem el segent cas: Un cinema multisala projecta diferents pellcules a les seves diferents sales. Sens demana construir un disseny conceptual de la part de la base de dades que recull la informaci sobre quines pellcules sn projectades en quines sales i quan. Perqu ens puguem orientar ens han donat el segent fragment de la programaci per a una setmana: Sala 1 Dilluns
Harry Potter a les 16:00 i a les 19:00 Memorias de una Geisha a les 23:00 Madagascar a les 16:00, 18:15 i 20:30 Brokeback Mountain a les 23:15 Harry Potter a les 16:00 e a les 19:00 Memorias de una Geisha a les 23:00

Sala 2
Madagascar a les 16:00, 18:15 i 20:30 Brokeback Mountain a les 23:15 Madagascar a les 16:15 Brokeback Mountain a les 20:00 i a les 23:15 Harry Potter a les 16:00, 19:00 i a les 22:15

Sala 3
Harry Potter a les 17:00 El jardinero Fiel a les 20:15 i a les 23:00 Harry Potter a les 17:00 El jardinero Fiel a les 20:15 i a les 23:00 Saw 2 a les 16:15 Brokeback Mountain a les 20:00 y a les 23:15

Dimarts

Dimecres

Podem observar que en una sala es pot projectar ms duna pellcula i que una pellcula pot es pot projectar en ms duna sala. Potser ens sentirem temptats de modelar la situaci com una relaci binria M a N
Pelcula
+ TITULO : + duracin : 1..* proyectar 0..*

SALA
+ NMERO : + capacidad :

(No forma part la intenci daquesta disquisici qestionar-se si els atributs sn els correctes, els identificadors els millors o les cardinalitats encertades) El model anterior no s fidel a la situaci que es vol modelitzar. En essncia aix s aix perqu les associacions binries M a N no suporten la possibilitat que una ocurrncia de la primera entitat es relacioni mltiples vegades amb una mateixa ocurrncia de laltre.

Enric Sesa i Nogueras

Una associaci binria pot modelar una situaci com aquesta


PELLCULES SALES

Harry Potter

Sala 1

Sala 2 Madagascar Sala 3

Per aquesta situaci no s la que sest intentant de modelitzar. Observeu que noms els dilluns la pellcula Harry Potter ja s projectada dues vegades a la sala 1. Si ens concentrem en aquesta pellcula en aquest dia, tenim:
PELLCULES SALES

16:00

Harry Potter

Sala 1

19:00

Enric Sesa i Nogueras

Podrem pensar (errniament) que el problema rau en el fet que no hem tingut en compte el dia i lhora en que es fa la projecci. I podrem estar temptats de proposar aquest model:
Pelcula
+ TITULO : + duracin : 1..* proyectar 0..*

SALA
+ NMERO : + capacidad :

proyectar
+ dia : + hora :

Per no, aquest model tampoc no s correcte. Observeu que donada una pellcula i una sala, projectar noms pot recollir informaci duna de les mltiples projeccions daquella pellcula en aquella sala Resumint, les associacions binries M a N no permeten de modelar situacions con ara:
PELLCULES SALES

Harry Potter

Sala 1

Sala 2 Madagascar Sala 3

En qu una pellcula es relaciona mltiples vegades amb la mateixa sala (una per cada dia/hora de projecci)

Enric Sesa i Nogueras

Possibles solucions 1. Considerar una associaci ternria M-N-1


SALA M PELLCULA 1

Projectar

N HORARI

En ser transformada al relacional quedar (patr de transformaci M:N:1 pgina 68 mdul 4 annex-) Sala (nmero, capacitat, ) Pellcula (ttol, durada, ) Horari (dia, hora) Projectar(sala, dia, hora, pellcula) On projectar.sala s una referencia a sala.numero, projectar.pellcula s una referncia a pellcula.ttol i (projectar.dia, projectar.hora) s una referncia a (horari.dia, horari.hora) Crtiques* a aquesta solluci: lentitat horari (desprs relaci horari) s possible que noms sigui til durant la modelitzaci per la qual cosa potser el model relacional es podria simplificar: Sala (nmero, capacitat, ) Pelcula (ttol, durada, ) Projectar(sala, dia, hora, pellcula) A ms a ms, UML no permet de plasmar aquesta mena dassociacions 2. Donar entitat al concepte projectar, transformant-lo en lentitat (dependent) projecci Qu s una projecci? All que es fa a les sales dels cinemes i grcies a les quals els propietaris dels cinemes es guanyen la vida i els espectadors sho passen b (a vegades) Estudiem el concepte: Una projecci ho s duna pellcula en una sala i t lloc a una determinada hora dun determinat dia. En una projecci es projecta una sola pellcula i sefectua en una sola sala. Donada una sala i un dia/hora es pot determinar la pellcula (i la projecci). Aix, la projecci pot dependre de la sala i acabar didentificar-se amb el dia i lhora:

Expressen una opini de lautor de la qual sen pot discrepar ...

Enric Sesa i Nogueras

Sala
+ NMERO : + capacidad : 1..1 efecturse_en 0..*

Proyeccin
+ DA : + HORA : 0..* ofrecer 1..1

Pelcula
+ TITULO : + duracin :

Amb aquest model no es pretn dir que una sala sigui quelcom com ara una collecci de projeccions (bo i que aix tampoc seria una gran barbaritat). Sest utilitzant la notaci de composici per indicar que una projecci s una entitat dependent de sala Si transformem aquest model conceptual en relacional obtenim: Sala (nmero, capacitat, ) Pellcula (ttol, durada, ) Projecci(sala, dia, hora, pellcula) Que es el mateix que sobt de lassociaci ternria desprs deliminar la relaci Horari

Enric Sesa i Nogueras

Per qu es preferible la segona soluci? Perqu dna entitat (i mai millor dit) a un concepte important. Perqu no ha de recrrer a associacions ternries que, sovint, sn complicades dentendre Perqu no ha de recrrer a una entitat que, possiblement, desprs ser eliminada. Perqu es tracta dun patr bastant reutilitzable (b, potser tamb es podria dir el mateix de les ternaries) Quan ser til aquest patr? En moltes situacions en les quals el temps tingui fora entitat (li correspon una entitat i/o s identificador dalguna entitat). En resum, quan el temps s important. Exemple: quan es vol mantenir informaci histrica en un context en qu una associaci entre dues ocurrncies pugui donar-se ms duna vegada en moments diferents. Tamb quan els conceptes associaci es queden curts. Llavors es passa de projectar a projecci, dassignar a assignaci, de comprar a compra i, en general de *ar * o de verb a substantiu.

O sigui, per qu lautor prefereix la segona soluci a la primera? Evidentment es pot discrepar

Enric Sesa i Nogueras

You might also like