[Basi di dati] Aggiunta stringa in algebra relazionale
Ciao a tutti!
Qualche giorno fa ho fatto l'esame di basi di dati dove però ho trovato un pò di difficoltà nello svolgere un'interrogazione in algebra relazionale...
Lo schema era questo:
AGENZIA(Piva,CodiceAgenzia,Nome,Indirizzo,Città,DirettoreAgenzia,TourOperatorID) alias AG
NEGOZIDIRETTI(Piva,CodiceNegozio,Nome,Indirizzo,Città,Responsabile,DataApertura, TourOperatorID) alias ND
DIPENDENTI(CF,Cognome, Nome, email, cellulare,DataAssunzione,Tipo,RiferimentoPuntoVendita) alias DI
TOUROPERATOR(Piva,RagioneSociale,Nome,Città) alias TO
VIAGGIO(Codice,Nome,TourOperatorID,Paese) alias VI
TAPPAVIAGGIO(CodiceViaggio,Progressivo,Località,KM) alias TA
EDIZIONIVIAGGIO(CodiceViaggio,Datainizio, Durata, Costo, Anno, Accompagnatore) alias ED
VENDITE(Agenzia,CodiceViaggio,Datainizio,Cliente) alias VE
CLIENTI(CF,Cognome, Nome, email, cellulare) alias CL
ACCOMPAGNATORI(CF,Cognome,Nome,email,cellulare,IDProfessionale,DataRilascioPatenteProfessionale) alias AC
L'espressione richiesta era questa:
->identificare, per ogni viaggio, la sua tappa più lunga e quella più corta (in termini di KM), elencare il codice del viaggio, il nome, il progressivo della tappa, i KM, e, per quella più lunga, la stringa “max”, per quella più corta, la stringa “min”;
Io mi sono mosso creando delle viste contenenti solo le tappe più brevi e l'altra solo quelle lunghe con tutti i dati richiesti e poi facendone l'unione.
L'unica cosa che non sono riuscito a fare è aggiungere ad ogni tupla delle due viste la stringa "min" e "max". Inizialmente ho pensato di fare un prodotto cartesiano tra ogni vista e una relazione contenente la sola stringa però non posso creare relazioni dal nulla, o sbaglio ?
Mi dareste una mano ?
Grazie in anticipo!
Qualche giorno fa ho fatto l'esame di basi di dati dove però ho trovato un pò di difficoltà nello svolgere un'interrogazione in algebra relazionale...
Lo schema era questo:
AGENZIA(Piva,CodiceAgenzia,Nome,Indirizzo,Città,DirettoreAgenzia,TourOperatorID) alias AG
NEGOZIDIRETTI(Piva,CodiceNegozio,Nome,Indirizzo,Città,Responsabile,DataApertura, TourOperatorID) alias ND
DIPENDENTI(CF,Cognome, Nome, email, cellulare,DataAssunzione,Tipo,RiferimentoPuntoVendita) alias DI
TOUROPERATOR(Piva,RagioneSociale,Nome,Città) alias TO
VIAGGIO(Codice,Nome,TourOperatorID,Paese) alias VI
TAPPAVIAGGIO(CodiceViaggio,Progressivo,Località,KM) alias TA
EDIZIONIVIAGGIO(CodiceViaggio,Datainizio, Durata, Costo, Anno, Accompagnatore) alias ED
VENDITE(Agenzia,CodiceViaggio,Datainizio,Cliente) alias VE
CLIENTI(CF,Cognome, Nome, email, cellulare) alias CL
ACCOMPAGNATORI(CF,Cognome,Nome,email,cellulare,IDProfessionale,DataRilascioPatenteProfessionale) alias AC
L'espressione richiesta era questa:
->identificare, per ogni viaggio, la sua tappa più lunga e quella più corta (in termini di KM), elencare il codice del viaggio, il nome, il progressivo della tappa, i KM, e, per quella più lunga, la stringa “max”, per quella più corta, la stringa “min”;
Io mi sono mosso creando delle viste contenenti solo le tappe più brevi e l'altra solo quelle lunghe con tutti i dati richiesti e poi facendone l'unione.
L'unica cosa che non sono riuscito a fare è aggiungere ad ogni tupla delle due viste la stringa "min" e "max". Inizialmente ho pensato di fare un prodotto cartesiano tra ogni vista e una relazione contenente la sola stringa però non posso creare relazioni dal nulla, o sbaglio ?
Mi dareste una mano ?
Grazie in anticipo!
Risposte
Praticamente in breve vorrei sapere se è possibile fare una cosa del genere in algebra relazionale:

Cioè aggiungere la stringa "max" ad ogni tupla del risultato...

Cioè aggiungere la stringa "max" ad ogni tupla del risultato...
Non penso che l'algebra relazione abbia un modo per definire "MAX" dato che è una clausola di SQL, se lo fai puoi effettuare una forzatura ma non so fino a che punto sia corretto