Händler-Datenbank (SQL-Beispiel): Unterschied zwischen den Versionen

aus GlossarWiki, der Glossar-Datenbank der Fachhochschule Augsburg
Kowa (Diskussion | Beiträge)
Kowa (Diskussion | Beiträge)
Zeile 4: Zeile 4:


=Datenbankschema=
=Datenbankschema=
<code>
  haendler:  <u>hnr</u>, name, adresse     
              UNIQUE: name, adresse
  ware:      <u>wnr</u>, typ, bezeichnung   
              UNIQUE: typ, bezeichnung
  liefert:  <u>hnr</u>, <u>wnr</u>, <u>preis</u>, lieferzeit*
              FOREIGN KEY (hnr) REFERENCES handler(hnr)
              FOREIGN KEY (wnr) REFERENCES ware(wnr)
</code>
=Datenbankschema (SQL)=
=Datenbankschema (SQL)=



Version vom 2. Januar 2010, 17:05 Uhr

Datenmodell (UML)

Medium:Haendler_1.png

Datenbankschema

 haendler:  hnr, name, adresse       
              UNIQUE: name, adresse
 ware:      wnr, typ, bezeichnung    
              UNIQUE: typ, bezeichnung
 liefert:   hnr, wnr, preis, lieferzeit* 
              FOREIGN KEY (hnr) REFERENCES handler(hnr)
              FOREIGN KEY (wnr) REFERENCES ware(wnr)

Datenbankschema (SQL)

DROP TABLE IF EXISTS liefert  CASCADE;
DROP TABLE IF EXISTS ware     CASCADE;
DROP TABLE IF EXISTS haendler CASCADE;

DROP TABLE IF EXISTS dummy    CASCADE;


CREATE TABLE haendler
  (hnr       INTEGER     NOT NULL,
   name      VARCHAR(20) NOT NULL,
   adresse   VARCHAR(20),

   CONSTRAINT pk_haendler
     PRIMARY KEY (hnr),

   CONSTRAINT unique_name_address
     UNIQUE (name, adresse)
  );

CREATE TABLE ware
  (wnr          INTEGER     NOT NULL,
   typ          VARCHAR(20) NOT NULL DEFAULT 'Sonstiges',
   bezeichnung  VARCHAR(20) NOT NULL,

   CONSTRAINT pk_ware
     PRIMARY KEY (wnr),

   CONSTRAINT unique_typ_bezeichnung
     UNIQUE (typ, bezeichnung)
  );
                
CREATE TABLE liefert
  (hnr         INTEGER       NOT NULL,
   wnr         INTEGER       NOT NULL,
   preis       NUMERIC(6,2)  NOT NULL,
   lieferzeit  SMALLINT      CHECK (lieferzeit >= 0), /* Tage */

   CONSTRAINT pk_liefert
     PRIMARY KEY (hnr,wnr,preis),

   CONSTRAINT fk_liefert_haendler
     FOREIGN KEY (hnr) REFERENCES haendler (hnr),

   CONSTRAINT fk_liefert_ware
     FOREIGN KEY (wnr) REFERENCES ware (wnr)
  );

Beispiels-Daten

INSERT INTO haendler(hnr, name, adresse)
VALUES 
  (1, 'Maier',   'Königsbrunn'),
  (2, 'Müller',  'Königsbrunn'),
  (3, 'Maier',   'Augsburg'),
  (4, 'Huber',   NULL),
  (5, 'Schmidt', 'Hamburg')
;

INSERT INTO ware(wnr, typ, bezeichnung)
VALUES
  (1, 'CPU',       'Pentium IV 3,8'),
  (2, 'CPU',       'Celeron 2,6'),
  (3, 'CPU',       'Athlon XP 3000+'),
  (4, 'Sonstiges', 'Eieruhr')
;

INSERT INTO liefert(hnr, wnr, preis, lieferzeit)
VALUES
  (1, 1, 200.00, 1),
  (1, 2, 100.00, NULL),
  (1, 3, 150.00, 7),
  (2, 3, 150.00, 4),
  (1, 4,  10.00, 1),
  (2, 1, 160.00, 1),
  (2, 2, 180.00, NULL),
  (3, 1, 160.00, 4),
  (3, 2, 190.00, 1),
  (4, 1, 150.00, 3),
  (4, 3, 180.00, 5),
  (4, 3, 199.99, 1)
;

Quellen


Dieser Artikel ist GlossarWiki-konform.