Pas a Model Relacional II (vestuari de teatre, empresa, biblioteca)

De wikijoan
Salta a la navegació Salta a la cerca

Introducció

Has fet ja un primer exercici de passar de model ER a model relacional. Ara anem a fer uns altres exemples (treballats a classe) que són més complerts.

Resumint:

  • les entitats es converteixen en taules
  • les relacions N:M segur que creen una taula pont
  • les relacions 1:M a vegades creen una taula pont, i a vegades interessa no interessa crear una taula nova, sinó incorporar la clau primària com a clau forànea en la taula del cantó M.

Desenvolupament

Els models ER dels problmemes plantejats són els següents:

base de dades: vestuari

Vestuari.drawio.png

Solució amb dades

=================
Model Relacional
=================
VESTUARI (ref (PK), notes, color, talla, id_cat (FK), id_amb (FK), id_loc(FK))
AMBIENTACIO (id_amb (PK), amb, segle, notes)
CATEGORIA (id_cat (PK), cat)
LOCALITZACIO (id_loc (PK), loc, tipus, hab, notes) on tipus pot ser: armari, capsa, guardarroba, penjador, altell
PERSONATGE (id_personatge, personatge, rol, id_obra (FK))
VEST_PERS (id_vest (PK), id_pers (PK))
OBRA (id_obra, obra, year)

NOTA1: Problema amb les talles: La talla al final dependrà de l'actor, no del personatge. Imaginem que fem La Caputxeta Vermella l'any 2018, i que tenim un vestit de llop amb talla gran. A la base de dades queda registrat que el personatge de Llop tindrà aquest vestit. Tornem a fer l'obra el 2021, però ara el personatge de Llop el fa una persona de talla petita. Com se soluciona? Doncs que podem tenim molts vestits de LLop, amb diferents talles. El 2021 ens veurem obligats a comprar un altre vestit de Llop, i ara tindrem dos vestits diferents (amb ref i talles diferents), associats al mateix personatge. És una relació M:M i per tant no hi ha problema.

NOTA2: LOCALITZACIÓ. Hem parlat que localització pot ser: habitació, armari, capsa, guardarroba, penjador, altell. En realitat, tenim habitacions, i són les habitacions les que contenen: armaris, capses, guardarrobes, penjadors, altells. Per tant, 'habitació' i 'capsa' són categories diferents.
Per tant, hem de pensar que LOCALITZACIÓ són aquests elements: armari, capsa, guardarroba, penjador, altell. I aquests elements estan en una habitació. Ara bé, habitació és feble, i només ens interessa un id_hab (podem anomenar les habitacions amb un identificador sense haver de donar-les-hi un nom). Per tant, la cosa quedarà que id_hab és un atribut de LOCALITZACIÓ.
Això només ho hem vist quan estàvem omplint dades. És a dir, fins que no treballem amb dades reals, no veiem mancances en el nostre mode, i hem de tornar enrere i modificar el disseny original (feedback).

 
Ben ordenat, tenint en compte les dependències:

CATEGORIA (id_cat (PK), cat)
AMBIENTACIO (id_amb (PK), amb, segle, notes)
LOCALITZACIO (id_loc (PK), loc, tipus, hab, notes) on tipus pot ser: armari, capsa, guardarroba, penjador, altell
OBRA (id_obra, obra, year, notes)

PERSONATGE (id_pers, pers, rol, id_obra (FK))
VESTUARI (ref (PK), vestuari, notes, color, talla, id_cat (FK), id_amb (FK), id_loc(FK))
VEST_PERS (id_vest (PK), id_pers (PK), notes)

CATEGORIA (id_cat (PK), cat)
-----------------
1;pantalons
2;camises
3;sabates
4;barrets
5;perruques
6;complements
7;faldilles
8;vestits
9;pijames
10;disfresses animals
11;abrics
12;disfresses

AMBIENTACIO (id_amb (PK), amb, segle, notes)
---------------
1;Roma;;Imperi Romà
2;Grècia Clàssica;;Grècia Clàssica
3;Edat Mitjana;s.XII;Edat Mitjana
4;Romanticisme;s.XIX;Romanticisme
5;Pastoril;s.XIX;ambientació rural i senzilla
6;urbà;s.XXI;ambientació urbà del carrer

LOCALITZACIO (id_loc (PK), loc, tipus, hab, notes) on tipus pot ser: armari, capsa, guardarroba, penjador, sabater, altell
---------------
1;C-01;capsa;HAB-1;capsa de barrets
2;G-01;guarda-roba;HAB-1;Guarda-roba de l'habitació 1
3;C-02;penjador;HAB-1;Penjador costat de la porta hab 1
4;A-01;armari;HAB-1;
5;S-01;sabater;HAB-1;

OBRA (id_obra, obra, year, notes)
-------------
1;La Caputxeta Vermella 2018; 2018
2;La Caputxeta Vermella 2021; 2021

PERSONATGE (id_pers, pers, rol, id_obra (FK))
------------------
1;Caputxeta vermella;protagonista;1
2;mare;secundari;1
3;àvia;secundari;1
4;llop;protagonista;1
5;caçador;secundari;1
6;Caputxeta;protagonista;2
7;àvia;secundari;2
8;llop;protagonista;2
9;caçador;secundari;2

