Sessione ordinaria 2005 Seconda prova scritta M070 - ESAME DI STATO DI ISTITUTO TECNICO INDUSTRIALE



Documenti analoghi
ESAME DI STATO DI ISTITUTO TECNICO INDUSTRIALE CORSO SPERIMENTALE Progetto ABACUS SIMULAZIONE PROVA SCRITTA DI INFORMATICA

1. Schema concettuale della base di dati Lo schema concettuale (o statico) è uno dei due schemi del progetto concettuale di un sistema informativo.

Volumi di riferimento

Esame di Stato Istituto Tecnico Industriale Soluzione della Seconda Prova Indirizzo: INFORMATICA Tema: INFORMATICA Anno Scolastico:

INFORMATICA PER L IMPRESA (Docente Prof. Alfredo Garro) ESERCIZIO 3

ESAME DI STATO DI ISTITUTO TECNICO 2014/15

Basi di Dati Corso di Laura in Informatica Umanistica

SIMULAZIONE DI PROVA SCRITTA ESAME DI STATO DI ISTITUTO TECNICO 2014/15. Indirizzo: INFORMATICA E TELECOMUNICAZIONI (Nuovo ordinamento)

Progetto ittorario Anno scol

Data Base. Master "Bio Info" Reti e Basi di Dati Lezione 6

Esercitazione di Basi di Dati

Basi di dati. Il Linguaggio SQL. K. Donno - Il Linguaggio SQL

Capitolo 13. Interrogare una base di dati

Un client su arduino invia i dati acquisiti ad un database

Database e reti. Piero Gallo Pasquale Sirsi

19. LA PROGRAMMAZIONE LATO SERVER


CONCETTO DI ANNIDAMENTO

Corso di Basi di Dati A.A. 2014/2015

MySQL Database Management System

Esercizio data base "Biblioteca"

ECDL - Database. European Computer Driving Licence - Modulo 5 - Database LEZIONE 2

DBMS (Data Base Management System)

Esercizio sui data base "Gestione conti correnti"

ESAME di INFORMATICA e ARCHIVIAZIONE

IL DAT A B A S E DI ALGE B R A N D O

Anno 2013 Informatica ABACUS

N ######/02 Seconda prova scritta *$$$$$21115* *$$$$$21115* *$$$$$21115* *$$$$$21115* A T T E N Z I O N E

INDICI. Prevediamo di effettuare spesso interrogazioni simili alle seguenti:

ANNO SCOLASTICO: DISCIPLINA: INFORMATICA CLASSE: 5 SI INDIRIZZO: SISTEMI INFORMATIVI DOCENTI: TISO EMANUELE BARBARA SECCHI

Esame di Basi di Dati, SOLUZIONE APPELLO 12/01/2010

Concetti fondamentali dei database database Cos'è un database Principali database

RELAZIONE TECNICA GESTIONE CARTE DI CREDITO. a cura di EMANUELE CESARI

Ministero dell Istruzione, dell Università e della Ricerca

Introduzione a phpmyadmin

Eprogram ITIS V anno Unità 6 - PHP e MySQL

M733 ESAME DI STATO DI ISTITUTO TECNICO COMMERCIALE CORSO DI ORDINAMENTO

Database 3 affitto veicoli. Testo del quesito

INFORMATICA PER L IMPRESA (Docente Prof. Alfredo Garro)

Esercitazione query in SQL L esercitazione viene effettuata sul database viaggi e vacanze che prevede il seguente modello E/R:

Si formulino le seguenti interrogazioni tramite il linguaggio SQL:

2 Anno Informatica ABACUS

UNIVERSITÀ DEGLI STUDI DI UDINE Facoltà di Medicina e Chirurgia CORSO DI LAUREA IN TECNICHE DI RADIOLOGIA MEDICA PER IMMAGINI E RADIOTERAPIA ESAME

Database 1 biblioteca universitaria. Testo del quesito

Corso di PHP. Prerequisiti. 1 - Introduzione

ESAME di INFORMATICA e ARCHIVIAZIONE

Progetto di Basi di Dati e Multimidia Laboratorio Struttura dell applicazione web

