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
 
Appello 20/01/2009
Clicca QUI per vedere il messaggio nel forum
cinghio
Qualcuno saprebbe darmi l'orario e il luogo dell'appello scritto del 20 gennaio (con Ferrara preferibilmente)?

DarkSchneider
up! :D

R1cky`
Mi unisco anche io alla richiesta, anche se credo che verrà comunicato qualche giorno prima sul sito del corso.

Chiedo qui in questo topic perchè comunque è inerente all'argomento:
nell'esame ci sono anche domande di laboratorio?

ideafix
idem

cinghio
Ho scritto a Ferrara che mi ha rimandato al prof. Montanelli.
l'orario dovrebbe uscire sul portale del corso.

un'idea sulle domande del compito si puo' avere scaricando i vecchi appelli dal portale.
bene o male le domande sono di quel tipo: domande teoriche, traduzione di un ER, algebra relazionale, query di select e alcuni script di creazione indici, tabelle ecc ecc

saluti

ideafix
Ciao,
Montanelli ieri ha detto che il compito sarà nel pomeriggio, uscira a breve l'orario esatto

;) ciao

middu
si ci sono anche domande di lab

vittorio
Eccovi serviti, direttamente dal sito di basi di dati:

Appello di Gennaio 2009

L'appello avrà luogo il giorno 20/01/09 alle ore 16.30 in aula beta.

/* che palle, sempre di pomeriggio sti qua... */

R1cky`
Già che c'erano potevano fare l'appello in notturna no?

vittorio
lol...mi sta sul c***o solo che sul sito del corso non ci siano gli appelli recenti e per recenti intendo dire del 2007/2008...uno come fa ad esercitarsi??? sulle nuvole??? bah

morte2097
appelli recenti, erano 4-5 domande a risp kiusa di teoria o esercizzi
e i classici 3 esercizzi, sql/algebra, grant/semplificazioni sulle generalizzazioni con skema relazionale e ER.....

darkshadow
 
ma il punteggio delle singole domande. qualcuno ha idea di quali siano??

R1cky`
Spero che quelle che richiedevano di formulare comandi, visto che per formulare tali comandi normalmente c'è un manuale e secondo me neanche la prof si ricorda la sintassi di tutti i comandi, siano quelle che valgono meno.
Una sola parola per questo esame: deludente.

cinghio
Perchè deludente?
Io credo che siano appelli abbastanza semplici, mi spiacerebbe non passare l'esame. Non faccio previsioni, tutto può essere (almeno nel mio caso :) ).
Secondo me Base di Dati è uno dei pochi esami che prepara subito al lavoro.
Senza togliere nulla agli altri. Analisi serve anche ma Base di Dati ti rende quasi subito operativo.
Parlo a ragion veduta.

Qualche indiscrezione sull'esame? Sui pesi delle domande? ecc ecc?
Io credo di aver risposto giusto a 3/4 domande teoriche, aver sbagliato qualcosa sull'algebra relazionale ma SQL era ok.
Il secondo esercizio credo sia ok tutto.
Mentre la quarta domanda (terzo esercizio) l'ho completamente segata (spero di aver parzialmente imbroccato qualcosa di fortuna) perchè non seguendo le lezioni quel diagramma ER non mi era affatto familiare.
Come la vedete?

grazie

R1cky`
Originally posted by cinghio
Perchè deludente?


Perchè io mi sono preparato vedendo i temi d'esame passat che, magari mi sbaglio, sono diversi, proponendo domande aperte in cui devi dimostrare di sapere un po' di teoria e trascurando tutta la parte di ddl (tranne se non per delle create table o delle grant) e delle query dove dovevi lavorarci un pochino per ottenere il risultato.
In questo appello invece la parte teoria era praticamente assente, le query erano delle baggianate, c'erano dei comandi ddl il cui fatto di saperli a memoria è, sempre secondo me, opinabile. Secondo me non si valuta la conoscenza della materia in base al fatto che uno si ricorda la sintassi di un certo comando.
Questo è quanto, ribadisco che si tratta del mio punto di vista.

cinghio
punti di vista e il tuo è rispettabilissimo! :)

ciao, cinghio

valeriam.
le domande a crocette mi sembrava valessero 3 pnt ognuna e gli esercizi 5 punti

