74 Anhang CREATE TABLE etutor_datalog.exercise ( id NUMBER NOT NULL, query VARCHAR2(1500) NOT NULL, facts NUMBER NOT NULL, gradings NUMBER, points NUMBER(4, 1), CONSTRAINT ex_id PRIMARY KEY(id), CONSTRAINT exercise_fact_id FOREIGN KEY(facts) REFERENCES etutor_datalog.facts(id), CONSTRAINT exercise_grad_id FOREIGN KEY(gradings) REFERENCES etutor_datalog.error_grading_group(id)); Anlegen der SQL-Tabellen für das <strong>XQuery</strong>-Modul CREATE TABLE etutor_xquery.error_categories ( name VARCHAR2(25) NOT NULL, id NUMBER NOT NULL, CONSTRAINT cat_id PRIMARY KEY(id)); CREATE TABLE etutor_xquery.error_grading_group ( id NUMBER NOT NULL, CONSTRAINT grad_group_id PRIMARY KEY(id)); CREATE TABLE etutor_xquery.error_gradings ( grading_group NUMBER NOT NULL, grading_level NUMBER NOT NULL, grading_category NUMBER NOT NULL, minus_points NUMBER(4, 1) NOT NULL, CONSTRAINT cat_grad_id FOREIGN KEY(grading_category) REFERENCES etutor_xquery.error_categories(id), CONSTRAINT grad_id FOREIGN KEY(grading_group) REFERENCES etutor_xquery.error_grading_group(id) ON DELETE CASCADE, CONSTRAINT grad_unique UNIQUE(grading_group, grading_category)); CREATE TABLE etutor_xquery.exercise_urls ( url VARCHAR2(100) NOT NULL, hidden_url VARCHAR2(100) NOT NULL, exercise NUMBER(10) NOT NULL, CONSTRAINT exercise_urls_fk_exercise FOREIGN KEY(exercise) REFERENCES etutor_xquery.exercise(id) ON DELETE CASCADE); CREATE TABLE etutor_xquery.sortings ( xpath VARCHAR2(50) NOT NULL, exercise NUMBER(10) NOT NULL, CONSTRAINT sortings_fk_exercise FOREIGN KEY(exercise) REFERENCES etutor_xquery.exercise(id) ON DELETE CASCADE); CREATE TABLE etutor_xquery.xmldocs ( id NUMBER(10) NOT NULL, doc SYS.XMLTYPE NOT NULL, filename VARCHAR2(20) NOT NULL, CONSTRAINT xmldoc_id PRIMARY KEY(id));
* Anhang 75 CREATE TABLE etutor_xquery.exercise ( id NUMBER NOT NULL, query VARCHAR2(1000) NOT NULL, gradings NUMBER, points NUMBER(4, 1), CONSTRAINT ex_grad_id FOREIGN KEY(gradings) REFERENCES etutor_xquery.error_grading_group(id), CONSTRAINT ex_id PRIMARY KEY(id));