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