|
|
|
|
Strumenti |
05-01-2010, 10:59 | #1 |
Senior Member
Iscritto dal: Aug 2005
Città: Genova
Messaggi: 2285
|
[Algebra relazionale e SQL] Contare in algebra relazionale
Ciao a tutti
volevo qualche info su come posso contare con l'algebra relazionale. Con SQL si può usare count, ma esiste un "trucco" analogo nell'algebra? Mi serve sapere quali persone hanno fatto più di un viaggio in 6 mesi precedenti in un database di un'agenzia turistica, dunque volevo contare ciascuno quanti viaggi ha fatto e vedere se sono >2. Qualcuno riesce a darmi una dritta?
__________________
Lego ™ Fans Club |
05-01-2010, 14:10 | #2 |
Senior Member
Iscritto dal: May 2001
Messaggi: 12584
|
Se non erro non è una cosa esprimibile in algebra relazionale.
|
05-01-2010, 15:55 | #3 |
Senior Member
Iscritto dal: Jul 2006
Città: Tristram
Messaggi: 515
|
Scusa la curiosità, ma perchè non ti va bene un count visto che parli di database ?
__________________
Il sole è giallo |
05-01-2010, 15:58 | #4 |
Senior Member
Iscritto dal: Mar 2005
Città: Morimondo city
Messaggi: 5491
|
count è un istruzione sql, se è un esercizio didatti ci sta che gli venga chiesto prima di esprimelo sotto forma di algebra relazionale
__________________
Khelidan |
05-01-2010, 16:00 | #5 |
Senior Member
Iscritto dal: Jul 2006
Città: Tristram
Messaggi: 515
|
Ah ecco, era un esercizio. Sorry, era semplice curiosità
__________________
Il sole è giallo |
05-01-2010, 16:07 | #6 |
Senior Member
Iscritto dal: Aug 2005
Messaggi: 2755
|
Puoi farlo in un modo un po' contorto, creando una tabella contenente l'identificativo della persona e delle colonne che userai per il conteggio, qualcosa tipo:
PERSONA | VIAGGIO1 | VIAGGIO2 | VIAGGIO3 in cui nelle colonne dei viaggi inserirai tutti i viaggi fatti dalla persona. Eliminando i record in cui VIAGGIO1 = VIAGGIO2 o VIAGGIO2 = VIAGGIO3 o VIAGGIO1 = VIAGGIO3 e tenendo solo la colonna persona dovresti ottenere l'elenco che ti serve.
__________________
|
05-01-2010, 16:20 | #7 | |
Senior Member
Iscritto dal: Jul 2005
Città: Bologna
Messaggi: 1130
|
Quote:
__________________
-> The Motherfucking Manifesto For Programming, Motherfuckers |
|
05-01-2010, 16:48 | #8 |
Member
Iscritto dal: Sep 2008
Città: Milano
Messaggi: 126
|
Non c'è niente di equivalente a count() in algebra relazionale, in quanto l'algebra relazionale è una una logica del primo ordine che opera su relazioni e spara fuori relazioni come prodotto; diversamente una cosa come count() opererebbe su relazioni ma produrrebbe un intero non negativo come risultato.
Tu però non vuoi sapere quanti viaggi ha fatto il signor x ma quali sono i signori y,z,w... che hanno fatto due (numero noto e finito) o più viaggi. Supponendo di avere una relazione Cliente, una relazione Viaggio e una relazione ViaggioSvolto ( molti a molti tra Cliente e Viaggio ) credo che potresti cavartela con un join furbo e sfruttando la proprietà insiemistica delle relazioni di non contenere duplicati. ciao! british |
05-01-2010, 17:00 | #9 |
Senior Member
Iscritto dal: Aug 2005
Messaggi: 2755
|
Quando ho seguito io il corso di basi di dati ci avevano fatto fare una cosa molto simile, preparati alla cerimonia di premiazione ;-)
__________________
|
05-06-2010, 11:27 | #10 |
Junior Member
Iscritto dal: May 2010
Messaggi: 2
|
aiuto query Algebra Relazionale
Ciao a tutti, io ho il seguente schema relazionale:
Linea(Codice, Km) Stazione(Nome, numBinari) Fermata(linea, numero, stazione) la query è la seguente: Trovare le linee che incrociano ogni linea più lunga di 3km Come posso fare per risolverla in algebra relazionale? |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 15:22.