Torna in homepage www.vincenzomanzoni.com
Homepage personale e blog di Vincenzo Manzoni
 
 FAQFAQ   CercaCerca   Cerca con GoogleCerca con Google   Lista utentiLista utenti   GruppiGruppi   RegistratiRegistrati   Feed AtomFeed
 ProfiloProfilo   Messaggi privatiMessaggi privati   Log inLog in 

[Sistemi informativi] Soluzione (incompleta) 17/06/2003

 
Questo forum � chiuso: Non puoi inserire, rispondere o modificare gli argomenti.   Quest'argomento � chiuso: Non puoi inserire, rispondere o modificare i messaggi.    Indice del forum -> Men at work
Precedente :: Successivo  
Autore Messaggio
Andrea
Moderatore
Moderatore


Registrato: 23/12/03 13:10
Messaggi: 5200

MessaggioInviato: Dom Lug 18, 2004 6:23 pm    Oggetto: [Sistemi informativi] Soluzione (incompleta) 17/06/2003 Rispondi citando

Ecco qui lo zip (800k) contenente il testo e la mia risoluzione (scusate se � un po' spartana Smile). Commenti e segnalazioni sono bene graditi, specie se sapete fare l'interrogazione in algebra relazionale!
Top
Profilo Invia messaggio privato MSN 
Billy
Utente neonato
Utente neonato


Registrato: 17/05/04 20:53
Messaggi: 47
Residenza: Bergamo

MessaggioInviato: Gio Lug 22, 2004 8:23 pm    Oggetto: Rispondi citando

Ho provato a risolvere la parte di algebra relazionale prendendo spunto da un esercizio (pag 100) dell'eserciziario di Psaila.

L'unico problema � che in questo modo si estraggono anche le fatture con pi� di 2 articoli, mentre mi pare che la richiesta sia di avere SOLO quelle con esattamente due articoli.

Non riesco ad inserire il link diretto all'immagine con la soluzione perci� dovete andare su http://mio.discoremoto.virgilio.it/billyb e cercare il file Alg_rel.jpg

Ciao
_________________
.... perch� la vita � un brivido che vola via, � tutto un equilibrio sopra la follia.....

Sally - Vasco Rossi
Top
Profilo Invia messaggio privato  
Andrea
Moderatore
Moderatore


Registrato: 23/12/03 13:10
Messaggi: 5200

MessaggioInviato: Sab Lug 24, 2004 1:15 am    Oggetto: Rispondi citando

Billy ha scritto:
Ho provato a risolvere la parte di algebra relazionale prendendo spunto da un esercizio (pag 100) dell'eserciziario di Psaila.

L'unico problema � che in questo modo si estraggono anche le fatture con pi� di 2 articoli, mentre mi pare che la richiesta sia di avere SOLO quelle con esattamente due articoli.

Non riesco ad inserire il link diretto all'immagine con la soluzione perci� dovete andare su http://mio.discoremoto.virgilio.it/billyb e cercare il file Alg_rel.jpg

Ciao

Anche io ho fatto cos�, mi sa che probabilmente intendeva dire almeno 2 articoli... mi permetto di segnalarti due cose della tua soluzione (magari sbaglio n� Very Happy ):
  • Hai scritto selezione invece che proiezione nelle prime due operazioni dall'alto,ma sicuramente intendevi proiezione, anche perch� hai messo i parametri come se fosse tale Wink
  • La proiezione(NumeroFattura) (la seconda dall'alto, dove hai scritto selezione) puoi anche non metterla, l� porta via solo tempo, perch� la chiave su cui poi vai a fare il join ce l'hai gi�.
Io metto qui anche la mia soluzione, prova dargli un occhio se ti sembra buona... (sono le 2.15, non ti fidare troppo Shocked Wink )

Grazie, ciao
Top
Profilo Invia messaggio privato MSN 
Billy
Utente neonato
Utente neonato


Registrato: 17/05/04 20:53
Messaggi: 47
Residenza: Bergamo

MessaggioInviato: Dom Lug 25, 2004 2:09 pm    Oggetto: Rispondi citando

Hai ragione, ho scritto una cosa e ne ho pensata un'altra. Le prime due operazioni erano proiezioni e non selezioni.

La proiezione(NumeroFattura) l'ho fatta solo per non portarmi dietro delle informazioni inutili durante il join, pensavo che cos� il tempo perso per la proiezione lo investo in minor occupazione della memoria per costruire la tabella del join. Per� potrebbe essere pi� conveniente non fare la proiezione e portarsi dietro gli attributi nel join.

Ho guardato la tua soluzione e mi pare corretta (tranne la proiezione(NumeroFattura) mi sembrano uguali).

Ciao
_________________
.... perch� la vita � un brivido che vola via, � tutto un equilibrio sopra la follia.....

Sally - Vasco Rossi
Top
Profilo Invia messaggio privato  
Andrea
Moderatore
Moderatore


Registrato: 23/12/03 13:10
Messaggi: 5200

MessaggioInviato: Dom Lug 25, 2004 2:51 pm    Oggetto: Rispondi citando

Billy ha scritto:
La proiezione(NumeroFattura) l'ho fatta solo per non portarmi dietro delle informazioni inutili durante il join, pensavo che cos� il tempo perso per la proiezione lo investo in minor occupazione della memoria per costruire la tabella del join. Per� potrebbe essere pi� conveniente non fare la proiezione e portarsi dietro gli attributi nel join.

Ho guardato la tua soluzione e mi pare corretta (tranne la proiezione(NumeroFattura) mi sembrano uguali).

Effettivamente... bisognerebbe sapere quanto ci impiega una e quanto l'altra operazione.
Top
Profilo Invia messaggio privato MSN 
Billy
Utente neonato
Utente neonato


Registrato: 17/05/04 20:53
Messaggi: 47
Residenza: Bergamo

MessaggioInviato: Lun Lug 26, 2004 12:00 pm    Oggetto: Rispondi citando

Mentre rifacevo l'intero tema d'esame per esercitarmi un po' mi � venuto un dubbio nell'interrogazione SQL:
nella domanda si parla di "venduti SEMPRE a un prezzo maggiore di 25 Euro".
Non mi torna per� l'interrogazione SQL che hai proposto perch� mi pare che non rispetti la clausola SEMPRE in quanto se quell'articolo � stato venduto anche solo una volta ad un prezzo inferiore ai 25 Euro, compare nel risultato della query.

A questo punto propongo:

Select Cod, Des
from art, fat, vend
where tipo=ali and cod=ca and numfat=num and
num not in (select numfat
from vend
where prezzo<25)

Scusa se la sintassi non � corretta e ho usato le abbreviazioni, ma il pranzo mi attende e devo scappare.

Ciao
_________________
.... perch� la vita � un brivido che vola via, � tutto un equilibrio sopra la follia.....

Sally - Vasco Rossi
Top
Profilo Invia messaggio privato  
Andrea
Moderatore
Moderatore


Registrato: 23/12/03 13:10
Messaggi: 5200

MessaggioInviato: Lun Lug 26, 2004 3:15 pm    Oggetto: Rispondi citando

Mi stai mettendo un dubbio, e cio� che non mi ricordo come l'avesvo interpretato. L� l'avevo interpretato come "venduti nel 2002 ad un prezzo mai superiore ai 25 �", cio� se nel 2003 lo vendo a 26 a me non cambia (infatti la selezione relativa al 2003 l'avevo messa nell'annidata.
Per� mi sa che invece il sempre era riferito a tutte le fatture archiviate, adesso la provo a rifare meglio: Cool

Codice:

CREATE VIEW view1 AS (
 SELECT CodiceArticolo
 FROM Venduto INNER JOIN Fattura ON Numero=NumeroFattura
 WHERE YEAR(Data)=2002 AND
       Prezzo<=25
)


SELECT Codice, Descrizione
FROM Articolo INNER JOIN Venduto ON Codice=CodiceArticolo
              INNER JOIN Fattura ON Numero=NumeroFattura
WHERE Tipo='Alimentari' AND
      YEAR(Data)=2002 AND
      Codice NOT IN view1


In pratica creo la lista di tutti gli elementi venduti almeno una volta nel 2002 a meno di 25 euro, poi mi ricavo tutti gli articoli venduti nel 2002 e faccio la sottrazione (potevo usare Except), effettivamente avevi ragione, avevo cannato di brutto!
Top
Profilo Invia messaggio privato MSN 
Mostra prima i messaggi di:   
Questo forum � chiuso: Non puoi inserire, rispondere o modificare gli argomenti.   Quest'argomento � chiuso: Non puoi inserire, rispondere o modificare i messaggi.    Indice del forum -> Men at work Tutti i fusi orari sono GMT 1 ora
Pagina 1 di 1

 
Vai a:  
Non puoi inserire nuovi argomenti
Non puoi rispondere a nessun argomento
Non puoi modificare i tuoi messaggi
Non puoi cancellare i tuoi messaggi
Non puoi votare nei sondaggi


Powered by phpBB © 2001, 2005 phpBB Group
phpbb.it