Händler-Datenbank (SQL-Beispiel): Unterschied zwischen den Versionen
aus GlossarWiki, der Glossar-Datenbank der Fachhochschule Augsburg
Kowa (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
Kowa (Diskussion | Beiträge) 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.