added Übungszettel 11

This commit is contained in:
2025-02-13 14:58:45 +01:00
parent 25bf599c6c
commit 66c3899154
16 changed files with 4976 additions and 2 deletions

View File

@@ -0,0 +1,120 @@
CREATE TABLE INSTRUCTOR
(INSTRUCTOR_ID NUMBER(8,0)
,SALUTATION VARCHAR2(5)
,FIRST_NAME VARCHAR2(25)
,LAST_NAME VARCHAR2(25)
,STREET_ADDRESS VARCHAR2(50)
,ZIP VARCHAR2(5)
,PHONE VARCHAR2(15)
,CREATED_BY VARCHAR2(30)
,CREATED_DATE DATE
,MODIFIED_BY VARCHAR2(30)
,MODIFIED_DATE DATE
);
CREATE TABLE GRADE
(STUDENT_ID NUMBER(8,0)
,SECTION_ID NUMBER(8,0)
,GRADE_TYPE_CODE CHAR(2)
,GRADE_CODE_OCCURRENCE NUMBER(38,0)
,NUMERIC_GRADE NUMBER(3,0) DEFAULT 0
,COMMENTS VARCHAR2(2000)
,CREATED_BY VARCHAR2(30)
,CREATED_DATE DATE
,MODIFIED_BY VARCHAR2(30)
,MODIFIED_DATE DATE
);
CREATE TABLE GRADE_TYPE
(GRADE_TYPE_CODE CHAR(2)
,DESCRIPTION VARCHAR2(50)
,CREATED_BY VARCHAR2(30)
,CREATED_DATE DATE
,MODIFIED_BY VARCHAR2(30)
,MODIFIED_DATE DATE
);
CREATE TABLE GRADE_CONVERSION
(LETTER_GRADE VARCHAR2(2)
,GRADE_POINT NUMBER(3,2) DEFAULT 0
,MAX_GRADE NUMBER(3,0)
,MIN_GRADE NUMBER(3,0)
,CREATED_BY VARCHAR2(30)
,CREATED_DATE DATE
,MODIFIED_BY VARCHAR2(30)
,MODIFIED_DATE DATE
);
CREATE TABLE GRADE_TYPE_WEIGHT
(SECTION_ID NUMBER(8,0)
,GRADE_TYPE_CODE CHAR(2)
,NUMBER_PER_SECTION NUMBER(3,0)
,PERCENT_OF_FINAL_GRADE NUMBER(3,0)
,DROP_LOWEST CHAR(1)
,CREATED_BY VARCHAR2(30)
,CREATED_DATE DATE
,MODIFIED_BY VARCHAR2(30)
,MODIFIED_DATE DATE
);
CREATE TABLE SECTION
(SECTION_ID NUMBER(8,0)
,COURSE_NO NUMBER(8,0)
,SECTION_NO NUMBER(3,0)
,START_DATE_TIME DATE
,LOCATION VARCHAR2(50)
,INSTRUCTOR_ID NUMBER(8,0)
,CAPACITY NUMBER(3,0)
,CREATED_BY VARCHAR2(30)
,CREATED_DATE DATE
,MODIFIED_BY VARCHAR2(30)
,MODIFIED_DATE DATE
);
CREATE TABLE COURSE
(COURSE_NO NUMBER(8,0)
,DESCRIPTION VARCHAR2(50)
,COST NUMBER(9,2)
,PREREQUISITE NUMBER(8,0)
,CREATED_BY VARCHAR2(30)
,CREATED_DATE DATE
,MODIFIED_BY VARCHAR2(30)
,MODIFIED_DATE DATE
);
CREATE TABLE ENROLLMENT
(STUDENT_ID NUMBER(8,0)
,SECTION_ID NUMBER(8,0)
,ENROLL_DATE DATE
,FINAL_GRADE NUMBER(3,0)
,CREATED_BY VARCHAR2(30)
,CREATED_DATE DATE
,MODIFIED_BY VARCHAR2(30)
,MODIFIED_DATE DATE
);
CREATE TABLE STUDENT
(STUDENT_ID NUMBER(8,0)
,SALUTATION VARCHAR2(5)
,FIRST_NAME VARCHAR2(25)
,LAST_NAME VARCHAR2(25)
,STREET_ADDRESS VARCHAR2(50)
,ZIP VARCHAR2(5)
,PHONE VARCHAR2(15)
,EMPLOYER VARCHAR2(50)
,REGISTRATION_DATE DATE
,CREATED_BY VARCHAR2(30)
,CREATED_DATE DATE
,MODIFIED_BY VARCHAR2(30)
,MODIFIED_DATE DATE
);
CREATE TABLE ZIPCODE
(ZIP VARCHAR2(5)
,CITY VARCHAR2(25)
,STATE VARCHAR2(2)
,CREATED_BY VARCHAR2(30)
,CREATED_DATE DATE
,MODIFIED_BY VARCHAR2(30)
,MODIFIED_DATE DATE
);

