Demo Scenario

 

dis.ddf:

#global schema
student(S_ID,FIRSTNAME,SECONDNAME,CITYOFRESIDENCE,ADDRESS,TELEPHONE,HIGHSCHOOLSPECIALIZATION)
enrollment(S_ID,FACULTYNAME,YEAR)
course(C_CODE,DESCRIPTION)
professor(PROFFIRSTNAME,PROFSECONDNAME)
university(U_NAME,CITY)
exam_record(S_ID,C_CODE,PROFFIRSTNAME,PROFSECONDNAME,MARK,DATE,COURSEYEAR)
teaching(C_CODE,PROFFIRSTNAME,PROFSECONDNAME,ACADEMICYEAR)
student_course_plan(SCP_CODE,S_ID,PLANTYPE,REQUESTDATE,STATUS)
plan_data(SCP_CODE,C_CODE,COURSETYPE)
faculty(FACULTYNAME,DEANFIRSTNAME,DEANLASTNAME)
department(DEPTNAME)
university_degree(DEGREE,FACULTYNAME)

#dependencies
KeyConstraint(student,1)
KeyConstraint(enrollment,1)
KeyConstraint(course,1)
KeyConstraint(university,1)
KeyConstraint(exam_record,1,2,3,4)
KeyConstraint(student_course_plan,1)
KeyConstraint(plan_data,1,2)
KeyConstraint(faculty,1)
KeyConstraint(university_degree,1)
Inclusion(enrollment,1,student,1)
Inclusion(exam_record,1,student,1)
Inclusion(exam_record,2,course,1)
Inclusion(exam_record,3,4,professor,1,2)
Inclusion(teaching,2,3,professor,1,2)
Inclusion(teaching,1,course,1)
Inclusion(student_course_plan,2,student,1)
Inclusion(plan_data,1,student_course_plan,1)
Inclusion(plan_data,2,course,1)
Inclusion(professor,1,2,teaching,2,3)
Inclusion(teaching,1,exam_record,2)
Inclusion(university_degree,2,faculty,1)

#source schema
studente(MATRICOLA,COGNOME,NOME,DATA_NASCITA,LUOGO_NASCITA,PROVINCIA_NASCITA,INDIRIZZO_RECAPITO,NUMERO_CIVICO_RECAPITO,CAP_RECAPITO,CITTA_RECAPITO,PROVINCIA_RECAPITO,PREFISSO_RECAPITO,TELEFONO_RECAPITO,INDIRIZZO_RESIDENZA,NUMERO_CIVICO_RESIDENZA,CAP_RESIDENZA,CITTA_RESIDENZA,PROVINCIA_RESIDENZA,PREFISSO_RESIDENZA,TELEFONO_RESIDENZA,CODICE_FISCALE,TIPO_DIPLOMA,VOTO_DIPLOMA)
diploma_maturita(CODICE,DESCRIZIONE)
carriera(MATRICOLA,ANNO_ACCADEMICO,ANNO_DI_CORSO,TIPO_ISCRIZIONE,FACOLTA,CORSO_DI_LAUREA,UNIVERSITA,STATO_DI_CARRIERA,VALIDITA_ANNO_CARRIERA,FASCIA_CONTRIBUTIVA,COMPONENTI_NUCLEO_FAMILIARE)
facolta(CODICE_UNIVERSITA,CODICE,DESCRIZIONE)
corso_laurea(SEDE_UNIVERSITA,FACOLTA,CODICE,DESCRIZIONE)
universita(CODICE,SEDE,DESCRIZIONE)
stato_carriera(CODICE,DESCRIZIONE)
iscrizione(CODICE,DESCRIZIONE)
regolarita_esame(CODICE,DESCRIZIONE)
esame(CODICE_FACOLTA,CODICE,DESCRIZIONE,ATTIVAZIONE)
insegnamento(CODICE_FACOLTA,CODICE,DESCRIZIONE)
insegnamento_esame(FACOLTA_INSEGNAMENTO,CODICE_INSEGNAMENTO,FACOLTA_ESAME,CODICE_ESAME)
dati_esami(MATRICOLA,CODICE_INSEGNAMENTO,CODICE_ESAME,DATA,VOTO,REGOLARITA,ANNO_ACCADEMICO)
laurea(MATRICOLA,TITOLO_TESI,DATA,VOTO,RELATORE)
esame_ingegneria(CODICE,DESCRIZIONE,TIPO,ANNO_ESAME)
tipo_esame(CODICE,DESCRIZIONE)
piano_studi(CODICE,MATRICOLA,ORIENTAMENTO,DATA_PRESENTAZIONE,STATO,NOTE,PROPRESP,BASE,INDIRIZZO_A,INDIRIZZO_B)
stato(CODICE,DESCRIZIONE)
orientamento(CODICE,DESCRIZIONE)
dati_piano_studi(CODICE,CODICE_ESAME,NOME)
affidamenti_ing_informatica(CODICE_ESAME,CODICE_PROFESSORE,ANNO_ACCADEMICO)
dati_professori(CODICE,NOME,COGNOME)
verbali_esami_diploma(MATRICOLA,COGNOME,NOME,ESAME,DOCENTE,SESSIONE,APPELLO,ANNO,MODALITA,VOTO,LODE,ANNO_ACCADEMICO)
modalita(CODICE,DESCRIZIONE)
sessione(CODICE,DESCRIZIONE)
professore(CODICE,NOME,COGNOME,MATERIA)
esame_diploma(CODICE,DESCRIZIONE)
professorWeb__professor(ID_FK,SURNAME,FIRSTNAME,TITLE,HOMEPAGE,PHONE,FAX,EMAIL,ADDRESS)
professorWeb2__professor_w00(ID_FK,SURNAME,FIRSTNAME,TITLE,HOMEPAGE,PHONE,FAX,EMAIL,ADDRESS)
facultyWeb__faculty(ID_FK,FACULTYNAME,FACULTYURL,DEANTITLE,DEANFIRSTNAME,DEANLASTNAME)
departmentWeb__department(ID_FK,DEPTNAME,FACULTY,DEPTURL,DEPTFAX,ADDRESS,EMAIL,DEPTPHONE,DEPTABBRNAME)
departmentWeb2__department_w00(ID_FK,DEPTURL,DEPTNAME)
schoolWeb__school(ID_FK,SCHOOLNAME,FACULTYNAME,SCHOOLURL)
schoolWeb2__school_w01(ID_FK,SCHOOLNAME,SCHOOLURL)
universityWeb__university(ID_FK,NAME,CITY,HOMEPAGE)

