4. Datenbankentwurf, Datendefinition Entwurfsaufgabe
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
1:n : Primärschlüssel der n-Seite wird Schlüssel
1:1 : beide Primärschlüssel werden je ein Schlüssel
n:m : beide Primärschlüssel zusammen werden Schlüssel
1:n : Entity-Relationenschema der n-Seite wird in Relationenschema der Relationship integriert
1:1 : beide Entity-Relationenschemata verschmelzen
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
1:n (binär, ohne Attribute) : link
1:n mit Attributen : Attribute der Beziehung in Record-Typ der Member-Seite aufnehmen
n:m : über Kett-Record-Typ (mit allen Attributen)
1:1 : wie 1:n Relationship, Zusatzbedingung im Programm überwachen
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 ...