Dsy Network www | forum | my | didattica | howto | wiki | el goog | stats | blog | dona | rappresentanti
Homepage
 Register   Calendar   Members  Faq   Search  Logout 
.dsy:it. : Powered by vBulletin version 2.3.1 .dsy:it. > Didattica > Corsi A - F > Basi di dati ~ comunicazione digitale > Esame Perlasca
Pages (2): [1] 2 »   Last Thread   Next Thread
Author
Thread    Expand all | Contract all    Post New Thread    Post A Reply
Collapse
black.jack
.consigliere.

User info:
Registered: Jan 2006
Posts: 123 (0.02 al dì)
Location:
Corso:
Anno:
Time Online: 1 Day, 10:14:25 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged
Esame Perlasca

Raga dove posso trovare vecchie prove d'esame per questo corso?
giusto per avere un'idea di come sarà il compito; ci sarà anche una parte sul laboratorio...cosa di preciso? :?

Byez

12-06-2006 21:10
Click Here to See the Profile for black.jack Click here to Send black.jack a Private Message Find more posts by black.jack Add black.jack to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
tolarian
Il Mezzorco Druido

User info:
Registered: Oct 2004
Posts: 144 (0.02 al dì)
Location: Biella
Corso: Comunicazione Digitale
Anno:
Time Online: 1 Day, 13:36:52 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

mi aggrego alla richiesta...qualcuno ha mica delle domande che ha chiesto anni precedenti??? sono domande a risposta aperta o chiusa???

grazie

13-06-2006 09:38
Click Here to See the Profile for tolarian Click here to Send tolarian a Private Message Find more posts by tolarian Add tolarian to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
Aeris Bellamy
.simpatizzante.

User info:
Registered: Nov 2004
Posts: 14 (0.00 al dì)
Location:
Corso: Comunicazione Digitale
Anno:
Time Online: 11:51:57 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

Preso direttamente dal sito del perlasca...

**** Per gli studenti di questo anno accademico si terra' un unico scritto della durata di tre ore al cui interno sara' pesente un esercizio relativo alla parte di laboratorio, principalmente riguardante le parti di php e dei trigger. ****

Sembra quindi che il compito del 27 giugno 2006 contenga solo un esercizio sulla parte di lab O.o
Effettivamente ci servirebbero altre info..

__________________
Do u choose the way of light..or the way of darkness?
Neither. I'll take the middle way..to the dawn.