Pennywise
Vi ricordate le risposte alle prime domande?
Io mi ricordo di aver messo C-A-C-C-B
E l'ultimo mi pare di aver messo 5 relazioni. una solo per l'attributo di E1 con cardinalità (0,N)

Voi vi ricordate?

MA PERCHE' NON RILASCIANO PIU I TESTI D'ESAME? HANNO PAURA CHE SE UNO SI ESERCITA UN PO POI PASSA ANCHE GLI ESAMI?

Counter65
la prima l'ho messa anche io a C ma non sono sicuro... c'è qualcuno che l'ha fatta giusta sicuramente? le altre non ricordo...ma erano simili forse l'ultima diversa

R1cky`
Originally posted by Counter65
la prima l'ho messa anche io a C ma non sono sicuro... c'è qualcuno che l'ha fatta giusta sicuramente? le altre non ricordo...ma erano simili forse l'ultima diversa


A quanto pare quasi tutti hanno messo la C :)
Io nelle altre domande ho messo:

Quella che chiedeva dei cookie ho messo la risposta che diceva "solo lato client", quella che diceva dei livelli ho messo la risposta che conteneva "livello logico" e l'altra con le condizioni in and/or non mi ricordo.

MA PERCHE' NON RILASCIANO PIU I TESTI D'ESAME? HANNO PAURA CHE SE UNO SI ESERCITA UN PO POI PASSA ANCHE GLI ESAMI?


Ah può darsi... :)

cinghio
Sono quasi sicuro che la decomposizione senza perdita sia quella con le relazione: Dipartimento-Cognome-Nome, Cognome-Nome-Telefono.
Il livello logico è quello intermedio.
L'altra risposta secondo me giusta era, se non ricordo male: (MEDIA > 25 AND ESAMI > 10) OR ETA < 25
Quella sui cookie credo di averla sbagliata: secondo me erano tutte plausibili. io ho scelto che lato server l'id sessione e' l'unica info immagazzinata.
l'altra domanda sul left join esterno non la ricordo ma secondo me prende tutti i record del lato sinistro, e se ha informazioni sul lato destro le visualizza, altrimenti non scrive niente (cioè NULL).

SQL:
SELECT SUM(TEMPO)
FROM TEMPOMANCHE
GROUP BY Luogo, Data, Atleta

UPDATE TempoManche
SET Tempo = Tempo + 1 (ammesso che il campo è un intero)
WHERE Luogo = 'Kitzbuhel' AND Data = '20090120'

GRANT:
GRANT SELECT ON Fornitore TO a,b,c WITH GRANT OPTION
GRANT INSERT ON Fornitore TO a (per non propagare)

CONSTRAINT:
ALTER TABLE a ALTER COLUMN Prezzo float NOT NULL CHECK (Prezzo > 30) (si poteva omettere il tipo e il not null)
questa si poteva fare anche a livello di contraint di tabella

ALTER TABLE Fornitore ADD CONSTRAINT PK_FID FOREIGN KEY FID REFERENCES Listino(FID) ON UPDATE CASCADE (stessa cosa per la tabella Pezzo sulla chiave PID)

Il quarto esercizio l'ho fatto male perche' non seguendo le lezioni mi sono trovato una schema ER che non sapevo codificare.
AD occhio: 3 relazioni per le tre entità E e una per l'entità Relazione R1 per fare il molti-a-molti (M:N).

Spero di essere passato ma sono fiducioso, solo che la vita mi ha dato tante e tante amarezze! :)

ciao, Marcello

morte2097
una cosa, nella prima query , se non erro, voleva selezionare ogni atleta con il tempo totale di ogni gara?

cinghio
giusto, ho omesso. pero' ho raggruppato per atleta! :)

darkshadow
Originally posted by cinghio
Sono quasi sicuro che la decomposizione senza perdita sia quella con le relazione: Dipartimento-Cognome-Nome, Cognome-Nome-Telefono.


credo di aver fatto anch'io cosi.


Il livello logico è quello intermedio.


anche questa =


L'altra risposta secondo me giusta era, se non ricordo male: (MEDIA > 25 AND ESAMI > 10) OR ETA < 25



pure questa.


Quella sui cookie credo di averla sbagliata: secondo me erano tutte plausibili. io ho scelto che lato server l'id sessione e' l'unica info immagazzinata.

l'altra domanda sul left join esterno non la ricordo ma secondo me prende tutti i record del lato sinistro, e se ha informazioni sul lato destro le visualizza, altrimenti non scrive niente (cioè NULL).


su queste mi sa che ho sbagliato.


SQL:
SELECT SUM(TEMPO)
FROM TEMPOMANCHE
GROUP BY Luogo, Data, Atleta



è giusta cosi ma ci sono delle imprecisioni.
i campi che usi nella clausola group by devono essere presenti nella select.

in realta dovrebbe essere cosi:

SELECT Luogo, Data, Atleta, sum (Tempo)
FROM TEMPOMANCHE
GROUP BY (Luogo, Data, Atleta)



UPDATE TempoManche
SET Tempo = Tempo + 1 (ammesso che il campo è un intero)
WHERE Luogo = 'Kitzbuhel' AND Data = '20090120'



questa è assolutamente sbagliata perchè l'es ti chiedeva di aggioarnare il valore di TEMPO aggiungendo + 1 pero prima dovevi prendere il valore che c'è nel campo TEMPO dei record che rispettano la clausola WHERE e a questo valore fare + 1.

e questo si poteva fare attraverso non so una funzione nella quale usi un cursore.

non si può fare direttamente TEMPO = TEMPO + 1




GRANT:
GRANT SELECT ON Fornitore TO a,b,c WITH GRANT OPTION
GRANT INSERT ON Fornitore TO a (per non propagare)


qui mancano le altre tabelle cmq il comando è giusto

siccome c'erano + tabelle ho fatto cosi:

GRANT SELECT ON tabella1, tabella2, tabella3 TO u1, u2, u3 WITH GRANT OPTION

sul libro non ho visto se si poteva mettere + tabelle nella parte ON. sapete se si può fare??




CONSTRAINT:
ALTER TABLE a ALTER COLUMN Prezzo float NOT NULL CHECK (Prezzo > 30) (si poteva omettere il tipo e il not null)
questa si poteva fare anche a livello di contraint di tabella

ALTER TABLE Fornitore ADD CONSTRAINT PK_FID FOREIGN KEY FID REFERENCES Listino(FID) ON UPDATE CASCADE (stessa cosa per la tabella Pezzo sulla chiave PID)



questo non l'ho fatto perchè non mi ricordavo la sintassi del comando alter


Il quarto esercizio l'ho fatto male perche' non seguendo le lezioni mi sono trovato una schema ER che non sapevo codificare.
AD occhio: 3 relazioni per le tre entità E e una per l'entità Relazione R1 per fare il molti-a-molti (M:N).



su questa ho un solo dubbio. per quanto riguarda l'attributo multivalore, c'era da fare un'altra relazione oppure rimaneva un semplice attributo??



per quanto riguarda la parte di algebra..

io nella prima ho fatto la differenza e nella seconda invece l'intersezione, voi come avete fatto?.


Spero di essere passato ma sono fiducioso, solo che la vita mi ha dato tante e tante amarezze! :)

ciao, Marcello



già speriamo di avercela fatta pechè non ho voglia di rifarmi l'esame.



ciao.


DS

Counter65
Originally posted by darkshadow


UPDATE TempoManche
SET Tempo = Tempo + 1 (ammesso che il campo è un intero)
WHERE Luogo = 'Kitzbuhel' AND Data = '20090120'



questa è assolutamente sbagliata perchè l'es ti chiedeva di aggioarnare il valore di TEMPO aggiungendo + 1 pero prima dovevi prendere il valore che c'è nel campo TEMPO dei record che rispettano la clausola WHERE e a questo valore fare + 1.

e questo si poteva fare attraverso non so una funzione nella quale usi un cursore.

non si può fare direttamente TEMPO = TEMPO + 1





si puo fare, ti stai confondendo con qualcos'altro probabilmente...
http://en.wikipedia.org/wiki/Update_(SQL)

cinghio
dark se i campi sono nel group by non e' detto che devono essere anche nella select. ne sono quasi sicuro: con SQL SERVER e' cosi'.
non vale il contrario. il problema che l'atleta lo vedo più volte per ogni gara.

piuttosto, riguardo l'update, mi viene in mente che forse ho aggiunto un secondo per ogni manche e questo non e' tanto giusto! :(
l'update con la where cosi' in generale credo sia giusto... o forse non ho capito la tua obiezione. di certo e' impreciso.

sulle grant si possono metterep iu' tabelle. mi sorge l'atroce dubbio di averne omessa qualcuan per distrazione... NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO!

sull'algebra ho fatto un'intersezioen di due relazioni praticamente uguali tranne per il valore filtrato (discesa libera e slalom gigante)
per l'altra anche io ho fatto una sottrazioen tra gli atleti TUTTI e quelli che hanno fatto almeno una gara nella loro nazione = risultato!

di certo non e' ottimizzata.

dark, dammi fiducia! secondo te?
a me sembra che i nostri compitini siano andati been, io ho preso anche un +2 nel progetto quindi mi accontento del 16.

Mi sono riscritto all'università dopo tanti anni. a marzo mi scadono gli esami se non ne sostengo almeno uno con esito positivo (sono un po' teso)! :)

darkshadow
 
allora ho controllato l'update e in quel modo si può fare. (maledizione non lo sapevo!!! :evil: )

per quanto riguarda il group by... in sql standart tutte le colonne che compaiono nella clausola group by, devono comparire nella select

se in sql server si possono omettere è un conto ma in slq standart no.
i prof penso controllino che sia in sql standart.


cmq non abbiamo fatto un esame brillante ma sembrerebbe che lo abbiamo superato.


pero non sarò tranquilo finchè non vedo i risultati.

cinghio
a chi lo dici! grazie del supporto morali! :)

R1cky`
Originally posted by cinghio

