.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)
-- Appello 20/01/2009 (http://www.dsy.it/forum/showthread.php?threadid=37280)


Posted by cinghio on 07-01-2009 14:15:

Appello 20/01/2009

Qualcuno saprebbe darmi l'orario e il luogo dell'appello scritto del 20 gennaio (con Ferrara preferibilmente)?


Posted by DarkSchneider on 12-01-2009 08:07:

up! :D


Posted by R1cky` on 13-01-2009 14:48:

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?


Posted by ideafix on 13-01-2009 16:20:

idem


Posted by cinghio on 14-01-2009 18:17:

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


Posted by ideafix on 15-01-2009 06:29:

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

;) ciao


Posted by middu on 15-01-2009 14:16:

si ci sono anche domande di lab


Posted by vittorio on 16-01-2009 00:12:

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... */


Posted by R1cky` on 16-01-2009 12:15:

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


Posted by vittorio on 16-01-2009 15:13:

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


Posted by morte2097 on 17-01-2009 13:56:

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.....


Posted by darkshadow on 21-01-2009 10:36:

punteggio domande

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

__________________
by Ð@rk§h@ÐØw


Posted by R1cky` on 21-01-2009 10:47:

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.


Posted by cinghio on 21-01-2009 11:39:

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


Posted by R1cky` on 21-01-2009 12:20:

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.


Posted by cinghio on 21-01-2009 12:36:

punti di vista e il tuo è rispettabilissimo! :)

ciao, cinghio


Posted by valeriam. on 21-01-2009 17:02:

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


Posted by Pennywise on 21-01-2009 17:26:

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?


Posted by Counter65 on 22-01-2009 08:58:

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


Posted by R1cky` on 22-01-2009 09:02:

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... :)


Posted by cinghio on 22-01-2009 14:20:

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


Posted by morte2097 on 22-01-2009 14:32:

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


Posted by cinghio on 22-01-2009 14:34:

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


Posted by darkshadow on 22-01-2009 15:33:

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

__________________
by Ð@rk§h@ÐØw


Posted by Counter65 on 22-01-2009 15:41:

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)


Posted by cinghio on 22-01-2009 15:50:

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)! :)


Posted by darkshadow on 22-01-2009 16:01:

 
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.

__________________
by Ð@rk§h@ÐØw


Posted by cinghio on 22-01-2009 16:03:

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


Posted by R1cky` on 22-01-2009 17:36:

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...


Posted by cinghio on 22-01-2009 20:02:

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.


Posted by cinghio on 24-01-2009 10:49:

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.


Posted by R1cky` on 24-01-2009 11:08:

Si è giusta!

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


Posted by capi on 25-01-2009 11:37:

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]


Posted by darkshadow on 25-01-2009 13:42:

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

__________________
by Ð@rk§h@ÐØw


Posted by cinghio on 25-01-2009 18:50:

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.


Posted by R1cky` on 27-01-2009 19:18:

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


Posted by Gimmy on 27-01-2009 20:20:

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


Posted by nitsu69 on 27-01-2009 20:25:

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


Posted by R1cky` on 27-01-2009 22:04:

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


Posted by Ertyl on 27-01-2009 23:10:

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

__________________


Web Developer / SEO


Posted by cinghio on 28-01-2009 08:10:

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


Posted by cinghio on 28-01-2009 08:30:

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.


Posted by Bisciu on 28-01-2009 11:05:

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


Posted by cinghio on 28-01-2009 11:09:

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!


Posted by Bisciu on 28-01-2009 11:16:

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


Posted by cinghio on 28-01-2009 11:34:

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.


Posted by ste182 on 04-02-2009 15:31:

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

__________________
Live Fast, Die Fun


Posted by marchinkus on 04-02-2009 16:44:

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


Posted by R1cky` on 04-02-2009 17:49:

Ma hai già consegnato il progetto?


Posted by marchinkus on 05-02-2009 08:53:

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


Posted by cinghio on 06-02-2009 13:40:

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!


Posted by antares85 on 06-02-2009 15:43:

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


Posted by kalbiz on 13-02-2009 17:05:

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


Posted by cinghio on 13-02-2009 20:17:

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.


Posted by b.elite on 14-02-2009 13:41:

qualcuno può postare le domande di teoria?
grazie


Posted by kalbiz on 14-02-2009 17:31:

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


Posted by cinghio on 15-02-2009 11:31:

kalbiz, molto umilmente ho fatto cosi'! :)

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

ciao


Posted by kalbiz on 15-02-2009 18:08:

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


Posted by irene on 16-02-2009 07:30:

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 .


Posted by b.elite on 16-02-2009 09:48:

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


Posted by b.elite on 16-02-2009 10:03:

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?


Posted by irene on 16-02-2009 10:30:

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

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


Posted by irene on 16-02-2009 10:51:

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?


Posted by b.elite on 16-02-2009 11:01:

( 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:


Posted by irene on 16-02-2009 11:24:

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.


Posted by b.elite on 16-02-2009 12:23:

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???


Posted by kalbiz on 16-02-2009 14:53:

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
?


Posted by pirlo21 on 16-02-2009 17:42:

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


Posted by b.elite on 16-02-2009 18:01:

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


penso 2h


Posted by cinghio on 17-02-2009 21:45:

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


All times are GMT. The time now is 19:51.
Show all 70 posts from this thread on one page

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