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’)
Cognome Nome S Matr Voto C# E S.Matr=E.Matr Voto C# E TitoloD# C E.C#=C.C# TitoloD# C C# Cognome D C.D#=D.D# D# Cognome D (Titolo=‘Programmazione I’ or D.Cognome=‘Rossi’ ) H1H1 COSTRUZIONE IPERGRAFO
R(S):=STUDENTE R(E):= Voto=30 (ESAME) R(C):=CORSO R(D):=DOCENTE INIZIALIZZAZIONE VARIABILI
Cognome Nome S Matr C# Voto E TitoloD# C Cognome D H1H1 Eval( H 1, S.Cognome ) Deve essere eliminato l’edge-relazione E H 1 non è costituito da un singolo edge-relazione H 1 è connesso Insieme degli edge-relazione candidati all’eliminazione: S,E EE Voto E
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( H 1 ):= Cognome (R(E) Result( H 21 ) Result( H 22 )) Cognome Nome S Matr C# TitoloD# C Cognome D H 22 H 21 Eval( H 1, S.Cognome )
Cognome Nome S Matr H 21 Eval( H 21, Cognome,Matr ) H 21 è costituito da un singolo edge-relazione
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( H 21 ):= Cognome Matr (R(S)). Result( H 1 ):= Cognome (R(E) Result( H 21 ) >< Result( H 21 )) RIDUZIONE IPERGRAFO E GENERAZIONE DEL CODICE Eval( H 21, Cognome,Matr )
C# TitoloD# C Cognome D H 22 Eval( H 22, C# ) H 22 non è costituito da un singolo edge-relazione H 22 è connesso Non ci sono edge-relazione candidati all’eliminazione: C’è un solo edge-condizione candidato all’eliminazione Deve essere eliminato l’edge-condizione
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( H 21 ):= Cognome Matr (R(S)). Result( H 22 ):= C# ( Titolo=‘Programmazione I’ or Cognome=‘Rossi’ (Result( H 3 ))) Result( H 1 ):= Cognome (R(E) Result( H 21 ) Result( H 22 )) RIDUZIONE IPERGRAFO E GENERAZIONE DEL CODICE C# TitoloD# C Cognome D H3H3 Eval( H 22, C# )
C# TitoloD# C Cognome D H3H3 H 3 non è costituito da un singolo edge-relazione H 3 è connesso Insieme degli edge-relazione candidati all’eliminazione: C,D CC Deve essere eliminato l’edge-relazione C Eval( H 3, Cognome, Titolo, C# )
D# Cognome D H4H4 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( H 21 ):= Cognome Matr (R(S)) R(D):=R(D) R(C). Result( H 3 ):= Cognome Titolo C# (R(C) Result( H 4 ) Result(H22):= C# ( Titolo=‘Programmazione i’ or Cognome=‘Rossi’ (Result(H 3 ))) Result( H 1 ):= Cognome (R(E) Result( H 21 ) Result( H 22 )) Eval( H 3, Cognome, Titolo, C# )
D# Cognome D H4H4 Eval( H 4, D#,Cognome ) H 4 è costituito da un singolo edge-relazione
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( H 21 ):= Cognom,Matr (R(S)) R(D):=R(D) R(C) Result( H 4 ):= D# Cognome (R(D)) Result( H 3 ):= Cognome Titolo C# (R(C) Result( H 4 )) Result(H22):= C# ( Titolo=‘Programmazione i’ or Cognome=‘Rossi’ (Result(H 3 ))) Result( H 1 ):= Cognome (R(E) Result( H 21 ) Result( H 22 ))
CODICE FINALE R(S):=STUDENTE R(E):= Voto=30 (ESAME) R(C):=CORSO R(D):=DOCENTE R(C):=R(C) R(E) Result( H 21 ):= Cognom,Matr (R(S) R(E)) Result( H 4 ):= D# Cognome (R(D) R(C) ) Result( H 3 ):= Cognome Titolo C# (R(C) Result( H 4 )) Result(H22):= C# ( Titolo=‘Programmazione i’ or Cognome=‘Rossi’ (Result(H 3 ))) Result( H 1 ):= Cognome (R(E) Result( H 21 ) Result( H 22 ))