-- ============================================================

--   Database name:  DATENMODELL_BANK                          

--   DBMS name:      ORACLE Version 8                          

--   Created on:     14.11.00  16:17                           

-- ============================================================



drop table FAKTEN_GUV cascade constraints

/



drop table FAKTEN_KUNDENGESCHAEFT cascade constraints

/



drop table PRODUKT cascade constraints

/



drop table ORGANISATION cascade constraints

/



drop table ZEIT cascade constraints

/



drop table KOSTEN_ERTRAGS_ART cascade constraints

/



drop table KUNDENART cascade constraints

/



drop table PRODUKTKLASSE cascade constraints

/



drop table VERBUNDPARTNER cascade constraints

/



-- ============================================================

--   Table: VERBUNDPARTNER                                     

-- ============================================================

create table VERBUNDPARTNER

(

    BEZEICHNUNG_PARTNER        VARCHAR2(80)           not null,

    constraint PK_VERBUNDPARTNER primary key (BEZEICHNUNG_PARTNER)

)

/



-- ============================================================

--   Table: PRODUKTKLASSE                                      

-- ============================================================

create table PRODUKTKLASSE

(

    KENNZEICHEN_PRODUKTGRUPPE  NUMBER(4)              not null,

    BEZEICHNUNG_PRODUKTGRUPPE  VARCHAR2(80)           not null,

    BEZEICHNUNG_PRODUKTKLASSE  VARCHAR2(80)           not null,

    BILANZAUSWEIS              CHAR(6)                not null

        constraint CKC_BILANZAUSWEIS_PRODUKTK check (BILANZAUSWEIS in ('keiner','aktiv','passiv')),

    VERZINSUNGSART             VARCHAR2(15)           not null,

    constraint PK_PRODUKTKLASSE primary key (KENNZEICHEN_PRODUKTGRUPPE)

)

/



-- ============================================================

--   Table: KUNDENART                                          

-- ============================================================

create table KUNDENART

(

    KUNDENART_ID               INTEGER                not null,

    KUNDENKLASSE               VARCHAR2(60)           not null,

    KUNDENGRUPPE               VARCHAR2(60)           not null,

    constraint PK_KUNDENART primary key (KUNDENART_ID)

)

/



-- ============================================================

--   Table: KOSTEN_ERTRAGS_ART                                 

-- ============================================================

create table KOSTEN_ERTRAGS_ART

(

    KOSTENART                  INTEGER                not null,

    KOSTENGRUPPE               VARCHAR2(60)           null    ,

    KOSTENKLASSE               VARCHAR2(60)           null    ,

    KNZ_KOSTEN_ERTRAG          SMALLINT               null    ,

    constraint PK_KOSTEN_ERTRAGS_ART primary key (KOSTENART)

)

/



-- ============================================================

--   Table: ZEIT                                               

-- ============================================================

create table ZEIT

(

    TAG                        DATE                   not null,

    WOCHE                      NUMBER(6)              not null,

    QUARTAL                    NUMBER(5)              not null,

    JAHR                       NUMBER(4)              not null,

    constraint PK_ZEIT primary key (TAG)

)

/



-- ============================================================

--   Table: ORGANISATION                                       

-- ============================================================

create table ORGANISATION

(

    BERATERSCHLUESSEL          INTEGER                not null,

    NAME_BERATER               VARCHAR2(80)           not null,

    GESCHAEFTSSTELLE           VARCHAR2(80)           not null,

    BEREICH                    VARCHAR2(80)           not null,

    DIREKTION                  VARCHAR2(80)           not null,

    GROESSENKLASSE             VARCHAR2(80)           not null,

    constraint PK_ORGANISATION primary key (BERATERSCHLUESSEL)

)

/



-- ============================================================

--   Table: PRODUKT                                            

-- ============================================================

create table PRODUKT

(

    PRODUKT_ID                 INTEGER                not null,

    KENNZEICHEN_PRODUKTGRUPPE  NUMBER(4)              not null,

    PRODUKTBEZEICHNUNG         VARCHAR2(80)           not null,

    LAUFZEIT                   INTEGER                null    ,

    FESTZINSLAUFZEIT           INTEGER                null    ,

    constraint PK_PRODUKT primary key (PRODUKT_ID)

)

/



-- ============================================================

--   Index: PRODKLASSE_PROD_FK                                 

-- ============================================================

create index PRODKLASSE_PROD_FK on PRODUKT (KENNZEICHEN_PRODUKTGRUPPE asc)

/



-- ============================================================

--   Table: FAKTEN_KUNDENGESCHAEFT                             

-- ============================================================

create table FAKTEN_KUNDENGESCHAEFT