SQL:
SELECT SUM(TEMPO)
FROM TEMPOMANCHE
GROUP BY Luogo, Data, Atleta

UPDATE TempoManche
SET Tempo = Tempo + 1 (ammesso che il campo è un intero)
WHERE Luogo = 'Kitzbuhel' AND Data = '20090120'


Anche io le ho fatte in questo modo :)



Originally posted by darkshadow
su questa ho un solo dubbio. per quanto riguarda l'attributo multivalore, c'era da fare un'altra relazione oppure rimaneva un semplice attributo??


Io ho fatto un'altra relazione, e credo che sicuramente andava fatto in questo modo...

cinghio
Dark, ho trovato un esempio sulle slide del corso dove c'era un attributo nella clausola GROUP BY e l'attributo non era presente nella select (ma era nella WHERE).
Cmq sia io non penso sia un errore grave.

cinghio
dark, ora che mi sovviene la select l'ho fatta cosi'

SELECT Atleta, Luogo, Data, SUM(Tempo)
FROM TEMPOMANCHE
GROUP BY Atleta, Luogo, Data

e sono sicuro sia giusta.

R1cky`
Si è giusta!

Qualcuno sa in media quanto ci mettono a correggere i compiti?

capi
Originally posted by darkshadow

su questa ho un solo dubbio. per quanto riguarda l'attributo multivalore, c'era da fare un'altra relazione oppure rimaneva un semplice attributo??

ma siete sicuri che l'attributo era multivalore? non era un opzionale?

DS [/B]

darkshadow
era un attributo con cardinalità (0, N) quindi opzionale e multivalore.

cinghio
Ferrara dovrebbe essere pronto per settimana prossima, l'ho chiamato per altri motivi e mi ha detto che dovrebbe essere pronto.
La Castano è più lunga, anche per il numero di compiti da correggere, almeno cosi' ho provato sulla mia pelle in passato.
Però su lei non ho notizie certe.

R1cky`
Sono usciti i risultati!!! Com'è andato ragazzi?

