#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