View File

@@ -0,0 +1,24 @@
CREATE INDEX INST_ZIP_FK_I ON INSTRUCTOR
(ZIP);
CREATE INDEX GR_GRTW_FK_I ON GRADE
(SECTION_ID
,GRADE_TYPE_CODE);
CREATE INDEX GRTW_GRTYP_FK_I ON GRADE_TYPE_WEIGHT
(GRADE_TYPE_CODE);
CREATE INDEX SECT_CRSE_FK_I ON SECTION
(COURSE_NO);
CREATE INDEX SECT_INST_FK_I ON SECTION
(INSTRUCTOR_ID);
CREATE INDEX CRSE_CRSE_FK_I ON COURSE
(PREREQUISITE);
CREATE INDEX ENR_SECT_FK_I ON ENROLLMENT
(SECTION_ID);
CREATE INDEX STU_ZIP_FK_I ON STUDENT
(ZIP);

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,101 @@
ALTER TABLE INSTRUCTOR
MODIFY(MODIFIED_BY CONSTRAINT INST_MODFIED_BY_NNULL NOT NULL)
MODIFY(INSTRUCTOR_ID CONSTRAINT INST_INSTRUCTOR_ID_NNULL NOT NULL)
MODIFY(CREATED_BY CONSTRAINT INST_CREATED_BY_NNULL NOT NULL)
MODIFY(CREATED_DATE CONSTRAINT INST_CREATED_DATE_NNULL NOT NULL)
MODIFY(MODIFIED_DATE CONSTRAINT INST_MODIFIED_DATE_NNULL NOT NULL)
;
ALTER TABLE GRADE
MODIFY(CREATED_DATE CONSTRAINT GR_CREATED_DATE_NNULL NOT NULL)
MODIFY(STUDENT_ID CONSTRAINT GR_STUDENT_ID_NNULL NOT NULL)
MODIFY(SECTION_ID CONSTRAINT GR_SECTION_ID_NNULL NOT NULL)
MODIFY(GRADE_TYPE_CODE CONSTRAINT GR_GRADE_TYPE_CODE_NNULL NOT NULL)
MODIFY(MODIFIED_DATE CONSTRAINT GR_MODIFIED_DATE_NNULL NOT NULL)
MODIFY(CREATED_BY CONSTRAINT GR_CREATED_BY_NNULL NOT NULL)
MODIFY(GRADE_CODE_OCCURRENCE CONSTRAINT GR_GRADE_CODE_OCCURRENCE_NNULL NOT NULL)
MODIFY(MODIFIED_BY CONSTRAINT GR_MODIFIED_BY_NNULL NOT NULL)
MODIFY(NUMERIC_GRADE CONSTRAINT GR_NUMERIC_GRADE_NNULL NOT NULL)
;
ALTER TABLE GRADE_TYPE
MODIFY(DESCRIPTION CONSTRAINT GRTYP_DESCRIPTION_NNULL NOT NULL)
MODIFY(MODIFIED_BY CONSTRAINT GRTYP_MODIFIED_BY_NNULL NOT NULL)
MODIFY(CREATED_BY CONSTRAINT GRTYP_CREATED_BY_NNULL NOT NULL)
MODIFY(GRADE_TYPE_CODE CONSTRAINT GRTYP_GRADE_TYPE_CODE_NNULL NOT NULL)
MODIFY(MODIFIED_DATE CONSTRAINT GRTYP_MODIFIED_DATE_NNULL NOT NULL)
MODIFY(CREATED_DATE CONSTRAINT GRTYP_CREATED_DATE_NNULL NOT NULL)
ADD CONSTRAINT GRTYP_GRADE_TYPE_CODE_LENGTH CHECK (LENGTH(grade_type_code)=2)
;
ALTER TABLE GRADE_CONVERSION
MODIFY(MAX_GRADE CONSTRAINT GRCON_MAX_GRADE_NNULL NOT NULL)
MODIFY(MODIFIED_DATE CONSTRAINT GRCON_MODIFIED_DATE_NNULL NOT NULL)
MODIFY(CREATED_DATE CONSTRAINT GRCON_CREATED_DATE_NNULL NOT NULL)
MODIFY(GRADE_POINT CONSTRAINT GRCON_GRADE_POINT_NNULL NOT NULL)
MODIFY(MODIFIED_BY CONSTRAINT GRCON_MODIFIED_BY_NNULL NOT NULL)
MODIFY(LETTER_GRADE CONSTRAINT GRCON_LETTER_GRADE_NNULL NOT NULL)
MODIFY(MIN_GRADE CONSTRAINT GRCON_MIN_GRADE_NNULL NOT NULL)
MODIFY(CREATED_BY CONSTRAINT GRCON_CREATED_BY_NNULL NOT NULL)
;
ALTER TABLE GRADE_TYPE_WEIGHT
MODIFY(NUMBER_PER_SECTION CONSTRAINT GRTW_NUMBER_PER_SECTION_NNULL NOT NULL)
MODIFY(CREATED_DATE CONSTRAINT GRTW_CREATED_DATE_NNULL NOT NULL)
MODIFY(PERCENT_OF_FINAL_GRADE CONSTRAINT GRTW_PCT_OF_FINAL_GRADE_NNULL NOT NULL)
MODIFY(GRADE_TYPE_CODE CONSTRAINT GRTW_GRADE_TYPE_CODE_NNULL NOT NULL)
MODIFY(SECTION_ID CONSTRAINT GRTW_SECTION_ID_NNULL NOT NULL)
MODIFY(MODIFIED_BY CONSTRAINT GRTW_MODIFIED_BY_NNULL NOT NULL)
MODIFY(CREATED_BY CONSTRAINT GRTW_CREATED_BY_NNULL NOT NULL)
MODIFY(DROP_LOWEST CONSTRAINT GRTW_DROP_LOWEST_NNULL NOT NULL)
MODIFY(MODIFIED_DATE CONSTRAINT GRTW_MODIFIED_DATE_NNULL NOT NULL)
;
ALTER TABLE SECTION
MODIFY(CREATED_DATE CONSTRAINT SECT_CREATED_DATE_NNULL NOT NULL)
MODIFY(MODIFIED_BY CONSTRAINT SECT_MODIFIED_BY_NNULL NOT NULL)
MODIFY(SECTION_ID CONSTRAINT SECT_SECTION_ID_NNULL NOT NULL)
MODIFY(SECTION_NO CONSTRAINT SECT_SECTION_NO_NNULL NOT NULL)
MODIFY(CREATED_BY CONSTRAINT SECT_CREATED_BY_NNULL NOT NULL)
MODIFY(INSTRUCTOR_ID CONSTRAINT SECT_INSTRUCTOR_ID_NNULL NOT NULL)
MODIFY(MODIFIED_DATE CONSTRAINT SECT_MODIFIED_DATE_NNULL NOT NULL)
MODIFY(COURSE_NO CONSTRAINT SECT_COURSE_NO_NNULL NOT NULL)
;
ALTER TABLE COURSE
MODIFY(CREATED_DATE CONSTRAINT CRSE_CREATED_DATE_NNULL NOT NULL)
MODIFY(MODIFIED_BY CONSTRAINT CRSE_MODIFIED_BY_NNULL NOT NULL)
MODIFY(MODIFIED_DATE CONSTRAINT CRSE_MODIFIED_DATE_NNULL NOT NULL)
MODIFY(DESCRIPTION CONSTRAINT CRSE_DESCRIPTION_NNULL NOT NULL)
MODIFY(COURSE_NO CONSTRAINT CRSE_COURSE_NO_NNULL NOT NULL)
MODIFY(CREATED_BY CONSTRAINT CRSE_CREATED_BY_NNULL NOT NULL)
;
ALTER TABLE ENROLLMENT
MODIFY(MODIFIED_DATE CONSTRAINT ENR_MODIFIED_DATE_NNULL NOT NULL)
MODIFY(STUDENT_ID CONSTRAINT ENR_STUDENT_ID_NNULL NOT NULL)
MODIFY(ENROLL_DATE CONSTRAINT ENR_ENROLL_DATE_NNULL NOT NULL)
MODIFY(MODIFIED_BY CONSTRAINT ENR_MODIFIED_BY_NNULL NOT NULL)
MODIFY(SECTION_ID CONSTRAINT ENR_SECTION_ID_NNULL NOT NULL)
MODIFY(CREATED_BY CONSTRAINT ENR_CREATED_BY_NNULL NOT NULL)
MODIFY(CREATED_DATE CONSTRAINT ENR_CREATED_DATE_NNULL NOT NULL)
;
ALTER TABLE STUDENT
MODIFY(REGISTRATION_DATE CONSTRAINT STU_REGISTRATION_DATE_NNULL NOT NULL)
MODIFY(CREATED_BY CONSTRAINT STU_CREATED_BY_NNULL NOT NULL)
MODIFY(ZIP CONSTRAINT STU_ZIP_NNULL NOT NULL)
MODIFY(LAST_NAME CONSTRAINT STU_LAST_NAME_NNULL NOT NULL)
MODIFY(MODIFIED_DATE CONSTRAINT STU_MODIFIED_DATE_NNULL NOT NULL)
MODIFY(STUDENT_ID CONSTRAINT STU_STUDENT_ID_NNULL NOT NULL)
MODIFY(MODIFIED_BY CONSTRAINT STU_MODIFIED_BY_NNULL NOT NULL)
MODIFY(CREATED_DATE CONSTRAINT STU_CREATED_DATE_NNULL NOT NULL)
;
ALTER TABLE ZIPCODE
MODIFY(CREATED_BY CONSTRAINT ZIP_CREATED_BY_NNULL NOT NULL)
MODIFY(MODIFIED_DATE CONSTRAINT ZIP_MODIFIED_DATE_NNULL NOT NULL)
MODIFY(CREATED_DATE CONSTRAINT ZIP_CREATED_DATE_NNULL NOT NULL)
MODIFY(ZIP CONSTRAINT ZIP_ZIP_NNULL NOT NULL)
MODIFY(MODIFIED_BY CONSTRAINT ZIP_MODIFIED_BY_NNULL NOT NULL)
;

