| 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 |
|
|---|
| 12 | CREATE 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 |
|
|---|
| 21 | COMMENT 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 |
|
|---|
| 25 | ALTER TABLE Academic_Program
|
|---|
| 26 | ADD CONSTRAINT Academic_Program_PK PRIMARY KEY ( code ) ;
|
|---|
| 27 |
|
|---|
| 28 | -- ERROR: Table name length exceeds maximum allowed length(30)
|
|---|
| 29 | CREATE 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)
|
|---|
| 40 | ALTER TABLE Aggregated_Course_Edition_Results
|
|---|
| 41 | ADD CONSTRAINT Aggregated_Course_Edition_Results_PK PRIMARY KEY ( Aggregated_Course_Edition_Results_ID ) ;
|
|---|
| 42 |
|
|---|
| 43 | CREATE 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 |
|
|---|
| 53 | ALTER TABLE Announcement
|
|---|
| 54 | ADD CONSTRAINT Announcement_PK PRIMARY KEY ( id ) ;
|
|---|
| 55 |
|
|---|
| 56 | CREATE 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 |
|
|---|
| 65 | ALTER TABLE Course
|
|---|
| 66 | ADD
|
|---|
| 67 | CHECK (credits > 0)
|
|---|
| 68 | ;
|
|---|
| 69 |
|
|---|
| 70 | COMMENT 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 |
|
|---|
| 74 | ALTER TABLE Course
|
|---|
| 75 | ADD CONSTRAINT Course_PK PRIMARY KEY ( code ) ;
|
|---|
| 76 |
|
|---|
| 77 | CREATE 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 |
|
|---|
| 85 | ALTER TABLE Course_Edition
|
|---|
| 86 | ADD
|
|---|
| 87 | CHECK (academic_year >= 2000)
|
|---|
| 88 | ;
|
|---|
| 89 |
|
|---|
| 90 | ALTER TABLE Course_Edition
|
|---|
| 91 | ADD
|
|---|
| 92 | CHECK (semester BETWEEN 1 AND 2)
|
|---|
| 93 | ;
|
|---|
| 94 |
|
|---|
| 95 | ALTER TABLE Course_Edition
|
|---|
| 96 | ADD CONSTRAINT Course_Edition_PK PRIMARY KEY ( academic_year, Course_code, semester ) ;
|
|---|
| 97 |
|
|---|
| 98 | CREATE 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 |
|
|---|
| 108 | ALTER TABLE Course_Enrollment
|
|---|
| 109 | ADD CONSTRAINT Course_Enrollment_PK PRIMARY KEY ( Course_Enrollment_ID ) ;
|
|---|
| 110 |
|
|---|
| 111 | CREATE TABLE COURSE_EQUIVALENCE
|
|---|
| 112 | (
|
|---|
| 113 | Course_code VARCHAR2 (10 BYTE) NOT NULL ,
|
|---|
| 114 | Course_code1 VARCHAR2 (10 BYTE) NOT NULL
|
|---|
| 115 | )
|
|---|
| 116 | ;
|
|---|
| 117 |
|
|---|
| 118 | ALTER TABLE COURSE_EQUIVALENCE
|
|---|
| 119 | ADD CONSTRAINT COURSE_EQUIVALENCE_PK PRIMARY KEY ( Course_code, Course_code1 ) ;
|
|---|
| 120 |
|
|---|
| 121 | CREATE 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 |
|
|---|
| 130 | ALTER TABLE COURSE_PREREQUISITE
|
|---|
| 131 | ADD
|
|---|
| 132 | CHECK (course_code <> prerequisite_code)
|
|---|
| 133 | ;
|
|---|
| 134 |
|
|---|
| 135 | ALTER TABLE COURSE_PREREQUISITE
|
|---|
| 136 | ADD
|
|---|
| 137 | CHECK (course_code <> prerequisite_code)
|
|---|
| 138 | ;
|
|---|
| 139 |
|
|---|
| 140 | ALTER TABLE COURSE_PREREQUISITE
|
|---|
| 141 | ADD CONSTRAINT COURSE_PREREQUISITE_PK PRIMARY KEY ( Course_code, Course_code1 ) ;
|
|---|
| 142 |
|
|---|
| 143 | CREATE 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 |
|
|---|
| 152 | ALTER TABLE Curriculum
|
|---|
| 153 | ADD
|
|---|
| 154 | CHECK (semester BETWEEN 1 AND 8)
|
|---|
| 155 | ;
|
|---|
| 156 |
|
|---|
| 157 | ALTER TABLE Curriculum
|
|---|
| 158 | ADD CONSTRAINT Curriculum_PK PRIMARY KEY ( Academic_Program_code, Course_code ) ;
|
|---|
| 159 |
|
|---|
| 160 | CREATE 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 |
|
|---|
| 171 | ALTER TABLE Exam
|
|---|
| 172 | ADD
|
|---|
| 173 | CHECK (duration_minutes > 0)
|
|---|
| 174 | ;
|
|---|
| 175 |
|
|---|
| 176 | ALTER TABLE Exam
|
|---|
| 177 | ADD CONSTRAINT Exam_PK PRIMARY KEY ( id ) ;
|
|---|
| 178 |
|
|---|
| 179 | CREATE 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 |
|
|---|
| 191 | ALTER TABLE Exam_Attempt
|
|---|
| 192 | ADD
|
|---|
| 193 | CHECK (attempt_number > 0)
|
|---|
| 194 | ;
|
|---|
| 195 |
|
|---|
| 196 | ALTER TABLE Exam_Attempt
|
|---|
| 197 | ADD
|
|---|
| 198 | CHECK (total_points >= 0)
|
|---|
| 199 | ;
|
|---|
| 200 |
|
|---|
| 201 | ALTER TABLE Exam_Attempt
|
|---|
| 202 | ADD CONSTRAINT Exam_Attempt_PK PRIMARY KEY ( id ) ;
|
|---|
| 203 |
|
|---|
| 204 | CREATE 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 |
|
|---|
| 214 | ALTER TABLE Exam_Problem
|
|---|
| 215 | ADD
|
|---|
| 216 | CHECK (points > 0)
|
|---|
| 217 | ;
|
|---|
| 218 |
|
|---|
| 219 | ALTER TABLE Exam_Problem
|
|---|
| 220 | ADD CONSTRAINT Exam_Problem_PK PRIMARY KEY ( pid, Exam_id ) ;
|
|---|
| 221 |
|
|---|
| 222 | CREATE 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 |
|
|---|
| 231 | ALTER TABLE Exam_Results
|
|---|
| 232 | ADD CONSTRAINT Exam_Results_PK PRIMARY KEY ( Exam_id ) ;
|
|---|
| 233 |
|
|---|
| 234 | CREATE 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 |
|
|---|
| 249 | ALTER TABLE Exercise
|
|---|
| 250 | ADD
|
|---|
| 251 | CHECK (max_grade > 0)
|
|---|
| 252 | ;
|
|---|
| 253 |
|
|---|
| 254 | ALTER TABLE Exercise
|
|---|
| 255 | ADD CONSTRAINT Exercise_PK PRIMARY KEY ( id ) ;
|
|---|
| 256 |
|
|---|
| 257 | CREATE 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 |
|
|---|
| 270 | ALTER TABLE Exercise_Submission
|
|---|
| 271 | ADD
|
|---|
| 272 | CHECK (grade BETWEEN 1 AND 10)
|
|---|
| 273 | ;
|
|---|
| 274 |
|
|---|
| 275 | ALTER TABLE Exercise_Submission
|
|---|
| 276 | ADD CONSTRAINT Exercise_Submission_PK PRIMARY KEY ( id ) ;
|
|---|
| 277 |
|
|---|
| 278 | CREATE 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 |
|
|---|
| 290 | ALTER TABLE Lecture
|
|---|
| 291 | ADD CONSTRAINT Lecture_PK PRIMARY KEY ( id ) ;
|
|---|
| 292 |
|
|---|
| 293 | CREATE 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 |
|
|---|
| 306 | ALTER TABLE Member
|
|---|
| 307 | ADD CONSTRAINT Member_PK PRIMARY KEY ( id ) ;
|
|---|
| 308 |
|
|---|
| 309 | CREATE 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 |
|
|---|
| 318 | ALTER TABLE MEMBER_MESSAGE
|
|---|
| 319 | ADD CONSTRAINT MEMBER_MESSAGE_PK PRIMARY KEY ( Member_id, Member_id1 ) ;
|
|---|
| 320 |
|
|---|
| 321 | CREATE 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 |
|
|---|
| 330 | ALTER TABLE Program_Enrollment
|
|---|
| 331 | ADD CONSTRAINT Program_Enrollment_PK PRIMARY KEY ( Student_id, Academic_Program_code, date_enrollment ) ;
|
|---|
| 332 |
|
|---|
| 333 | CREATE TABLE REPLIES_TO
|
|---|
| 334 | (
|
|---|
| 335 | Announcement_id INTEGER NOT NULL ,
|
|---|
| 336 | Announcement_id1 INTEGER NOT NULL
|
|---|
| 337 | )
|
|---|
| 338 | ;
|
|---|
| 339 |
|
|---|
| 340 | ALTER TABLE REPLIES_TO
|
|---|
| 341 | ADD CONSTRAINT REPLIES_TO_PK PRIMARY KEY ( Announcement_id, Announcement_id1 ) ;
|
|---|
| 342 |
|
|---|
| 343 | CREATE 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 |
|
|---|
| 358 | ALTER TABLE Semester_Enrollment
|
|---|
| 359 | ADD
|
|---|
| 360 | CHECK (academic_year >= 2000)
|
|---|
| 361 | ;
|
|---|
| 362 |
|
|---|
| 363 | ALTER TABLE Semester_Enrollment
|
|---|
| 364 | ADD
|
|---|
| 365 | CHECK (semester BETWEEN 1 AND 2)
|
|---|
| 366 | ;
|
|---|
| 367 |
|
|---|
| 368 | COMMENT ON COLUMN Semester_Enrollment.prev_hash IS 'The SCRAM-SHA-256 hash of the previous enrollment record for the same student.'
|
|---|
| 369 | ;
|
|---|
| 370 |
|
|---|
| 371 | COMMENT ON COLUMN Semester_Enrollment.current_hash IS 'The SCRAM-SHA-256 hash of the concatenation of the row’s data + prev_hash.'
|
|---|
| 372 | ;
|
|---|
| 373 |
|
|---|
| 374 | ALTER TABLE Semester_Enrollment
|
|---|
| 375 | ADD CONSTRAINT Semester_Enrollment_PK PRIMARY KEY ( id ) ;
|
|---|
| 376 |
|
|---|
| 377 | CREATE 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 |
|
|---|
| 385 | ALTER TABLE Student
|
|---|
| 386 | ADD CONSTRAINT Student_PK PRIMARY KEY ( id ) ;
|
|---|
| 387 |
|
|---|
| 388 | CREATE 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 |
|
|---|
| 398 | ALTER TABLE Student_Answer
|
|---|
| 399 | ADD
|
|---|
| 400 | CHECK (points_acquired >= 0)
|
|---|
| 401 | ;
|
|---|
| 402 |
|
|---|
| 403 | ALTER TABLE Student_Answer
|
|---|
| 404 | ADD CONSTRAINT Student_Answer_PK PRIMARY KEY ( Exam_Problem_pid, Exam_Problem_exam_id, Exam_Attempt_id ) ;
|
|---|
| 405 |
|
|---|
| 406 | CREATE 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 |
|
|---|
| 417 | CREATE 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 |
|
|---|
| 428 | ALTER TABLE Survey
|
|---|
| 429 | ADD CONSTRAINT Survey_PK PRIMARY KEY ( id ) ;
|
|---|
| 430 |
|
|---|
| 431 | CREATE TABLE Survey_Option
|
|---|
| 432 | (
|
|---|
| 433 | Survey_id INTEGER NOT NULL ,
|
|---|
| 434 | "option" CLOB NOT NULL ,
|
|---|
| 435 | capacity INTEGER
|
|---|
| 436 | )
|
|---|
| 437 | ;
|
|---|
| 438 |
|
|---|
| 439 | ALTER TABLE Survey_Option
|
|---|
| 440 | ADD
|
|---|
| 441 | CHECK (capacity > 0)
|
|---|
| 442 | ;
|
|---|
| 443 |
|
|---|
| 444 | CREATE 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 |
|
|---|
| 454 | ALTER TABLE SURVEY_RESPONSE
|
|---|
| 455 | ADD CONSTRAINT SURVEY_RESPONSE_PK PRIMARY KEY ( Course_Enrollment_Course_Enrollment_ID, Survey_id ) ;
|
|---|
| 456 |
|
|---|
| 457 | CREATE TABLE Teacher
|
|---|
| 458 | (
|
|---|
| 459 | id INTEGER NOT NULL ,
|
|---|
| 460 | date_registration DATE DEFAULT CURRENT_DATE NOT NULL
|
|---|
| 461 | )
|
|---|
| 462 | ;
|
|---|
| 463 |
|
|---|
| 464 | ALTER TABLE Teacher
|
|---|
| 465 | ADD CONSTRAINT Teacher_PK PRIMARY KEY ( id ) ;
|
|---|
| 466 |
|
|---|
| 467 | CREATE 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 |
|
|---|
| 479 | ALTER TABLE Teaches
|
|---|
| 480 | ADD CONSTRAINT Teaches_PK PRIMARY KEY ( Teaches_ID ) ;
|
|---|
| 481 |
|
|---|
| 482 | CREATE TABLE Teaching_Assistant
|
|---|
| 483 | (
|
|---|
| 484 | Student_id INTEGER NOT NULL ,
|
|---|
| 485 | Teacher_id INTEGER NOT NULL
|
|---|
| 486 | )
|
|---|
| 487 | ;
|
|---|
| 488 |
|
|---|
| 489 | ALTER 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)
|
|---|
| 493 | ALTER 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 |
|
|---|
| 504 | ALTER 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 |
|
|---|
| 515 | ALTER 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)
|
|---|
| 527 | ALTER 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)
|
|---|
| 543 | ALTER 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 |
|
|---|
| 554 | ALTER 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 |
|
|---|
| 565 | ALTER 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 |
|
|---|
| 576 | ALTER 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)
|
|---|
| 588 | ALTER 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 |
|
|---|
| 599 | ALTER 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 |
|
|---|
| 610 | ALTER 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)
|
|---|
| 622 | ALTER 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 |
|
|---|
| 633 | ALTER 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 |
|
|---|
| 644 | ALTER 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 |
|
|---|
| 659 | ALTER 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 |
|
|---|
| 670 | ALTER 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 |
|
|---|
| 681 | ALTER 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 |
|
|---|
| 692 | ALTER 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)
|
|---|
| 708 | ALTER 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)
|
|---|
| 720 | ALTER 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 |
|
|---|
| 731 | ALTER 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 |
|
|---|
| 746 | ALTER 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 |
|
|---|
| 757 | ALTER 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)
|
|---|
| 769 | ALTER 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 |
|
|---|
| 780 | ALTER 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 |
|
|---|
| 791 | ALTER 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 |
|
|---|
| 802 | ALTER 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)
|
|---|
| 814 | ALTER 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 |
|
|---|
| 829 | ALTER 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 |
|
|---|
| 840 | ALTER 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)
|
|---|
| 854 | ALTER 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)
|
|---|
| 866 | ALTER 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 |
|
|---|
| 877 | ALTER TABLE Student
|
|---|
| 878 | ADD CONSTRAINT Student_Member_FK FOREIGN KEY
|
|---|
| 879 | (
|
|---|
| 880 | id
|
|---|
| 881 | )
|
|---|
| 882 | REFERENCES Member
|
|---|
| 883 | (
|
|---|
| 884 | id
|
|---|
| 885 | )
|
|---|
| 886 | ;
|
|---|
| 887 |
|
|---|
| 888 | ALTER 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 |
|
|---|
| 903 | ALTER 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)
|
|---|
| 915 | ALTER 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 |
|
|---|
| 926 | ALTER 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 |
|
|---|
| 937 | ALTER TABLE Teacher
|
|---|
| 938 | ADD CONSTRAINT Teacher_Member_FK FOREIGN KEY
|
|---|
| 939 | (
|
|---|
| 940 | id
|
|---|
| 941 | )
|
|---|
| 942 | REFERENCES Member
|
|---|
| 943 | (
|
|---|
| 944 | id
|
|---|
| 945 | )
|
|---|
| 946 | ;
|
|---|
| 947 |
|
|---|
| 948 | ALTER 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 |
|
|---|
| 963 | ALTER TABLE Teaches
|
|---|
| 964 | ADD CONSTRAINT Teaches_Teacher_FK FOREIGN KEY
|
|---|
| 965 | (
|
|---|
| 966 | Teacher_id
|
|---|
| 967 | )
|
|---|
| 968 | REFERENCES Teacher
|
|---|
| 969 | (
|
|---|
| 970 | id
|
|---|
| 971 | )
|
|---|
| 972 | ;
|
|---|
| 973 |
|
|---|
| 974 | ALTER 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 |
|
|---|
| 985 | ALTER 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 |
|
|---|
| 996 | CREATE OR REPLACE TRIGGER FKNTM_Aggregated_Course_Editio
|
|---|
| 997 | BEFORE UPDATE OF Teaches_Teaches_ID
|
|---|
| 998 | ON Aggregated_Course_Edition_Results
|
|---|
| 999 | BEGIN
|
|---|
| 1000 | raise_application_error(-20225,'Non Transferable FK constraint on table Aggregated_Course_Edition_Results is violated');
|
|---|
| 1001 | END;
|
|---|
| 1002 | /
|
|---|
| 1003 |
|
|---|
| 1004 | CREATE OR REPLACE TRIGGER FKNTM_Announcement
|
|---|
| 1005 | BEFORE UPDATE OF Teaches_Teaches_ID
|
|---|
| 1006 | ON Announcement
|
|---|
| 1007 | BEGIN
|
|---|
| 1008 | raise_application_error(-20225,'Non Transferable FK constraint on table Announcement is violated');
|
|---|
| 1009 | END;
|
|---|
| 1010 | /
|
|---|
| 1011 |
|
|---|
| 1012 | CREATE OR REPLACE TRIGGER FKNTM_Course_Edition
|
|---|
| 1013 | BEFORE UPDATE OF Course_code
|
|---|
| 1014 | ON Course_Edition
|
|---|
| 1015 | BEGIN
|
|---|
| 1016 | raise_application_error(-20225,'Non Transferable FK constraint on table Course_Edition is violated');
|
|---|
| 1017 | END;
|
|---|
| 1018 | /
|
|---|
| 1019 |
|
|---|
| 1020 | CREATE OR REPLACE TRIGGER FKNTM_Course_Enrollment
|
|---|
| 1021 | BEFORE UPDATE OF Course_Edition_academic_year, Course_Edition_course_code, Course_Edition_semester, Semester_Enrollment_id
|
|---|
| 1022 | ON Course_Enrollment
|
|---|
| 1023 | BEGIN
|
|---|
| 1024 | raise_application_error(-20225,'Non Transferable FK constraint on table Course_Enrollment is violated');
|
|---|
| 1025 | END;
|
|---|
| 1026 | /
|
|---|
| 1027 |
|
|---|
| 1028 | CREATE OR REPLACE TRIGGER FKNTM_Exam
|
|---|
| 1029 | BEFORE UPDATE OF Course_Edition_academic_year, Course_Edition_Course_code, Course_Edition_semester
|
|---|
| 1030 | ON Exam
|
|---|
| 1031 | BEGIN
|
|---|
| 1032 | raise_application_error(-20225,'Non Transferable FK constraint on table Exam is violated');
|
|---|
| 1033 | END;
|
|---|
| 1034 | /
|
|---|
| 1035 |
|
|---|
| 1036 | CREATE OR REPLACE TRIGGER FKNTM_Exam_Attempt
|
|---|
| 1037 | BEFORE UPDATE OF Course_Enrollment_Course_Enrollment_ID, Exam_id
|
|---|
| 1038 | ON Exam_Attempt
|
|---|
| 1039 | BEGIN
|
|---|
| 1040 | raise_application_error(-20225,'Non Transferable FK constraint on table Exam_Attempt is violated');
|
|---|
| 1041 | END;
|
|---|
| 1042 | /
|
|---|
| 1043 |
|
|---|
| 1044 | CREATE OR REPLACE TRIGGER FKNTM_Exam_Problem
|
|---|
| 1045 | BEFORE UPDATE OF Exam_id
|
|---|
| 1046 | ON Exam_Problem
|
|---|
| 1047 | BEGIN
|
|---|
| 1048 | raise_application_error(-20225,'Non Transferable FK constraint on table Exam_Problem is violated');
|
|---|
| 1049 | END;
|
|---|
| 1050 | /
|
|---|
| 1051 |
|
|---|
| 1052 | CREATE OR REPLACE TRIGGER FKNTM_Exam_Results
|
|---|
| 1053 | BEFORE UPDATE OF Exam_id, Teaches_Teaches_ID
|
|---|
| 1054 | ON Exam_Results
|
|---|
| 1055 | BEGIN
|
|---|
| 1056 | raise_application_error(-20225,'Non Transferable FK constraint on table Exam_Results is violated');
|
|---|
| 1057 | END;
|
|---|
| 1058 | /
|
|---|
| 1059 |
|
|---|
| 1060 | CREATE OR REPLACE TRIGGER FKNTM_Exercise_Submission
|
|---|
| 1061 | BEFORE UPDATE OF Course_Enrollment_Course_Enrollment_ID, Exercise_id
|
|---|
| 1062 | ON Exercise_Submission
|
|---|
| 1063 | BEGIN
|
|---|
| 1064 | raise_application_error(-20225,'Non Transferable FK constraint on table Exercise_Submission is violated');
|
|---|
| 1065 | END;
|
|---|
| 1066 | /
|
|---|
| 1067 |
|
|---|
| 1068 | CREATE OR REPLACE TRIGGER FKNTM_Lecture
|
|---|
| 1069 | BEFORE UPDATE OF Course_Edition_academic_year, Course_Edition_Course_code, Course_Edition_semester
|
|---|
| 1070 | ON Lecture
|
|---|
| 1071 | BEGIN
|
|---|
| 1072 | raise_application_error(-20225,'Non Transferable FK constraint on table Lecture is violated');
|
|---|
| 1073 | END;
|
|---|
| 1074 | /
|
|---|
| 1075 |
|
|---|
| 1076 | CREATE OR REPLACE TRIGGER FKNTM_Program_Enrollment
|
|---|
| 1077 | BEFORE UPDATE OF Academic_Program_code, Student_id
|
|---|
| 1078 | ON Program_Enrollment
|
|---|
| 1079 | BEGIN
|
|---|
| 1080 | raise_application_error(-20225,'Non Transferable FK constraint on table Program_Enrollment is violated');
|
|---|
| 1081 | END;
|
|---|
| 1082 | /
|
|---|
| 1083 |
|
|---|
| 1084 | CREATE OR REPLACE TRIGGER FKNTM_Semester_Enrollment
|
|---|
| 1085 | BEFORE UPDATE OF Program_Enrollment_id, Program_Enrollment_Academic_Program_code, Program_Enrollment_date_enrollment
|
|---|
| 1086 | ON Semester_Enrollment
|
|---|
| 1087 | BEGIN
|
|---|
| 1088 | raise_application_error(-20225,'Non Transferable FK constraint on table Semester_Enrollment is violated');
|
|---|
| 1089 | END;
|
|---|
| 1090 | /
|
|---|
| 1091 |
|
|---|
| 1092 | CREATE OR REPLACE TRIGGER FKNTM_Student_Grade
|
|---|
| 1093 | BEFORE UPDATE OF Aggregated_Course_Edition_Results_Aggregated_Course_Edition_Results_ID, Course_Enrollment_Course_Enrollment_ID
|
|---|
| 1094 | ON Student_Grade
|
|---|
| 1095 | BEGIN
|
|---|
| 1096 | raise_application_error(-20225,'Non Transferable FK constraint on table Student_Grade is violated');
|
|---|
| 1097 | END;
|
|---|
| 1098 | /
|
|---|
| 1099 |
|
|---|
| 1100 | CREATE OR REPLACE TRIGGER FKNTM_Survey
|
|---|
| 1101 | BEFORE UPDATE OF Course_Edition_academic_year, Course_Edition_Course_code, Course_Edition_semester
|
|---|
| 1102 | ON Survey
|
|---|
| 1103 | BEGIN
|
|---|
| 1104 | raise_application_error(-20225,'Non Transferable FK constraint on table Survey is violated');
|
|---|
| 1105 | END;
|
|---|
| 1106 | /
|
|---|
| 1107 |
|
|---|
| 1108 | CREATE OR REPLACE TRIGGER FKNTM_Survey_Option
|
|---|
| 1109 | BEFORE UPDATE OF Survey_id
|
|---|
| 1110 | ON Survey_Option
|
|---|
| 1111 | BEGIN
|
|---|
| 1112 | raise_application_error(-20225,'Non Transferable FK constraint on table Survey_Option is violated');
|
|---|
| 1113 | END;
|
|---|
| 1114 | /
|
|---|
| 1115 |
|
|---|
| 1116 | CREATE OR REPLACE TRIGGER FKNTM_Teaches
|
|---|
| 1117 | BEFORE UPDATE OF Course_Edition_academic_year, Course_Edition_course_code, Course_Edition_semester, Teacher_id
|
|---|
| 1118 | ON Teaches
|
|---|
| 1119 | BEGIN
|
|---|
| 1120 | raise_application_error(-20225,'Non Transferable FK constraint on table Teaches is violated');
|
|---|
| 1121 | END;
|
|---|
| 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 |
|
|---|
| 1128 | CREATE SEQUENCE Aggregated_Course_Edition_Resu
|
|---|
| 1129 | START WITH 1
|
|---|
| 1130 | NOCACHE
|
|---|
| 1131 | ORDER ;
|
|---|
| 1132 |
|
|---|
| 1133 | CREATE OR REPLACE TRIGGER Aggregated_Course_Edition_Resu
|
|---|
| 1134 | BEFORE INSERT ON Aggregated_Course_Edition_Results
|
|---|
| 1135 | FOR EACH ROW
|
|---|
| 1136 | WHEN (NEW.Aggregated_Course_Edition_Results_ID IS NULL)
|
|---|
| 1137 | BEGIN
|
|---|
| 1138 | :NEW.Aggregated_Course_Edition_Results_ID := Aggregated_Course_Edition_Resu.NEXTVAL;
|
|---|
| 1139 | END;
|
|---|
| 1140 | /
|
|---|
| 1141 |
|
|---|
| 1142 | CREATE SEQUENCE Course_Enrollment_Course_Enrol
|
|---|
| 1143 | START WITH 1
|
|---|
| 1144 | NOCACHE
|
|---|
| 1145 | ORDER ;
|
|---|
| 1146 |
|
|---|
| 1147 | CREATE OR REPLACE TRIGGER Course_Enrollment_Course_Enrol
|
|---|
| 1148 | BEFORE INSERT ON Course_Enrollment
|
|---|
| 1149 | FOR EACH ROW
|
|---|
| 1150 | WHEN (NEW.Course_Enrollment_ID IS NULL)
|
|---|
| 1151 | BEGIN
|
|---|
| 1152 | :NEW.Course_Enrollment_ID := Course_Enrollment_Course_Enrol.NEXTVAL;
|
|---|
| 1153 | END;
|
|---|
| 1154 | /
|
|---|
| 1155 |
|
|---|
| 1156 | CREATE SEQUENCE Teaches_Teaches_ID_SEQ
|
|---|
| 1157 | START WITH 1
|
|---|
| 1158 | NOCACHE
|
|---|
| 1159 | ORDER ;
|
|---|
| 1160 |
|
|---|
| 1161 | CREATE OR REPLACE TRIGGER Teaches_Teaches_ID_TRG
|
|---|
| 1162 | BEFORE INSERT ON Teaches
|
|---|
| 1163 | FOR EACH ROW
|
|---|
| 1164 | WHEN (NEW.Teaches_ID IS NULL)
|
|---|
| 1165 | BEGIN
|
|---|
| 1166 | :NEW.Teaches_ID := Teaches_Teaches_ID_SEQ.NEXTVAL;
|
|---|
| 1167 | END;
|
|---|
| 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
|
|---|