• Non ci sono risultati.

Informatica per le Scienze Umane - Corso di Laurea in Lettere Appello del 17.07.2008 - Docente: Mirco Nanni Parte 1: modello relazionale, SQL

N/A
N/A
Protected

Academic year: 2021

Condividi "Informatica per le Scienze Umane - Corso di Laurea in Lettere Appello del 17.07.2008 - Docente: Mirco Nanni Parte 1: modello relazionale, SQL"

Copied!
2
0
0

Testo completo

(1)

Informatica per le Scienze Umane - Corso di Laurea in Lettere Appello del 17.07.2008 - Docente: Mirco Nanni

Parte 1: modello relazionale, SQL

Si consideri la seguente base di dati relazionale che descrive la organizzazione di una azienda di delivery:

TABLE Pacchi (

Codice: char(10) PRIMARY KEY, Descrizione: varchar(200), NOT NULL, Corriere: integer REFERENCES Corrieri(Codice),

Peso: integer, Volume: integer, Fragile: boolean )

TABLE Clienti (

Codice: char(6) PRIMARY KEY, Nome: varchar(50) NOT NULL,

Indirizzo: varchar(200) NOT NULL, CodiceFiscale: varchar(15),

Categoria: varchar(10) )

TABLE Corrieri (

Codice: integer PRIMARY KEY, Targa: varchar(7) NOT NULL, Volume: integer,

Portata: integer )

TABLE Spedizioni (

Codice: char(4) PRIMARY KEY, DataPartenza: DATE, NOT NULL, DataConsegna: DATE,

Mittente: char(6) REFERENCES Clienti(Codice),

Destinatario: char(6) REFERENCES Clienti(Codice),

Pacco: char(10) REFERENCES Pacchi(Codice),

Costo: float )

NOTE: I corrieri partono in una certa data con pacchi da consegnare. Un cliente può essere indistintamente sia mittente che destinatario di uno o più pacchi.

Si formulino le seguenti interrogazioni tramite il linguaggio SQL oppure l'algebra relazionale:

1. Elencare i pacchi oggetto di spedizioni con un costo minore di 20€. (4 punti)

2. Elencare i clienti che hanno spedito pacchi contrassegnati dalla scritta “fragile”. (5 punti) 3. Elencare i corrieri che non hanno mai recapitato pacchi di alto valore (più di 10.000€). (6 punti) 4. Elencare i clienti migliori: cioè quelli di categoria “Gold” oppure che hanno spedito pacchi di alto

valore (più di 10.000€). (6 punti)

5. Elencare i clienti che hanno spedito e ricevuto pacchi con lo stesso corriere. (7 punti) Inoltre, si estenda la base di dati (aggiungendo nuove tabelle e/o modificando quelle esistenti):

6. Sostituire gli indirizzi dei clienti con una tabella “Indirizzi”, tenendo presente che più clienti possono avere lo stesso indirizzo. (5 punti)

(2)

Informatica per le Scienze Umane - Corso di Laurea in Lettere Appello del 17.07.2008 - Docente: Mirco Nanni

Parte 2: Progetto concettuale e logico, XML

Si considerino i seguenti fatti riguardanti il campionato MotoGP:

Ogni team è caratterizzato da un codice, dal nome, dai punti mondiali conquistati, nonché dai propri sponsor con la cifra ricevuta da ognuno di essi.

Ogni sponsor è caratterizzato da un codice, dal nome e dai team che sponsorizza.

Ogni pilota è caratterizzato dalle sue informazioni anagrafiche, dai punti mondiali conquistati e dal team di appartenenza.

1. Si rappresentino i fatti sopra descritti in uno schema concettuale UML (9 punti)

2. Si traduca lo schema concettuale in uno schema relazionale (9 punti)

3. Si costruisca un esempio di istanza della base di dati composta da 2 team, 3 sponsor e 4 piloti. (4 punti)

4. Si costruisca un documento XML relativo ad uno dei team del punto 3, che rappresenti cioè tutte le informazioni collegate al team. (8 punti)

5. Si dia un DTD (Document Type Definition = definizione del tipo di documento) per il documento XML del punto 4. (2 punti)

Riferimenti

Documenti correlati

Informatica per le scienze umane Corso di Laurea in Lettere Appello del 02.07.20041. Parte 2: Progetto concettuale e

• Ogni elemento dell’array M contiene la somma dei costi sostenuti dalle catene di supermercati per pagare i propri dipendenti nei vari punti vendita sparsi nelle varie regioni

• Una cella della matrice R rappresenta semanticamente i ricavi totali che una catena di librerie ha ottenuto in centinaia di migliaia di euro in una data regione italiana

I Questo corso (almeno in questo modulo) si occupa proprio di familiarizzarvi con il livello dei programmi.. I Occorre, almeno all’inizio, mettere in campo la propria capacità

I Finora, l’unico modo che hanno i nostri programmi Python per interagire con i dispositivi di I/O sono l’istruzione print e la funzione raw_input. I Spesso risulta importante avere

I Esempio: se stessimo scrivendo un programma per la gestione di dati di tipo geografico, potremmo optare per una classe island dotata di metodi come extension(), name(), etc.. I

2) In questo caso serve il Join di due tabelle, e fare un po' di assunzioni sulla codifica di alcuni dati nella base dati. In questo caso assumiamo che la finitura ed il colore

Notiamo che (1) Nella prima select la JOIN con Affiliazioni serve unicamente a poter recuperare il codice della squadra da quello dei giocatori: altrimenti