+ All Categories
Home > Technology > DBBDD_practica1

DBBDD_practica1

Date post: 22-Jan-2018
Category:
Upload: marcos-baldovi
View: 125 times
Download: 0 times
Share this document with a friend
17
06.522 · PRA1 · 2015-16 · Programa · Estudis d’Informàtica Multimèdia i Telecomunicació Disseny Bases de Dades Practica 1 Marcos Baldoví Martínez 1
Transcript
Page 1: DBBDD_practica1

06.522 · PRA1 · 2015-16 · Programa ·Estudis d’Informàtica Multimèdia i Telecomunicació

Disseny Bases de Dades Practica 1 Marcos Baldoví Martínez

1

Page 2: DBBDD_practica1

06.522 · PRA1 · 2015-16 · Programa ·Estudis d’Informàtica Multimèdia i Telecomunicació

Presentació

L'objectiu principal d'aquesta activitat és adquirir els coneixementsbàsics, tant teòrics com pràctics, per a la posada en marxa d'un SGBDrelacional. Per aquest motiu serà necessari saber administrar elservidor MySQL amb programes clients tals com phpMyAdmin,mysql.exe i MySQL Workbench.

Competències

Les competències que es treballaran en aquesta activitat són:

Conèixer els models de dades associats a la tecnologia de Basede Dades (BD).

Saber accedir a una BD per a la seva consulta i/o modificació.

Saber accedir a una BD des d'aplicacions Web.

Objectius

L'objectiu d'aquesta activitat és que els estudiants acabin d'afinar lesseves habilitats en el disseny conceptual d'esquemes E-R, queaprenguin a crear bases de dades en un SGBD concret (MySQL) i aaccedir a les dades, ja sigui directament des de comandes SQL comdes d'una aplicació web.

Descripció de la pràctica a realitzar

L'activitat es divideix en tres parts:

A. Treballar el correcte disseny d’un model E-R a partir d’unenunciat i una proposta de solució errònia. Es tracta de detectarels errors i de proposar alguna solució adequada.

B. Practicar amb el llenguatge SQL i la base de dades adjunta al’enunciat resolent una sèrie d’exercicis proposats.

C. Repassar aspectes bàsics de programació en PHP per accedir auna base de dades i realitzar consultes per tal de mostrar elresultat per pantalla.

Page 3: DBBDD_practica1

06.522 · PRA1 · 2015-16 · Programa ·Estudis d’Informàtica Multimèdia i Telecomunicació

Recursos

Per a realitzar la pràctica es facilitarà el fitxer discogràfica.zip, elqual conté un arxiu amb l'estructura de la base de dades amb què estreballarà en els exercicis B i C.

D'altra banda, tal i com s'especifica a l'aula, els mòduls didàctics en quèse centrarà la PRA són:

Mòdul 1. Fonaments de Bases de Dades

Mòdul 2. Llenguatge SQL

Mòdul 5. MySQL Motors d'emmagatzematge

Mòdul 6. Llenguatge PHP

Mòdul 7. Accés a MySQL amb PHP

Criteris de valoració

L’apartat A tindrà un pes del 30% de la nota i la resta d’apartats tindranun pes del 35%.

En l'apartat A s'avaluarà la correcta identificació dels errors presents ala solució proposada. Es valorarà la correcta explicació i justificació dela resposta.En concret es descomptarà 1 punt per cada error no detectat i 0,25 percada error proposat que no sigui correcte.

En l'apartat B cada pregunta aporta el mateix a la nota de l'exercici. Esvalorarà la correcta formulació de les consultes i la validesa de laresposta obtinguda en la seva execució.

En l'apartat C es valorarà el correcte funcionament de l'aplicació. Esvalorarà que l'aplicació implementi totes les funcionalitats indicades al'enunciat així com el seu correcte funcionament i la claredat del codiPHP.

Total de puntuació de la PRA1: 10 punts.

La traducció de punts a la nota per a aquesta PRA és:

10-9 punts = "A"

8-7 punts = "B"

Page 4: DBBDD_practica1

06.522 · PRA1 · 2015-16 · Programa ·Estudis d’Informàtica Multimèdia i Telecomunicació

6-5 punts = "C+"

4-3 punts = "C-"

2-1 punt = "D"

Format i data de lliurament

S’haurà de lliurar aquest mateix document, en format PDF amb lesrespostes degudament complimentades a l’àrea de Lliurament i registred´AC.

