-- Generated by Oracle SQL Developer Data Modeler 22.2.0.165.1149 -- at: 2022-11-23 12:17:07 CET -- site: Oracle Database 11g -- type: Oracle Database 11g -- predefined type, no DDL - MDSYS.SDO_GEOMETRY -- predefined type, no DDL - XMLTYPE CREATE TABLE club ( id INTEGER NOT NULL, budget INTEGER, training_ground_quality INTEGER, reputation INTEGER, country_of_origin VARCHAR2(4000), competition_id INTEGER, manager_id INTEGER NOT NULL ); CREATE UNIQUE INDEX club__idx ON club ( manager_id ASC ); ALTER TABLE club ADD CONSTRAINT club_id_un UNIQUE ( id ); CREATE TABLE competition ( id INTEGER, prize INTEGER, country VARCHAR2(4000), reputation INTEGER ); ALTER TABLE competition ADD CONSTRAINT competition_id_un UNIQUE ( id ); CREATE TABLE manager ( id INTEGER, skill INTEGER, reputation INTEGER, age INTEGER, wage INTEGER, club_id INTEGER NOT NULL ); CREATE UNIQUE INDEX manager__idx ON manager ( club_id ASC ); ALTER TABLE manager ADD CONSTRAINT manager_id_un UNIQUE ( id ); CREATE TABLE match ( id INTEGER, score INTEGER, rating INTEGER, attendance INTEGER, weather VARCHAR2(4000), duration INTEGER, "date" DATE, referee_name VARCHAR2(4000), competition_id INTEGER NOT NULL ); ALTER TABLE match ADD CONSTRAINT match_id_un UNIQUE ( id ); CREATE TABLE player ( id INTEGER, skill INTEGER, position VARCHAR2(4000), reputation INTEGER, contract_status VARCHAR2(4000), injuries INTEGER, age INTEGER, wages INTEGER, transfer_value INTEGER, club_id INTEGER ); ALTER TABLE player ADD CONSTRAINT player_id_un UNIQUE ( id ); CREATE TABLE stadium ( id INTEGER NOT NULL, capacity INTEGER, reputation INTEGER, location VARCHAR2(4000), build_year INTEGER, value FLOAT, ticket_price FLOAT, club_id INTEGER NOT NULL ); CREATE UNIQUE INDEX stadium__idx ON stadium ( club_id ASC ); ALTER TABLE stadium ADD CONSTRAINT stadium_id_un UNIQUE ( id ); CREATE TABLE takes_part_in ( club_id INTEGER NOT NULL, match_id INTEGER NOT NULL ); ALTER TABLE takes_part_in ADD CONSTRAINT takes_part_in_pk PRIMARY KEY ( club_id, match_id ); CREATE TABLE takes_place_in ( stadium_id INTEGER NOT NULL, competition_id INTEGER NOT NULL ); ALTER TABLE takes_place_in ADD CONSTRAINT takes_place_in_pk PRIMARY KEY ( stadium_id, competition_id ); ALTER TABLE club ADD CONSTRAINT club_competition_fk FOREIGN KEY ( competition_id ) REFERENCES competition ( id ); ALTER TABLE club ADD CONSTRAINT club_manager_fk FOREIGN KEY ( manager_id ) REFERENCES manager ( id ); ALTER TABLE manager ADD CONSTRAINT manager_club_fk FOREIGN KEY ( club_id ) REFERENCES club ( id ); ALTER TABLE match ADD CONSTRAINT match_competition_fk FOREIGN KEY ( competition_id ) REFERENCES competition ( id ); ALTER TABLE player ADD CONSTRAINT player_club_fk FOREIGN KEY ( club_id ) REFERENCES club ( id ); ALTER TABLE stadium ADD CONSTRAINT stadium_club_fk FOREIGN KEY ( club_id ) REFERENCES club ( id ); ALTER TABLE takes_part_in ADD CONSTRAINT takes_part_in_club_fk FOREIGN KEY ( club_id ) REFERENCES club ( id ); ALTER TABLE takes_part_in ADD CONSTRAINT takes_part_in_match_fk FOREIGN KEY ( match_id ) REFERENCES match ( id ); ALTER TABLE takes_place_in ADD CONSTRAINT takes_place_in_competition_fk FOREIGN KEY ( competition_id ) REFERENCES competition ( id ); ALTER TABLE takes_place_in ADD CONSTRAINT takes_place_in_stadium_fk FOREIGN KEY ( stadium_id ) REFERENCES stadium ( id ); CREATE OR REPLACE TRIGGER fknto_club BEFORE UPDATE OF competition_id ON club FOR EACH ROW BEGIN IF :old.competition_id IS NOT NULL THEN raise_application_error(-20225, 'Non Transferable FK constraint CLUB_COMPETITION_FK on table CLUB is violated'); END IF; END; / CREATE OR REPLACE TRIGGER fknto_player BEFORE UPDATE OF club_id ON player FOR EACH ROW BEGIN IF :old.club_id IS NOT NULL THEN raise_application_error(-20225, 'Non Transferable FK constraint PLAYER_CLUB_FK on table PLAYER is violated'); END IF; END; / CREATE OR REPLACE TRIGGER fkntm_takes_part_in BEFORE UPDATE OF match_id ON takes_part_in BEGIN raise_application_error(-20225, 'Non Transferable FK constraint on table takes_part_in is violated'); END; / CREATE OR REPLACE TRIGGER fkntm_takes_place_in BEFORE UPDATE OF competition_id ON takes_place_in BEGIN raise_application_error(-20225, 'Non Transferable FK constraint on table takes_place_in is violated'); END; / -- Oracle SQL Developer Data Modeler Summary Report: -- -- CREATE TABLE 8 -- CREATE INDEX 3 -- ALTER TABLE 18 -- CREATE VIEW 0 -- ALTER VIEW 0 -- CREATE PACKAGE 0 -- CREATE PACKAGE BODY 0 -- CREATE PROCEDURE 0 -- CREATE FUNCTION 0 -- CREATE TRIGGER 4 -- ALTER TRIGGER 0 -- CREATE COLLECTION TYPE 0 -- CREATE STRUCTURED TYPE 0 -- CREATE STRUCTURED TYPE BODY 0 -- CREATE CLUSTER 0 -- CREATE CONTEXT 0 -- CREATE DATABASE 0 -- CREATE DIMENSION 0 -- CREATE DIRECTORY 0 -- CREATE DISK GROUP 0 -- CREATE ROLE 0 -- CREATE ROLLBACK SEGMENT 0 -- CREATE SEQUENCE 0 -- CREATE MATERIALIZED VIEW 0 -- CREATE MATERIALIZED VIEW LOG 0 -- CREATE SYNONYM 0 -- CREATE TABLESPACE 0 -- CREATE USER 0 -- -- DROP TABLESPACE 0 -- DROP DATABASE 0 -- -- REDACTION POLICY 0 -- -- ORDS DROP SCHEMA 0 -- ORDS ENABLE SCHEMA 0 -- ORDS ENABLE OBJECT 0 -- -- ERRORS 0 -- WARNINGS 0