 |
ARIEL |
| io personalmente prima ho controllato se lo schema ... |
20-02-2008 12:12 |
|
 |
ARIEL |
.grande:maestro.

Registered: Jul 2005
Posts: 636 (0.08 al dì)
Location: milano
Corso: Comunicazione digitale
Anno: Dottoressa!!!
Time Online: 12 Days, 7:36:22 [...]
Status: Offline
Edit | Report | IP: Logged |
io personalmente prima ho controllato se lo schema è minimale (ovvero se non ci sono ridondanze...i passaggi da fare li trovi sulle slide nuove sul sito di perlasca) poi ho diviso in relazioni in base alle dipendenze che avevo tipo: ho AB-->E quindi R1(ABE) e così via e poi controlli se è in 3nf.
|
|
20-02-2008 12:12 |
|
|
|  |
 |
roberto85 |
| [QUOTE][i]Originally posted by ARIEL [/i]
... |
20-02-2008 13:33 |
|
 |
roberto85 |
.simpatizzante.
Registered: Nov 2004
Posts: 18 (0.00 al dì)
Location: Novara
Corso: Comunicazione Digitale
Anno: terzo
Time Online: 17:48:35 [...]
Status: Offline
Edit | Report | IP: Logged |
Originally posted by ARIEL
io personalmente prima ho controllato se lo schema è minimale (ovvero se non ci sono ridondanze...i passaggi da fare li trovi sulle slide nuove sul sito di perlasca) poi ho diviso in relazioni in base alle dipendenze che avevo tipo: ho AB-->E quindi R1(ABE) e così via e poi controlli se è in 3nf.
Ah ok perfetto! Andrò a vedere le slide! Grazie mille per le spiegazioni!
Per quanto riguardano le query 2 e 3 le sapete fare? io le ho fatte ma non sono sicuro che sono giuste!!
|
|
20-02-2008 13:33 |
|
|
|  |
 |
roberto85 |
| Io la query 3 l'ho provata a farla così:
... |
20-02-2008 14:31 |
|
 |
roberto85 |
.simpatizzante.
Registered: Nov 2004
Posts: 18 (0.00 al dì)
Location: Novara
Corso: Comunicazione Digitale
Anno: terzo
Time Online: 17:48:35 [...]
Status: Offline
Edit | Report | IP: Logged |
Io la query 3 l'ho provata a farla così:
3)trovare il nome e la matricola dei responsabili che possiedono almeno 5 competenze
select impiegati.matr, impiegati.nome
from impiegati, competenze
where impiegati.matr = competenze.matr
group by impiegati.matr, impiegati.nome
having count(competenze) >= 5
Non so cmq se è giusta!!!!
Secondo voi??????
|
|
20-02-2008 14:31 |
|
|
|  |
 |
tolarian |
| Ho provato a risolvere le prime 3 query...
... |
20-02-2008 14:57 |
|
 |
tolarian |
Il Mezzorco Druido

Registered: Oct 2004
Posts: 144 (0.02 al dì)
Location: Biella
Corso: Comunicazione Digitale
Anno: 3°
Time Online: 1 Day, 13:36:52 [...]
Status: Offline
Edit | Report | IP: Logged |
Ho provato a risolvere le prime 3 query...
1)SELECT p.codp,COUNT(a.data),SUM(numore)
FROM impiegati i, assegnamento a,progetti p
WHERE i.matr=a.matr AND p.codp=a.codp AND i.matr=1234
GROUP BY p.codp
2)SELECT i.matr,c.competenza
FROM competenze c, impiegato i,
WHERE i.matr=c.matr AND
(SELECT COUNT(c.matr)
FROM competenze c, impiegati i
WHERE i.matr=c.matr)=1
3)SELECT i.nome,i.matr
FROM impiegati i,competenze c, progetti p
WHERE i.matr=p.matrResponsabile AND c.matr=p.matrResponsabile AND
(SELECT COUNT(c.matr)
FROM competenze c, impiegati i
WHERE i.matr=c.matr)>4
secondo voi sono giuste?
grazie
|
|
20-02-2008 14:57 |
|
|
|  |
 |
Kardo |
| Nella 1 penso bastasse usare un natural join, no?
... |
20-02-2008 17:32 |
|
 |
Kardo |
.consigliere.
Registered: Oct 2003
Posts: 113 (0.01 al dì)
Location:
Corso: Comunicazione Digitale
Anno: Nella speranza di finire
Time Online: 1 Day, 4:47:26 [...]
Status: Offline
Edit | Report | IP: Logged |
Nella 1 penso bastasse usare un natural join, no?
Posto come sono venute a me le prime due:
1) SELECT a.CodP, sum (a.numore) as TOTore, count (a.data) as
TOTgiorni
FROM impiegati i NATURAL JOIN assegnamento a
WHERE i.matr = '1234'
GROUP BY a.CodP
2) SELECT competenza, matr
FROM competenze
GROUP BY competenza, matr
HAVING COUNT(*) = 1
Last edited by Kardo on 20-02-2008 at 19:56
|
|
20-02-2008 17:32 |
|
|
|  |
 |