VIDES. Mariagrazia Rossi

Definizione di domini

Esame di stato 2004 Portfolio studente

a.a. 2012/13 12 Novembre 2012 Preparazione al Test in itinere, Compito A 1. Modellare tramite uno schema entità- relazione la seguente base di dati:

Introduzione a MySQL

GERARCHIE RICORSIVE - SQL SERVER 2008

Corso sul linguaggio SQL


Soluzione traccia Informatica simulazione d esame di Stato Istituto GAUSS. 15/04/2013

Corso di PHP. Prerequisiti. 6.1 PHP e il web 1. Conoscenza HTML Tecnica della programmazione Principi di programmazione web

Abilità Informatiche A.A. 2010/2011 Lezione 9: Query Maschere Report. Facoltà di Lingue e Letterature Straniere

Laboratorio Progettazione Web PHP e MySQL - Lezione 9. Andrea Marchetti IIT-CNR andrea.marchetti@iit.cnr.ita 2012/2013

M070 - ESAME DI STATO DI ISTITUTO TECNICO INDUSTRIALE CORSO DI ORDINAMENTO Indirizzo: INFORMATICA

Lezioni di Laboratorio sui Data Base

User Tools: DataBase Manager

Esercitazione PAM. (Php Apache MySQL)

SQL e ACCESS. Modello relazionale PROBLEMA ENTITA STUDENTE

ITI M. FARADAY Programmazione modulare a.s

PHP E MYSQL CREAZIONE DI UN NUOVO DATABASE DAL PHPMYADMIN

Informatica I per la. Fisica

PHP e Structured Query Language

Database per la gestione delle ferrovie dello stato. I treni gestiti sono identificati da un numero. Su ciascun treno sono specificate le classi per

Obiettivi d esame PHP Developer Fundamentals on MySQL Environment

Basi di Dati e Microsoft Access

RELAZIONE SCRITTA RELATIVA AL PROGRAMMA DI GESTIONE SITO E-COMMERCE

a) Si progetti uno schema concettuale Entità-Relazioni per lo scenario più sotto descritto.

Schema della base di dati del Catalogo dei Dati della Pubblica Amministrazione Renzo Orsini

Laboratorio Progettazione Web PHP e MySQL - Lezione 9. Andrea Marchetti IIT-CNR andrea.marchetti@iit.cnr.ita 2011/2012

Un DataBase SQL per la Henry Books

I database relazionali (Access)

Esercitazione di riepilogo sulle Query MySQL Giugno 2011 Classe VB Informatica

Basi di Dati Prof. L. Tanca e F. A. Schreiber APPELLO DEL 12 FEBBRAIO 2015 PARTE 1

Manuale Knowledge Base

Corso Sistemi Informativi Avanzati. Programma 30 set Installazione Macchina Virtuale. Introduzione alla BI nelle Aziende.

Il seguente esempio ha lo scopo di illustrare i 3 tipi di relazione 1:1,1:N,N:N. Tabella Conto: Tabella Conto:

Database. Si ringrazia Marco Bertini per le slides

BASI DI DATI Cos è il PHP. Cos è il PHP. Esercitazione su PHP & MySQL

Il sofware è inoltre completato da una funzione di calendario che consente di impostare in modo semplice ed intuitivo i vari appuntamenti.

Vincoli di Integrità Approccio dichiarativo alla loro implementazione

Uso delle basi di dati DBMS. Cos è un database. DataBase. Esempi di database

Corso di Access. Prerequisiti. Modulo L2A (Access) 1.1 Concetti di base. Utilizzo elementare del computer Concetti fondamentali di basi di dati

Presentazione Data Base

Access. P a r t e p r i m a

Accesso a basi di dati con ASP. Algoritmo per visualizzare un DB

INFORMATICA. Applicazioni WEB a tre livelli con approfondimento della loro manutenzione e memorizzazione dati e del DATABASE.

La tecnologia ASP.NET e i database

SQL. Linguaggio di interrogazione per basi di dati relazionali. Relazione = tabella con attributi (a 1, a 2,, a n ): Funzionalità principali di SQL:

Tecnologie e Programmazione Web

