![]() |
Show 150 posts per page |
.dsy:it. (http://www.dsy.it/forum/)
- Basi di dati ~ comunicazione digitale (http://www.dsy.it/forum/forumdisplay.php?forumid=108)
-- Esame Perlasca (http://www.dsy.it/forum/showthread.php?threadid=26045)
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
mi aggrego alla richiesta...qualcuno ha mica delle domande che ha chiesto anni precedenti??? sono domande a risposta aperta o chiusa???
grazie
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.
Oh mamma... i trigger??
Ma ce li ha spiegati Mr. Oracle.... e neanche tanto bene... uff...
I trigger non sono poi così difficili, vediamo cosa mi ricordo ![]()
Esempio:
Tabelle in gioco:
code:
CRATE TABLE studenti (matricola integer, nome varchar2(20), cognome varchar2(30)); CREATE TABLE registro(txt varchar2(40), m integer);
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;
__________________
?
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...
Grazie yeah!

__________________
?
..sperem ragazzi.....!!!!!!
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.
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
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; . /
__________________

"Da un diamante non nasce niente, dal letame nascono i fiori"
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?
__________________
?
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à...
__________________

"Da un diamante non nasce niente, dal letame nascono i fiori"
sapete se bisogna anke sapere pl\sql? xke per i trigger serve...
ma sapere le cose basi è un conto...o va approfondito??
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
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 :-)
__________________

"Da un diamante non nasce niente, dal letame nascono i fiori"
Quindi non ci saranno domande di teoria?
Ci si "limiterà" alle query,sql,php,oracle?
Mi sembra ovvio che essendoci l'esercizio sui trigger bisogna sapere PL/SQL quindi bisogna studiarsi tutto il pdf di MisterOracle su PL/SQL, quello protetto da password e con sfondo blu orribile per far si che non lo stampiamo... mannaggia a lui ho dovuto leggerlo tutto a computer...
Le domande di teoria, quando ho chiesto a Perlasca, non mi ha detto che sicuramente non ci saranno, era un "tendenzialmente no", ma era tutt'altro che sicuro...
Invece io ho un dubbio sull'esercizio di laboratorio, Perlasca sul sito ha scritto che sarà principalmente sulla parte di Php e dei Trigger, ora perchè mettere quel "principalmente" se PHP e Trigger sono praticamente TUTTO lab??!! visto che per saper fare i trigger bisogna sapere SQL e PL/SQL?? e soprattutto se l'esercizio è 1, come fa ad essere sia su php che sui trigger???... o è uno ma mastodontico... oppure nn so...
code:
IF(New.Smatr = Smatr) raise Exception("Già iscritto"); rollback;
code:
DECLARE res INTEGER; -- dovrà contenere 0 o 1 BEGIN SELECT 1 INTO res FROM Iscrizione WHERE Smatr=:new.Smatr; IF(res == 1) -- la matricola c'è già ROLLBACK; END IF; END.
code:
DECLARE matr Iscrizione.Smatr%type; BEGIN SELECT Smatr INTO matr FROM Iscrizione WHERE Smatr=:new.Smatr; IF(matr != null) -- la matricola c'è già ROLLBACK; END IF; END.
__________________
?
| All times are GMT. The time now is 10:17. | Show all 17 posts from this thread on one page |
Powered by: vBulletin Version 2.3.1
Copyright © Jelsoft Enterprises Limited 2000 - 2002.