(

    KUNDENART_ID               INTEGER                not null,

    BEZEICHNUNG_PARTNER        VARCHAR2(80)           not null,

    PRODUKT_ID                 INTEGER                not null,

    BERATERSCHLUESSEL          INTEGER                not null,

    TAG                        DATE                   not null,

    KONTONUMMER                NUMBER(10)             not null

        constraint CKC_KONTONUMMER_FAKTEN_K check (KONTONUMMER >= 0),

    SALDO                      NUMBER(15,2)           not null,

    KALK_VOL_AKTIV             NUMBER(15,2)           null    

        constraint CKC_KALK_VOL_AKTIV_FAKTEN_K check (KALK_VOL_AKTIV is null or (KALK_VOL_AKTIV >= 0

            )),

    KUNDENZINSSATZ_AKTIV       NUMBER(10,5)           null    ,

    ZINSSATZ_EFFEKTIV_AKTIV    NUMBER(10,5)           null    ,

    ZINSBETRAG_AKTIV           NUMBER(15,2)           null    

        constraint CKC_ZINSBETRAG_AKTIV_FAKTEN_K check (ZINSBETRAG_AKTIV is null or (ZINSBETRAG_AKTIV >= 0

            )),

    KALK_VOL_PASSIV            NUMBER(15,2)           null    

        constraint CKC_KALK_VOL_PASSIV_FAKTEN_K check (KALK_VOL_PASSIV is null or (KALK_VOL_PASSIV >= 0

            )),

    KUNDENZINSSATZ_PASSIV      NUMBER(10,5)           null    ,

    ZINSSATZ_EFFEKTIV_PASSIV   NUMBER(10,5)           null    ,

    ZINSBETRAG_PASSIV          NUMBER(15,2)           null    

        constraint CKC_ZINSBETRAG_PASSIV_FAKTEN_K check (ZINSBETRAG_PASSIV is null or (ZINSBETRAG_PASSIV >= 0

            )),

    AGIO                       NUMBER(15,2)           null    

        constraint CKC_AGIO_FAKTEN_K check (AGIO is null or (AGIO >= 0

            )),

    DISAGIO                    NUMBER(15,2)           null    ,

    TILGUNGSBETRAG             NUMBER(15,2)           null    ,

    LAUFZEITBEGINN             DATE                   not null,

    LAUFZEITENDE               DATE                   null    ,

    PROVISIONSERGEBNIS         NUMBER(15,2)           not null,

    BETRIEBSKOSTEN             NUMBER(15,2)           null    

        constraint CKC_BETRIEBSKOSTEN_FAKTEN_K check (BETRIEBSKOSTEN is null or (BETRIEBSKOSTEN >= 0

            )),

    KREDITLIMIT                NUMBER(15,2)           null    ,

    OFFENE_ZUSAGEN             NUMBER(15,2)           null    ,

    BARWERT                    NUMBER(15,2)           null    

        constraint CKC_BARWERT_FAKTEN_K check (BARWERT is null or (BARWERT >= 0

            )),

    UMSAETZE                   NUMBER(15,2)           null    

        constraint CKC_UMSAETZE_FAKTEN_K check (UMSAETZE is null or (UMSAETZE >= 0

            )),

    KUNDENNAME                 VARCHAR2(80)           not null,

    BONITAET                   NUMBER(3)              not null,

    PLZ                        NUMBER(5)              null    ,

    ORT                        VARCHAR2(80)           null    ,

    STRASSE                    VARCHAR2(80)           null    ,

    KUNDENTYP                  SMALLINT               not null,

    BRANCHE                    VARCHAR2(80)           null    ,

    RECHTSFORM                 VARCHAR2(80)           null    ,

    ALTER_JAHRE                NUMBER(3)              null    ,

    SGF                        VARCHAR2(80)           null    ,

    constraint PK_FAKTEN_KUNDENGESCHAEFT primary key (KUNDENART_ID, BEZEICHNUNG_PARTNER, PRODUKT_ID, BERATERSCHLUESSEL, TAG, KONTONUMMER)

)

/



-- ============================================================

--   Index: TAG_KUNDENGESCHAEFT_FK                             

-- ============================================================

create index TAG_KUNDENGESCHAEFT_FK on FAKTEN_KUNDENGESCHAEFT (TAG asc)

/



-- ============================================================

--   Index: OE_KUNDENGESCHAEFT_FK                              

-- ============================================================

create index OE_KUNDENGESCHAEFT_FK on FAKTEN_KUNDENGESCHAEFT (BERATERSCHLUESSEL asc)

/



-- ============================================================

--   Index: PRODUKT_KUNDENGESCHAEFT_FK                         

-- ============================================================

create index PRODUKT_KUNDENGESCHAEFT_FK on FAKTEN_KUNDENGESCHAEFT (PRODUKT_ID asc)

/



-- ============================================================

--   Index: PARTNER_KUNDENGESCHAEFT_FK                         

-- ============================================================

create index PARTNER_KUNDENGESCHAEFT_FK on FAKTEN_KUNDENGESCHAEFT (BEZEICHNUNG_PARTNER asc)

/



-- ============================================================

--   Index: KUNDENART_KUNDENGESCHAEFT_FK                       

-- ============================================================