View File

@@ -0,0 +1,118 @@
ALTER TABLE INSTRUCTOR
ADD CONSTRAINT INST_PK PRIMARY KEY
(INSTRUCTOR_ID)
;
ALTER TABLE GRADE
ADD CONSTRAINT GR_PK PRIMARY KEY
(STUDENT_ID
,SECTION_ID
,GRADE_TYPE_CODE
,GRADE_CODE_OCCURRENCE)
;
ALTER TABLE GRADE_TYPE
ADD CONSTRAINT GRTYP_PK PRIMARY KEY
(GRADE_TYPE_CODE)
;
ALTER TABLE GRADE_CONVERSION
ADD CONSTRAINT GRCON_PK PRIMARY KEY
(LETTER_GRADE)
;
ALTER TABLE GRADE_TYPE_WEIGHT
ADD CONSTRAINT GRTW_PK PRIMARY KEY
(SECTION_ID
,GRADE_TYPE_CODE)
;
ALTER TABLE SECTION
ADD CONSTRAINT SECT_PK PRIMARY KEY
(SECTION_ID)
;
ALTER TABLE COURSE
ADD CONSTRAINT CRSE_PK PRIMARY KEY
(COURSE_NO)
;
ALTER TABLE ENROLLMENT
ADD CONSTRAINT ENR_PK PRIMARY KEY
(STUDENT_ID
,SECTION_ID)
;
ALTER TABLE STUDENT
ADD CONSTRAINT STU_PK PRIMARY KEY
(STUDENT_ID)
;
ALTER TABLE ZIPCODE
ADD CONSTRAINT ZIP_PK PRIMARY KEY
(ZIP)
;
ALTER TABLE SECTION
ADD ( CONSTRAINT SECT_SECT2_UK UNIQUE
(SECTION_NO
,COURSE_NO))
;
ALTER TABLE INSTRUCTOR ADD CONSTRAINT
INST_ZIP_FK FOREIGN KEY
(ZIP) REFERENCES ZIPCODE
(ZIP)
;
ALTER TABLE GRADE ADD CONSTRAINT
GR_ENR_FK FOREIGN KEY
(STUDENT_ID
,SECTION_ID) REFERENCES ENROLLMENT
(STUDENT_ID
,SECTION_ID) ADD CONSTRAINT
GR_GRTW_FK FOREIGN KEY
(SECTION_ID
,GRADE_TYPE_CODE) REFERENCES GRADE_TYPE_WEIGHT
(SECTION_ID
,GRADE_TYPE_CODE)
;
ALTER TABLE GRADE_TYPE_WEIGHT ADD CONSTRAINT
GRTW_GRTYP_FK FOREIGN KEY
(GRADE_TYPE_CODE) REFERENCES GRADE_TYPE
(GRADE_TYPE_CODE) ADD CONSTRAINT
GRTW_SECT_FK FOREIGN KEY
(SECTION_ID) REFERENCES SECTION
(SECTION_ID)
;
ALTER TABLE SECTION ADD CONSTRAINT
SECT_INST_FK FOREIGN KEY
(INSTRUCTOR_ID) REFERENCES INSTRUCTOR
(INSTRUCTOR_ID) ADD CONSTRAINT
SECT_CRSE_FK FOREIGN KEY
(COURSE_NO) REFERENCES COURSE
(COURSE_NO)
;
ALTER TABLE COURSE ADD CONSTRAINT
CRSE_CRSE_FK FOREIGN KEY
(PREREQUISITE) REFERENCES COURSE
(COURSE_NO)
;
ALTER TABLE ENROLLMENT ADD CONSTRAINT
ENR_STU_FK FOREIGN KEY
(STUDENT_ID) REFERENCES STUDENT
(STUDENT_ID) ADD CONSTRAINT
ENR_SECT_FK FOREIGN KEY
(SECTION_ID) REFERENCES SECTION
(SECTION_ID)
;
ALTER TABLE STUDENT ADD CONSTRAINT
STU_ZIP_FK FOREIGN KEY
(ZIP) REFERENCES ZIPCODE
(ZIP)
;

