Uni.EsBDD01 History
Hide minor edits - Show changes to markup
Determinare gli operatori che servono tutti gli utenti della città di Milano.
Determinare gli operatori che servono tutti gli utenti della città di Milano.
Creo la solita tabella UTENTI MILANO
Creo la tabella OP che ha la colonna operatore della tabella ABBONAMENTO
Ora creo la tabella TUTTI che contiene la colonna operatore e CFUtente con tutte le combinazioni possibili di tuple ( prodotto cartesiano )
Join tra UT MIL e ABBONAMENTO e proiezione delle colonne CFUtente e operatore. Così facendo trovo tutti gli utenti di Milano e i loro rispettivi abbonamenti. La tabella così formata la chiamo ABB MIL
TUTTI - ABB MIL mi da tutti gli operatori che non hanno nemmeno un utente a Milano. Ora faccio la differenza tra gli utenti di Milano con i loro operatori e gli operatori che non hanno nemmeno un utente a Milano.
Determinare la tariffa minima applicata da Tim.
Determinare la tariffa minima applicata da Tim.
Per prima cosa creiamo TAR TIM che dalla tabella ABBONAMENTO prende la colonna tariffa e tutte le tuple in cui operatore = TIM
Creo una copia di TAR TIM in cui la colonna tariffa si chiama tariffa'. Join tra le due tabelle con condizione trariffa >tariffa' per trovare tutte le tariffe alte. Differenza tra TAR TIM e tabella appena trovata per trovare la tariffa più piccola
Determinare gli utenti (CF, Nome, Cognome e Città) per i quali tutti i numeri di telefono loro intestati hanno tariffa maggiore di 100.
Determinare gli utenti (CF, Nome, Cognome e Città) per i quali tutti i numeri di telefono loro intestati hanno tariffa maggiore di 100.
Creo la tabella UT MIN dove ho la colonna CFUtente e la tariffa minore di 100. Ovviamente le info le prendo dalla tabella ABBONAMENTO
Per trovare tutti coloro che hanno tariffa >100 devo fare TUTTI - QUELLI CHE HANNO TARIFFA <100 perciò
ora Join tra UT RIS e UTENTE ( perchè le colonne che devo proiettare sono nella tabella UTENTE ) tenendo presente che la colonna CF di UT RIS = colonna CF di UTENTE. Proietto CF, nome, cognome e città
Determinare il codice dei cellulari di marca Nokia di colore rosso e di colore nero.
Determinare il codice dei cellulari di marca Nokia di colore rosso e di colore nero.
Prioetta la colonna del codice cellulare e visualizza le tuple in cui colore = rosso o nero e marca = Nokia
Determinare il codice dei cellulari degli utenti residenti a Milano.
Determinare il codice dei cellulari degli utenti residenti a Milano.
Attinge le informazioni dalla tabella UTENTE e crea la tabella UTENTI MILANO che ha la colonna CF e contiene le tuple che hanno il campo città = Milano
Si fa il Join tra la tabella UTENTI MILANO e CELLULARE(perchè il codice cellulare si trova nella tabella CELLULARE) con la condizione che si tratti dello stesso utente (CF = CFUtente).Si proietta il codice del cellulare
Determinare la marca dei cellulari degli utenti serviti da Tim a Milano.
Determinare la marca dei cellulari degli utenti serviti da Tim a Milano.
Creo una tabella UTENTI TIM formata dalla colonna CFUtente presa da UTENTE e proietto la colonna CFUtente che rinomino CF e seleziono le tuple in cui città = Milano
Creo la tabella UTENTI MILANO che ha la colonna CF presa dalla tabella UTENTE e contiene le tuple in cui città = MILANO
Ora trovotutti gli utenti che abitano a MILANO e che hanno l'operatore TIM (l' intersezione ) poi faccio il join con la tabella CELLULARE perchè voglio proiettare la marca
Query: Cellulari
Query: Cellulari
Domanda 6
Determinare gli utenti (CF, Nome, Cognome e Città) per i quali tutti i numeri di telefono loro intestati hanno tariffa maggiore di 100.
UT_MIN := ΠCFUtente (σ Tariffa<=100 ABBONAMENTO)
UT_RIS := ΠCFUtente (ABBONAMENTO) - UT_MIN
ΠCF, Nome, Cognome, Città (UT_RIS ⋈ CFUtente=CF UTENTE)
Domanda 4
Determinare gli operatori che servono tutti gli utenti della città di Milano.
UT_MIL := ρ CFUtente ← CF (ΠCF (σ Città='Milano' UTENTE))
OP := ΠOperatore (ABBONAMENTO)
TUTTI := UT_MIL x OP
ABB_MIL := ΠCFUtente, Operatore (UT_MIL ⋈ ABBONAMENTO)
ΠOperatore (ABB_MIL) - ΠOperatore (TUTTI - ABB_MIL)
Domanda 5
Determinare la tariffa minima applicata da Tim.
TAR_TIM := ΠTariffa (σ Operatore='Tim' ABBONAMENTO)
TAR_TIM - ΠTariffa (TAR_TIM ⋈ Tariffa>Tariffa' (ρ Tariffa' ← Tariffa TAR_TIM))
Πcodice (σ (Colore='rosso' ν Colore='nero') Λ Marca='Nokia' CELLULARE)
ΠCodice (σ (Colore='rosso' ν Colore='nero') Λ Marca='Nokia' CELLULARE)
Πcodice (UT_MIL ⋈ CF=CFUtente CELLULARE)
ΠCodice (UT_MIL ⋈ CF=CFUtente CELLULARE)
Domanda 3
Determinare la marca dei cellulari degli utenti serviti da Tim a Milano.
UT_TIM := ΠCFUtente (σ Operatore='Tim' ABBONAMENTO)
UT_MIL := ρ CFUtente ← CF (ΠCF (σ Città='Milano' UTENTE))
ΠMarca ((UT_TIM ⋂ UT_MIL) ⋈ CELLULARE)
Πcodice (σ ( Colore='rosso' ν Colore='nero' ) Λ Marca='Nokia' CELLULARE)
Πcodice (σ (Colore='rosso' ν Colore='nero') Λ Marca='Nokia' CELLULARE)
Πcodice (UT_MIL ⋈ CF=CFUtente CELLULARE)
(:title Basi di dati - Esercizio 1:) Torna alla pagina della Samarati
:: Basi di dati - Esercizio 1 ::
Query: Cellulari
CELLULARE (Codice, CFUtente, Modello, Marca, Colore)
ABBONAMENTO (Numero, CFUtente, Operatore, Tariffa)
UTENTE (CF, Nome, Cognome, Città)
Domanda 1
Determinare il codice dei cellulari di marca Nokia di colore rosso e di colore nero.
Πcodice (σ ( Colore='rosso' ν Colore='nero' ) Λ Marca='Nokia' CELLULARE)
Domanda 2
Determinare il codice dei cellulari degli utenti residenti a Milano.
UT_MIL := ΠCF (σ Città='Milano' UTENTE)