Gimmy
20... vabè poteva andare peggio, cmq me lo aspettavo, se lo avevo passato non era un voto altissimo.. te?

nitsu69
Bene, vado all'orale.
Qualcuno sa come è Ferrara all'orale: cosa chiede, aiuta ecc.

R1cky`
Io ho preso 25, il giusto per non esere costretto ad andare all'orale :asd:

Ertyl
Per i poveri che hanno preso 16, ce bisogno di rifare l'esame?!
Qualcuno ha un'idea?! o.O

cinghio
Ertyl non tutto è perduto! Se al progetto prendi +2 si somma al tuo 16 e puoi scamparla.

Io ho preso 25 (+2 del progetto di aprile), potrei andare all'orale ma non me la sento affatto!
Mi tengo il mio 25 con un po'!
Quindi le mie previsioni non sono state rispettate (in positivo).
1) Domande orali: immagino 4 su 5.
2) SQL + Algebra: immagino giuste a questo punto
3) Linguaggio DDL era giusto, quello mi veniva facile
4) Traduzione ER deve avermi contato qualcosa perchè secondo me l'ho sbagliata. Non ho considerato nè l'entità debole nè l'attributo multi valore! :(

ciao, cinghio

cinghio
Importante: qualcuno sa dirmi quando, come e dove si registra?
Ormai sono 8 anni che non sostengo esami e quindi non ho più dimestichezza con certe dinamiche.
Io andrei venerdì durante l'orario di ricevimento di Ferrara con il libretto e il tesserino magnetico, giusto?

Grazie per l'aiuto.

Bisciu
ho preso 17 allo scritto e +3 al progetto, risultato finale 20 o devo rifare lo scritto? saluti

cinghio
non vorrei infondervi false speranze ma io ho capito che il voto dello scritto più il voto del progetto se >= 18 vuol dire che siete promossi!

Bisciu
SI MA DOVE CA**O E' SCRITTO SUL SITO QUESTA COSA? POSSIBILE CHE NON CI SIA SCRITTO SUL SITO DI BASI DI DATI?

boh

grazie comunque

cinghio
Leggi la riga dove parla di "[...]votazione complessiva[...]" nella sezione "Modalità d'Esame" (Discussione orale):
- Per votazioni della prova scritta maggiori o uguali a 26/30: la discussione orale è necessaria. A seguito della discussione orale, la votazione complessiva ottenuta si sommerà alla valutazione del progetto. Se non si sostiene la discussione orale si intende SEMPRE automaticamente confermata una votazione di 25/30 (a cui verrà sommata la valutazione del progetto).
- Per votazioni della prova scritta minori o uguali a 25/30: la discussione orale non è possibile. La votazione si intende automaticamente confermate e a questa verrà sommata la valutazione del progetto.

ste182
ma sono l'unico che ha preso insufficiente? e come mai non c'è scritta la valutazione in numeri??

marchinkus
ho preso 24, quando e come posso verbalizzare?
Ciao grazie

R1cky`
Ma hai già consegnato il progetto?

