STUDENTE(Matr,Nome,Cognome) ESAME(Matr,Voto,C#) CORSO(C#,Titolo,D#) DOCENTE(D#,Cognome) Cognomi degli studenti che hanno preso 30 all’esame di Programmazione I o all’esame di un corso tenuto dal Prof. Rossi range of S is STUDENTE range of E is ESAME range of C is CORSO range of D is DOCENTE retrieve S.Cognome where S.Matr=E.Matr and E.C#=C.C# and C.D#=D.D# and Voto=30 and (Titolo=‘Programmazione I’ or D.Cognome=‘Rossi’)
COSTRUZIONE IPERGRAFO Cognome Nome S Matr Matr Voto C# E S.Matr=E.Matr Voto C# E Titolo D# C Cognome D E.C#=C.C# Titolo D# C C# D# Cognome D H1 C.D#=D.D# (Titolo=‘Programmazione I’ or D.Cognome=‘Rossi’)
INIZIALIZZAZIONE VARIABILI R(S):=STUDENTE R(E):=Voto=30(ESAME) R(C):=CORSO R(D):=DOCENTE
Eval(H1,S.Cognome) Deve essere eliminato l’edge-relazione E Cognome Matr Voto E Voto E Titolo D# C H1 non è costituito da un singolo edge-relazione Cognome D C# H1 è connesso Insieme degli edge-relazione candidati all’eliminazione: E S,E H1 Deve essere eliminato l’edge-relazione E
Eval(H1,S.Cognome) RIDUZIONE IPERGRAFO E GENERAZIONE DEL CODICE Matr C# Titolo D# C D H22 H21 RIDUZIONE IPERGRAFO E GENERAZIONE DEL CODICE R(S):=STUDENTE R(E):=Voto=30(ESAME) R(C):=CORSO R(D):=DOCENTE R(C):=R(C) > R(E) R(S):=R(S) R(E) . Result(H1):= Cognome(R(E) Result(H21) Result(H22))
Eval(H21,Cognome,Matr) S Matr H21 H21 è costituito da un singolo edge-relazione
Eval(H21,Cognome,Matr) RIDUZIONE IPERGRAFO E GENERAZIONE DEL CODICE R(S):=STUDENTE R(E):=Voto=30(ESAME) R(C):=CORSO R(D):=DOCENTE R(C):=R(C) > R(E) R(S):=R(S) >R(E) Result(H21):= Cognome Matr(R(S)) . Result(H1):= Cognome(R(E) >< Result(H21) >< Result(H21))
Eval(H22,C#) Deve essere eliminato l’edge-condizione Titolo D# C Cognome D H22 non è costituito da un singolo edge-relazione C# H22 è connesso Non ci sono edge-relazione candidati all’eliminazione: C’è un solo edge-condizione candidato all’eliminazione H22 Deve essere eliminato l’edge-condizione
Eval(H22,C#) RIDUZIONE IPERGRAFO E GENERAZIONE DEL CODICE Titolo C# R(S):=STUDENTE R(E):=Voto=30(ESAME) R(C):=CORSO R(D):=DOCENTE R(C):=R(C) > R(E) R(S):=R(S) > R(E) Result(H21):= Cognome Matr(R(S)) . Result(H22):= C# ( Titolo=‘Programmazione I’ or Cognome=‘Rossi’(Result(H3))) Result(H1):= Cognome(R(E) >< Result(H21) >< Result(H22)) Cognome H3 D
Eval(H3,Cognome, Titolo, C#) D D# Titolo C# H3 non è costituito da un singolo edge-relazione H3 è connesso H3 Insieme degli edge-relazione candidati all’eliminazione: C,D C Deve essere eliminato l’edge-relazione C
Eval(H3,Cognome, Titolo, C#) RIDUZIONE IPERGRAFO E GENERAZIONE DEL CODICE Cognome D D# R(S):=STUDENTE R(E):=Voto=30(ESAME) R(C):=CORSO R(D):=DOCENTE R(C):=R(C) > R(E) R(S):=R(S) > R(E) Result(H21):= Cognome Matr(R(S)) R(D):=R(D) > R(C) . Result(H3):= Cognome Titolo C#(R(C) >< Result(H4) Result(H22):= C# ( Titolo=‘Programmazione I’ or Cognome=‘Rossi’(Result(H3))) Result(H1):= Cognome(R(E) >< Result(H21) >< Result(H22)) H4
Eval(H4,D#,Cognome) D# H4 è costituito da un singolo edge-relazione
GENERAZIONE DEL CODICE RIDUZIONE IPERGRAFO E GENERAZIONE DEL CODICE R(S):=STUDENTE R(E):=Voto=30(ESAME) R(C):=CORSO R(D):=DOCENTE R(C):=R(C) > R(E) R(S):=R(S) R(E) Result(H21):= Cognom,Matr(R(S)) R(D):=R(D) R(C) Result(H4):= D# Cognome(R(D)) Result(H3):= Cognome Titolo C#(R(C) Result(H4)) Result(H22):= C# ( Titolo=‘Programmazione i’ or Cognome=‘Rossi’(Result(H3))) Result(H1):= Cognome(R(E) ><Result(H21) Result(H22))
CODICE FINALE R(S):=STUDENTE R(E):=Voto=30(ESAME) R(C):=CORSO R(D):=DOCENTE R(C):=R(C) > R(E) Result(H21):= Cognom,Matr(R(S)) Result(H4):= D# Cognome(R(D) ) Result(H3):= Cognome Titolo C#(R(C) Result(H4)) Result(H22):= C# ( Titolo=‘Programmazione i’ or Cognome=‘Rossi’(Result(H3))) Result(H1):= Cognome(R(E) ><Result(H21) Result(H22))