Homepage  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


.dsy:it. .dsy:it. Archive > Didattica > Corsi A - F > Basi di dati ~ informatica triennale
 
algebra relazionale e carattere asterisco SQL
Clicca QUI per vedere il messaggio nel forum
nausicaa82
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

CaboM.BNA
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:

Powered by: vbHome (lite) v4.1 and vBulletin v2.3.1 - Copyright ©2000 - 2002, Jelsoft Enterprises Limited
Mantained by dsy crew (email) | Collabora con noi | Segnalaci un bug | Archive | Regolamento |Licenze | Thanks | Syndacate