marchinkus
si, l'appello di gennaio 09 per me era l'ultimo appello possibile.
Ho seguito il corso 2007/2008 e il progetto l'ho consegnato ad ottobre

cinghio
Marchinus la verbalizzazione era il 3.
Io ho preso 25, niente orale. però col +2 del progetto ha verbalizzato un bel 27! :)
Non mi lamento ANZI!

L'insufficiente vuol dire che non sei giudicabile, anche io a settembre mi sono beccato un insufficiente!

Il progetto dovrebbe valere un anno indipendentemente dall'anno dell'appello! Ma non voglio dire c.....te!

adios!

antares85
si deve fare il progetto entro 12 mesi dallo scritto, dopodichè il voto dello scritto decade e lo si deve rifare...ne so qualcosa :P

kalbiz
Originally posted by cinghio
Sono quasi sicuro che la decomposizione senza perdita sia quella con le relazione: Dipartimento-Cognome-Nome, Cognome-Nome-Telefono.


una info ... come hai risolto questa decomposizione ???

"Se R soddisfa la dipendenza funzionale X0->X1 oppure X0->X2 allora R si decompèone senza perdita su X1,X2 "

ho trovato solo questo riferimento alla decomposizione senza perdita, ma non ho capito come si applica effettivamente ad una relazione

grazie