View File

@@ -0,0 +1,35 @@
CREATE SEQUENCE INSTRUCTOR_ID_SEQ
INCREMENT BY 1
START WITH 112
NOMAXVALUE
MINVALUE 1
NOCYCLE
NOCACHE
;
CREATE SEQUENCE SECTION_ID_SEQ
INCREMENT BY 1
START WITH 158
NOMAXVALUE
MINVALUE 1
NOCYCLE
NOCACHE
;
CREATE SEQUENCE STUDENT_ID_SEQ
INCREMENT BY 1
START WITH 401
NOMAXVALUE
MINVALUE 1
NOCYCLE
NOCACHE
;
CREATE SEQUENCE COURSE_NO_SEQ
INCREMENT BY 1
START WITH 452
NOMAXVALUE
MINVALUE 1
NOCYCLE
NOCACHE
;

View File

@@ -0,0 +1,15 @@
DROP TABLE COURSE CASCADE CONSTRAINTS;
DROP TABLE ENROLLMENT CASCADE CONSTRAINTS;
DROP TABLE GRADE CASCADE CONSTRAINTS;
DROP TABLE GRADE_CONVERSION CASCADE CONSTRAINTS;
DROP TABLE GRADE_TYPE CASCADE CONSTRAINTS;
DROP TABLE GRADE_TYPE_WEIGHT CASCADE CONSTRAINTS;
DROP TABLE INSTRUCTOR CASCADE CONSTRAINTS;
DROP TABLE SECTION CASCADE CONSTRAINTS;
DROP TABLE STUDENT CASCADE CONSTRAINTS;
DROP TABLE ZIPCODE CASCADE CONSTRAINTS;
DROP SEQUENCE COURSE_NO_SEQ;
DROP SEQUENCE INSTRUCTOR_ID_SEQ;
DROP SEQUENCE SECTION_ID_SEQ;
DROP SEQUENCE STUDENT_ID_SEQ;

