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

aus GlossarWiki, der Glossar-Datenbank der Fachhochschule Augsburg
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 1: Zeile 1:
=Datenmodell (UML)=
=Datenbankschema=
=Datenbankschema (SQL)=
<source lang="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)
  );
</source>
=Beispiels-Daten=
<source lang="sql">
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)
;
</source>
=Quellen=
=Quellen=



Version vom 2. Januar 2010, 18:56 Uhr

Datenmodell (UML)

Datenbankschema

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.