cinghio
Diciamo che la domanda sotto forma di test a risposta unica facilita il compito quindi ci sono arrivato per logica.
La decomposizione senza perdita deve prevenire la creazione di tuple spurie.
nell'esercizio dell'esame c'erano 4 tuple più o meno così:
DIP, NOME, COGNOME, TEL
D1, Mario, Rossi, 2222
D2, Mario, Rossi, 2222
D3, Chiara, Sensi, 3333
D4, Paolo, Rossi, 4444
TEL è determinato funzionalmente da NOME, COGNOME
DIP determina NOME, COGNOME.
Perchè non solo NOME o COGNOME?
Se avessi scelto solo COGNOME per decomporre le relazioni creeresti delle tuple spurie (basandoci sui record d'esempio).
D1, Mario, Rossi, 2222
D2, Mario, Rossi, 2222
D4, Paolo, Rossi, 4444
... (seguono tuple spurie)
D1, Paolo, Rossi, 4444
D2, Paolo, Rossi, 4444
D4, Mario, Rossi, 2222
ecc ecc
che non fanno parte della relazione della domanda.

spero di esserti stato (un pochino) d'aiuto.

b.elite
qualcuno può postare le domande di teoria?
grazie

kalbiz
grazie cinghio per la risposta ... insomma è da valutare ragionando solo sulle tuple che si hanno
proviamo

cinghio
kalbiz, molto umilmente ho fatto cosi'! :)

per le altre risposte guardate gli altri post.
ho sbagliato solo quella sui cookies che non so.

ciao

kalbiz
bhe leggendo qua e la direi che hai fatto bene ... :-)

indubbiamente la soluzione migliore , mi chiedevo infatti avendo visto solo il commento e la soluzione senza il testo come fosse stato possibile giungere alla conclusione della decomposizione ...

se capitasse un esercizio simile ...tenterò alla stessa maniera...
grazie

irene
cinghio,
puoi x favore postare la soluzione di questi due esercizi di algebra, ho l'esame domani e non so proprio come andrebbero risolti!
temi d'esame del 18 gennaio 2006:
- determinare codice dei venditori che hanno venduto solo a clienti della propria citta'.

tema d'esame del 20 aprile 2004:
- trovare le citta' in cui risiedono solo medici.

Per il secondo io avrei fatto cosi':
(p = proiezione)

p citta ( medico ) - p citta ( pazienti ) ma non credo prorpio sia corretto. Ho provato a fare la stessa in SQL, ma bisogna aggiungere la condizione sulla citta.

select citta from medico where not exsists (select citta from paziente where medico.citta = paziente .citta )

grazie .

b.elite
Originally posted by irene
cinghio,
puoi x favore postare la soluzione di questi due esercizi di algebra, ho l'esame domani e non so proprio come andrebbero risolti!
temi d'esame del 18 gennaio 2006:
- determinare codice dei venditori che hanno venduto solo a clienti della propria citta'.

tema d'esame del 20 aprile 2004:
- trovare le citta' in cui risiedono solo medici.

Per il secondo io avrei fatto cosi':
(p = proiezione)

p citta ( medico ) - p citta ( pazienti ) ma non credo prorpio sia corretto. Ho provato a fare la stessa in SQL, ma bisogna aggiungere la condizione sulla citta.

select citta from medico where not exsists (select citta from paziente where medico.citta = paziente .citta )

grazie .


provo a darti una mano io:-D
io ho fatto così:
p=proiezione , s=selezione, ej=equijo

b.elite
a scrivere l'interrogazione così non si capisce niente quindi te lo spiego a parole:

prima devi preparare le tabelle proiettando solo gli attributi che ti servono
venditore: coidce, citta
vendita codicevend, codcli
cliente:codicecli, cittàcli