Melodiaz |
| scusate qualcuno potrebbe postare lo schema er cor ... |
20-02-2008 18:08 |
|
 |
Melodiaz |
Mr. Blonde
Registered: Sep 2004
Posts: 223 (0.03 al dì)
Location:
Corso: Comunicazione digitale
Anno: 3
Time Online: 2 Days, 17:06:45 [...]
Status: Offline
Edit | Report | IP: Logged |
scusate qualcuno potrebbe postare lo schema er corretto dell'appello di gennaio? ho ancora qualche dubbio a proposito...
THX
|
|
20-02-2008 18:08 |
|
|
|  |
 |
tolarian |
| [QUOTE][i]Originally posted by Kardo [/i]
... |
20-02-2008 20:21 |
|
 |
tolarian |
Il Mezzorco Druido

Registered: Oct 2004
Posts: 144 (0.02 al dì)
Location: Biella
Corso: Comunicazione Digitale
Anno: 3°
Time Online: 1 Day, 13:36:52 [...]
Status: Offline
Edit | Report | IP: Logged |
Originally posted by Kardo
Nella 1 penso bastasse usare un natural join, no?
Posto come sono venute a me le prime due:
1) SELECT a.CodP, sum (a.numore) as TOTore, count (a.data) as
TOTgiorni
FROM impiegati i NATURAL JOIN assegnamento a
WHERE i.matr = '1234'
GROUP BY a.CodP
2) SELECT competenza, matr
FROM competenze
GROUP BY competenza, matr
HAVING COUNT(*) = 1
Sì hai ragione sul natural join ... e anche sull'uso dell'having...dato che mi confondo sempre, dato che dopo il where non si possono usare i COUNT o i SUM, mentre dopo l'having sì...
tnx
|
|
20-02-2008 20:21 |
|
|
|  |
 |
roberto85 |
| Scusate ma count (a.data) as Totgiorni non è sbag ... |
20-02-2008 20:40 |
|
 |
roberto85 |
.simpatizzante.
Registered: Nov 2004
Posts: 18 (0.00 al dì)
Location: Novara
Corso: Comunicazione Digitale
Anno: terzo
Time Online: 17:48:35 [...]
Status: Offline
Edit | Report | IP: Logged |
Scusate ma count (a.data) as Totgiorni non è sbagliato?
l'attributo data semmai per rivacare i giorni bisogna utilizzare DAY xò bisogna capire se quella data è la data di fine o è la data di inizio....boh secondo me fare il count di una data è un errore, ma non vorrei sbagliare....
|
|
20-02-2008 20:40 |
|
|
|  |
 |
Kardo |
| Non so io l'ho inteso, vista la richiesta, come se ... |
20-02-2008 21:42 |
|
 |
Kardo |
.consigliere.
Registered: Oct 2003
Posts: 113 (0.01 al dì)
Location:
Corso: Comunicazione Digitale
Anno: Nella speranza di finire
Time Online: 1 Day, 4:47:26 [...]
Status: Offline
Edit | Report | IP: Logged |
Non so io l'ho inteso, vista la richiesta, come se lui mi contasse tutte le date in cui un impiegato lavora, però non escludo che sia da usare day magari con l'interval; se qualcuno ha idee in proposito ben venga.
|
|
20-02-2008 21:42 |
|
|
|  |
 |
roberto85 |
| Dal testo purtroppo non si capisce se quella è la ... |
20-02-2008 22:31 |
|
 |
roberto85 |
.simpatizzante.
Registered: Nov 2004
Posts: 18 (0.00 al dì)
Location: Novara
Corso: Comunicazione Digitale
Anno: terzo
Time Online: 17:48:35 [...]
Status: Offline
Edit | Report | IP: Logged |
Dal testo purtroppo non si capisce se quella è la data di inizio e qual è la data di fine e se i progetti non sono ancora finiti, se on sono ancora finiti per sapere il numero di giorni totali per quel determinato progetto bisognerebbe fare (current date () - data) DAY così ritrovi soltanto i giorni che sono stati impiegati, oppure io visto che non sapevo a che cosa si riferiva l'attributo data se inizio oppure fine e se sono già finiti nel compito avevo scritto sum(ore) / 24 per trovare il numero di giorni, xò non credo che sia giusto, bohhh
|
|
20-02-2008 22:31 |
|
|
|  |
 |
roberto85 |
| Per quanto riguarda il trigger pochi minuti fa ho ... |
20-02-2008 22:33 |
|
 |
roberto85 |
.simpatizzante.
Registered: Nov 2004
Posts: 18 (0.00 al dì)
Location: Novara
Corso: Comunicazione Digitale
Anno: terzo
Time Online: 17:48:35 [...]
Status: Offline
Edit | Report | IP: Logged |
Per quanto riguarda il trigger pochi minuti fa ho provato a scriverlo così:
create trigger NumMaxBiglietti
after insert on Persona
for each row
when ( select New.NumBiglietti
from persona ) > 3
ROLLBACK;
Secondo voi può essere giusto?
|
|
20-02-2008 22:33 |
|
|
|  |
 |
