text: CREATE TABLE ASSET (
  	-- Asset has Asset ID
  	ASSET_ID                                LONGINTEGER NOT NULL GENERATED BY DEFAULT ON NULL AS IDENTITY,
  	-- Primary index to Asset(Asset ID in "Asset has Asset ID")
  	PRIMARY KEY(ASSET_ID)
  );
  
  
  CREATE TABLE CLAIM (
  	-- Claim has Claim ID
  	CLAIM_ID                                LONGINTEGER NOT NULL GENERATED BY DEFAULT ON NULL AS IDENTITY,
  	-- Claim has p_sequence
  	P_SEQUENCE                              SHORTINTEGER NOT NULL CHECK((P_SEQUENCE >= 1 AND P_SEQUENCE <= 999)),
  	-- Claim is on Policy that was issued in p_year and Year has Year Nr
  	POLICY_P_YEAR_NR                        INTEGER NOT NULL,
  	-- Claim is on Policy that is for product having p_product and Product has Product Code
  	POLICY_P_PRODUCT_CODE                   SHORTINTEGER NOT NULL CHECK((POLICY_P_PRODUCT_CODE >= 1 AND POLICY_P_PRODUCT_CODE <= 99)),
  	-- Claim is on Policy that issued in state having p_state and State has State Code
  	POLICY_P_STATE_CODE                     SHORTINTEGER NOT NULL CHECK((POLICY_P_STATE_CODE >= 0 AND POLICY_P_STATE_CODE <= 9)),
  	-- Claim is on Policy that has p_serial
  	POLICY_P_SERIAL                         INTEGER NOT NULL,
  	-- maybe Claim concerns Incident that relates to loss at Address that is at Street
  	INCIDENT_ADDRESS_STREET                 VARCHAR(256) NULL,
  	-- maybe Claim concerns Incident that relates to loss at Address that is in City
  	INCIDENT_ADDRESS_CITY                   VARCHAR NULL,
  	-- maybe Claim concerns Incident that relates to loss at Address that maybe is in Postcode
  	INCIDENT_ADDRESS_POSTCODE               VARCHAR NULL,
  	-- maybe Claim concerns Incident that relates to loss at Address that maybe is in State that has State Code
  	INCIDENT_ADDRESS_STATE_CODE             SHORTINTEGER NULL,
  	-- maybe Claim concerns Incident that relates to loss on Date Time
  	INCIDENT_DATE_TIME                      DATETIME NULL,
  	-- maybe Claim concerns Incident that maybe is covered by Police Report that maybe was to officer-Name
  	INCIDENT_OFFICER_NAME                   VARCHAR(256) NULL,
  	-- maybe Claim concerns Incident that maybe is covered by Police Report that maybe has police-Report Nr
  	INCIDENT_POLICE_REPORT_NR               INTEGER NULL,
  	-- maybe Claim concerns Incident that maybe is covered by Police Report that maybe was on report-Date Time
  	INCIDENT_REPORT_DATE_TIME               DATETIME NULL,
  	-- maybe Claim concerns Incident that maybe is covered by Police Report that maybe was by reporter-Name
  	INCIDENT_REPORTER_NAME                  VARCHAR(256) NULL,
  	-- maybe Claim concerns Incident that maybe is covered by Police Report that maybe was at station-Name
  	INCIDENT_STATION_NAME                   VARCHAR(256) NULL,
  	-- maybe Lodgement involves Claim and Lodgement involves Person that is a kind of Party that has Party ID
  	LODGEMENT_PERSON_ID                     LONGINTEGER NULL,
  	-- maybe Lodgement involves Claim and maybe Lodgement was made at Date Time
  	LODGEMENT_DATE_TIME                     DATETIME NULL,
  	-- Primary index to Claim(Claim ID in "Claim has Claim ID")
  	PRIMARY KEY(CLAIM_ID),
  	-- Unique index to Claim(Policy, p_sequence in "Claim is on Policy", "Claim has Claim Sequence")
  	UNIQUE(P_SEQUENCE, POLICY_P_YEAR_NR, POLICY_P_PRODUCT_CODE, POLICY_P_STATE_CODE, POLICY_P_SERIAL)
  );
  
  
  CREATE TABLE CONTRACTOR_APPOINTMENT (
  	-- Contractor Appointment involves Claim that has Claim ID
  	CLAIM_ID                                LONGINTEGER NOT NULL,
  	-- Contractor Appointment involves Contractor that is a kind of Company that is a kind of Party that has Party ID
  	CONTRACTOR_ID                           LONGINTEGER NOT NULL,
  	-- Primary index to Contractor Appointment(Claim, Contractor in "Claim involves Contractor")
  	PRIMARY KEY(CLAIM_ID, CONTRACTOR_ID),
  	FOREIGN KEY (CLAIM_ID) REFERENCES CLAIM (CLAIM_ID)
  );
  
  
  CREATE TABLE COVER (
  	-- Cover involves Policy that was issued in p_year and Year has Year Nr
  	POLICY_P_YEAR_NR                        INTEGER NOT NULL,
  	-- Cover involves Policy that is for product having p_product and Product has Product Code
  	POLICY_P_PRODUCT_CODE                   SHORTINTEGER NOT NULL CHECK((POLICY_P_PRODUCT_CODE >= 1 AND POLICY_P_PRODUCT_CODE <= 99)),
  	-- Cover involves Policy that issued in state having p_state and State has State Code
  	POLICY_P_STATE_CODE                     SHORTINTEGER NOT NULL CHECK((POLICY_P_STATE_CODE >= 0 AND POLICY_P_STATE_CODE <= 9)),
  	-- Cover involves Policy that has p_serial
  	POLICY_P_SERIAL                         INTEGER NOT NULL,
  	-- Cover involves Cover Type that has Cover Type Code
  	COVER_TYPE_CODE                         VARCHAR NOT NULL,
  	-- Cover involves Asset that has Asset ID
  	ASSET_ID                                LONGINTEGER NOT NULL,
  	-- Primary index to Cover(Policy, Cover Type, Asset in "Policy provides Cover Type over Asset")
  	PRIMARY KEY(POLICY_P_YEAR_NR, POLICY_P_PRODUCT_CODE, POLICY_P_STATE_CODE, POLICY_P_SERIAL, COVER_TYPE_CODE, ASSET_ID),
  	FOREIGN KEY (ASSET_ID) REFERENCES ASSET (ASSET_ID)
  );
  
  
  CREATE TABLE COVER_TYPE (
  	-- Cover Type has Cover Type Code
  	COVER_TYPE_CODE                         VARCHAR NOT NULL,
  	-- Cover Type has Cover Type Name
  	COVER_TYPE_NAME                         VARCHAR NOT NULL,
  	-- Primary index to Cover Type(Cover Type Code in "Cover Type has Cover Type Code")
  	PRIMARY KEY(COVER_TYPE_CODE),
  	-- Unique index to Cover Type(Cover Type Name in "Cover Type has Cover Type Name")
  	UNIQUE(COVER_TYPE_NAME)
  );
  
  
  CREATE TABLE COVER_WORDING (
  	-- Cover Wording involves Cover Type that has Cover Type Code
  	COVER_TYPE_CODE                         VARCHAR NOT NULL,
  	-- Cover Wording involves Policy Wording that has Policy Wording Text
  	POLICY_WORDING_TEXT                     VARCHAR NOT NULL,
  	-- Cover Wording involves start-Date
  	START_DATE                              DATE NOT NULL,
  	-- Primary index to Cover Wording(Cover Type, Policy Wording, Start Date in "Cover Type used Policy Wording from start-Date")
  	PRIMARY KEY(COVER_TYPE_CODE, POLICY_WORDING_TEXT, START_DATE),
  	FOREIGN KEY (COVER_TYPE_CODE) REFERENCES COVER_TYPE (COVER_TYPE_CODE)
  );
  
  
  CREATE TABLE LOSS_TYPE (
  	-- Loss Type has Loss Type Code
  	LOSS_TYPE_CODE                          VARCHAR NOT NULL,
  	-- Loss Type Involves Driving
  	INVOLVES_DRIVING                        CHAR(1),
  	-- Loss Type Is Single Vehicle Incident
  	IS_SINGLE_VEHICLE_INCIDENT              CHAR(1),
  	-- maybe Loss Type implies Liability that has Liability Code
  	LIABILITY_CODE                          VARCHAR(1) NULL CHECK(LIABILITY_CODE = 'D' OR LIABILITY_CODE = 'L' OR LIABILITY_CODE = 'R' OR LIABILITY_CODE = 'U'),
  	-- Primary index to Loss Type(Loss Type Code in "Loss Type has Loss Type Code")
  	PRIMARY KEY(LOSS_TYPE_CODE)
  );
  
  
  CREATE TABLE LOST_ITEM (
  	-- Lost Item was lost in Incident that is of Claim that has Claim ID
  	INCIDENT_CLAIM_ID                       LONGINTEGER NOT NULL,
  	-- Lost Item has Lost Item Nr
  	LOST_ITEM_NR                            INTEGER NOT NULL,
  	-- Lost Item has Description
  	DESCRIPTION                             VARCHAR(1024) NOT NULL,
  	-- maybe Lost Item was purchased on purchase-Date
  	PURCHASE_DATE                           DATE NULL,
  	-- maybe Lost Item was purchased at purchase-Place
  	PURCHASE_PLACE                          VARCHAR NULL,
  	-- maybe Lost Item was purchased for purchase-Price
  	PURCHASE_PRICE                          DECIMAL(18, 2) NULL,
  	-- Primary index to Lost Item(Incident, Lost Item Nr in "Lost Item was lost in Incident", "Lost Item has Lost Item Nr")
  	PRIMARY KEY(INCIDENT_CLAIM_ID, LOST_ITEM_NR),
  	FOREIGN KEY (INCIDENT_CLAIM_ID) REFERENCES CLAIM (CLAIM_ID)
  );
  
  
  CREATE TABLE PARTY (
  	-- Party has Party ID
  	PARTY_ID                                LONGINTEGER NOT NULL GENERATED BY DEFAULT ON NULL AS IDENTITY,
  	-- Party Is A Company
  	IS_A_COMPANY                            CHAR(1),
  	-- maybe Party has postal-Address and Address is at Street
  	POSTAL_ADDRESS_STREET                   VARCHAR(256) NULL,
  	-- maybe Party has postal-Address and Address is in City
  	POSTAL_ADDRESS_CITY                     VARCHAR NULL,
  	-- maybe Party has postal-Address and maybe Address is in Postcode
  	POSTAL_ADDRESS_POSTCODE                 VARCHAR NULL,
  	-- maybe Party has postal-Address and maybe Address is in State that has State Code
  	POSTAL_ADDRESS_STATE_CODE               SHORTINTEGER NULL,
  	-- maybe Party is a Company that has contact-Person and Person is a kind of Party that has Party ID
  	COMPANY_CONTACT_PERSON_ID               LONGINTEGER NULL,
  	-- maybe Party is a Person that has Contact Methods that maybe includes business-Phone and Phone has Phone Nr
  	PERSON_BUSINESS_PHONE_NR                VARCHAR NULL,
  	-- maybe Party is a Person that has Contact Methods that maybe prefers contact-Time
  	PERSON_CONTACT_TIME                     TIME NULL,
  	-- maybe Party is a Person that has Contact Methods that maybe includes Email
  	PERSON_EMAIL                            VARCHAR NULL,
  	-- maybe Party is a Person that has Contact Methods that maybe includes home-Phone and Phone has Phone Nr
  	PERSON_HOME_PHONE_NR                    VARCHAR NULL,
  	-- maybe Party is a Person that has Contact Methods that maybe includes mobile-Phone and Phone has Phone Nr
  	PERSON_MOBILE_PHONE_NR                  VARCHAR NULL,
  	-- maybe Party is a Person that has Contact Methods that maybe has preferred-Contact Method
  	PERSON_PREFERRED_CONTACT_METHOD         VARCHAR(1) NULL CHECK(PERSON_PREFERRED_CONTACT_METHOD = 'B' OR PERSON_PREFERRED_CONTACT_METHOD = 'H' OR PERSON_PREFERRED_CONTACT_METHOD = 'M'),
  	-- maybe Party is a Person that has family-Name
  	PERSON_FAMILY_NAME                      VARCHAR(256) NULL,
  	-- maybe Party is a Person that has given-Name
  	PERSON_GIVEN_NAME                       VARCHAR(256) NULL,
  	-- maybe Party is a Person that has Title
  	PERSON_TITLE                            VARCHAR NULL,
  	-- maybe Party is a Person that maybe lives at Address that is at Street
  	PERSON_ADDRESS_STREET                   VARCHAR(256) NULL,
  	-- maybe Party is a Person that maybe lives at Address that is in City
  	PERSON_ADDRESS_CITY                     VARCHAR NULL,
  	-- maybe Party is a Person that maybe lives at Address that maybe is in Postcode
  	PERSON_ADDRESS_POSTCODE                 VARCHAR NULL,
  	-- maybe Party is a Person that maybe lives at Address that maybe is in State that has State Code
  	PERSON_ADDRESS_STATE_CODE               SHORTINTEGER NULL,
  	-- maybe Party is a Person that maybe has birth-Date
  	PERSON_BIRTH_DATE                       DATE NULL,
  	-- maybe Party is a Person that maybe holds License that Is International
  	PERSON_IS_INTERNATIONAL                 CHAR(1),
  	-- maybe Party is a Person that maybe holds License that has License Number
  	PERSON_LICENSE_NUMBER                   VARCHAR NULL,
  	-- maybe Party is a Person that maybe holds License that is of License Type
  	PERSON_LICENSE_TYPE                     VARCHAR NULL,
  	-- maybe Party is a Person that maybe holds License that maybe was granted in Year that has Year Nr
  	PERSON_YEAR_NR                          INTEGER NULL,
  	-- maybe Party is a Person that maybe has Occupation
  	PERSON_OCCUPATION                       VARCHAR NULL,
  	-- Primary index to Party(Party ID in "Party has Party ID")
  	PRIMARY KEY(PARTY_ID),
  	FOREIGN KEY (COMPANY_CONTACT_PERSON_ID) REFERENCES PARTY (PARTY_ID)
  );
  
  
  CREATE TABLE POLICY (
  	-- Policy was issued in p_year and Year has Year Nr
  	P_YEAR_NR                               INTEGER NOT NULL,
  	-- Policy is for product having p_product and Product has Product Code
  	P_PRODUCT_CODE                          SHORTINTEGER NOT NULL,
  	-- Policy issued in state having p_state and State has State Code
  	P_STATE_CODE                            SHORTINTEGER NOT NULL,
  	-- Policy has p_serial
  	P_SERIAL                                INTEGER NOT NULL CHECK((P_SERIAL >= 1 AND P_SERIAL <= 99999)),
  	-- Policy has Application that has Application Nr
  	APPLICATION_NR                          INTEGER NOT NULL,
  	-- Policy belongs to Insured that is a kind of Party that has Party ID
  	INSURED_ID                              LONGINTEGER NOT NULL,
  	-- maybe Policy was sold by Authorised Rep that is a kind of Party that has Party ID
  	AUTHORISED_REP_ID                       LONGINTEGER NULL,
  	-- maybe Policy has ITC Claimed
  	ITC_CLAIMED                             DECIMAL(18, 2) NULL CHECK((ITC_CLAIMED >= 0.0 AND ITC_CLAIMED <= 100.0)),
  	-- Primary index to Policy(p_year, p_product, p_state, p_serial in "Policy was issued in Year", "Policy is for product having Product", "Policy issued in state having State", "Policy has Policy Serial")
  	PRIMARY KEY(P_YEAR_NR, P_PRODUCT_CODE, P_STATE_CODE, P_SERIAL),
  	FOREIGN KEY (AUTHORISED_REP_ID) REFERENCES PARTY (PARTY_ID),
  	FOREIGN KEY (INSURED_ID) REFERENCES PARTY (PARTY_ID)
  );
  
  
  CREATE TABLE PRODUCT (
  	-- Product has Product Code
  	PRODUCT_CODE                            SHORTINTEGER NOT NULL CHECK((PRODUCT_CODE >= 1 AND PRODUCT_CODE <= 99)),
  	-- maybe Product has Alias
  	ALIAS                                   VARCHAR(3) NULL,
  	-- maybe Product has Description
  	DESCRIPTION                             VARCHAR(1024) NULL,
  	-- Primary index to Product(Product Code in "Product has Product Code")
  	PRIMARY KEY(PRODUCT_CODE),
  	-- Unique index to Product(Alias in "Alias is of Product")
  	UNIQUE(ALIAS),
  	-- Unique index to Product(Description in "Description is of Product")
  	UNIQUE(DESCRIPTION)
  );
  
  
  CREATE TABLE PROPERTY_DAMAGE (
  	-- maybe Property Damage was damaged in Incident that is of Claim that has Claim ID
  	INCIDENT_CLAIM_ID                       LONGINTEGER NULL,
  	-- Property Damage is at Address that is at Street
  	ADDRESS_STREET                          VARCHAR(256) NOT NULL,
  	-- Property Damage is at Address that is in City
  	ADDRESS_CITY                            VARCHAR NOT NULL,
  	-- Property Damage is at Address that maybe is in Postcode
  	ADDRESS_POSTCODE                        VARCHAR NULL,
  	-- Property Damage is at Address that maybe is in State that has State Code
  	ADDRESS_STATE_CODE                      SHORTINTEGER NULL,
  	-- maybe Property Damage belongs to owner-Name
  	OWNER_NAME                              VARCHAR(256) NULL,
  	-- maybe Property Damage owner has contact Phone that has Phone Nr
  	PHONE_NR                                VARCHAR NULL,
  	-- Primary index to Property Damage(Incident, Address in "Incident caused Property Damage", "Property Damage is at Address")
  	UNIQUE(INCIDENT_CLAIM_ID, ADDRESS_STREET, ADDRESS_CITY, ADDRESS_POSTCODE, ADDRESS_STATE_CODE),
  	FOREIGN KEY (INCIDENT_CLAIM_ID) REFERENCES CLAIM (CLAIM_ID)
  );
  
  
  CREATE TABLE STATE (
  	-- State has State Code
  	STATE_CODE                              SHORTINTEGER NOT NULL CHECK((STATE_CODE >= 0 AND STATE_CODE <= 9)),
  	-- maybe State has State Name
  	STATE_NAME                              VARCHAR(256) NULL,
  	-- Primary index to State(State Code in "State has State Code")
  	PRIMARY KEY(STATE_CODE),
  	-- Unique index to State(State Name in "State Name is of State")
  	UNIQUE(STATE_NAME)
  );
  
  
  CREATE TABLE THIRD_PARTY (
  	-- Third Party involves Person that is a kind of Party that has Party ID
  	PERSON_ID                               LONGINTEGER NOT NULL,
  	-- Third Party involves Vehicle Incident that is a kind of Incident that is of Claim that has Claim ID
  	VEHICLE_INCIDENT_CLAIM_ID               LONGINTEGER NOT NULL,
  	-- maybe Third Party is insured by Insurer that is a kind of Company that is a kind of Party that has Party ID
  	INSURER_ID                              LONGINTEGER NULL,
  	-- maybe Third Party vehicle is of model-Year and Year has Year Nr
  	MODEL_YEAR_NR                           INTEGER NULL,
  	-- maybe Third Party drove vehicle-Registration and Registration has Registration Nr
  	VEHICLE_REGISTRATION_NR                 VARCHAR(8) NULL,
  	-- maybe Third Party vehicle is of Vehicle Type that is of Make
  	VEHICLE_TYPE_MAKE                       VARCHAR NULL,
  	-- maybe Third Party vehicle is of Vehicle Type that is of Model
  	VEHICLE_TYPE_MODEL                      VARCHAR NULL,
  	-- maybe Third Party vehicle is of Vehicle Type that maybe has Badge
  	VEHICLE_TYPE_BADGE                      VARCHAR NULL,
  	-- Primary index to Third Party(Person, Vehicle Incident in "Person was third party in Vehicle Incident")
  	PRIMARY KEY(PERSON_ID, VEHICLE_INCIDENT_CLAIM_ID),
  	FOREIGN KEY (INSURER_ID) REFERENCES PARTY (PARTY_ID),
  	FOREIGN KEY (PERSON_ID) REFERENCES PARTY (PARTY_ID)
  );
  
  
  CREATE TABLE UNDERWRITING_DEMERIT (
  	-- Underwriting Demerit preceded Vehicle Incident that is a kind of Incident that is of Claim that has Claim ID
  	VEHICLE_INCIDENT_CLAIM_ID               LONGINTEGER NOT NULL,
  	-- Underwriting Demerit has Underwriting Question that has Underwriting Question ID
  	UNDERWRITING_QUESTION_ID                LONGINTEGER NOT NULL,
  	-- maybe Underwriting Demerit occurred occurrence-Count times
  	OCCURRENCE_COUNT                        INTEGER NULL,
  	-- Primary index to Underwriting Demerit(Vehicle Incident, Underwriting Question in "Vehicle Incident occurred despite Underwriting Demerit", "Underwriting Demerit has Underwriting Question")
  	PRIMARY KEY(VEHICLE_INCIDENT_CLAIM_ID, UNDERWRITING_QUESTION_ID)
  );
  
  
  CREATE TABLE UNDERWRITING_QUESTION (
  	-- Underwriting Question has Underwriting Question ID
  	UNDERWRITING_QUESTION_ID                LONGINTEGER NOT NULL GENERATED BY DEFAULT ON NULL AS IDENTITY,
  	-- Underwriting Question has Text
  	TEXT                                    VARCHAR NOT NULL,
  	-- Primary index to Underwriting Question(Underwriting Question ID in "Underwriting Question has Underwriting Question ID")
  	PRIMARY KEY(UNDERWRITING_QUESTION_ID),
  	-- Unique index to Underwriting Question(Text in "Text is of Underwriting Question")
  	UNIQUE(TEXT)
  );
  
  
  CREATE TABLE VEHICLE (
  	-- Vehicle is a kind of Asset that has Asset ID
  	ASSET_ID                                LONGINTEGER NOT NULL,
  	-- Vehicle has VIN
  	VIN                                     INTEGER NOT NULL,
  	-- Vehicle Has Commercial Registration
  	HAS_COMMERCIAL_REGISTRATION             CHAR(1),
  	-- Vehicle is of model-Year and Year has Year Nr
  	MODEL_YEAR_NR                           INTEGER NOT NULL,
  	-- Vehicle has Registration that has Registration Nr
  	REGISTRATION_NR                         VARCHAR(8) NOT NULL,
  	-- Vehicle is of Vehicle Type that is of Make
  	VEHICLE_TYPE_MAKE                       VARCHAR NOT NULL,
  	-- Vehicle is of Vehicle Type that is of Model
  	VEHICLE_TYPE_MODEL                      VARCHAR NOT NULL,
  	-- Vehicle is of Vehicle Type that maybe has Badge
  	VEHICLE_TYPE_BADGE                      VARCHAR NULL,
  	-- maybe Vehicle is of Colour
  	COLOUR                                  VARCHAR NULL,
  	-- maybe Vehicle was sold by Dealer that is a kind of Party that has Party ID
  	DEALER_ID                               LONGINTEGER NULL,
  	-- maybe Vehicle has Engine Number
  	ENGINE_NUMBER                           VARCHAR NULL,
  	-- maybe Vehicle is subject to finance with Finance Institution that is a kind of Company that is a kind of Party that has Party ID
  	FINANCE_INSTITUTION_ID                  LONGINTEGER NULL,
  	-- Primary index to Vehicle(VIN in "Vehicle has VIN")
  	PRIMARY KEY(VIN),
  	FOREIGN KEY (ASSET_ID) REFERENCES ASSET (ASSET_ID),
  	FOREIGN KEY (DEALER_ID) REFERENCES PARTY (PARTY_ID),
  	FOREIGN KEY (FINANCE_INSTITUTION_ID) REFERENCES PARTY (PARTY_ID)
  );
  
  
  CREATE TABLE VEHICLE_INCIDENT (
  	-- Vehicle Incident is a kind of Incident that is of Claim that has Claim ID
  	INCIDENT_CLAIM_ID                       LONGINTEGER NOT NULL,
  	-- Vehicle Incident Occurred While Being Driven
  	OCCURRED_WHILE_BEING_DRIVEN             CHAR(1),
  	-- maybe Vehicle Incident has Description
  	DESCRIPTION                             VARCHAR(1024) NULL,
  	-- maybe Driving involves Vehicle Incident and Driving was by Person that is a kind of Party that has Party ID
  	DRIVING_PERSON_ID                       LONGINTEGER NULL,
  	-- maybe Driving involves Vehicle Incident and maybe Driving resulted in breath-Test Result
  	DRIVING_BREATH_TEST_RESULT              VARCHAR NULL,
  	-- maybe Driving involves Vehicle Incident and maybe Driving Charge involves Driving that Is A Warning
  	DRIVING_IS_A_WARNING                    CHAR(1),
  	-- maybe Driving involves Vehicle Incident and maybe Driving Charge involves Driving and Driving Charge involves Charge
  	DRIVING_CHARGE                          VARCHAR NULL,
  	-- maybe Driving involves Vehicle Incident and maybe Hospitalization involves Driving and Hospitalization involves Hospital that has Hospital Name
  	DRIVING_HOSPITAL_NAME                   VARCHAR NULL,
  	-- maybe Driving involves Vehicle Incident and maybe Hospitalization involves Driving and maybe Hospitalization resulted in blood-Test Result
  	DRIVING_BLOOD_TEST_RESULT               VARCHAR NULL,
  	-- maybe Driving involves Vehicle Incident and maybe Driving followed Intoxication
  	DRIVING_INTOXICATION                    VARCHAR NULL,
  	-- maybe Driving involves Vehicle Incident and maybe Driving was without owners consent for nonconsent-Reason
  	DRIVING_NONCONSENT_REASON               VARCHAR NULL,
  	-- maybe Driving involves Vehicle Incident and maybe Driving was unlicenced for unlicensed-Reason
  	DRIVING_UNLICENSED_REASON               VARCHAR NULL,
  	-- maybe Vehicle Incident resulted from Loss Type that has Loss Type Code
  	LOSS_TYPE_CODE                          VARCHAR NULL,
  	-- maybe Vehicle Incident involved previous_damage-Description
  	PREVIOUS_DAMAGE_DESCRIPTION             VARCHAR(1024) NULL,
  	-- maybe Vehicle Incident was caused by Reason
  	REASON                                  VARCHAR NULL,
  	-- maybe Vehicle Incident resulted in vehicle being towed to towed-Location
  	TOWED_LOCATION                          VARCHAR NULL,
  	-- maybe Vehicle Incident occurred during weather-Description
  	WEATHER_DESCRIPTION                     VARCHAR(1024) NULL,
  	-- Primary index to Vehicle Incident(Incident in "Vehicle Incident is a kind of Incident")
  	PRIMARY KEY(INCIDENT_CLAIM_ID),
  	FOREIGN KEY (DRIVING_PERSON_ID) REFERENCES PARTY (PARTY_ID),
  	FOREIGN KEY (INCIDENT_CLAIM_ID) REFERENCES CLAIM (CLAIM_ID),
  	FOREIGN KEY (LOSS_TYPE_CODE) REFERENCES LOSS_TYPE (LOSS_TYPE_CODE)
  );
  
  
  CREATE TABLE WITNESS (
  	-- Witness saw Incident that is of Claim that has Claim ID
  	INCIDENT_CLAIM_ID                       LONGINTEGER NOT NULL,
  	-- Witness is called Name
  	NAME                                    VARCHAR(256) NOT NULL,
  	-- maybe Witness lives at Address that is at Street
  	ADDRESS_STREET                          VARCHAR(256) NULL,
  	-- maybe Witness lives at Address that is in City
  	ADDRESS_CITY                            VARCHAR NULL,
  	-- maybe Witness lives at Address that maybe is in Postcode
  	ADDRESS_POSTCODE                        VARCHAR NULL,
  	-- maybe Witness lives at Address that maybe is in State that has State Code
  	ADDRESS_STATE_CODE                      SHORTINTEGER NULL,
  	-- maybe Witness has contact-Phone and Phone has Phone Nr
  	CONTACT_PHONE_NR                        VARCHAR NULL,
  	-- Primary index to Witness(Incident, Name in "Incident was independently witnessed by Witness", "Witness is called Name")
  	PRIMARY KEY(INCIDENT_CLAIM_ID, NAME),
  	FOREIGN KEY (ADDRESS_STATE_CODE) REFERENCES STATE (STATE_CODE),
  	FOREIGN KEY (INCIDENT_CLAIM_ID) REFERENCES CLAIM (CLAIM_ID)
  );
  
  
  ALTER TABLE CLAIM
  	ADD FOREIGN KEY (INCIDENT_ADDRESS_STATE_CODE) REFERENCES STATE (STATE_CODE);
  
  ALTER TABLE CLAIM
  	ADD FOREIGN KEY (LODGEMENT_PERSON_ID) REFERENCES PARTY (PARTY_ID);
  
  ALTER TABLE CLAIM
  	ADD FOREIGN KEY (POLICY_P_YEAR_NR, POLICY_P_PRODUCT_CODE, POLICY_P_STATE_CODE, POLICY_P_SERIAL) REFERENCES POLICY (P_YEAR_NR, P_PRODUCT_CODE, P_STATE_CODE, P_SERIAL);
  
  ALTER TABLE CONTRACTOR_APPOINTMENT
  	ADD FOREIGN KEY (CONTRACTOR_ID) REFERENCES PARTY (PARTY_ID);
  
  ALTER TABLE COVER
  	ADD FOREIGN KEY (COVER_TYPE_CODE) REFERENCES COVER_TYPE (COVER_TYPE_CODE);
  
  ALTER TABLE COVER
  	ADD FOREIGN KEY (POLICY_P_YEAR_NR, POLICY_P_PRODUCT_CODE, POLICY_P_STATE_CODE, POLICY_P_SERIAL) REFERENCES POLICY (P_YEAR_NR, P_PRODUCT_CODE, P_STATE_CODE, P_SERIAL);
  
  ALTER TABLE PARTY
  	ADD FOREIGN KEY (PERSON_ADDRESS_STATE_CODE) REFERENCES STATE (STATE_CODE);
  
  ALTER TABLE PARTY
  	ADD FOREIGN KEY (POSTAL_ADDRESS_STATE_CODE) REFERENCES STATE (STATE_CODE);
  
  ALTER TABLE POLICY
  	ADD FOREIGN KEY (P_PRODUCT_CODE) REFERENCES PRODUCT (PRODUCT_CODE);
  
  ALTER TABLE POLICY
  	ADD FOREIGN KEY (P_STATE_CODE) REFERENCES STATE (STATE_CODE);
  
  ALTER TABLE PROPERTY_DAMAGE
  	ADD FOREIGN KEY (ADDRESS_STATE_CODE) REFERENCES STATE (STATE_CODE);
  
  ALTER TABLE THIRD_PARTY
  	ADD FOREIGN KEY (VEHICLE_INCIDENT_CLAIM_ID) REFERENCES VEHICLE_INCIDENT (INCIDENT_CLAIM_ID);
  
  ALTER TABLE UNDERWRITING_DEMERIT
  	ADD FOREIGN KEY (UNDERWRITING_QUESTION_ID) REFERENCES UNDERWRITING_QUESTION (UNDERWRITING_QUESTION_ID);
  
  ALTER TABLE UNDERWRITING_DEMERIT
  	ADD FOREIGN KEY (VEHICLE_INCIDENT_CLAIM_ID) REFERENCES VEHICLE_INCIDENT (INCIDENT_CLAIM_ID);
  