queste le unisci con due equijoin (tieni presente che l'equijoin a differenza del join naturale prende entrambi gli attributi della condizione)
fino ad ottenere una tabella così
(codicevend,città,codicecli,cittàcli)
da questa selezioni per città=cittàcli e poi proietti codicevend.
così si trova il codice dei venditori che hanno venduto a clienti della propria città.

per trovare i codice dei venditori che venduto SOLO a clienti della propria città devi fare

(query scritta sopra) - (query scritta sopra con condizione città<>cittacli)

spero di aver scritto in maniera comprensibile:D

ma il tema d'esame del 20 aprile 2004 dove l'hai preso?

irene
grazie, guardo bene, cosa dici e ci sentiamo a breve.

i temi d'esame, sono nell'area "Filez" di basi di dati.

irene
scusa, ma non ho ben capito il meccanismo dell'ar!

L'operazione da fare "sarebbe" cosi':

P codvend ( P codice, citta ( VENDITORE ) ) eq codice=codvend
( P codiceVend, citta (VENDITA) ) eq ( P codcli, cittacli (CLIENTE ) )
-
P codvend ( P codice, citta ( VENDITORE ) ) eq codice=codvend
( P codiceVend, citta (VENDITA) ) eq ( P codcli, cittacli (CLIENTE ) )

??? dove metto la selezione citta <> cittacl


grazie!
Hai trovato i temi d'esami?

b.elite
( P codice, citta ( VENDITORE ) ) eq codice=codvend
( P codiceVend,codcli (VENDITA) ) eq ( P codcli, cittacli (CLIENTE ) )

a tutta questa roba applichi la selezione cittàcli=città
e poi proietti il codice



a tutto questo sottrai la stessa interrogazione con la condizione cittàcli<>città


ps. ci sarebbe la storia dell'algebra ottimizzata e del fatto che l'equijoin prende entrambi gli attributi, ma è una sottigliezza non penso sia molto rilevante

temi d'esame trovati grazie:cool:

irene
l'esercizio di aprile sarebbe cosi':

P citta ( P matricola, citta ( MEDICO ) ) eq matricola=medico
( P medico,paziente (CURA) ) eq ( P codice, citta (PAZIENTE ) )

Mi serve ridenominare la citta del paziente? ( cittap ) e poi applicare la selezione cittàp=città

E poi devo sottrarre la stessa interrogazione con la condizione cittàp<>città

grazie.

b.elite
secondo me quella di trovare le città in cui risiedono solo medici
è come avevi detto tu:

p(citta) medico - p(città)paziente

però effettivamente sembra strano sia così semplice...
qualcuno la sa???

kalbiz
sullo stesso tem di esame come avete risolto la parte sql ?

determinare le matricole dei medici che curano solo pazienti della loro stessa città.

select m.matricola
from paziente p, medico m, cura c
where p.codice = c.paziente
and m.matricola = c.medico
and p.citta = m.citta
except
select m.matricola
from paziente p, medico m, cura c
where p.codice = c.paziente
and m.matricola = c.medico
and p.citta <> m.citta

dovrebbe essere lo stesso concetto, trovo tutti i medici con citta = citta paziente e sottraggo tutti quelli di cui citta <> citta paziente
?

pirlo21
scusate se mi intrometto...ho solo una curiosità...quanto tempo da per fare lo scritto?

b.elite
Originally posted by pirlo21
scusate se mi intrometto...ho solo una curiosità...quanto tempo da per fare lo scritto?


penso 2h

cinghio
ragazzi scusate ma non riesco a capire bene e poi dopo il lavoro e lo studio per l'esame di reti mi rimane solo il tempo per dormire! :)
Posso dire che per algebra ottimizzata si intende (scusate l'italiano) che prima di fare join e/o operazioni sugli insiemi (intersect, union, minus, divisione) bisogna proiettare le due relazioni.
Esempio del libro (più o meno): Dipendenti(ssn, cognome, nome) e Lavora_Su(ssn_i, id_prj, ore).
Trovare i dipendenti che lavorano a tutti progetti per cui lavora il lavoratore ssn=5
1) dip5 <-- P snn ( O ssn=5(Dipedenti) ) = selezione del dip5 + proiezione
2) prj5 <-- P id_prj ( Lavora_Su * dip5 ) = join naturale su ssn + proiezioni per trovare a qual prj il dip5 lavora
3) LavPrj <-- P ssn, id_prj (Lavora_Su) = proiezione di tutti i dipendenti e i progetti per cui lavorano
4) ListDip <-- LavPrj / prj5 = divisione che soddisfa la tesi e dà come attributo risultante per ListDip solo snn (come da definizione della operazione di divisione)
5) ...join per decodificare il risultato...

tutte le proiezioni (da fare dove si possono fare) sono ottimizzazioni.
anche l'ordine delle operazioni è importante, ad esempio non si puo' fare la divisione se prima non hai fatto le proiezioni degli attributi utili e le selezioni preliminari per il raggiungimento del risultato.
io ho studiato sulle slide di ferrara e della castano.
direi che sono veramente chiare e complete.
capire in profondità quelle garantisce un'ottima base per il superamento dell'esame.
a me è andato abbastanza bene. :)

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