DAM - DAW - MP 0484 Bases de Dades - NF3
Pràctica DDL
Cal lliurar:
-
Document word/libreOffice amb :
-
Portada on hi consti el nom de l’alumne
-
Enunciat de la pràctica.
-
Explicació de la solució proposada: perquè s’ha escollit cada tipus de dades, les restriccions que heu inclòs, etc.
-
Fitxer .sql que genera la base de dades (crea.sql)
-
Fitxer .sql que elimina la base de dades (elimina.sql).
-
-
Per aquesta pràctica podeu utilitzar la base test o crear-ne una de nova.
CREATE DATABASE clubesportiu;
GRANT ALL PRIVILEGES ON clubesportiu.* TO usuari@localhost;
USE clubesportiu;
Enunciat
Donat el següent cas heu de crear en el SGBD Relacional la base de dades a partir de l’esquema lògic proposat.
Com tots sabeu diuen que el Club Esportiu és més que un Club. De cares a la propera temporada, i ara que comencem a veure la llum al final del túnel, el seu president vol que li dissenyeu una base de dades per tal de controlar tot el Club. La base de dades que dissenyeu haurà de tenir en compte els següents apartats:
-
El Club Esportiu té molts de socis. De cada un d’ells a part de les seves dades personals ens interessa saber tota la informació dels rebuts que com a soci ha anat pagant. Periòdicament el Club Esportiu, per cada soci genera el corresponent rebut que ha de pagar. Per cada soci se li genera el rebut 1, el 2, el 3 i així successivament. A més ens interessa saber el seu import, la data en que s’ha de pagar i el seu estat (pagat, pendent, retornat,....).
-
A més, aquest Club Esportiu disposa de moltes seccions (futbol, bàsquet, handbol,...). Cada secció està perfectament identificada i també ens interessa saber el seu telèfon, número de fax, e-mail... de contacte per cada secció.
-
Els socis poden estar abonats a una o més seccions, per exemple hi ha socis que solament ho estan a la secció de futbol, altres solament de la del bàsquet i altres a totes les seccions. Ens interessa saber des de quina data un soci està abonat a una secció.
-
Cada secció té un representant a la Junta de Govern del Club. Aquesta Junta està formada per moltes més persones (no totes elles representants de seccions) i només ens interessa saber les dades personals dels membres que la formen.
-
Els diferents equips ho són d’una única secció i estan agrupats per categories (tenim per exemple les categories infantils, juvenils, sènior,....). De cada categoria poden tenir varis equips. Cada equip ens ve identificat per un codi i també ens interessa saber el seu nom i patrocinador.
-
Cada equip està format per un conjunt de jugadors. Cada jugador ho és d’un únic equip. Per qüestions del reglament que solament permet jugar un número concret de jugadors no comunitaris ens interessa saber les nacionalitats que té cada jugador i que poden ser més d’una. També ens interessa saber des de quina data té cada jugador una determinada nacionalitat
-
Cada equip pot tenir un o més entrenadors i un entrenador pot ser-ho de varis equips, especialment en les categories infantils. A cada equip un entrenador hi fa una tasca concreta que ens interessa saber (per exemple, entrenador principal, entrenador de porters, preparador físic....).
Esquema lògic obtingut a partir del Model Relacional
-
SOCI(soci_nif, soci_nom, soci_cog1, soci_cog2, soci_adreça, soci_codipostal, soci_poblacio, soci_telefon)
-
REBUT(soci_nif, numero_rebut, data_rebut, estat_rebut, import)
-
SECCIO(seccio_codi, seccio_nom, seccio_telefon, seccio_fax, seccio_e_mail, junta_nif)
-
JUNTA(junta_nif , junta_nom, junta_cog1, junta_cog2, junta_adreça, junta_codi_postal, junta_poblacio, junta_telefon, junta_mobil)
-
EQUIP(equip_codi, equip_nom, equip_patrocinador, seccio_codi, categoria_codi )
-
CATEGORIA(categoria_codi, nom_categoria)
-
JUGADOR(jug_id, jugador_nom, jug_cog1, jugador_cog2, jug_data_naixement, equip_codi)
-
NACIONALITAT(nac_sigles_id, nac_nom)
-
NACIONALITAT_JUGADOR(jug_id, nac_sigles_id, data_nacionalitat)
-
ENTRENADOR(entrenador_id, entrenador_nom, entrenador_cognoms )
-
ABONAT(soci_Nif , seccio_codi , data_soci_seccio)
-
TASCA_ENTRENADOR(entrenador_id, equip_codi, tasca, data_inici_tasca)
NOTA:
-
Un camp en negreta significa clau primària
-
Un camp en cursiva significa clau forana
-
Un camp en negreta i cursiva significa clau primària i clau forana
Per cada taula heu de:
-
Definir les claus primàries i foranes.
-
Definir el tipus de dades i la mida d’aquests.
-
Indicar les restriccions (
DEFAULT,UNIQUE,CHECK, …) que creieu oportunes. -
Definir les instruccions SQL que ens permetrien crear-la, desant-les a l’arxiu crea.sql.
-
Definir les instruccions SQL que ens permetrien eliminar-la, desant-les a l’arxiu elimina.sql.