/*********************************************************************/
/*  Datenbank-Praktikum                                              */
/*                                                                   */
/*  Datenbank Beispiel 1                                             */
/*                                                                   */
/*  Version 5.1                                                      */
/*                                                                   */
/*  Tabelle entfernen                                                */
/*  (Reihenfolge wegen Fremdschluessel beachten)                     */
/*********************************************************************/
DROP TABLE liefert;
DROP TABLE Artikel;
DROP TABLE Lieferant;
/*********************************************************************/
/*	                                                             */
/*  Tabellen erstellen                                               */
/*  (Reihenfolge wegen Frendschluessel beachten)                     */
/*********************************************************************/
CREATE TABLE Lieferant
(
  LNR           DECIMAL(2)    CONSTRAINT  Lieferant_PK    PRIMARY KEY,
  Name          VARCHAR(20)   NOT NULL,
  Ort           VARCHAR(20)   NOT NULL,
  Status        DECIMAL(2)    CONSTRAINT  Status_Werte    CHECK (Status in (10,20,30))
);
CREATE TABLE Artikel 
( 
  ANR           CHAR(2)        CONSTRAINT  Artikel_PK      PRIMARY KEY,
  Bezeichnung   VARCHAR(20)    NOT NULL,
  Laenge        DECIMAL(3)     CONSTRAINT  Laenge_positiv  CHECK (Laenge > 0),
  Breite        DECIMAL(3),
  Material      VARCHAR(20)    NOT NULL,
  LNR           DECIMAL(2)     CONSTRAINT Artikel_Lieferant_FK REFERENCES Lieferant (LNR),
  CONSTRAINT    Breite_positiv CHECK (Breite > 0)
);
CREATE TABLE liefert
(
   LNR          DECIMAL(2)    CONSTRAINT  liefert_Lieferant_FK REFERENCES Lieferant (LNR),
   ANR          CHAR(2)       CONSTRAINT  liefert_Artikel_FK   REFERENCES Artikel,
   Mindestmenge DECIMAL(3)    CONSTRAINT  Mindestmenge_positiv CHECK (Mindestmenge > 0),
   Lieferzeit   DECIMAL(3)    CONSTRAINT  Lieferzeit_Positiv   CHECK (Lieferzeit >= 0),
   Preis        DECIMAL(5,2)  CONSTRAINT  Preis_Positiv        CHECK (Preis >= 0),
   CONSTRAINT   liefert_PK    PRIMARY KEY (LNR,ANR)
);
exit