View File

@@ -0,0 +1,30 @@
SELECT 'Count of COURSE Table:', COUNT(*)
FROM course
GROUP BY 'Count of COURSE Table:';
SELECT 'Count of ENROLLMENT Table:', COUNT(*)
FROM enrollment
GROUP BY 'Count of ENROLLMENT Table:';
SELECT 'Count of GRADE Table:', COUNT(*)
FROM GRADE
GROUP BY 'Count of GRADE Table:';
SELECT 'Count of GRADE_CONVERSION Table:', COUNT(*)
FROM GRADE_CONVERSION
GROUP BY 'Count of GRADE_CONVERSION Table:';
SELECT 'Count of GRADE_TYPE Table:', COUNT(*)
FROM GRADE_TYPE
GROUP BY 'Count of GRADE_TYPE Table:';
SELECT 'Count of GRADE_TYPE_WEIGHT Table:', COUNT(*)
FROM GRADE_TYPE_WEIGHT
GROUP BY 'Count of GRADE_TYPE Table:';
SELECT 'Count of INSTRUCTOR Table:', COUNT(*)
FROM INSTRUCTOR
GROUP BY 'Count of INSTRUCTOR Table:';
SELECT 'Count of SECTION Table:', COUNT(*)
FROM SECTION
GROUP BY 'Count of SECTION Table:';
SELECT 'Count of STUDENT Table:', COUNT(*)
FROM STUDENT
GROUP BY 'Count of STUDENT Table:';
SELECT 'Count of ZIPCODE Table:', COUNT(*)
FROM ZIPCODE
GROUP BY 'Count of ZIPCODE Table:';