 | |
Il progetto dsy.it è l'unofficial support site dei corsi di laurea del Dipartimento di Scienze dell'Informazione e del Dipartimento di Informatica e Comunicazione della Statale di Milano. E' un servizio degli studenti per gli studenti, curato in modo no-profit da un gruppo di essi. I nostri servizi comprendono aree di discussione per ogni Corso di Laurea, un'area download per lo scambio file, una raccolta di link e un motore di ricerca, il supporto agli studenti lavoratori, il forum hosting per Professori e studenti, i blog, e molto altro...
In questa sezione è indicizzato in textonly il contenuto del nostro forum |
esercizi in preparazione esame giugno Clicca QUI per vedere il messaggio nel forum |
axel84 |
Ragazzi c'è qualcuno che ha altri esercizi in preparazione all'appello di giugno..con relative soluzioni o eventuali soluzioni..sia in algebra relazionale che sql???????
Dai che ci prepariamo bene..... |
middu |
prova a risolvere questo esercizio :
GUIDATORI(CODICE,Nome,Affidabilità,Età)
AUTOMOBILI(CODICE,Nome,Colore)
PRENOTAZIONI(GIUDATORE,AUTOMOBILE,Data)
Esprimere la seguente interrogazione in algebra relazionale : Trovare il codice delle automobili che sono state prenotate solo da giudatori sotto i 21 anni. |
axel84 |
allora io lo farei in queto modo:
((∏CODICE(AUTOMOBILI))*CODICE=AUTOMOBILE
(∏GUIDATORE, AUTOMOBILE(PRENOTAZIONI)*GUIDATORE=CODICE
(∏CODICE(σETA'<21(GUIDATORI))))
che ne dici ???potrebbe essere giusto?
ciao e grazie |
DarkSchneider |
più che altro sarebbero utili esercizi sulla generalizzazione specializzazione e possibili scomposizioni |
yeats84 |
Ehi ciao, qualcuno ha da postare esercizi su schema ER o Grant? |
axel84 |
qualcuno ha la soluzione a questo esercizio???
DISPOSITIVO-HW(#Codice, Marca, Tipo)
MANUTENZIONE(#Codice, #Data, TipoGuasto, Costo, Addetto)
a)Si richiede di formulare in SQL quanto segue
1- trovare tutti i dati del dispositivo che ha subito la manutenzione meno costosa.
2-trovare i portatili di marca 'Compaq'che hanno subito non più di 2 manutenzioni
b)Si richiede di esprimere in Algebra relazionale ottimizzata quanto segue:
1- trovare il codice dei dispositivi hw che non hanno subito manutenzioni con costo superiore a 500
2- determinare i pc di marca 'Dell' che hanno subito manutenzioni solamente per giasti all'hard disk.
sono ben accetti tutti i possibili consigli per risolvere questo esercizio.... |
axel84 |
un'altro che vi propongo è:
si consideri il seguente schema relazionale in cui le chiavi primarie sono sottolineate(#chiave primaria)
MACCHINISTA(#CF, Nome, Cognome, Età)
TRENO(#ID-Treno, Tipo(ES/IC/IR/D), Lunghezza, Ristorante(S/N))
PERCORRENZA(#CF, #ID-Treno, #Nome-linea, Nr-fermate)
formulare in sql quanto segue:
1- determinare CF, Nome e Cognome dei macchinisti di treni eurostar, elencandoli in ordine alfabetico per Cognome;
2- determinare il CF dei macchinisti che percorrono il maggior numero di linee diverse;
formulare in Algebra relazionale ottimizzata quanto segue:
1- determinare codice e tipo dei treni che non percorrono linee;
2- determinare il CF dei macchinisti che effettuano percorrenze solo con treni interregionali(IR)
RAGAZZI HELP ME!!! |
number15 |
Per il secondo esercizio... provo a buttarti giù una roba veloce, sarebbe da ricontrollare:
1)SELECT MACCHINISTA.CF, Nome, Cognome,
FROM MACCHINISTA, TRENO, PERCORRENZA
WHERE tipo = 'ES' AND TRENO.ID-TRENO = PERCORRENZA.ID-TRENO AND PERCORRENZA.CF = MACCHINISTA.CF
ORDER BY Cognome;
2)SELECT PERCORRENZA.CF
FROM PERCORRENZA
GROUP BY PERCORRENZA.CF
HAVING COUNT DISTINCT(Nome-linea)>= ALL
(SELECT COUNT DISTINCT(Nome-linea)
FROM PERCORRENZA
GROUP BY PERCORRENZA.CF);
Su questa non ne son certissimo.
1)((∏id-treno, tipo TRENO) -
((∏id-treno, tipo TRENO) *
(∏id-treno PERCORRENZA)))
Fatto così, perché mi sembra che debba esserci lo stesso grado tra le due relazioni.
2)((∏cf((∏id-treno, cf PERCORRENZA) *
(∏id-treno(σ<tipo='IR'> TRENO))))
-
(∏cf((∏id-treno, cf PERCORRENZA) *
(∏id-treno(σ<tipo<>'IR'> TRENO))))) |
number15 |
Originally posted by axel84
qualcuno ha la soluzione a questo esercizio???
DISPOSITIVO-HW(#Codice, Marca, Tipo)
MANUTENZIONE(#Codice, #Data, TipoGuasto, Costo, Addetto)
a)Si richiede di formulare in SQL quanto segue
1- trovare tutti i dati del dispositivo che ha subito la manutenzione meno costosa.
2-trovare i portatili di marca 'Compaq'che hanno subito non più di 2 manutenzioni
b)Si richiede di esprimere in Algebra relazionale ottimizzata quanto segue:
1- trovare il codice dei dispositivi hw che non hanno subito manutenzioni con costo superiore a 500
2- determinare i pc di marca 'Dell' che hanno subito manutenzioni solamente per giasti all'hard disk.
sono ben accetti tutti i possibili consigli per risolvere questo esercizio....
Algebra:
1)((∏codice DISPOSITIVO-HW)
-
(∏codice(σ<costo >'500'> MANUTENZIONE)))
2)
(∏codice(σ<marca='Dell' DISPOSITIVO-HW)
intersezione
((∏codice(σ<tipoguasto='hd'> MANUTENZIONE))
-
(∏codice(σ<tipoguasto<>'hd'> MANUTENZIONE))))
SQL:
2)SELECT MANUTENZIONE.codice,
FROM DISPOSITIVO-HW, MANUTENZIONE
WHERE dispositivo-hw.codice=manutenzione.codice AND marca='Compaq' AND MANUTENZIONE.codice IN
(SELECT MANUTENZIONE.codice, COUNT(*)
FROM MANUTENZIONE
GROUP BY MANUTENZIONE.codice
HAVING COUNT(*)<=2);
Non son molto certo però |
delpiero |
Io proverei anche a fare in questa maniera : selezionare tutti i dispositivi che sono pc e di marca dell che hanno subito una riparazione all'hardisk e togliere tutti i dispositivi di marca dell e di tipo pc che hanno subito una manutenzione che non sia di tipo hardisk . Cos' facendo (spero che il ragionamento si giusto) otteniamo i dispositivi di marca dell e di tipo pc che hanno subito riparazioni solo a guasti all'hardware. |
amar7 |
Hai ragione, sono daccordo con te quindi rifacendo l'esercizio la 2) diventa cosi
2)
(∏codice(σ<marca='Dell' AND Tipo='PC' DISPOSITIVO-HW) * ((∏codice(σ<tipoguasto='hd'> MANUTENZIONE))
-
(∏codice(σ<marca='Dell' AND Tipo='PC' DISPOSITIVO-HW) * ((∏codice(σ<tipoguasto<> 'hd'> MANUTENZIONE))) |
|
|
|
|