DatabaseCreation: DDL_OSDM.sql

File DDL_OSDM.sql, 30.5 KB (added by 231082, 4 days ago)

DDL generated automatically from the diagrams in Oracle SQL Developer Data Modeler.

Line 
1-- Generated by Oracle SQL Developer Data Modeler 24.3.1.351.0831
2-- at: 2026-07-01 16:46:21 CEST
3-- site: Oracle Database 21c
4-- type: Oracle Database 21c
5
6
7
8-- predefined type, no DDL - MDSYS.SDO_GEOMETRY
9
10-- predefined type, no DDL - XMLTYPE
11
12CREATE TABLE Academic_Program
13 (
14 code VARCHAR2 (10) NOT NULL ,
15 name CLOB NOT NULL ,
16 created_at TIMESTAMP WITH LOCAL TIME ZONE DEFAULT CURRENT_TIMESTAMP NOT NULL ,
17 updated_at TIMESTAMP WITH LOCAL TIME ZONE DEFAULT CURRENT_TIMESTAMP NOT NULL
18 )
19;
20
21COMMENT ON COLUMN Academic_Program.code IS 'Used VARCHAR(10) instead of TEXT due to the following reason:
22-Oracle SQL Developer Data Modeler does not allow a TEXT field to be a primary key.'
23;
24
25ALTER TABLE Academic_Program
26 ADD CONSTRAINT Academic_Program_PK PRIMARY KEY ( code ) ;
27
28-- ERROR: Table name length exceeds maximum allowed length(30)
29CREATE TABLE Aggregated_Course_Edition_Results
30 (
31 exported_at TIMESTAMP NOT NULL ,
32 data_jsonb JSON NOT NULL ,
33-- ERROR: Column name length exceeds maximum allowed length(30)
34 Aggregated_Course_Edition_Results_ID NUMBER NOT NULL ,
35 Teaches_Teaches_ID NUMBER NOT NULL
36 )
37;
38
39-- ERROR: PK name length exceeds maximum allowed length(30)
40ALTER TABLE Aggregated_Course_Edition_Results
41 ADD CONSTRAINT Aggregated_Course_Edition_Results_PK PRIMARY KEY ( Aggregated_Course_Edition_Results_ID ) ;
42
43CREATE TABLE Announcement
44 (
45 id INTEGER NOT NULL ,
46 message CLOB NOT NULL ,
47 sent_at TIMESTAMP WITH LOCAL TIME ZONE DEFAULT CURRENT_TIMESTAMP NOT NULL ,
48 parent_announcement_id INTEGER DEFAULT NULL ,
49 Teaches_Teaches_ID NUMBER NOT NULL
50 )
51;
52
53ALTER TABLE Announcement
54 ADD CONSTRAINT Announcement_PK PRIMARY KEY ( id ) ;
55
56CREATE TABLE Course
57 (
58 code VARCHAR2 (10 BYTE) NOT NULL ,
59 name CLOB NOT NULL ,
60 credits INTEGER NOT NULL ,
61 created_at TIMESTAMP WITH LOCAL TIME ZONE DEFAULT CURRENT_TIMESTAMP NOT NULL
62 )
63;
64
65ALTER TABLE Course
66 ADD
67 CHECK (credits > 0)
68;
69
70COMMENT ON COLUMN Course.code IS 'Used VARCHAR(10) instead of TEXT due to the following reason:
71-Oracle SQL Developer Data Modeler does not allow a TEXT field to be a primary key.'
72;
73
74ALTER TABLE Course
75 ADD CONSTRAINT Course_PK PRIMARY KEY ( code ) ;
76
77CREATE TABLE Course_Edition
78 (
79 Course_code VARCHAR2 (10 BYTE) NOT NULL ,
80 academic_year INTEGER NOT NULL ,
81 semester INTEGER NOT NULL
82 )
83;
84
85ALTER TABLE Course_Edition
86 ADD
87 CHECK (academic_year >= 2000)
88;
89
90ALTER TABLE Course_Edition
91 ADD
92 CHECK (semester BETWEEN 1 AND 2)
93;
94
95ALTER TABLE Course_Edition
96 ADD CONSTRAINT Course_Edition_PK PRIMARY KEY ( academic_year, Course_code, semester ) ;
97
98CREATE TABLE Course_Enrollment
99 (
100 Semester_Enrollment_id INTEGER NOT NULL ,
101 Course_Edition_academic_year INTEGER NOT NULL ,
102 Course_Edition_course_code VARCHAR2 (10 BYTE) NOT NULL ,
103 Course_Edition_semester INTEGER NOT NULL ,
104 Course_Enrollment_ID NUMBER NOT NULL
105 )
106;
107
108ALTER TABLE Course_Enrollment
109 ADD CONSTRAINT Course_Enrollment_PK PRIMARY KEY ( Course_Enrollment_ID ) ;
110
111CREATE TABLE COURSE_EQUIVALENCE
112 (
113 Course_code VARCHAR2 (10 BYTE) NOT NULL ,
114 Course_code1 VARCHAR2 (10 BYTE) NOT NULL
115 )
116;
117
118ALTER TABLE COURSE_EQUIVALENCE
119 ADD CONSTRAINT COURSE_EQUIVALENCE_PK PRIMARY KEY ( Course_code, Course_code1 ) ;
120
121CREATE TABLE COURSE_PREREQUISITE
122 (
123 Course_code VARCHAR2 (10 BYTE) NOT NULL ,
124 Course_code1 VARCHAR2 (10 BYTE) NOT NULL ,
125 course_code2 VARCHAR2 (10 BYTE) NOT NULL ,
126 prerequisite_code VARCHAR2 (10 BYTE) NOT NULL
127 )
128;
129
130ALTER TABLE COURSE_PREREQUISITE
131 ADD
132 CHECK (course_code <> prerequisite_code)
133;
134
135ALTER TABLE COURSE_PREREQUISITE
136 ADD
137 CHECK (course_code <> prerequisite_code)
138;
139
140ALTER TABLE COURSE_PREREQUISITE
141 ADD CONSTRAINT COURSE_PREREQUISITE_PK PRIMARY KEY ( Course_code, Course_code1 ) ;
142
143CREATE TABLE Curriculum
144 (
145 Academic_Program_code VARCHAR2 (10) NOT NULL ,
146 Course_code VARCHAR2 (10 BYTE) NOT NULL ,
147 semester INTEGER NOT NULL ,
148 mandatory NUMBER DEFAULT FALSE NOT NULL
149 )
150;
151
152ALTER TABLE Curriculum
153 ADD
154 CHECK (semester BETWEEN 1 AND 8)
155;
156
157ALTER TABLE Curriculum
158 ADD CONSTRAINT Curriculum_PK PRIMARY KEY ( Academic_Program_code, Course_code ) ;
159
160CREATE TABLE Exam
161 (
162 id INTEGER NOT NULL ,
163 Course_Edition_academic_year INTEGER NOT NULL ,
164 Course_Edition_Course_code VARCHAR2 (10 BYTE) NOT NULL ,
165 Course_Edition_semester INTEGER NOT NULL ,
166 scheduled_at TIMESTAMP WITH LOCAL TIME ZONE ,
167 duration_minutes INTEGER
168 )
169;
170
171ALTER TABLE Exam
172 ADD
173 CHECK (duration_minutes > 0)
174;
175
176ALTER TABLE Exam
177 ADD CONSTRAINT Exam_PK PRIMARY KEY ( id ) ;
178
179CREATE TABLE Exam_Attempt
180 (
181 id INTEGER NOT NULL ,
182 Exam_id INTEGER NOT NULL ,
183 attempt_number INTEGER NOT NULL ,
184 total_points FLOAT ,
185 submitted_at TIMESTAMP WITH LOCAL TIME ZONE DEFAULT CURRENT_TIMESTAMP NOT NULL ,
186-- ERROR: Column name length exceeds maximum allowed length(30)
187 Course_Enrollment_Course_Enrollment_ID NUMBER NOT NULL
188 )
189;
190
191ALTER TABLE Exam_Attempt
192 ADD
193 CHECK (attempt_number > 0)
194;
195
196ALTER TABLE Exam_Attempt
197 ADD
198 CHECK (total_points >= 0)
199;
200
201ALTER TABLE Exam_Attempt
202 ADD CONSTRAINT Exam_Attempt_PK PRIMARY KEY ( id ) ;
203
204CREATE TABLE Exam_Problem
205 (
206 pid INTEGER NOT NULL ,
207 Exam_id INTEGER NOT NULL ,
208 description CLOB NOT NULL ,
209 expected CLOB NOT NULL ,
210 points FLOAT NOT NULL
211 )
212;
213
214ALTER TABLE Exam_Problem
215 ADD
216 CHECK (points > 0)
217;
218
219ALTER TABLE Exam_Problem
220 ADD CONSTRAINT Exam_Problem_PK PRIMARY KEY ( pid, Exam_id ) ;
221
222CREATE TABLE Exam_Results
223 (
224 exported_at TIMESTAMP NOT NULL ,
225 data_jsonb JSON NOT NULL ,
226 Exam_id INTEGER NOT NULL ,
227 Teaches_Teaches_ID NUMBER NOT NULL
228 )
229;
230
231ALTER TABLE Exam_Results
232 ADD CONSTRAINT Exam_Results_PK PRIMARY KEY ( Exam_id ) ;
233
234CREATE TABLE Exercise
235 (
236 id INTEGER NOT NULL ,
237 Course_Edition_academic_year INTEGER NOT NULL ,
238 Course_Edition_Course_code VARCHAR2 (10 BYTE) NOT NULL ,
239 Course_Edition_semester INTEGER NOT NULL ,
240 title CLOB NOT NULL ,
241 task CLOB NOT NULL ,
242 expected_result CLOB NOT NULL ,
243 deadline TIMESTAMP WITH LOCAL TIME ZONE ,
244 max_grade SMALLINT DEFAULT 10 NOT NULL ,
245 created_at TIMESTAMP WITH LOCAL TIME ZONE DEFAULT CURRENT_TIMESTAMP NOT NULL
246 )
247;
248
249ALTER TABLE Exercise
250 ADD
251 CHECK (max_grade > 0)
252;
253
254ALTER TABLE Exercise
255 ADD CONSTRAINT Exercise_PK PRIMARY KEY ( id ) ;
256
257CREATE TABLE Exercise_Submission
258 (
259 id INTEGER NOT NULL ,
260 Exercise_id INTEGER NOT NULL ,
261 submission CLOB NOT NULL ,
262 grade SMALLINT ,
263 submitted_at TIMESTAMP WITH LOCAL TIME ZONE DEFAULT CURRENT_TIMESTAMP NOT NULL ,
264 graded_at TIMESTAMP WITH LOCAL TIME ZONE ,
265-- ERROR: Column name length exceeds maximum allowed length(30)
266 Course_Enrollment_Course_Enrollment_ID NUMBER NOT NULL
267 )
268;
269
270ALTER TABLE Exercise_Submission
271 ADD
272 CHECK (grade BETWEEN 1 AND 10)
273;
274
275ALTER TABLE Exercise_Submission
276 ADD CONSTRAINT Exercise_Submission_PK PRIMARY KEY ( id ) ;
277
278CREATE TABLE Lecture
279 (
280 id INTEGER NOT NULL ,
281 Course_Edition_academic_year INTEGER NOT NULL ,
282 Course_Edition_Course_code VARCHAR2 (10 BYTE) NOT NULL ,
283 Course_Edition_semester INTEGER NOT NULL ,
284 title CLOB NOT NULL ,
285 content_url CLOB ,
286 created_at TIMESTAMP WITH LOCAL TIME ZONE DEFAULT CURRENT_TIMESTAMP NOT NULL
287 )
288;
289
290ALTER TABLE Lecture
291 ADD CONSTRAINT Lecture_PK PRIMARY KEY ( id ) ;
292
293CREATE TABLE Member
294 (
295 id INTEGER NOT NULL ,
296 name CLOB NOT NULL ,
297 surname CLOB NOT NULL ,
298 username CLOB NOT NULL ,
299 password_hash CLOB NOT NULL ,
300 date_of_birth DATE NOT NULL ,
301 created_at TIMESTAMP WITH LOCAL TIME ZONE DEFAULT CURRENT_TIMESTAMP NOT NULL ,
302 updated_at TIMESTAMP WITH LOCAL TIME ZONE DEFAULT CURRENT_TIMESTAMP NOT NULL
303 )
304;
305
306ALTER TABLE Member
307 ADD CONSTRAINT Member_PK PRIMARY KEY ( id ) ;
308
309CREATE TABLE MEMBER_MESSAGE
310 (
311 Member_id INTEGER NOT NULL ,
312 Member_id1 INTEGER NOT NULL ,
313 message CLOB NOT NULL ,
314 sent_at TIMESTAMP WITH LOCAL TIME ZONE DEFAULT CURRENT_TIMESTAMP
315 )
316;
317
318ALTER TABLE MEMBER_MESSAGE
319 ADD CONSTRAINT MEMBER_MESSAGE_PK PRIMARY KEY ( Member_id, Member_id1 ) ;
320
321CREATE TABLE Program_Enrollment
322 (
323 Student_id INTEGER NOT NULL ,
324 Academic_Program_code VARCHAR2 (10) NOT NULL ,
325 date_enrollment DATE NOT NULL ,
326 date_disenrollment DATE
327 )
328;
329
330ALTER TABLE Program_Enrollment
331 ADD CONSTRAINT Program_Enrollment_PK PRIMARY KEY ( Student_id, Academic_Program_code, date_enrollment ) ;
332
333CREATE TABLE REPLIES_TO
334 (
335 Announcement_id INTEGER NOT NULL ,
336 Announcement_id1 INTEGER NOT NULL
337 )
338;
339
340ALTER TABLE REPLIES_TO
341 ADD CONSTRAINT REPLIES_TO_PK PRIMARY KEY ( Announcement_id, Announcement_id1 ) ;
342
343CREATE TABLE Semester_Enrollment
344 (
345 id INTEGER NOT NULL ,
346 academic_year INTEGER ,
347 semester_enrollment INTEGER ,
348 prev_hash CLOB ,
349 current_hash CLOB DEFAULT '' NOT NULL ,
350 Program_Enrollment_id INTEGER NOT NULL ,
351-- ERROR: Column name length exceeds maximum allowed length(30)
352 Program_Enrollment_Academic_Program_code VARCHAR2 (10) NOT NULL ,
353-- ERROR: Column name length exceeds maximum allowed length(30)
354 Program_Enrollment_date_enrollment DATE NOT NULL
355 )
356;
357
358ALTER TABLE Semester_Enrollment
359 ADD
360 CHECK (academic_year >= 2000)
361;
362
363ALTER TABLE Semester_Enrollment
364 ADD
365 CHECK (semester BETWEEN 1 AND 2)
366;
367
368COMMENT ON COLUMN Semester_Enrollment.prev_hash IS 'The SCRAM-SHA-256 hash of the previous enrollment record for the same student.'
369;
370
371COMMENT ON COLUMN Semester_Enrollment.current_hash IS 'The SCRAM-SHA-256 hash of the concatenation of the row’s data + prev_hash.'
372;
373
374ALTER TABLE Semester_Enrollment
375 ADD CONSTRAINT Semester_Enrollment_PK PRIMARY KEY ( id ) ;
376
377CREATE TABLE Student
378 (
379 id INTEGER NOT NULL ,
380 enrolled_at TIMESTAMP WITH LOCAL TIME ZONE DEFAULT CURRENT_TIMESTAMP NOT NULL ,
381 "index" CLOB NOT NULL
382 )
383;
384
385ALTER TABLE Student
386 ADD CONSTRAINT Student_PK PRIMARY KEY ( id ) ;
387
388CREATE TABLE Student_Answer
389 (
390 Exam_Attempt_id INTEGER NOT NULL ,
391 Exam_Problem_pid INTEGER NOT NULL ,
392 Exam_Problem_exam_id INTEGER NOT NULL ,
393 answer CLOB ,
394 points_acquired FLOAT
395 )
396;
397
398ALTER TABLE Student_Answer
399 ADD
400 CHECK (points_acquired >= 0)
401;
402
403ALTER TABLE Student_Answer
404 ADD CONSTRAINT Student_Answer_PK PRIMARY KEY ( Exam_Problem_pid, Exam_Problem_exam_id, Exam_Attempt_id ) ;
405
406CREATE TABLE Student_Grade
407 (
408 grade INTEGER ,
409 graded_at TIMESTAMP WITH LOCAL TIME ZONE ,
410-- ERROR: Column name length exceeds maximum allowed length(30)
411 Course_Enrollment_Course_Enrollment_ID NUMBER NOT NULL ,
412-- ERROR: Column name length exceeds maximum allowed length(30)
413 Aggregated_Course_Edition_Results_Aggregated_Course_Edition_Results_ID NUMBER NOT NULL
414 )
415;
416
417CREATE TABLE Survey
418 (
419 id INTEGER NOT NULL ,
420 Course_Edition_academic_year INTEGER NOT NULL ,
421 Course_Edition_Course_code VARCHAR2 (10 BYTE) NOT NULL ,
422 Course_Edition_semester INTEGER NOT NULL ,
423 title CLOB NOT NULL ,
424 open_until TIMESTAMP WITH LOCAL TIME ZONE
425 )
426;
427
428ALTER TABLE Survey
429 ADD CONSTRAINT Survey_PK PRIMARY KEY ( id ) ;
430
431CREATE TABLE Survey_Option
432 (
433 Survey_id INTEGER NOT NULL ,
434 "option" CLOB NOT NULL ,
435 capacity INTEGER
436 )
437;
438
439ALTER TABLE Survey_Option
440 ADD
441 CHECK (capacity > 0)
442;
443
444CREATE TABLE SURVEY_RESPONSE
445 (
446-- ERROR: Column name length exceeds maximum allowed length(30)
447 Course_Enrollment_Course_Enrollment_ID NUMBER NOT NULL ,
448 Survey_id INTEGER NOT NULL ,
449 option_text CLOB NOT NULL ,
450 responded_at DATE DEFAULT CURRENT_TIMESTAMP NOT NULL
451 )
452;
453
454ALTER TABLE SURVEY_RESPONSE
455 ADD CONSTRAINT SURVEY_RESPONSE_PK PRIMARY KEY ( Course_Enrollment_Course_Enrollment_ID, Survey_id ) ;
456
457CREATE TABLE Teacher
458 (
459 id INTEGER NOT NULL ,
460 date_registration DATE DEFAULT CURRENT_DATE NOT NULL
461 )
462;
463
464ALTER TABLE Teacher
465 ADD CONSTRAINT Teacher_PK PRIMARY KEY ( id ) ;
466
467CREATE TABLE Teaches
468 (
469 Teacher_id INTEGER NOT NULL ,
470 Course_Edition_academic_year INTEGER NOT NULL ,
471 Course_Edition_course_code VARCHAR2 (10 BYTE) NOT NULL ,
472 Course_Edition_semester INTEGER NOT NULL ,
473 Teaches_ID NUMBER NOT NULL ,
474 academic_year INTEGER NOT NULL ,
475 semester INTEGER NOT NULL
476 )
477;
478
479ALTER TABLE Teaches
480 ADD CONSTRAINT Teaches_PK PRIMARY KEY ( Teaches_ID ) ;
481
482CREATE TABLE Teaching_Assistant
483 (
484 Student_id INTEGER NOT NULL ,
485 Teacher_id INTEGER NOT NULL
486 )
487;
488
489ALTER TABLE Teaching_Assistant
490 ADD CONSTRAINT Teaching_Assistant_PK PRIMARY KEY ( Student_id, Teacher_id ) ;
491
492-- ERROR: FK name length exceeds maximum allowed length(30)
493ALTER TABLE Aggregated_Course_Edition_Results
494 ADD CONSTRAINT Aggregated_Course_Edition_Results_Teaches_FK FOREIGN KEY
495 (
496 Teaches_Teaches_ID
497 )
498 REFERENCES Teaches
499 (
500 Teaches_ID
501 )
502;
503
504ALTER TABLE Announcement
505 ADD CONSTRAINT Announcement_Teaches_FK FOREIGN KEY
506 (
507 Teaches_Teaches_ID
508 )
509 REFERENCES Teaches
510 (
511 Teaches_ID
512 )
513;
514
515ALTER TABLE Course_Edition
516 ADD CONSTRAINT Course_Edition_Course_FK FOREIGN KEY
517 (
518 Course_code
519 )
520 REFERENCES Course
521 (
522 code
523 )
524;
525
526-- ERROR: FK name length exceeds maximum allowed length(30)
527ALTER TABLE Course_Enrollment
528 ADD CONSTRAINT Course_Enrollment_Course_Edition_FK FOREIGN KEY
529 (
530 Course_Edition_academic_year,
531 Course_Edition_course_code,
532 Course_Edition_semester
533 )
534 REFERENCES Course_Edition
535 (
536 academic_year,
537 Course_code,
538 semester
539 )
540;
541
542-- ERROR: FK name length exceeds maximum allowed length(30)
543ALTER TABLE Course_Enrollment
544 ADD CONSTRAINT Course_Enrollment_Semester_Enrollment_FK FOREIGN KEY
545 (
546 Semester_Enrollment_id
547 )
548 REFERENCES Semester_Enrollment
549 (
550 id
551 )
552;
553
554ALTER TABLE COURSE_EQUIVALENCE
555 ADD CONSTRAINT COURSE_EQUIVALENCE_Course_FK FOREIGN KEY
556 (
557 Course_code
558 )
559 REFERENCES Course
560 (
561 code
562 )
563;
564
565ALTER TABLE COURSE_EQUIVALENCE
566 ADD CONSTRAINT COURSE_EQUIVALENCE_Course_FKv1 FOREIGN KEY
567 (
568 Course_code1
569 )
570 REFERENCES Course
571 (
572 code
573 )
574;
575
576ALTER TABLE COURSE_PREREQUISITE
577 ADD CONSTRAINT COURSE_PREREQUISITE_Course_FK FOREIGN KEY
578 (
579 Course_code
580 )
581 REFERENCES Course
582 (
583 code
584 )
585;
586
587-- ERROR: FK name length exceeds maximum allowed length(30)
588ALTER TABLE COURSE_PREREQUISITE
589 ADD CONSTRAINT COURSE_PREREQUISITE_Course_FKv1 FOREIGN KEY
590 (
591 Course_code1
592 )
593 REFERENCES Course
594 (
595 code
596 )
597;
598
599ALTER TABLE Curriculum
600 ADD CONSTRAINT Curriculum_Academic_Program_FK FOREIGN KEY
601 (
602 Academic_Program_code
603 )
604 REFERENCES Academic_Program
605 (
606 code
607 )
608;
609
610ALTER TABLE Curriculum
611 ADD CONSTRAINT Curriculum_Course_FK FOREIGN KEY
612 (
613 Course_code
614 )
615 REFERENCES Course
616 (
617 code
618 )
619;
620
621-- ERROR: FK name length exceeds maximum allowed length(30)
622ALTER TABLE Exam_Attempt
623 ADD CONSTRAINT Exam_Attempt_Course_Enrollment_FK FOREIGN KEY
624 (
625 Course_Enrollment_Course_Enrollment_ID
626 )
627 REFERENCES Course_Enrollment
628 (
629 Course_Enrollment_ID
630 )
631;
632
633ALTER TABLE Exam_Attempt
634 ADD CONSTRAINT Exam_Attempt_Exam_FK FOREIGN KEY
635 (
636 Exam_id
637 )
638 REFERENCES Exam
639 (
640 id
641 )
642;
643
644ALTER TABLE Exam
645 ADD CONSTRAINT Exam_Course_Edition_FK FOREIGN KEY
646 (
647 Course_Edition_academic_year,
648 Course_Edition_Course_code,
649 Course_Edition_semester
650 )
651 REFERENCES Course_Edition
652 (
653 academic_year,
654 Course_code,
655 semester
656 )
657;
658
659ALTER TABLE Exam_Problem
660 ADD CONSTRAINT Exam_Problem_Exam_FK FOREIGN KEY
661 (
662 Exam_id
663 )
664 REFERENCES Exam
665 (
666 id
667 )
668;
669
670ALTER TABLE Exam_Results
671 ADD CONSTRAINT Exam_Results_Exam_FK FOREIGN KEY
672 (
673 Exam_id
674 )
675 REFERENCES Exam
676 (
677 id
678 )
679;
680
681ALTER TABLE Exam_Results
682 ADD CONSTRAINT Exam_Results_Teaches_FK FOREIGN KEY
683 (
684 Teaches_Teaches_ID
685 )
686 REFERENCES Teaches
687 (
688 Teaches_ID
689 )
690;
691
692ALTER TABLE Exercise
693 ADD CONSTRAINT Exercise_Course_Edition_FK FOREIGN KEY
694 (
695 Course_Edition_academic_year,
696 Course_Edition_Course_code,
697 Course_Edition_semester
698 )
699 REFERENCES Course_Edition
700 (
701 academic_year,
702 Course_code,
703 semester
704 )
705;
706
707-- ERROR: FK name length exceeds maximum allowed length(30)
708ALTER TABLE Exercise_Submission
709 ADD CONSTRAINT Exercise_Submission_Course_Enrollment_FK FOREIGN KEY
710 (
711 Course_Enrollment_Course_Enrollment_ID
712 )
713 REFERENCES Course_Enrollment
714 (
715 Course_Enrollment_ID
716 )
717;
718
719-- ERROR: FK name length exceeds maximum allowed length(30)
720ALTER TABLE Exercise_Submission
721 ADD CONSTRAINT Exercise_Submission_Exercise_FK FOREIGN KEY
722 (
723 Exercise_id
724 )
725 REFERENCES Exercise
726 (
727 id
728 )
729;
730
731ALTER TABLE Lecture
732 ADD CONSTRAINT Lecture_Course_Edition_FK FOREIGN KEY
733 (
734 Course_Edition_academic_year,
735 Course_Edition_Course_code,
736 Course_Edition_semester
737 )
738 REFERENCES Course_Edition
739 (
740 academic_year,
741 Course_code,
742 semester
743 )
744;
745
746ALTER TABLE MEMBER_MESSAGE
747 ADD CONSTRAINT MEMBER_MESSAGE_Member_FK FOREIGN KEY
748 (
749 Member_id
750 )
751 REFERENCES Member
752 (
753 id
754 )
755;
756
757ALTER TABLE MEMBER_MESSAGE
758 ADD CONSTRAINT MEMBER_MESSAGE_Member_FKv1 FOREIGN KEY
759 (
760 Member_id1
761 )
762 REFERENCES Member
763 (
764 id
765 )
766;
767
768-- ERROR: FK name length exceeds maximum allowed length(30)
769ALTER TABLE Program_Enrollment
770 ADD CONSTRAINT Program_Enrollment_Academic_Program_FK FOREIGN KEY
771 (
772 Academic_Program_code
773 )
774 REFERENCES Academic_Program
775 (
776 code
777 )
778;
779
780ALTER TABLE Program_Enrollment
781 ADD CONSTRAINT Program_Enrollment_Student_FK FOREIGN KEY
782 (
783 Student_id
784 )
785 REFERENCES Student
786 (
787 id
788 )
789;
790
791ALTER TABLE REPLIES_TO
792 ADD CONSTRAINT REPLIES_TO_Announcement_FK FOREIGN KEY
793 (
794 Announcement_id
795 )
796 REFERENCES Announcement
797 (
798 id
799 )
800;
801
802ALTER TABLE REPLIES_TO
803 ADD CONSTRAINT REPLIES_TO_Announcement_FKv1 FOREIGN KEY
804 (
805 Announcement_id1
806 )
807 REFERENCES Announcement
808 (
809 id
810 )
811;
812
813-- ERROR: FK name length exceeds maximum allowed length(30)
814ALTER TABLE Semester_Enrollment
815 ADD CONSTRAINT Semester_Enrollment_Program_Enrollment_FK FOREIGN KEY
816 (
817 Program_Enrollment_id,
818 Program_Enrollment_Academic_Program_code,
819 Program_Enrollment_date_enrollment
820 )
821 REFERENCES Program_Enrollment
822 (
823 Student_id,
824 Academic_Program_code,
825 date_enrollment
826 )
827;
828
829ALTER TABLE Student_Answer
830 ADD CONSTRAINT Student_Answer_Exam_Attempt_FK FOREIGN KEY
831 (
832 Exam_Attempt_id
833 )
834 REFERENCES Exam_Attempt
835 (
836 id
837 )
838;
839
840ALTER TABLE Student_Answer
841 ADD CONSTRAINT Student_Answer_Exam_Problem_FK FOREIGN KEY
842 (
843 Exam_Problem_pid,
844 Exam_Problem_exam_id
845 )
846 REFERENCES Exam_Problem
847 (
848 pid,
849 Exam_id
850 )
851;
852
853-- ERROR: FK name length exceeds maximum allowed length(30)
854ALTER TABLE Student_Grade
855 ADD CONSTRAINT Student_Grade_Aggregated_Course_Edition_Results_FK FOREIGN KEY
856 (
857 Aggregated_Course_Edition_Results_Aggregated_Course_Edition_Results_ID
858 )
859 REFERENCES Aggregated_Course_Edition_Results
860 (
861 Aggregated_Course_Edition_Results_ID
862 )
863;
864
865-- ERROR: FK name length exceeds maximum allowed length(30)
866ALTER TABLE Student_Grade
867 ADD CONSTRAINT Student_Grade_Course_Enrollment_FK FOREIGN KEY
868 (
869 Course_Enrollment_Course_Enrollment_ID
870 )
871 REFERENCES Course_Enrollment
872 (
873 Course_Enrollment_ID
874 )
875;
876
877ALTER TABLE Student
878 ADD CONSTRAINT Student_Member_FK FOREIGN KEY
879 (
880 id
881 )
882 REFERENCES Member
883 (
884 id
885 )
886;
887
888ALTER TABLE Survey
889 ADD CONSTRAINT Survey_Course_Edition_FK FOREIGN KEY
890 (
891 Course_Edition_academic_year,
892 Course_Edition_Course_code,
893 Course_Edition_semester
894 )
895 REFERENCES Course_Edition
896 (
897 academic_year,
898 Course_code,
899 semester
900 )
901;
902
903ALTER TABLE Survey_Option
904 ADD CONSTRAINT Survey_Option_Survey_FK FOREIGN KEY
905 (
906 Survey_id
907 )
908 REFERENCES Survey
909 (
910 id
911 )
912;
913
914-- ERROR: FK name length exceeds maximum allowed length(30)
915ALTER TABLE SURVEY_RESPONSE
916 ADD CONSTRAINT SURVEY_RESPONSE_Course_Enrollment_FK FOREIGN KEY
917 (
918 Course_Enrollment_Course_Enrollment_ID
919 )
920 REFERENCES Course_Enrollment
921 (
922 Course_Enrollment_ID
923 )
924;
925
926ALTER TABLE SURVEY_RESPONSE
927 ADD CONSTRAINT SURVEY_RESPONSE_Survey_FK FOREIGN KEY
928 (
929 Survey_id
930 )
931 REFERENCES Survey
932 (
933 id
934 )
935;
936
937ALTER TABLE Teacher
938 ADD CONSTRAINT Teacher_Member_FK FOREIGN KEY
939 (
940 id
941 )
942 REFERENCES Member
943 (
944 id
945 )
946;
947
948ALTER TABLE Teaches
949 ADD CONSTRAINT Teaches_Course_Edition_FK FOREIGN KEY
950 (
951 Course_Edition_academic_year,
952 Course_Edition_course_code,
953 Course_Edition_semester
954 )
955 REFERENCES Course_Edition
956 (
957 academic_year,
958 Course_code,
959 semester
960 )
961;
962
963ALTER TABLE Teaches
964 ADD CONSTRAINT Teaches_Teacher_FK FOREIGN KEY
965 (
966 Teacher_id
967 )
968 REFERENCES Teacher
969 (
970 id
971 )
972;
973
974ALTER TABLE Teaching_Assistant
975 ADD CONSTRAINT Teaching_Assistant_Student_FK FOREIGN KEY
976 (
977 Student_id
978 )
979 REFERENCES Student
980 (
981 id
982 )
983;
984
985ALTER TABLE Teaching_Assistant
986 ADD CONSTRAINT Teaching_Assistant_Teacher_FK FOREIGN KEY
987 (
988 Teacher_id
989 )
990 REFERENCES Teacher
991 (
992 id
993 )
994;
995
996CREATE OR REPLACE TRIGGER FKNTM_Aggregated_Course_Editio
997BEFORE UPDATE OF Teaches_Teaches_ID
998ON Aggregated_Course_Edition_Results
999BEGIN
1000 raise_application_error(-20225,'Non Transferable FK constraint on table Aggregated_Course_Edition_Results is violated');
1001END;
1002/
1003
1004CREATE OR REPLACE TRIGGER FKNTM_Announcement
1005BEFORE UPDATE OF Teaches_Teaches_ID
1006ON Announcement
1007BEGIN
1008 raise_application_error(-20225,'Non Transferable FK constraint on table Announcement is violated');
1009END;
1010/
1011
1012CREATE OR REPLACE TRIGGER FKNTM_Course_Edition
1013BEFORE UPDATE OF Course_code
1014ON Course_Edition
1015BEGIN
1016 raise_application_error(-20225,'Non Transferable FK constraint on table Course_Edition is violated');
1017END;
1018/
1019
1020CREATE OR REPLACE TRIGGER FKNTM_Course_Enrollment
1021BEFORE UPDATE OF Course_Edition_academic_year, Course_Edition_course_code, Course_Edition_semester, Semester_Enrollment_id
1022ON Course_Enrollment
1023BEGIN
1024 raise_application_error(-20225,'Non Transferable FK constraint on table Course_Enrollment is violated');
1025END;
1026/
1027
1028CREATE OR REPLACE TRIGGER FKNTM_Exam
1029BEFORE UPDATE OF Course_Edition_academic_year, Course_Edition_Course_code, Course_Edition_semester
1030ON Exam
1031BEGIN
1032 raise_application_error(-20225,'Non Transferable FK constraint on table Exam is violated');
1033END;
1034/
1035
1036CREATE OR REPLACE TRIGGER FKNTM_Exam_Attempt
1037BEFORE UPDATE OF Course_Enrollment_Course_Enrollment_ID, Exam_id
1038ON Exam_Attempt
1039BEGIN
1040 raise_application_error(-20225,'Non Transferable FK constraint on table Exam_Attempt is violated');
1041END;
1042/
1043
1044CREATE OR REPLACE TRIGGER FKNTM_Exam_Problem
1045BEFORE UPDATE OF Exam_id
1046ON Exam_Problem
1047BEGIN
1048 raise_application_error(-20225,'Non Transferable FK constraint on table Exam_Problem is violated');
1049END;
1050/
1051
1052CREATE OR REPLACE TRIGGER FKNTM_Exam_Results
1053BEFORE UPDATE OF Exam_id, Teaches_Teaches_ID
1054ON Exam_Results
1055BEGIN
1056 raise_application_error(-20225,'Non Transferable FK constraint on table Exam_Results is violated');
1057END;
1058/
1059
1060CREATE OR REPLACE TRIGGER FKNTM_Exercise_Submission
1061BEFORE UPDATE OF Course_Enrollment_Course_Enrollment_ID, Exercise_id
1062ON Exercise_Submission
1063BEGIN
1064 raise_application_error(-20225,'Non Transferable FK constraint on table Exercise_Submission is violated');
1065END;
1066/
1067
1068CREATE OR REPLACE TRIGGER FKNTM_Lecture
1069BEFORE UPDATE OF Course_Edition_academic_year, Course_Edition_Course_code, Course_Edition_semester
1070ON Lecture
1071BEGIN
1072 raise_application_error(-20225,'Non Transferable FK constraint on table Lecture is violated');
1073END;
1074/
1075
1076CREATE OR REPLACE TRIGGER FKNTM_Program_Enrollment
1077BEFORE UPDATE OF Academic_Program_code, Student_id
1078ON Program_Enrollment
1079BEGIN
1080 raise_application_error(-20225,'Non Transferable FK constraint on table Program_Enrollment is violated');
1081END;
1082/
1083
1084CREATE OR REPLACE TRIGGER FKNTM_Semester_Enrollment
1085BEFORE UPDATE OF Program_Enrollment_id, Program_Enrollment_Academic_Program_code, Program_Enrollment_date_enrollment
1086ON Semester_Enrollment
1087BEGIN
1088 raise_application_error(-20225,'Non Transferable FK constraint on table Semester_Enrollment is violated');
1089END;
1090/
1091
1092CREATE OR REPLACE TRIGGER FKNTM_Student_Grade
1093BEFORE UPDATE OF Aggregated_Course_Edition_Results_Aggregated_Course_Edition_Results_ID, Course_Enrollment_Course_Enrollment_ID
1094ON Student_Grade
1095BEGIN
1096 raise_application_error(-20225,'Non Transferable FK constraint on table Student_Grade is violated');
1097END;
1098/
1099
1100CREATE OR REPLACE TRIGGER FKNTM_Survey
1101BEFORE UPDATE OF Course_Edition_academic_year, Course_Edition_Course_code, Course_Edition_semester
1102ON Survey
1103BEGIN
1104 raise_application_error(-20225,'Non Transferable FK constraint on table Survey is violated');
1105END;
1106/
1107
1108CREATE OR REPLACE TRIGGER FKNTM_Survey_Option
1109BEFORE UPDATE OF Survey_id
1110ON Survey_Option
1111BEGIN
1112 raise_application_error(-20225,'Non Transferable FK constraint on table Survey_Option is violated');
1113END;
1114/
1115
1116CREATE OR REPLACE TRIGGER FKNTM_Teaches
1117BEFORE UPDATE OF Course_Edition_academic_year, Course_Edition_course_code, Course_Edition_semester, Teacher_id
1118ON Teaches
1119BEGIN
1120 raise_application_error(-20225,'Non Transferable FK constraint on table Teaches is violated');
1121END;
1122/
1123
1124-- ERROR: No Discriminator Column found in Arc FKArc_1 - constraint trigger for Arc cannot be generated
1125
1126-- ERROR: No Discriminator Column found in Arc FKArc_1 - constraint trigger for Arc cannot be generated
1127
1128CREATE SEQUENCE Aggregated_Course_Edition_Resu
1129START WITH 1
1130 NOCACHE
1131 ORDER ;
1132
1133CREATE OR REPLACE TRIGGER Aggregated_Course_Edition_Resu
1134BEFORE INSERT ON Aggregated_Course_Edition_Results
1135FOR EACH ROW
1136WHEN (NEW.Aggregated_Course_Edition_Results_ID IS NULL)
1137BEGIN
1138 :NEW.Aggregated_Course_Edition_Results_ID := Aggregated_Course_Edition_Resu.NEXTVAL;
1139END;
1140/
1141
1142CREATE SEQUENCE Course_Enrollment_Course_Enrol
1143START WITH 1
1144 NOCACHE
1145 ORDER ;
1146
1147CREATE OR REPLACE TRIGGER Course_Enrollment_Course_Enrol
1148BEFORE INSERT ON Course_Enrollment
1149FOR EACH ROW
1150WHEN (NEW.Course_Enrollment_ID IS NULL)
1151BEGIN
1152 :NEW.Course_Enrollment_ID := Course_Enrollment_Course_Enrol.NEXTVAL;
1153END;
1154/
1155
1156CREATE SEQUENCE Teaches_Teaches_ID_SEQ
1157START WITH 1
1158 NOCACHE
1159 ORDER ;
1160
1161CREATE OR REPLACE TRIGGER Teaches_Teaches_ID_TRG
1162BEFORE INSERT ON Teaches
1163FOR EACH ROW
1164WHEN (NEW.Teaches_ID IS NULL)
1165BEGIN
1166 :NEW.Teaches_ID := Teaches_Teaches_ID_SEQ.NEXTVAL;
1167END;
1168/
1169
1170
1171
1172-- Oracle SQL Developer Data Modeler Summary Report:
1173--
1174-- CREATE TABLE 30
1175-- CREATE INDEX 0
1176-- ALTER TABLE 86
1177-- CREATE VIEW 0
1178-- ALTER VIEW 0
1179-- CREATE PACKAGE 0
1180-- CREATE PACKAGE BODY 0
1181-- CREATE PROCEDURE 0
1182-- CREATE FUNCTION 0
1183-- CREATE TRIGGER 19
1184-- ALTER TRIGGER 0
1185-- CREATE COLLECTION TYPE 0
1186-- CREATE STRUCTURED TYPE 0
1187-- CREATE STRUCTURED TYPE BODY 0
1188-- CREATE CLUSTER 0
1189-- CREATE CONTEXT 0
1190-- CREATE DATABASE 0
1191-- CREATE DIMENSION 0
1192-- CREATE DIRECTORY 0
1193-- CREATE DISK GROUP 0
1194-- CREATE ROLE 0
1195-- CREATE ROLLBACK SEGMENT 0
1196-- CREATE SEQUENCE 3
1197-- CREATE MATERIALIZED VIEW 0
1198-- CREATE MATERIALIZED VIEW LOG 0
1199-- CREATE SYNONYM 0
1200-- CREATE TABLESPACE 0
1201-- CREATE USER 0
1202--
1203-- DROP TABLESPACE 0
1204-- DROP DATABASE 0
1205--
1206-- REDACTION POLICY 0
1207--
1208-- ORDS DROP SCHEMA 0
1209-- ORDS ENABLE SCHEMA 0
1210-- ORDS ENABLE OBJECT 0
1211--
1212-- ERRORS 24
1213-- WARNINGS 0