A més d’aquest document, s’haurà d’adjuntar obligatòriament el fitxerexercici_B.sql, on es presenti la solució als problemes plantejats al’exercici B, i l’script posiciona.php amb la solució de l’exercici C.

Tanmateix, aquest script posiciona.php s’haurà de publicarobligatòriament al vostre espai d’alumne per tal de comprovar el seucorrecte funcionament.

Data límit de lliurament: 7 de novembre de 2016

Page 5: DBBDD_practica1

06.522 · PRA1 · 2015-16 · Programa ·Estudis d’Informàtica Multimèdia i Telecomunicació

Nota: Propietat intel·lectual

Sovint és inevitable, en produir una obra multimèdia, fer ús de recursos creats perterceres persones. És per tant comprensible fer-ho en el marc d'una pràctica delsestudis del Grau Multimèdia, sempre i això es documenti clarament i no suposi plagi enla pràctica.

Per tant, en presentar una pràctica que faci ús de recursos aliens, s'ha de presentarjuntament amb ella un document en què es detallin tots ells, especificant el nom decada recurs, el seu autor, el lloc on es va obtenir i el seu estatus legal: si l'obra estàprotegida pel copyright o s'acull a alguna altra llicència d'ús (Creative Commons,llicència GNU, GPL ...). L'estudiant haurà d'assegurar-se que la llicència que sigui noimpedeix específicament el seu ús en el marc de la pràctica. En cas de no trobar lainformació corresponent haurà d'assumir que l'obra està protegida pel copyright.

Hauran, a més, d’adjuntar els fitxers originals quan les obres utilitzades siguin digitals, iel seu codi font si correspon.

Un altre punt a considerar és que qualsevol pràctica que faci ús de recursos protegitspel copyright no podrà en cap cas publicar-se en Mosaic, la revista del Graduat enMultimèdia a la UOC, a no ser que els propietaris dels drets intel·lectuals donin la sevaautorització explícita.

Page 6: DBBDD_practica1

06.522 · PRA1 · 2015-16 · Programa ·Estudis d’Informàtica Multimèdia i Telecomunicació

A.- Correcció d’errades en un model E-R subministrat.

Detecteu quins errors s’han comès en el disseny del diagrama E-Rque representa els requeriments expressats al següent enunciat.

Cal indicar i argumentar el perquè dels errors trobats i presentar eldiagrama E-R corregit.

Una empresa de videojocs vol organitzar una competició d‘un dels seusproductes. Per fer el seguiment del seu desenvolupament, es voldissenyar una base de dades per tenir organitzada tota la informaciósobre la competició i els jugadors que hi participen.

La competició estarà formada per diferents tornejos que es realitzaranen diferents dies i ubicacions, de manera que els participants hauran dedesplaçar-se per tal de poder participar. De cada torneig volem guardarun identificador propi, la data i l’adreça postal on es realitzarà.

Per inscriure’s als diferents tornejos, els participants han deproporcionar el seu DNI, que els identificarà, el seu nom, cognoms, laseva data de naixement, l’edat i el seu correu electrònic que no espodrà repetir.

En una fase prèvia, de la que no es vol guardar informació, cadajugador haurà obtingut una valoració de nivell. D’aquesta manera, elstornejos tindran assignades diverses categories segons els nivells delss e u s p a r t i c i p a n t s .

Cada categoria es correspondrà a un interval de nivells (per exemple,un possible nivell “principiant” aniria des del nivell 1 al 10, un nivell“bàsic” del 11 al 20, etc.). De cada nivell es voldrà guardar unidentificador propi, el seu nom i la data en que un participant el vaassolir, de manera que es guardi tot l’historial del jugador.

De cada categoria es guardarà un identificador propi, u n nomdescriptiu, e l nivell mínim i màxim als que estarà assignat cadacategoria (que serà el mateix per tots els tornejos) i, finalment, elnúmero de participants que poden participar sota aquesta categoria(que també serà el mateix per tots els tornejos).

Page 7: DBBDD_practica1

06.522 · PRA1 · 2015-16 · Programa ·Estudis d’Informàtica Multimèdia i Telecomunicació

A més per cada torneig es voldrà guardar la quantitat de participantsque hi participen per cada categoria.