VESTUARI (ref (PK), vestuari, notes, color, talla, id_cat (FK), id_amb (FK), id_loc(FK))
------------------
ref;vestuari;notes;color;talla;id_cat;id_amb;id_loc
1;espardenyes;;blanques;M;3;5;5;
2;faldilla vellut;;negra;M;7;5;2
3;vestidet;la roba la vam comprar a Ribes & Casals;marró;M;8;5;2
4;caputxa vermella;;vermell;;6;5;6
5;perruca-trena;www.barcelonapelucas.com;rossa;;6;;6
6;vestit pagesa;;;M;8;5;3
7;sabates negres;;;41;3;;5
8;pijama àvia 1;botiga disfresses Atucom;rosa;M;9;4;3
9;còfia pijama 1;;rosa;;6;;6
10;ulleres rodones 1;les vam comprar als Encants;;;6;;6
11;disfressa llop;la vam comprar a uns xinos;marró;L;10;;7
12;pijama àvia 2;botiga disfresses Atucom;rosa;L;9;4;3
13;còfia pijama 2;;rosa;;6;;6
14;ulleres rodones 2;les vam comprar als Encants;;;6;;6
15;samarra de pastor;la va fer la mare del Ricard;;L;8;5;3
16;escopeta;Encants;;;6;;6
17;cartutxera de pell de caçador;;;;6;;6
18;barretina;comprada a Amazon;vermella;L;6;5;1
19;xiruques;sabateria del barri;marrons;41;3;5;5
20;gorra vermella;;vermella;;6;6;6
21; xupa vermella;;vermella;;11;6;3
22;vambes nike air;;;41;3;6;5
23;pantalons texans vermells;;vermells;L;1;6;3
24;pijama Star Wars;comprat a Amazon;;M;9;6;2
25;sabatilles del Barça;;blaugrana;41;3;6;5
26;ulleres de sol;;;6;6;6
27;pijama Star Wars;comprat a Amazon;;L;9;6;2
28;gorra de policia;botiga disfresses;;;4;6;7
29;vestit de policia;botiga disfresses;;;12;6;7
30;botes policia;;;43;3;6;5
31;porra;;;;6;6;6
32;caçadora de cuir;;marró;L;11;6;3
33;hermilla negra;;negra;L;6;6;6
34;botes catiusques roses;;rosa;38;3;6;5
35;caçadora texana;regal de la Maria;blau;L;11;6;2
36;pantalons texans;estan estripats;blau;L;1;6;2

VEST_PERS (ref (PK), id_pers (PK), notes)
------------------
ref;id_pers;notes
1;1;que estiguin ben blanques i lluents
2;1;
3;1;
4;1;
5;1;
6;2;
7;2;
8;3;
9;3;
10;3;
11;4;
12;4;
13;4;
14;4;
15;5;
16;5;
17;5;
18;5;
19;5;
20;6;
21;6;
22;6;
23;6;
24;7;
25;7;
26;7;
25;8;les sabatilles s'han de compartir
26;8;les ulleres s'han de compartir
27;8
28;9
29;9
30;9
31;9

# PREGUNTES A LA BD
# 1. Informe (llista) de tot el vestuari necessari per la Caputxeta Vermella 2018 (i localització)
# 2. Informe (llista) de tot el vestuari necessari per la Caputxeta Vermella 2021 (i localització)
# 3. Llista de tot el material que hi ha a l'habitació 1
# 4. Vestuari que encara no s'ha utilitzat en cap obra
# 5. Per a l'obrta de la Caputxeta 2021, quin material s'ha de compartir? (sabatilles del Barça i ulleres de sol)

base de dades: empresa

Empresa ER.png

base de dades: biblioteca

Biblioteca-ER.png
Biblioteca-ER-detall.png

solució

COMARCA (id_comarca (PK), comarca)
POBLACIO (id_poblacio (PK), poblacio, id_comarca (FK))
INSTITUT (id_institut (PK), institut, adreça, id_poblacio (FK))
USUARI (id_usuari (PK), nom, cognoms, adreça, data_fi_exc_pres, id_poblacio (FK))
DOCUMENT (id_doc (PK), titol, format, materia, id_institut (FK))
AUTOR (id_autor (PK), nom, cognoms)
DOCUMENT_AUTOR (id_doc (FK), id_autor (FK)) [PK: id_doc+id_autor]
IDIOMA (id_idioma (PK), idioma)
DOCUMENT_IDIOMA (id_doc (FK),id_idioma (FK)) [PK: id_doc+id_idioma]
PRESTEC(id_prestec (PK), id_doc (FK), id_usuari (FK), data, tipus, preu)
RESERVA(id_reserva (PK), id_document (FK), id_usuari (FK), data)

NOTA: fixa't que hi ha un ordre en la manera com presentem les taules. Les taules que tenen claus forànees han d'estar per sota de les taules a les quals es fa referència. Per exemple, POBLACIO va per sota de COMARCA, doncs una població fa referència a la comarca a què pertany.

NOTA: fixeu-vos que matèria i format són dues entitats bastant dèbils, i no ha calgut crear entitats pròpies, sinó que n'hi ha prou pensar que matèria i format són atributs de DOCUMENT.

Tasques a realitzar

1a. Base de dades vestuari. Genera les taules resultants.

1b. Raona i explica les taules resultants, el procés de conversió de ER a relacional.

2. Base de dades empresa. . Genera les taules resultants.

3. Base de dades biblioteca. Genera les taules resultants.

Entrega

Entregaràs com a txt (format text pla) (no cal captures de pantalla) en el Classroom, dins del termini previst.


creat per Joan Quintana Compte, octubre 2021