#mapping GAV
student(X1,X2,X3,X4,X5,X6,X7) :- studente(X1,X3,X2,A_1,A_2,A_3,A_4,A_5,A_6,A_7,A_8,A_9,X6,X5,A_10,A_11,X4,A_12,A_13,A_14,A_15,Y,A_16), diploma_maturita(Y,X7).
enrollment(X1,X2,X3) :- carriera(X1,X3,A_1,A_2,Y,A_3,A_4,A_5,A_6,A_7,A_8), facolta(A_9,Y,X2).
course(X1,X2) :- esame(A_1,X1,X2,A_2).
course(X1,X2) :- esame_diploma(X1,X2).
university(X1,X2) :- universita(A_1,X2,X1).
university(X1,X2) :- universityWeb__university(Y1,X1,X2,Y2).
professor(X1,X2) :- professore(A_1,X1,X2,A_2).
professor(X1,X2) :- dati_professori(A_1,X1,X2).
exam_record(X1,X2,Z,W,X4,X5,Y) :- dati_esami(X1,A_1,X2,X5,X4,A_2,Y), affidamenti_ing_informatica(X2,X3,Y), dati_professori(X3,Z,W).
teaching(X1,Z,W,X3) :- affidamenti_ing_informatica(X1,X2,X3), dati_professori(X2,Z,W).
student_course_plan(X1,X2,X3,X4,X5) :- piano_studi(X1,X2,Y1,X4,Y2,A_1,A_2,A_3,A_4,A_5), orientamento(Y1,X3), stato(Y2,X5).
plan_data(X1,X2,X3) :- dati_piano_studi(X1,X2,A_1), esame_ingegneria(X2,Y3,Y2,A_2), tipo_esame(Y2,X3).
professor(X1,X2) :- professorWeb__professor(Y1,X2,X1,Y2,Y3,Y4,Y5,Y6,Y7).
professor(X1,X2) :- professorWeb2__professor_w00(Y1,X2,X1,Y2,Y3,Y4,Y5,Y6,Y7).
faculty(X1,X2,X3) :- facultyWeb__faculty(Y1,X1,Y2,Y3,X2,X3).
department(X1) :- departmentWeb__department(Y1,X1,Y2,Y3,Y4,Y5,Y6,Y7,Y8).
department(X1) :- departmentWeb2__department_w00(Y1,Y2,X1).
university_degree(X1,X2) :- schoolWeb__school(Y1,X1,X2,Y2).
university_degree(X1,"Facolta di Ingeneria") :- schoolWeb2__school_w01(Y1,X1,Y2).
 
Go Back