Els participants podran tenir més d’un dispositiu per participar, tot i queestan limitats a videoconsoles, mòbils i tauletes. Cada dispositiu esregistrarà amb un identificador propi, es guardarà el seu tipus i la sevaadreça MAC, que serà única. Per cada dispositiu es guardarà la dataen que es registra a la base de dades i, com que els participants se’lspoden bescanviar, aquesta data reflectirà també el canvi de propietari.

Finalment, es guardarà informació dels premis que s’ofereixen a cadatorneig i seran diferents segons cada categoria. De cada premi esguardarà un identificador propi, una petita descripció i el preu aproximaten què està valorat. Tanmateix, un mateix participant pot haver obtingutmés d’un premi, independentment del torneig, de manera que enguardarem informació de quins premis ha obtingut un participant.

Page 8: DBBDD_practica1

06.522 · PRA1 · 2015-16 · Programa ·Estudis d’Informàtica Multimèdia i Telecomunicació

Il·lustració 1 Diagrama E-R Competició

Page 9: DBBDD_practica1

06.522 · PRA1 · 2015-16 · Programa ·Estudis d’Informàtica Multimèdia i Telecomunicació

Exposeu aquí els errors detectats. Heu de trobar:

1 relació no representadaLa relació que no es troba en l'esquema inicial és del tipus 1:N entre les entitats PREMI (1) i CATEGORIA (N)

1 error en el grau d’una relació representadaPARTICIPANT- TORNEIG - CATEGORIA

3 errors en la cardinalitat de les relacions representades

1) Tal com diu en la l'enunciat "Els participants podran tenir més d’un dispositiu per participar, tot i que estan limitats a videoconsoles, mòbilsi tauletes" Per tant, la cardinalitat entre les entitats PARTICIPANT i DISPOSITIUsera N:N

2) La cardinalitat entre les entitats PREMI (1) I TORNEIG(n) serà de 1:N. Ja que es podra donar un premi per torneig.

3)

5 atributs no representats

1) En la entitat PARTICIPANT falta l'atribut cognom2) En la entitat TORNEIG falta l'atribut adreça postal3) En la entitat PREMI falta l'atribut diners premi4) En la entitat CATEGORIA falta l'atribut nivell màxim5) En la entitat CATEGORIA falta l'atribut nivell minim6) En la entitat CATEGORIA falta l'atribut num. max participants

5 atributs representats de forma incorrecta

1) En entitat DISPOSITIU l'atribut representat de forma incorrecta es mac com a atribut derivat2) En la relacio PARTICIPANT-TORNEIG l'atribut participants està de forma incorrecta 3) En la entitat CATEGORIA l'atribut participants està de forma incorrecta 4) En la relació assolir falta l'atribut data5)

Exposeu aquí el diagrama E-R corregit:

Page 10: DBBDD_practica1

06.522 · PRA1 · 2015-16 · Programa ·Estudis d’Informàtica Multimèdia i Telecomunicació

Page 11: DBBDD_practica1

06.522 · PRA1 · 2015-16 · Programa ·Estudis d’Informàtica Multimèdia i Telecomunicació

B.- Practicar amb el llenguatge SQL i la base de dades adjunta.

Restaureu la còpia de seguretat de la base de dades guardada a l’arxiu“discogràfica.sql” a una base de dades buida amb el nomDiscogràfica. Aquesta còpia de seguretat conté una instància delmodel E-R que es presenta a la il·lustració.

Il·lustració 2 Diagrama E-R de la base de dades Discogràfica

Nota: Per simplificar els càlculs, la duració de les cançons està indicada únicamenten minuts, sense tenir en compte els segons.

No és necessari mostrar en aquest document el resultat de la solució,només indicar el número de files retornades/afectades per la consulta.

Page 12: DBBDD_practica1

06.522 · PRA1 · 2015-16 · Programa ·Estudis d’Informàtica Multimèdia i Telecomunicació

B.1 – Presenteu un llistat, ordenat de forma descendent per l’any de laseva formació, dels grups registrats a la base de dades. Mostreu-nenomés el nom i seu email. Mostreu només els 30 primers registresobtinguts.

SELECT nom,email FROM `grup` WHERE 1 order by any_formació DESC limit 30

Mostrando filas 0 - 29 (total de 30, La consulta tardó 0.0011 segundos.)

B.2 – Presenteu un llistat de tots els discs enregistrats abans del 1995ordenats alfabèticament pel seu nom de forma descendent.