DDL, VINCOLI D INTEGRITÁ, AGGIORNAMENTI E VISTE. SQL è più di un semplice linguaggio di interrogazione

1) GESTIONE DELLE POSTAZIONI REMOTE

1) Il client(browser utilizzato) invia al server i dati inseriti dall utente. Server

Introduzione alla teoria dei database relazionali. Come progettare un database

Laboratorio Progettazione Web PHP e MySQL. Andrea Marchetti IIT-CNR 2013/2014

Transcript:

Istituto di Istruzione Superiore Alessandrini - Marino 1 Sessione ordinaria 2005 Seconda prova scritta M070 - ESAME DI STATO DI ISTITUTO TECNICO INDUSTRIALE Una etichetta discografica indipendente chiede che sia realizzata una base di dati utile all archiviazione ed alla gestione delle proprie produzioni musicali, anche al fine di renderle eventualmente disponibili su Internet. Le scelte editoriali dell etichetta sono relative a diversi generi musicali ciascuno comprendente diversi sottogeneri come, ad esempio: 1. Genere Popolare 2. Genere classico Sottogenere Sottogenere a) Avanguardia a) Musica da camera b) Blues b) Concerto c) Elettronica c) Opera d) Folk d) Sinfonia e) Jazz e) Musica corale f) New Age f).. g) Rap h) Rock i) L organizzazione della casa discografica prevede che: un artista o un gruppo musicale o un orchestra possano registrare musica di generi diversi o, nell ambito dello stesso genere, di diversi sottogeneri; possano essere rilasciate più edizioni di uno stesso album ciascuna con una diversa copertina; un artista o un gruppo o un orchestra possano non essere più attivi sul mercato discografico. Si chiede, in particolare, che si possano archiviare i seguenti dati: a) il nome dell artista e/o del gruppo musicale e/o dell orchestra; b) il periodo (in anni) di attività sul mercato discografico; c) il titolo dell album; d) il nome del direttore d orchestra; e) la data (giorno - mese anno) di pubblicazione della/e edizione/i; f) il titolo dei brani musicali presenti nell album; g) la durata (minuti secondi) dell album; h) la durata (minuti secondi) dei singoli brani dell album; i) il nome dell autore o degli autori dei brani; j) brevi notizie biografiche dell artista e/o del gruppo musicale e/o del direttore d orchestra; k) l immagine della copertina dell album. Il candidato, fatte le opportune ipotesi aggiuntive, progetti una base di dati utile alla realizzazione dell archivio richiesto dall etichetta indipendente, fornendo: 1. uno schema concettuale della base di dati; 2. uno schema logico della base di dati; 3. la definizione delle relazioni della base di dati in linguaggio SQL; ed inoltre: 4. implementi in linguaggio SQL la seguente interrogazione: Dato il titolo di un brano, quali sono le date di pubblicazione, la durata, l artista e/o il gruppo musicale e/o l orchestra con il relativo periodo di attività nonché gli autori e l album di appartenenza. Opzionalmente, supponendo che la base di dati sia disponibile su di un server on line, il candidato implementi una directory per il web che consenta, a partire da una pagina con l elenco dei generi musicali, di ottenere: con un click sul nome di un genere musicale, una pagina con l elenco dei nomi dei sottogeneri musicali; con un click sul nome di un sottogenere musicale, una pagina con l elenco dei nomi degli artisti; con un click sul nome di un artista, l elenco degli album di quell artista con le immagini di copertina, la durata, l anno o gli anni di edizione, le notizie biografiche sull artista ed il periodo di attività. massima della prova: 6 ore. È consentito soltanto l uso di manuali tecnici e di calcolatrici non programmabili. Non è consentito lasciare l Istituto prima che siano trascorse 3 ore dalla dettatura del tema.