Kardo |
| Il trigger mi sembra giusto.
... |
20-02-2008 23:14 |
|
 |
Kardo |
.consigliere.
Registered: Oct 2003
Posts: 113 (0.01 al dì)
Location:
Corso: Comunicazione Digitale
Anno: Nella speranza di finire
Time Online: 1 Day, 4:47:26 [...]
Status: Offline
Edit | Report | IP: Logged |
Il trigger mi sembra giusto.
Per la query :
bisognerebbe fare (current date () - data) DAY
Intendevo proprio quello, penso sia giusto così.
La query 3 a me viene:
Select i.nome, p.matrResponsabile, c.competenza
From impiegati i,competenze c,progetti p
where i.matr = p.matrResponsabile and i.matr = c.matr
group by c.competenza, i.nome, p.matrResponsabile
(non mi ricordo se devono andare tutti e tre nel group by)
having count (competenza) >= 5
|
|
20-02-2008 23:14 |
|
|
|  |
 |
ARIEL |
| Allora a ricevimento dal prof. mi ha spiegato che ... |
21-02-2008 08:31 |
|
 |
ARIEL |
.grande:maestro.

Registered: Jul 2005
Posts: 636 (0.08 al dì)
Location: milano
Corso: Comunicazione digitale
Anno: Dottoressa!!!
Time Online: 12 Days, 7:36:22 [...]
Status: Offline
Edit | Report | IP: Logged |
Allora a ricevimento dal prof. mi ha spiegato che in Assegnamento Data indica i giorni in cui si è lavorato al progetto. Siccome la chiave primaria è codP, Matr, Data ci saranno tuple fatte così:
0001, 1234, 12/03/2007
0001, 1234, 17/03/2007
0001, 1234, 24/03/2007
etc.
quindi facendo un count di Data si riescono a trovare i giorni totali di lavoro effettuati sul progetto.
|
|
21-02-2008 08:31 |
|
|
|  |
 |
ARIEL |
| Ho dei dubbi su alcune cose:
... |
21-02-2008 09:19 |
|
 |
ARIEL |
.grande:maestro.

Registered: Jul 2005
Posts: 636 (0.08 al dì)
Location: milano
Corso: Comunicazione digitale
Anno: Dottoressa!!!
Time Online: 12 Days, 7:36:22 [...]
Status: Offline
Edit | Report | IP: Logged |
Ho dei dubbi su alcune cose:
Select i.nome, p.matrResponsabile, c.competenza
From impiegati i,competenze c,progetti p
where i.matr = p.matrResponsabile and i.matr = c.matr
group by c.competenza, i.nome, p.matrResponsabile
(non mi ricordo se devono andare tutti e tre nel group by)
having count (competenza) >= 5
non basta mettere nel group by solo c. competenza, i.nome?
Seconda cosa quando nell'having count si mette l'attributo (come nel caso prima competenze) e quando no (come nella query degli impiegati con una sola competenza)?
Nell'esame c'era anche la query:
Determinare gli impiegati assegnati a tutti i progetti Microsoft avente budget di almeno 50000 euro.
SELECT i.Matr, i.Nome
FROM Impiegati i, Progetti p, Assegnamento a
WHERE a.Matr=i.Matr AND a.codP=p.CodP AND budget>='50000' AND p.Nome='Microsoft' AND NOT EXIST (SELECT i.Nome, p.CodP
FROM Impiegati i, Progetti p, Assegnamento a
WHERE a.Matr=i.Matr AND a.codP=p.CodP AND p.Nome<>'Microsoft');
Qualche idea? penso che la mia sia sbagliata in qualche pezzo!
Grazie
|
|
21-02-2008 09:19 |
|
|
|  |
 |
roberto85 |
| [QUOTE][i]Originally posted by ARIEL [/i]
... |
21-02-2008 09:24 |
|
 |
roberto85 |
.simpatizzante.
Registered: Nov 2004
Posts: 18 (0.00 al dì)
Location: Novara
Corso: Comunicazione Digitale
Anno: terzo
Time Online: 17:48:35 [...]
Status: Offline
Edit | Report | IP: Logged |
Originally posted by ARIEL
Allora a ricevimento dal prof. mi ha spiegato che in Assegnamento Data indica i giorni in cui si è lavorato al progetto. Siccome la chiave primaria è codP, Matr, Data ci saranno tuple fatte così:
0001, 1234, 12/03/2007
0001, 1234, 17/03/2007
0001, 1234, 24/03/2007
etc.
quindi facendo un count di Data si riescono a trovare i giorni totali di lavoro effettuati sul progetto.
ah ora ho capito, allora si se per ogni giorno viene fatta una tupla di assegnamento allora basta il count per tenere traccia dei giorni per ogni progetto
|
|
21-02-2008 09:24 |
|
|
|  |
 |
| All times are GMT. The time now is 02:51. |
|
|
 |
|
 |
|
|
|  |
Forum Rules:
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
|
HTML code is OFF
vB code is ON
Smilies are ON
[IMG] code is ON
|
|
|
|
|
|