22-06-2006 14:13
Click Here to See the Profile for Aeris Bellamy Click here to Send Aeris Bellamy a Private Message Visit Aeris Bellamy's homepage! Find more posts by Aeris Bellamy Add Aeris Bellamy to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
Laertes
(lei'3tiz)

User info:
Registered: Sep 2004
Posts: 238 (0.03 al dì)
Location: Albignano D'Adda
Corso: ComDig!
Anno: Dottore!
Time Online: 2 Days, 13:06:38 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

Oh mamma... i trigger??

Ma ce li ha spiegati Mr. Oracle.... e neanche tanto bene... uff...

22-06-2006 21:33
Click Here to See the Profile for Laertes Click here to Send Laertes a Private Message Find more posts by Laertes Add Laertes to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
yeah
.grande:maestro.

User info:
Registered: Nov 2003
Posts: 1644 (0.20 al dì)
Location: Cologno Monzese
Corso: Informatica Magistrale
Anno: II
Time Online: 12 Days, 21:36:41 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

I trigger non sono poi così difficili, vediamo cosa mi ricordo :D

Esempio:

Tabelle in gioco:

code:
CRATE TABLE studenti (matricola integer, nome varchar2(20), cognome varchar2(30)); CREATE TABLE registro(txt varchar2(40), m integer);

(E' un esempio, non prendetele come il miglior modo per memorizzare quelle informazioni!)

Trigger (ho aggiunto i numeri di riga per comodità):
code:
1. CREATE OR REPLACE TRIGGER il_mio_primo_trigger 2. AFTER INSERT ON studenti 3. FOR EACH ROW 4. WHEN new.matricola < 0 5. BEGIN 6. INSERT INTO registro(txt, m) values ('Matricola negativa!', :new.matr); 7. END;


Riga 2: specifica che il trigger dovrà scattare dopo l'inserimento (INSERT) fatto sulla tabella 'studenti'
Riga 3: il trigger partirà per ogni riga dello statement (se lo statement può coinvolgere più tuple)
Riga 4: Condizione di attivazione, in questo caso il trigger entra in gioco solo se matricola è negativa
Riga 6: Inserisce in registro il valore della matricola contenuto nella tupla che ha scatenato il trigger

Da notare che: nei trigger esistono due tuple speciali 'new' e 'old', che rispettivamente contengono i valori della tupla che ha scatenato il trigger, se sono disponibili.

Ad esempio in un trigger AFTER UPDATE, new conterrà il nuovo valore della tupla, old quello precedente, ma in un BEFORE INSERT, old non sarà disponibile.

Per accedere a queste tuple speciali, negli script PL/SQL si usa l'operatore due punti ':', tranne nella clausola WHEN, che, stando a quanto riportato qui, deve essere una clausola SQL.


Per riassumere, un trigger si compone di 5 parti fondamentali
- dichiarazione del trigger
- definizione dell'azione che lo scatena e della tabella cui andrà agganciato
- se dovrà scattare per ogni riga o solo sull'intero statement
- eventuale condizione di esecuzione
- codice pl/sql delle azioni da intraprendere allo scattare del trigger

Quindi, in linea di massima, se mi viene chiesto di scrivere un trigger, il mio procedimento è:
- individuare nel testo l'azione che deve scatenarlo e quale tabella coinvolgerà
- se dovrà scattare per ogni tupla (è così nel 99% dei casi)
- individuare eventuali condizioni di scatto
- individuare cosa deve fare lo script

Dividere il problema in questi 4 sottoproblemi a me semplifica la risoluzione dell'esercizio.

__________________
?

22-06-2006 23:06
Click Here to See the Profile for yeah Click here to Send yeah a Private Message Find more posts by yeah Add yeah to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
Laertes
(lei'3tiz)

User info:
Registered: Sep 2004
Posts: 238 (0.03 al dì)
Location: Albignano D'Adda
Corso: ComDig!
Anno: Dottore!
Time Online: 2 Days, 13:06:38 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

Grazie yeah!

Oggi son passato da Perlasca e mi ha detto che se uno ha capito e sa fare tutti gli esercizi che ci sono sul suo sito è a posto per l'esame e di non preoccuparsi di avere esami vecchi perchè
1)di suoi non se ne trovano in giro
2)i problemi che propone sono in linea di massima sempre leggermente diversi uno dall'altro, perchè vuole vederci ragionare...

Quindi bisogna CAPIRE bene gli esercizi che ci sono sul suo sito...

Gli ho anche chiesto se possono esserci domande di teoria "pura" invece di esercizi sulla teoria... e mi ha risposto che "in linea di massima" non dovrebbero, ma non si sa mai... in ogni caso non sarebbe una domanda che va chiedere [testuali parole] "il pelo nell'uovo" ossia , per es., "quella particolare sezione di quell'algoritmo ecc..."

Speriamo bene...

23-06-2006 21:31
Click Here to See the Profile for Laertes Click here to Send Laertes a Private Message Find more posts by Laertes Add Laertes to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
yeah
.grande:maestro.

User info:
Registered: Nov 2003
Posts: 1644 (0.20 al dì)
Location: Cologno Monzese
Corso: Informatica Magistrale
Anno: II
Time Online: 12 Days, 21:36:41 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged


Grazie yeah!

Di niente e auguri per l'esame :)

__________________
?

24-06-2006 00:47
Click Here to See the Profile for yeah Click here to Send yeah a Private Message Find more posts by yeah Add yeah to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
nasa85
.arcimaestro.

User info:
Registered: Feb 2006
Posts: 432 (0.06 al dì)
Location:
Corso: Comunicazione Digitale
Anno: Laureato
Time Online: 3 Days, 21:47:13 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

..sperem ragazzi.....!!!!!!

24-06-2006 13:57
Click Here to See the Profile for nasa85 Click here to Send nasa85 a Private Message Find more posts by nasa85 Add nasa85 to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
elendil
...Tengo botta!...

User info:
Registered: Oct 2004
Posts: 164 (0.02 al dì)
Location: Peschiera Borromeo
Corso: Comunicazione Digitale
Anno: Dottore!
Time Online: 3 Days, 1:47:04: [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

Originally posted by yeah

Quindi, in linea di massima, se mi viene chiesto di scrivere un trigger, il mio procedimento è:
- individuare nel testo l'azione che deve scatenarlo e quale tabella coinvolgerà
- se dovrà scattare per ogni tupla (è così nel 99% dei casi)
- individuare eventuali condizioni di scatto
- individuare cosa deve fare lo script

Dividere il problema in questi 4 sottoproblemi a me semplifica la risoluzione dell'esercizio.


Proviamo... :-D

Realizzare un trigger che controlla che uno studente già iscritto al turno 1 del corso di Laboratorio di Informatica Applicata (si usi in questo caso il codice F47Y08 per indicare il corso) non si iscriva anche al turno 2. Qualora questo si verificasse, eseguire il rollback dell'ultimo inserimento.


individuare nel testo l'azione che deve scatenarlo e quale tabella coinvolgerà



Si ha una tabella Iscrizione che ha come campi la matricola dello studente (Smatr), il Codice del corso (CodCorso) e il turno. La tabella su cui si deve scatenare il trigger è questa. Viene scatenato DOPO un nuovo inserimento (perchè bisogna fare un rollback).


se dovrà scattare per ogni tupla (è così nel 99% dei casi)



Mi fido della percentuale... :-D Comunque penso di si...


individuare eventuali condizioni di scatto



Quando il corso è "Laboratorio di Informatica Applicata", cioè il suo codice è "F47Y08".


individuare cosa deve fare lo script



Deve controllare se la matricola è già stata inserita in precedenza e, in questo caso, eseguire un rollback, altrimenti confermare i dati (penso mediante un commit).

code:
CREATE OR REPLACE TRIGGER ControlloTurno AFTER INSERT ON Iscrizioni FOR EACH ROW WHEN(New.CodCorso = "F47Y08") BEGIN IF(New.Smatr = Smatr) raise Exception("Già iscritto"); rollback; [ELSE commit;] END; . /


Qualche anima pia può aiutarmi???

- E' giusto l'IF o devo implementare un LOOP per controllare ciclicamente tutte le tuple?
- La sintassi è corretta? Perdonate gli eventuali errori macroscopici... :oops::oops::oops:

Grazie

__________________
:birrozza:
"Da un diamante non nasce niente, dal letame nascono i fiori"

24-06-2006 14:58
Click Here to See the Profile for elendil Click here to Send elendil a Private Message Find more posts by elendil Add elendil to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
yeah
.grande:maestro.

User info:
Registered: Nov 2003
Posts: 1644 (0.20 al dì)
Location: Cologno Monzese
Corso: Informatica Magistrale
Anno: II
Time Online: 12 Days, 21:36:41 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

Il trigger lo controllo più avanti, mi preme segnalare questo


- E' giusto l'IF o devo implementare un LOOP per controllare ciclicamente tutte le tuple?


Se non fraintendo quello che hai scritto, c'è un dettaglio di fondo: un trigger è una sequenza di azioni che scatta quando si verificano certi eventi

Ci sono due tipi di trigger:
a. orientati alla tupla
b. orientati allo statement

Quelli del tipo [a] scattano per ogni tupla, cioè se fai un'UPDATE che coinvolge 3 righe, il trigger scatta 3 volte e ogni volta new & old conterranno i corrispondenti valori per la tupla che si va modificando

Quelli del tipo [b] scattano UNA VOLTA prima o dopo l'esecuzione dello statement, quindi se fai un'UPDATE che coinvolge 1 o 100 tuple il trigger scatta sempre e solo una volta; in questo caso non so dirti il ruolo di new & old

La differenza per creare questi tipi di trigger sta nel FOR EACH ROW, tale riga crea trigger di tipo [a], la sua omissione (ma di questo non ne sono certo e non ho le specifiche sotto mano) crea trigger di tipo [b].

__________________
?

Last edited by yeah on 24-06-2006 at 21:27

24-06-2006 21:23
Click Here to See the Profile for yeah Click here to Send yeah a Private Message Find more posts by yeah Add yeah to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
elendil
...Tengo botta!...

User info:
Registered: Oct 2004
Posts: 164 (0.02 al dì)
Location: Peschiera Borromeo
Corso: Comunicazione Digitale
Anno: Dottore!
Time Online: 3 Days, 1:47:04: [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

In questo caso io devo controllare per ogni inserimento nella mia tabella se ci sono valori uguali già inseriti. Per cui se nella tupla 1 ho numero di matricola 672294, se nella tupla 18 inserisco lo stesso numero di matricola per lo stesso corso il trigger mi fa il rollback (la cancellazione) dei dati. Penso, e tu mi confermi, che il predicato FOR EACH ROW sia solo la precisazione se il trigger va lanciato tante volte quante sono le tuple o no. Ma visto che per ogni tupla dovrei controllare tutte le altre tuple della tabella per vedere se ci sono valori uguali, è giusto così o ci vuole il LOOP?

E poi, a prescindere da questo, il trigger sintatticamente è corretto?

Grazie yeah per la disponibilità...

__________________
:birrozza:
"Da un diamante non nasce niente, dal letame nascono i fiori"

25-06-2006 08:35
Click Here to See the Profile for elendil Click here to Send elendil a Private Message Find more posts by elendil Add elendil to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
Ikkarus
.illuminato.

User info:
Registered: Sep 2004
Posts: 164 (0.02 al dì)
Location: Melzo
Corso: Comunicazione Digitale
Anno: 3
Time Online: 1 Day, 6:43:37 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

sapete se bisogna anke sapere pl\sql? xke per i trigger serve...

ma sapere le cose basi è un conto...o va approfondito??

25-06-2006 09:21
Click Here to See the Profile for Ikkarus Click here to Send Ikkarus a Private Message Find more posts by Ikkarus Add Ikkarus to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
hoffman
camuno

User info:
Registered: Jun 2002
Posts: 155 (0.02 al dì)
Location: milanoflowers
Corso: vita
Anno: oltre la barricata
Time Online: 4 Days, 11:58:05: [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

potrebbe essere una cacchiata...ma al posto del loop non si potrebbe fare tipo:

DECLARE
smatr number;
BEGIN
SELECT smatr
FROM iscrizione
WHERE codcorso='f47y08'
IF (:new.smatr=smatr )
THEN raise_application_error( 'matricola' || :new.smatr || 'gia iscritto');
ROLLBACK;
END IF;
ELSE COMMIT;
END;
.
/

Ribadisco che potrebbe essere una grande cavolata prodotta dalla mia mente malata :-)

__________________
There is no higher religion than truth

25-06-2006 09:42
Click Here to See the Profile for hoffman Click here to Send hoffman a Private Message Find more posts by hoffman Add hoffman to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
elendil
...Tengo botta!...

User info:
Registered: Oct 2004
Posts: 164 (0.02 al dì)
Location: Peschiera Borromeo
Corso: Comunicazione Digitale
Anno: Dottore!
Time Online: 3 Days, 1:47:04: [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

Originally posted by hoffman
potrebbe essere una cacchiata...ma al posto del loop non si potrebbe fare tipo:

[codice]

Ribadisco che potrebbe essere una grande cavolata prodotta dalla mia mente malata :-)


E' uguale a quello che ho scritto io! E' solo leggermente diverso sintatticamente... Comunque è la mia stessa idea, e già il fatto che ci abbiamo pensato in due è buono... Comunque aspettiamo i consigli del saggio yeah...:-D:-D:-D

__________________
:birrozza:
"Da un diamante non nasce niente, dal letame nascono i fiori"

25-06-2006 12:44
Click Here to See the Profile for elendil Click here to Send elendil a Private Message Find more posts by elendil Add elendil to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
Konrad
.illuminato.

User info:
Registered: Dec 2004
Posts: 155 (0.02 al dì)
Location:
Corso: Comunicazione Digitale
Anno:
Time Online: 2 Days, 20:41:06: [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

Quindi non ci saranno domande di teoria?


Ci si "limiterà" alle query,sql,php,oracle?

25-06-2006 15:55
Click Here to See the Profile for Konrad Click here to Send Konrad a Private Message Find more posts by Konrad Add Konrad to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
All times are GMT. The time now is 10:20.    Post New Thread    Post A Reply
Pages (2): [1] 2 »   Last Thread   Next Thread
Show Printable Version | Email this Page | Subscribe to this Thread | Add to Bookmarks

Forum Jump:
Rate This Thread:

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
 

Powered by: 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
Pagina generata in 0.088 seconds (64.45% PHP - 35.55% MySQL) con 26 query.