Istituto di Istruzione Superiore Alessandrini - Marino 2 Ipotesi aggiuntive: 1. Un album viene eseguito da un solo artista, ovvero la casa discografica non pubblica compilation. 2. Un brano viene pubblicato su un unico album. Strumenti hardware/software da utilizzare Database MySql Web Server Apache Linguaggio lato server Php Implementazione pagine Web con HTML,CSS e Java Script Progettazione concettuale : Diagramma E/R ImmagineCopertina Data contiene rilascio brano album N 1 1 N M N NumeroEdizione edizione codice composto DirettoreOrchestra esegue N autore TipoArtista 1 artista M DataInizioAttività DataFineAttività NotizieBiografiche registra Descrizione Descrizione sottogenere Osservazioni: L entità artista rappresenta nello schema concettuale sia un singolo musicista, sia un gruppo sia un orchestra. L attributo TipoArtista può assumere esclusivamente i valori: M (musicista), G (gruppo), O (orchestra) L attributo DirettoreOrchestra dell entità artista viene valorizzato solo nel caso che l entità rappresenti un orchestra, ovvero solo nel caso TipoArtista=O. Composto e Registra sono entità deboli. Schema logico della base di dati: Schema logico relazionale N N appartiene 1 genere Brani Album FK Composto Album ImmagineCopertina Artista FK Artisti TipoArtista DataInizioAttività DataFineAttività DirettoreOrchestra NotizieBiografiche Brano FK Autore FK Autori Edizioni NumeroEdizione Data Album FK Registra Artista FK SottoGenere FK SottoGeneri Descrizione Genere FK Generi Descrizione

Istituto di Istruzione Superiore Alessandrini - Marino 3 Definizione delle relazioni della base di dati in linguaggio SQL Si fa riferimento a MySql del database: Etichetta Tabella campo Key Tipo Dim Dec Null Descrizione PK Int 6 No Contatore Generi Descrizione VarChar 30 No Esempio: Popolare PK int 6 No Contatore SottoGeneri Descrizione VarChar 30 No Esempio: New Age Genere FK Int 6 Chiave esterna che fa riferimento a Generi. PK Int 6 No Contatore Autori VarChar 50 No e cognome dell autore PK Int 6 No Contatore TipoArtista Char 1 M=Musicista G=Gruppo O=Orchestra VarChar 50 No e cognome del musicista, o nome del gruppo o nome Artisti dell orchestra DirettoreOrchestra VarChar 50 e cognome del direttore d orchestra nel caso in cui TipoArtista=O DataInizioAttività Years 4 DataFineAttività Years 4 NotizieBiografiche Text PK Int 6 No Contatore VarChar 50 No dell album Double dell album in minuti e secondi. E un campo ridondante utile. Album DirettoreOrchestra VarChar 50 e cognome del direttore d orchestra ImmagineCopertina VarChar 50 Pathname del file jpg o bmp che contiene la copertina dell edizione Artista FK Int 6 No Chiave esterna che fa riferimento a Artisti. PK Int 6 No Contatore NumeroEdizione Int 6 No Data Years 4 Data di pubblicazione dell edizione Edizioni dell album Album FK Int 6 No Chiave esterna che fa riferimento a Album. PK Int 6 No Contatore Brani VarChar 50 No del brano Double del brano in minuti e secondi. Album FK Int 6 No Chiave esterna che fa riferimento a Album. Artista FK Int 6 No Chiave esterna che fa riferimento a Artisti. Registra SottoGenere FK Int 6 No Chiave esterna che fa riferimento a SottoGeneri. Brano FK Int 6 No Chiave esterna che fa riferimento a Composto Brani. Autore FK Int 6 No Chiave esterna che fa riferimento a Autori. Note: poiché è difficile conoscere le date esatte relative, si sceglie il tipo years(4) per i campi Artisti.DataInizioAttività, Artisti.DataFineAttività e Edizioni.Data