SELECT * FROM `disc` WHERE any_publicació<1995 order by nom DESCMostrando filas 0 - 7 (total de 8, La consulta tardó 0.0014 segundos.) [nom: SENZILLS DE B-30... - 5 FORMIGUES FAN + QUE 4 ELEFANTS...]

B.3 – Presenteu un llistat dels discos publicats anteriorment al 1995 i elnom i aforament dels locals on es van presentar ordenats alfabèticament pel nom del local.

SELECT disc.nom, any_publicació, local.nom, aforamentFROM `disc`, local WHERE any_publicació<1995 and local.ID=local_ID orderby local.nom

Mostrando filas 0 - 7 (total de 8, La consulta tardó 0.0024 segundos.) [nom: APOLO...- LUÍS SE VA...]

Page 13: DBBDD_practica1

06.522 · PRA1 · 2015-16 · Programa ·Estudis d’Informàtica Multimèdia i Telecomunicació

B.4 – Presenteu un llistat dels locals enregistrats a la base de dades ones mostri el nom, l’assistència mitjana als concerts que allà s’hanrealitzat i quin és el màxim número d’assistents a un concert.

SELECT local.nom, avg(assistents), max(assistents) FROM local, grup, interpretar WHERE grup.ID=grup_ID and local.ID=local_ID group by local.nomMostrando filas 0 - 6 (total de 7, La consulta tardó 0.0040 segundos.)

B. g5 – Modifiqueu la consulta anterior per tal de mostrar el nomdel(s) grup(s) corresponent(s) al(s) concert(s) que ha(n) tingut lamàxima assistència.

SELECT local.nom, max(assistents) as maxim,grup.nom FROM local, grup, interpretar WHERE grup.ID=grup_ID and local.ID=local_ID group by local.nom, grup.nom having maxim in (SELECT max(assistents) FROM grup, interpretar, local WHERE grup.id=grup_ID and local.ID=local_ID group by local.nom)

Mostrando filas 0 - 8 (total de 9, La consulta tardó 0.0057 segundos.)

B.6 – Presenteu un llistat de cançons publicades entre el 2010 i el 2012i el nom del disc al que pertanyen sempre i quan el local on va serpresentada la cançó tingui un aforament inferior a les 500 persones,ordenat de forma ascendent segons l’any de publicació del disc idescendent segons la duració de les cançons.

SELECT cançó.nom as cançó, disc.nom as disc, any_publicació, duració FROM cançó, disc, enregistrar, local WHERE cançó_ID=cançó.ID and disc_ID=disc.ID and disc.local_ID=local.ID and any_publicació>=2010 and any_publicació<=2012 and aforament<500 group by cançó.nom, disc.nom, any_publicació, duració order by any_publicació asc, duració desc

Mostrando filas 0 - 21 (total de 22, La consulta tardó 0.0015 segundos.)

Page 14: DBBDD_practica1

06.522 · PRA1 · 2015-16 · Programa ·Estudis d’Informàtica Multimèdia i Telecomunicació

B.7 – Presenteu un llistat de tots els grups que hagin enregistrat unúnic disc entre el 2001 i el 2003 sempre i quan no hagi estat aquest elseu disc de debut.

SELECT grup.ID, grup.nom as nom_grup, count(disc_ID) as n_discs FROM disc, enregistrar, grup

WHERE disc_ID=disc.ID and grup_ID=grup.ID and any_publicació>=2001 and any_publicació<=2003 group by nom_grup, grup.ID having n_discs=1 and grup.ID notin (SELECT grup.ID FROM grup WHERE any_formació>=2001and any_formació<=2003)

Mostrando filas 0 - 4 (total de 5, La consulta tardó 0.0026 segundos.)

B.8 – Presenteu un llistat dels discos publicats a la sala Barts. En elcas que tinguin una cançó gravada en concert, mostreu el nom del discen majúscules i, en cas contrari, en minúscules. Mostreu, a més, eltotal de cançons que conté i la seva duració.

SELECT

B.9 – Presenteu un llistat de grups amb quatre discos i els grups ambmés de vuit discos. Ordeneu els grups de forma descendent segonsl’any de formació.

B.10 – S’ha detectat que la cançó “Radio Bemba” ha estat assignada aldisc “Vigila” del grup La Gossa Sorda, en comptes del disc “RadioBemba Sound System” de Manu Chao. Indiqueu la consulta necessàriaper tal d’actualitzar la base de dades i corregir aquest error.

