next up previous

4. Datenbankentwurf, Datendefinition Entwurfsaufgabe

  1. Anwendungsdaten sollen (effizient) aus gespeicherten Daten abgeleitet werden können
  2. nur vernünftige Anwendungsdaten sollen gespeichert werden können
  3. Anwendungsdaten sollen möglichst nicht redundant dargestellt werden

Grob: drei Entwurfsschritte

Genauer: Phasenmodell

Datenbankentwurf, Datendefinition Phasenmodell

Datenbankentwurf, Datendefinition Konzeptueller Entwurf, Sichtintegration

Datenbankentwurf, Datendefinition Abbildung des ER-Modells auf andere DB-Modelle

4.1 Abbildung ER-Modell -> Relationenmodell

Abbildung ER-Modell -> Relationenmodell Beispiel: ER-Diagramm Warenhaus im Relationenmodell (Schlüssel sind fett; ohne muß-Beziehungen)

Angestellter = { Name, Gehalt}

Abteilung = { Abtlgsnr, Abtlgsname}

Artikel = { Artnr, Artname}

Lieferant = { LName, LAdresse}

Auftrag = { Auftragsnr, Datum}

Kunde = { KName, KAdresse, Kontostand}

Chef = { Name}

leitet = { Name, Abtlgsnr}

arbeitet = { Name, Abtlgsnr}

führt = { Artnr, Abtlgsnr}

liefert = { LName, Artnr, Preis}

enthält = { Artnr, Auftragsnr, Menge}

bestellt = { Auftragsnr, KName}

Abbildung ER-Modell -> Relationenmodell Problemfälle ER-Modell -> Relationenmodell

nicht abbildbar

Abbildung ER-Modell -> Relationenmodell

Datendefinition im Relationenmodell:
mittels SQL-DDL (Teil von SQL; Normen: SQL-89, SQL-92, SQL3)

SQL als DDL:

SQL-89 mit IEF:
+ Definition von Schlüsseln
+ Definition von Fremdschlüsseln

SQL-92:
+ default-Klausel
+ create domain-Anweisung für benutzerdefinierte Wertebereiche
+ check-Klausel

Bsp.: domain Fachgebiet char(20) default 'Informatik'

create table Vorlesung
( Titel char(30) not null, primary key,
SWS integer check(SWS > o);
Studiengang Fachgebiet )

Abbildung ER-Modell -> Relationenmodell Beispiel: Datendefinition Warenhaus mittels SQL-DDL von Oracle

create table artikel (
artnr number(4) constraint art_pk primary key,
artname varchar2(40) );

create table kunde (
kname varchar2(20) constraint kunde_pk primary key,
kadresse varchar2(30),
kontostand number(6,2) );

create table auftrag (
auftragnr number(6) constraint auf_pk primary key,
datum date );

create table arbeitet (
angname varchar2(40),
abtlgnr number(2),
constraint arbeitet_fk1 foreign key (angname) references angestellter(angname),
constraint arbeitet_fk2 foreign key (abtlgnr)
references abteilung(abtlgnr) );

alter table chef
add constraint chef_primk primary key (angname);

4.2 Abbildung ER -> Netzwerkmodell

Abbildung ER -> Netzwerkmodell Beispiel: Warenhaus in Netzwerkmodell

Abbildung ER -> Netzwerkmodell Datendefinition im Netzwerkmodell:
z.B. in DBTG DDL

Record-Typen allgemein:

RECORD r
   1	Feldname1	Typ1
   1	Feldname2	Typ2
   1	Feldname3
        2   Feldname31	Typ31
        2   Feldname32	Typ32
   1	Feldname4	Typ4
   KEY   Feldname_i

Set-Typen allgemein:

DBTG SET s
        OWNER IS o
        MEMBER IS m

Abbildung ER -> Netzwerkmodell Datendefinition DBTG DDL Warenhaus:

RECORD Angestellter
   1	Name	CHAR(40)
   1	Gehalt	REAL
   KEY  	Name

RECORD Abteilung
   1	Abtlgsnr	INTEGER
   1	Abtlgsname	CHAR(25)
   KEY   	Abtlgsnr

...

RECORD Liefert
   1	Preis	REAL

RECORD Enthaelt
   1	Menge	INTEGER

DBTG SET arbeitet
        OWNER IS Abteilung
        MEMBER IS Angestellter

DBTG SET Leitet
        OWNER IS Abteilung
        MEMBER IS Angestellter

DBTG SET Lief_Artikel
        OWNER IS Artikel
        MEMBER IS Lieferant

DBTG SET Lief_Lief
        OWNER IS Lieferant
        MEMBER IS Liefert

...

Abbildung ER -> Netzwerkmodell Problemfälle ER -> Netzwerkmodell:

4.3 Abbildung ER -> Hierarchisches Modell

Beispiel Warenhaus: Wurzeln werdenAbteilung, Lieferant, Kunde
Hierarchisches Schema:

Abbildung ER -> Hierarchisches Modell Datendefinition im Hierarchischen Modell:
z.B. in IMS-DDL (hier nur angelehnt an IMS-DDL)

Baum mit Record-Typen allgemein:

TREE Baumname
	RECORD	r1	Liste_von_Record-Informationen
	RECORD	r2	Liste_von_Record-Informationen
	...

wobei Record-Informationen sind

Abbildung ER -> Hierarchisches Modell Datendefinition IMS-DDL Warenhaus:

TREE Abteilungsbaum
        RECORD Abteilung ROOT
                1	Abtlgsnr	INTEGER
                1	Abtlgsname CHAR(25)
        RECORD Angestellter PARENT=Abteilung
                1 	Name	CHAR(40)
                1	Gehalt	REAL
        RECORD Chef PARENT=Abteilung
                VIRTUAL Angestellter IN Abteilungsbaum
        RECORD Artikel PARENT = Abteilung
                ...
        ...
        RECORD Virt_Enthaelt PARENT=Artikel
                VIRTUAL Enthaelt IN Kundenbaum
        RECORD Virt_Lief PARENT=Artikel
                VIRTUAL Liefert IN Lieferantenbaum
...


next up previous


Jutta Goeers
Mon May 5 14:42:59 MET DST 1997