.dsy:it.
Show 150 posts per page

.dsy:it. (http://www.dsy.it/forum/)
- Basi di dati ~ informatica triennale (http://www.dsy.it/forum/forumdisplay.php?forumid=211)
-- algebra relazionale e carattere asterisco SQL (http://www.dsy.it/forum/showthread.php?threadid=35239)


Posted by nausicaa82 on 04-06-2008 10:08:

algebra relazionale e carattere asterisco SQL

Ho la seguente base di dati:
table CITTA' (Nome PK, Regione, Abitanti)
table ATTRAVERSA (Città, Fiume)
table FIUMI (Fiume PK, Lunghezza)
Devo estrarre i nomi di tutte le città della Toscana attraversate dal fiume Arno e da un altro fiume.
In SQL farei: SELECT....... WHERE Attraversa.Fiume="Arno" AND Attraversa.Fiume=Like "*"
Va bene usare il carattere asterisco?
E in algebra relazionale cosa metto??
Grazie


Posted by CaboM.BNA on 04-06-2008 11:34:

non c'e bisogno di utilizzare l'asterisco.

il fatto che una citta si trovi all'interno della tabella ATRAVERSA implica già che questa città sia attraversata da un fiume. [oltretutto con l'utilizzo del "*" riprenderesti di nuovo in considerazione sia il fiume Arno, che tutti gli altri...]

per risolvere la query in sql dovresti fare:

code:
(SELECT Nome FROM CITTA, ATTRAVERSA WHERE Regione = 'Toscana' AND Fiume = 'Arno'; ) INTERSECT (SELECT DISTINCT Nome FROM CITTA, ATTRAVERSA WHERE Nome = Citta AND Regione = 'Toscana' AND ; )


La prima query ti permette di trovare tutte le citta della Toscana che sono attraversate dall'Arno.
Tramite la seconda query trovi quelle citta (della Toscana) che sono attraversata da ALMENO UN FIUME che NON è l'Arno. [la scelcta di usare distinct perche altrimenti se una citta fosse attraversata da 5 fiumi, il suo nome comparirebbe 5 volte nel risultato.]
Infine viene applicata un'intersezione tra i risultati delle 2 query. (Ossia vengono presi in considerazione solo quei risultati che soddisfano SIA la prima CHE LA SECONDA query).
:ciao:


All times are GMT. The time now is 11:27.
Show all 2 posts from this thread on one page

Powered by: vBulletin Version 2.3.1
Copyright © Jelsoft Enterprises Limited 2000 - 2002.