|
.grande:maestro.
Registered: Jan 2004
Posts: 1009 (0.14 al dì)
Location: Pisa
Corso: com. dig.
Anno: dottore :)
Time Online: 6 Days, 23:28:00: [...]
Status: Offline
Edit | Report | IP: Logged |
Relazione di riferimento:
1) Determinare codice e nome dei clienti che hanno acquistato prodotti gestionali a Milano.
2)Determinare i codici dei clienti con sconto che hanno acquistato prodotti gestionali e office automation.
3)Determinare il nome dei prodtti acquistati da tutti i clienti provvisti di sconto.
__________________
GET DROPBOX
# il grado di lentezza è direttamente proporzionale all'intensità della memoria;il grado di velocità è direttamente proporzionale all'intensità dell'oblio (Kundera) #
BLOG: Byte Strike
ChRiS
Last edited by Voodoo on 09-07-2007 at 16:14
|
09-07-2007 15:16 |
|
|
| |
|
.grande:maestro.
Registered: Jan 2004
Posts: 1009 (0.14 al dì)
Location: Pisa
Corso: com. dig.
Anno: dottore :)
Time Online: 6 Days, 23:28:00: [...]
Status: Offline
Edit | Report | IP: Logged |
Relazione di riferimento: FORNITURA.Fornitore è chiave esterna per FORNITORE.PIVA,così per FORNITURA.Cliente a CLIENTE.Matricola. Negli esempi a seguire,per la ridenominazione, nel loro corso hanno usatoscambiare i posti degli insieme di attributi,ma Perlasca dice che è solo questione di convenzione.
1)Trovare matricola e nome dei clienti che hanno ricevuto forniture da fornitori milanesi.
2) Trovare le città in cui risiedono sia i clienti sia i fornitori.
3) Trovare il nome del fornitore che ha effettuato forniture a tutti i clienti
__________________
GET DROPBOX
# il grado di lentezza è direttamente proporzionale all'intensità della memoria;il grado di velocità è direttamente proporzionale all'intensità dell'oblio (Kundera) #
BLOG: Byte Strike
ChRiS
Last edited by Voodoo on 09-07-2007 at 16:48
|
09-07-2007 16:16 |
|
|
| |
|
| |
|
.grande:maestro.
Registered: Jan 2004
Posts: 1009 (0.14 al dì)
Location: Pisa
Corso: com. dig.
Anno: dottore :)
Time Online: 6 Days, 23:28:00: [...]
Status: Offline
Edit | Report | IP: Logged |
Considerare la seguente base di dati:
1)Vogliamo sapere i codici degli impiegati che partecipano a tutti i progetti con un budget superiore di 50000. Esprimerla in algebra relazionale e in SQL.
__________________
GET DROPBOX
# il grado di lentezza è direttamente proporzionale all'intensità della memoria;il grado di velocità è direttamente proporzionale all'intensità dell'oblio (Kundera) #
BLOG: Byte Strike
ChRiS
|
15-07-2007 10:15 |
|
|
| |
|
.consigliere.
Registered: Oct 2005
Posts: 142 (0.02 al dì)
Location: Desio
Corso: COM DIG
Anno: terzo
Time Online: 1 Day, 13:17:44 [...]
Status: Offline
Edit | Report | IP: Logged |
2) Trovare gli anni in cui è stato eletto un presidente repubblicano dell'Illinois.
è corretta dire questo?
∏anno(∏nomeP,DataN(σPartito=’Repubblicano’ Λ stato=’Illinois’(PRESIDENTE)JOIN ELEZIONE)
e
5)Trovare i nomi di persone che hanno partecipato alle elezioni presidenziali.
è corretta questa implementazione?
∏nomeP, nomePerd(ELEZIONE)
nn è più semplice così in teoria?
Nella soluzione proposta per il punto 6) invece non capisco come si faccia ad identificare che l'anno è quello in cui la California è stata ammessa negli USA.
Last edited by WillyWonka on 13-09-2007 at 16:53
|
13-09-2007 16:03 |
|
|
| |
|
.grande:maestro.
Registered: Jan 2004
Posts: 1009 (0.14 al dì)
Location: Pisa
Corso: com. dig.
Anno: dottore :)
Time Online: 6 Days, 23:28:00: [...]
Status: Offline
Edit | Report | IP: Logged |
Originally posted by WillyWonka
2) Trovare gli anni in cui è stato eletto un presidente repubblicano dell'Illinois.
è corretta dire questo?
∏anno(∏nomeP,DataN(σPartito=’Repubblicano’ Λ stato=’Illinois’(PRESIDENTE)JOIN ELEZIONE)
e
5)Trovare i nomi di persone che hanno partecipato alle elezioni presidenziali.
è corretta questa implementazione?
∏nomeP, nomePerd(ELEZIONE)
nn è più semplice così in teoria?
Nella soluzione proposta per il punto 6) invece non capisco come si faccia ad identificare che l'anno è quello in cui la California è stata ammessa negli USA.
Per la prima va bene,la selezione nell'esempio vien fatta per alleggerire il join e basta. La seconda potrebbe andare bene,ma non ritornerebbe i nomi come lista,in cui ogni riga ha un nome,bensì due nomi (un output confuso dunque).
Per la terza non ho controllato ma se ti fai i calcoli il risultato viene.
__________________
GET DROPBOX
# il grado di lentezza è direttamente proporzionale all'intensità della memoria;il grado di velocità è direttamente proporzionale all'intensità dell'oblio (Kundera) #
BLOG: Byte Strike
ChRiS
|
13-09-2007 22:08 |
|
|
| |
|
.grande:maestro.
Registered: Oct 2005
Posts: 561 (0.08 al dì)
Location: milano
Corso: comunicazione digitale
Anno:
Time Online: 2 Days, 9:27:52 [...]
Status: Offline
Edit | Report | IP: Logged |
io sinceramente in alcuni ci capisco ben poco perchè io li faccio diversamente ma non so fino a che punto siano uguali!!!!
|
21-09-2007 16:54 |
|
|
| |
|
.illuminato.
Registered: Oct 2005
Posts: 188 (0.03 al dì)
Location: Brianza
Corso: Comunicazione Digitale
Anno: Domini
Time Online: 1 Day, 14:39:02: [...]
Status: Offline
Edit | Report | IP: Logged |
E' indifferente fare una selezione "a monte" o "a valle" di un JOIN?
Mi spiego con un esercizio:
INSEGNAMENTI(Codice,Denominazione)
STUDENTI(Matricola,Cognome,Nome)
ESAMI(Studente,Corso,Data,Voto)
specificare la seguente interrogazione in algebra relazionale: “trovare denominazione, data e voto per gli
esami superati da Bartolomeo Pestalozzi”
La soluzione proposta è la seguente
∏Denominazione,Data,Voto(Insegnamenti JOIN ON Codice=Corso Esami JOIN ON Studente=Matricolaσ Cognome='Pestalozzi AND Nome='Bartolomeo'(Studenti))
Domanda: E' la stessa cosa fare così:
∏Denominazione,Data,Voto(σVoto>=18 AND Nome='Bartolomeo' AND Cognome='Pestalozzi'(Insegnamenti JOIN ON Codice=Corso Esami JOIN ON Studente=Matricola Studenti))
__________________
Vendo libri Comunicazione digitale
Vendo Basso
Vendo Cartucce 88 HP
|
11-12-2008 16:27 |
|
|
| |
|
-.-''
Registered: Oct 2005
Posts: 383 (0.06 al dì)
Location: Milan (again)
Corso: Comunicazione Digitale
Anno: (3+x) | x>0
Time Online: 10 Days, 4:34:18 [...]
Status: Offline
Edit | Report | IP: Logged |
Premesso che devo ancora superare questo esame
La mia interpretazione è che:
- la prima query premette che gli esami registrati riportino una valutazione positiva (e quindi non esistono record di esami con valutazioni insufficienti)
- la seconda soluzione risulta più gravosa da un punto di vista computazionale (pur logicamente restituendo mi pare lo stesso risultato) dato che il calcolo prevede la creazione di risultati partendo dalla serie di join (dove i join associano a TUTTI gli studenti gli esami fatti) solo successivamente si limitano i risultati con la selezione (mentre nel calcolo precedente la prima operazione effettua una selezione sullo studente)
da un punto di vista di premesse il controllo del voto è più preciso (anche se sostituibile con una semplice indicazione iniziale)
In conclusione: credo che le due soluzioni siano equivalenti logicamente anche se differenti per gravosità computazionale e quindi tempo di risposta
__________________
Last edited by *°§_-??? on 15-12-2008 at 09:01
|
15-12-2008 08:58 |
|
|
| |
|
.fhtagn.
Registered: Jun 2003
Posts: 2987 (0.39 al dì)
Location: dove capita
Corso: ComunicaDigitalizia Ponti
Anno: il tempo nn esiste
Time Online: 42 Days, 0:15:48 [...]
Status: Offline
Edit | Report | IP: Logged |
qualcuno di voi può dirmi se le due query si equivalgono?
lo schema di partenza è:
Libri (Codice, Titolo, Genere, Autore) con vincolo di ir fra Autore e la chiave di Scrittori
Edizioni (Libro,Editore,Collana,Anno) con vincolo di ir fra Libro e la chiave di Libri, e fra Editore e la chiave di Editori
Editori (Sigla, Nome, Città)
Scrittori (Codice, Cognome, Nome)
1- Trovare Nome e Cognome degli autori di libri pubblicati da editori di Milano
la soluzione proposta è:
SELECT Cognome, Nome
FROM Scrittori, Libri, Edizioni, Editori
WHERE Scrittori.Codice = Autore AND Libri.Codice = Libro AND Editore = Sigla AND Città = 'Milano';
si può dire anche così?
SELECT Cognome, Nome
FROM Scrittori INNER JOIN Libri ON (Libri.Autore = Scrittori.Codice) INNER JOIN Edizioni ON (Edizioni.Libri = Libri.Codice AND Edizioni.Editore = Editore.Sigla) INNER JOIN Editori ON (Editori.Sigla = Edizioni.Editore)
WHERE Città = 'Milano';
__________________
"The more the water, the higher the boat"
DeviantART - Blog - Portfolio
Last edited by Ste Ramone on 17-01-2010 at 15:08
|
17-01-2010 14:57 |
|
|
| |
|
All times are GMT. The time now is 21:56. |
|
|
|
|
|
|
|
| |
Forum Rules:
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
|
HTML code is OFF
vB code is ON
Smilies are ON
[IMG] code is ON
|
|
|
|
|
|