La resposta a aquest exercici s’ha de presentar en un fitxer anomenatexercici_B.sql adjunt a la solució de la pràctica. En aquest fitxers’han de presentar les consultes degudament indicades segons laplantilla que us presenta adjunta.

Se us facilita, també, un fitxer amb les respostes que s’obtindran del’execució de les consultes per tal de que us serveixi de joc de proves.El fitxer que entregueu amb les vostres respostes no ha de donar erroren la seva execució.

Page 15: DBBDD_practica1

06.522 · PRA1 · 2015-16 · Programa ·Estudis d’Informàtica Multimèdia i Telecomunicació

C.- Repassar aspectes de programació bàsica de PHP

Repasseu aspectes bàsics de la programació en PHP fent el següentexercici:Creeu un document PHP posiciona.php que donat un nom d’undisc passat com a paràmetre a la URL mostri, dins d’un mapa de GoogleMaps, la posició del local on es va presentar amb un marcador de color verd.El nom pot estar, indiferentment, en majúscules o minúscules, de manera queel sistema ha de ser capaç de tractar-lo. Per la representació dels punts dinsdel mapa feu servir les coordenades que s’indiquen a la taula Local.

A més de la posició del local, s’haurà de mostrar el llistat de cançons que enformen part del disc i que han estat enregistrades en estudi.

En cas de no indicar el paràmetre, o passar un nom de disc que no existeixi ala base de dades, l’script n’haurà de seleccionar un a l’atzar i mostrar unmissatge d’alerta a l’usuari per a notificar sobre l’error.

Exemple:

Estimat usuari: el DISC sol·licitat no es troba dins de la nostra base de dades.Alternativament, s’ha seleccionat un a l’atzar representat el local de la sevapresentació en el següent mapa.

EL DISC VISUALITZAT ÉS BATISCAFO KATIUSCAS

Exemples de crida:

Mostrant al mapa el disc “Alegria” i les seves cançons:

http://eimtdbd.uoc.edu/~groomete/posiciona.php?disc=Alegria

Mostrant al mapa un disc a l’atzar i les seves cançons:

http://eimtdbd.uoc.edu/~groomete/posiciona.php

Es requerirà l'ús de la llibreria PHP php-google-map-api, necessària perincorporar mapes de Google en aplicacions PHP.La llibreria inclou dues classes: GoogleMap.php i JSMin.php. Es pot trobarl a d a r r e r a v e r s i ó d e l a l l i b r e r i a a l aURL:https://github.com/streetlogics/php-google-map-api

Page 16: DBBDD_practica1

06.522 · PRA1 · 2015-16 · Programa ·Estudis d’Informàtica Multimèdia i Telecomunicació

Afegiu aquí la URL d'enllaç al vostre script posiciona.php dins del vostreespai d’alumne:

http://eimtdbd.uoc.edu/~mbaldovi/posiciona.php?local=Apolo

Afegiu aquí les consultes SQL que feu servir a l'script posiciona.phpindicant el seu objectiu dins de l’script i els paràmetres que se’ls passarà:

//paràmetres de connexió

$server="localhost";

$user="mbaldovi";

$pass="fOsl-6cD";

$bbdd="mbaldovi";

//realització de la connexió

$link=mysqli_connect($server,$user,$pass,$bbdd);

if(mysqli_connect_errno())

{

echo "Error:".

'Error de connexió'.mysqli_connect_error();

}

$sql="SELECT * FROM local WHERE nom='".$local."'";

$result=mysqli_query($link,$sql);

$row=mysqli_fetch_assoc($result);

$lat=$row['latitud'];

$long=$row['longitud'];

Nota: En el servidor MySQL del vostre espai d’alumne no teniu permisos per a crear una nova base de dades. Haureu de restaurar la base de dades Discogràfica en la base de dades que ja teniu creada amb el vostre nom d'usuari. Un cop publiqueu el vostre script, haureu de tenir en compte de canviar les credencials d'accés.

Page 17: DBBDD_practica1

06.522 · PRA1 · 2015-16 · Programa ·Estudis d’Informàtica Multimèdia i Telecomunicació

Nota 2: L'script pujat al servidor web del vostre espai d’alumne haurà depoder-se visualitzar i tenir el nom posiciona.php, mantenint el nom delsparàmetres d’entrada especificats a l’enunciat. No s’acceptaran solucionspresentades amb noms diferents o scripts que no carreguin.