create index KUNDENART_KUNDENGESCHAEFT_FK on FAKTEN_KUNDENGESCHAEFT (KUNDENART_ID asc)

/



-- ============================================================

--   Table: FAKTEN_GUV                                         

-- ============================================================

create table FAKTEN_GUV

(

    KOSTENART                  INTEGER                not null,

    KUNDENART_ID               INTEGER                not null,

    BEZEICHNUNG_PARTNER        VARCHAR2(80)           not null,

    PRODUKT_ID                 INTEGER                not null,

    BERATERSCHLUESSEL          INTEGER                not null,

    TAG                        DATE                   not null,

    BETRAG                     NUMBER(15,2)           not null

        constraint CKC_BETRAG_FAKTEN_G check (BETRAG >= 0),

    constraint PK_FAKTEN_GUV primary key (KOSTENART, KUNDENART_ID, BEZEICHNUNG_PARTNER, PRODUKT_ID, BERATERSCHLUESSEL, TAG)

)

/



-- ============================================================

--   Index: ERTRAGSART_GUV_FK                                  

-- ============================================================

create index ERTRAGSART_GUV_FK on FAKTEN_GUV (KOSTENART asc)

/



-- ============================================================

--   Index: TAG_GUV_FK                                         

-- ============================================================

create index TAG_GUV_FK on FAKTEN_GUV (TAG asc)

/



-- ============================================================

--   Index: PARTNER_GUV_FK                                     

-- ============================================================

create index PARTNER_GUV_FK on FAKTEN_GUV (BEZEICHNUNG_PARTNER asc)

/



-- ============================================================

--   Index: RELATION_586_FK                                    

-- ============================================================

create index RELATION_586_FK on FAKTEN_GUV (BERATERSCHLUESSEL asc)

/



-- ============================================================

--   Index: PRODUKT_GUV_FK                                     

-- ============================================================

create index PRODUKT_GUV_FK on FAKTEN_GUV (PRODUKT_ID asc)

/



-- ============================================================

--   Index: KUNDENART_GUV_FK                                   

-- ============================================================

create index KUNDENART_GUV_FK on FAKTEN_GUV (KUNDENART_ID asc)

/



alter table PRODUKT

    add constraint FK_PRODUKT_PRODKLASS_PRODUKTK foreign key  (KENNZEICHEN_PRODUKTGRUPPE)

       references PRODUKTKLASSE (KENNZEICHEN_PRODUKTGRUPPE)

/



alter table FAKTEN_KUNDENGESCHAEFT

    add constraint FK_FAKTEN_K_TAG_KUNDE_ZEIT foreign key  (TAG)

       references ZEIT (TAG)

/



alter table FAKTEN_KUNDENGESCHAEFT

    add constraint FK_FAKTEN_K_OE_KUNDEN_ORGANISA foreign key  (BERATERSCHLUESSEL)

       references ORGANISATION (BERATERSCHLUESSEL)

/



alter table FAKTEN_KUNDENGESCHAEFT

    add constraint FK_FAKTEN_K_PRODUKT_K_PRODUKT foreign key  (PRODUKT_ID)

       references PRODUKT (PRODUKT_ID)

/



alter table FAKTEN_KUNDENGESCHAEFT

    add constraint FK_FAKTEN_K_PARTNER_K_VERBUNDP foreign key  (BEZEICHNUNG_PARTNER)

       references VERBUNDPARTNER (BEZEICHNUNG_PARTNER)

/



alter table FAKTEN_KUNDENGESCHAEFT

    add constraint FK_FAKTEN_K_KUNDENART_KUNDENAR foreign key  (KUNDENART_ID)

       references KUNDENART (KUNDENART_ID)

/



alter table FAKTEN_GUV

    add constraint FK_FAKTEN_G_ERTRAGSAR_KOSTEN_E foreign key  (KOSTENART)

       references KOSTEN_ERTRAGS_ART (KOSTENART)

/



alter table FAKTEN_GUV

    add constraint FK_FAKTEN_G_TAG_GUV_ZEIT foreign key  (TAG)

       references ZEIT (TAG)

/



alter table FAKTEN_GUV

    add constraint FK_FAKTEN_G_PARTNER_G_VERBUNDP foreign key  (BEZEICHNUNG_PARTNER)

       references VERBUNDPARTNER (BEZEICHNUNG_PARTNER)

/



alter table FAKTEN_GUV

    add constraint FK_FAKTEN_G_RELATION__ORGANISA foreign key  (BERATERSCHLUESSEL)

       references ORGANISATION (BERATERSCHLUESSEL)

/



alter table FAKTEN_GUV

    add constraint FK_FAKTEN_G_PRODUKT_G_PRODUKT foreign key  (PRODUKT_ID)

       references PRODUKT (PRODUKT_ID)

/



alter table FAKTEN_GUV

    add constraint FK_FAKTEN_G_KUNDENART_KUNDENAR foreign key  (KUNDENART_ID)

       references KUNDENART (KUNDENART_ID)

/