Istituto di Istruzione Superiore Alessandrini - Marino 4 Query MySql per la creazione del database e delle tabelle CREATE DATABASE Etichetta CREATE TABLE Generi ( int(6) Auto_Increment Primary Key, Descrizione VarChar(30) Not Null CREATE TABLE SottoGeneri ( int(6) Auto_Increment Primary Key, Descrizione VarChar(30) Not Null, Genere Int(6) Not Null, Foreign Key (Genere) References Generi() CREATE TABLE Autori ( Int(6) Auto_Increment Primary Key, VarChar(50) Not Null CREATE TABLE Artisti ( Int(6) Auto_Increment Primary Key, TipoArtista Char(1), VarChar(50) Not Null, DirettoreOrchestra VarChar(50), DataInizioAttivita Years(4), DataFineAttivita Years(4), NotizieBiografiche Text CREATE TABLE Album ( Int(6) Auto_Increment Primary Key, Char(50) Not Null, Double, DirettoreOrchestra VarChar(50), ImmagineCopertina VarChar(50), Artista Int(6) Not Null, Foreign Key (Artista) References Artisti() CREATE TABLE Edizioni ( Int(6) Auto_Increment Primary Key, NumeroEdizione Int Not Null, Data Years(4), Album Int(6) Not Null, Foreign Key (Album) References Album() CREATE TABLE Brani ( Int(6) Auto_Increment Primary Key, VarChar(50) Not Null, Double, Albun Int(6) Not Null, Foreign Key(Albun)References Album() CREATE TABLE Registra ( Artista Int(6), Sottogenere Int(6), Foreign Key (Artista) References Artisti(), Foreign Key (SottoGenere) References SottoGeneri() CREATE TABLE Composto ( Brano Int(6), Autore Int(6), Foreign Key (Brano) References Brani(), Foreign Key (Autore) References Autori()

Istituto di Istruzione Superiore Alessandrini - Marino 5 Query Dato il titolo di un brano, quali sono le date di pubblicazione, la durata, l artista e/o il gruppo musicale e/o l orchestra con il relativo periodo di attività nonché gli autori e l album di appartenenza. E ragionevole scomporre l interrogazione in tre query. Si suppone che il titolo del brano sia Brano1 Query 1 Restituisce data di pubblicazione e l album di appartenenza Album Brani ImmagineCopertina Album FK Artista FK Edizioni NumeroEdizione Data Album FK SELECT FROM WHERE AND AND Edizioni.Data, Album. Edizioni, Brani, Album Brani. = 'Brano1' Edizioni.Album = Album. Brani.Album = Album. Query 2 Restituisce la durata, l artista e/o il gruppo musicale e/o l orchestra con il relativo periodo di attività Select From Where And And Brani Album FK Album ImmagineCopertina Artista FK Brani.,Artisti.,Artisti.DataInizioAttivita, Artisti.DataFineAttivita Brani,Album,Artisti Brani.='Brano1' Brani.Album=Album. Album.Artista=Artisti. Artisti TipoArtista DataInizioAttività DataFineAttività DirettoreOrchestra NotizieBiografiche Query 3 Restituisce gli autori del brano Select From Where And And Autori. Brani,Composto,Autori Brani.= Brano1 Composto.Brano=Brani. Composto.Autore=Autori. Brani Album FK Composto Brano FK Autore FK Autori

Istituto di Istruzione Superiore Alessandrini - Marino 6 Quesito opzionale La pagina con l elenco dei generi musicali si può realizzare facilmente con il codice HTML di seguito riportato (si fa riferimento per semplicità solo a 2 generi musicali e alle tabelle costruite appositamente per fare le prove). Le eccezioni, per semplificare, non sono gestite. pagina0.html <html> <head><title>pagina 0</title> </head> <body> <h1>classe VBI ITIS Teramo 2010-2011</h1> <h2>generi musicali </h2><br> <a href="pagina1.php?genere=popolare">genere popolare</a><p> <a href="pagina1.php?genere=classico">genere classico</a> </body> </html>

Istituto di Istruzione Superiore Alessandrini - Marino 7 Cliccando su Genere Popolare viene richiamata la pagina1.php alla quale viene passato il parametro genere che viene recuperato con $_GET[] pagina1.php <?php $genere=$_get['genere']; if (!$genere) return; echo"<h1>classe VBI ITIS Teramo 2010-2011</h1> <h2>genere $genere </h2><br>"; $nomehost = 'localhost'; $utente = 'root'; $password = ''; $nomedb = "etichetta"; $link=mysql_connect($nomehost,$utente,$password $db = mysql_select_db($nomedb $query="select sottogeneri.descrizione,sottogeneri.codice From generi,sottogeneri Where generi.descrizione='$genere'"; $risultato =mysql_query($query $numrec = mysql_num_rows($risultato echo "<h3>elenco sottogeneri </h3><p>"; echo "Le righe trovate sono: $numrec <br>"; for ($i=1; $i<=$numrec; $i++) { $riga=mysql_fetch_array($risultato print"<a href='pagina2.php?sottogenere=$riga[1]&descrizione=$riga[0]'>$riga[0]</a><br>"; } mysql_close($link?>

Istituto di Istruzione Superiore Alessandrini - Marino 8 Cliccando su SottoGenere Blues viene richiamata la pagina2.php alla quale vengono passati i parametri sottogenere e descrizione che vengono recuperati con $_GET[] pagina2.php <?php $sottogenere=$_get['sottogenere']; $descrizione=$_get['descrizione']; if (!$sottogenere) return; echo"<h1>classe VBI ITIS Teramo 2010-2011</h1> <h2>sottogenere $descrizione </h2><br>"; $nomehost = 'localhost'; $utente = 'root'; $password = ''; $nomedb = "etichetta"; $link=mysql_connect($nomehost,$utente,$password $db = mysql_select_db($nomedb $query="select distinct artisti.nome,artisti.codice From registra,artisti Where registra.codicesottogenere='$sottogenere'"; $risultato =mysql_query($query $numrec = mysql_num_rows($risultato echo "<h3>elenco artisti </h3><p>"; echo "Le righe trovate sono: $numrec <br>"; for ($i=1; $i<=$numrec; $i++) { $riga=mysql_fetch_array($risultato print"<a href='pagina3.php?codiceartista=$riga[1]&nomeartista=$riga[0]'>$riga[0]</a><br>"; } mysql_close($link?>

Istituto di Istruzione Superiore Alessandrini - Marino 9 Cliccando su Pino Daniele (grande!) viene richiamata la pagina3.php alla quale vengono passati i parametri codiceartista e nomeartista che vengono recuperati con $_GET[]. pagina3.php <?php $codiceartista=$_get['codiceartista']; $nomeartista=$_get['nomeartista']; if (!$codiceartista) return; echo"<h1>classe VBI ITIS Teramo 2010-2011</h1> <h2>artista $nomeartista </h2><br>"; $nomehost = 'localhost'; $utente = 'root'; $password = ''; $nomedb = "etichetta"; $link=mysql_connect($nomehost,$utente,$password $db = mysql_select_db($nomedb $query="select * from artisti WHERE codice='$codiceartista'"; $risultato =mysql_query($query $riga=mysql_fetch_array($risultato echo"anno inizio attività: $riga[4] <p>"; echo"anno fine attività: $riga[5]<p>"; echo"notizie biografiche: $riga[6]"; $query="select Distinct album.codice,album.titolo,album.durata,album.immaginecopertina From album,artisti WHERE album.codice='$codiceartista'"; $risultato =mysql_query($query $numrec = mysql_num_rows($risultato echo "<h3>elenco album </h3><p>"; echo "Le righe trovate sono: $numrec <br>"; for ($i=1; $i<=$numrec; $i++) { $riga=mysql_fetch_array($risultato echo": $riga[1] <p>"; echo": $riga[2] minuti<p>"; echo"<img src='$riga[3]'><p>"; $query2="select Distinct * from edizioni Where codicealbum='$riga[0]'"; $risultato2 =mysql_query($query2 $numrec2=mysql_num_rows($risultato2 For($j=1;$j<=$numrec2;$j++) { $riga2=mysql_fetch_array($risultato2 echo"numero edizione: $riga2[1] "; echo"anno edizione: $riga2[2] <p>"; } } mysql_close($link?>

Istituto di Istruzione Superiore Alessandrini - Marino 10 Raccomandazione finale Studiate attentamente questa soluzione cercando di capire soprattutto le prime 5 pagine. Se volete capire bene anche le pagine Php dovete implementare le tabelle sul database MySql e testare le pagine cosi come ho fatto io. Se trovate errori o imperfezioni è ovvio che sono stati fatti di proposito per tenervi svegli e attenti.. Buon lavoro Prof. Mauro De Berardis