2001-10-30 Database Hall of Fame 1
CODASYL,IDM
-- Charles Bachmann
(Turing Award 1973)
• Betreuer: Prof. Bayer
• Bearbeiter: Chen Fangyu
Teil 1: CODASYL
(Conference On Data Systems Languages) 1. Hintergrund und historische Entwicklung:
1) veröffentlicht im April 1971 von Codasyl Programming Language Committee.
2) der Abschlussreport besteht aus drei Sprachen:
-- schema data definition language (DDL)
-- sub-Schema data definition language (DDL)
-- data manipulation language (DML)
2001-10-30 Database Hall of Fame 3
3) Architektur der CODASYL
4) Graphik der historischen Entwicklung
2001-10-30 Database Hall of Fame 5
2. Das DBTG Data Modell
1) Netzwerkmodell-Grundkonzepte:
-- Wertbereich: (Value => Domain)
Zusammenfassung aller möglichen bzw. zugelassenen Werte
-- Feld (Data Item):
atomar: arithmetisch, string, data base key(DBK), implementor defined
aggregiert (Feld mit Unterstruktur):
vektor: (1:n),
allgem. Wiederholungsgruppe(0: *)
--Recordtyp
- Feld1|Feld2|...|FeldN
- N = 0 ... Leerer Record erlaubt
- Statusausprägung besitzt DBK als Identifikator à Objektindentität unabhängig von Werten - kein Primärschlüsselkonzept
--Set-Typ
- binäre Beziehung zwischen zwei Records
2001-10-30 Database Hall of Fame 7
-- (storage)Area:
-- in neuerer CODASYL auch realm genannt -- benannte Speichereinheit
-- Database (Schema)
Bachmann diagramm (1:n) (
Bezeichnung des Set-Typs fehlt noch!)OWNER name
Member name
2) Konkretisierung von Set-Typ
-- Hierarchische Beispiele: (1:n) Set-Typ „DEPTEMP“
a. Hierarchie mit einer Stufe:
2001-10-30 Database Hall of Fame 9
b. Hierarchie mit mehr als einer Stufe:
c. Hiearchie mit drei Record Typen und zwei Set-Typen:
2001-10-30 Database Hall of Fame 11
d. Hierarchie mit dem selben Record Typ in mehr als einen Stufe :
-- Netzwerke Beispiele: (n:m)
a. Netzwerk mit nur ein Record Typ und zwei Sets:
BM: bill of matrials WU: where used
2001-10-30 Database Hall of Fame 13
b. Netzwerk mit mehr als zwei Record- und Set-Typen:
3) Unterschied zum Relationenmodell
Join Attribut&Join Set-Typ(Link)
Beziehung
Attribut Feld
Attribut
Tupel Logischer Record
Entity
Relationenname Logischer Record-Typ
Entity –Typ
Relationenschema Struktur-Diagramm(er-
weitertes B.Diagramm) E/R-Schema
Re.-Modell NW-Modell
ER-Modell
2001-10-30 Database Hall of Fame 15
4) Transformation eines ER-Entwurfs in ein Netzwek
• Transformation vom Typ 1:1;
• Transformation vom Typ m:n;
• Transformation von mehrstelligem Diagramm;
• Transformation von rekursivem Diagramm;
• Transformation vom Typ „is-A“;
2001-10-30 Database Hall of Fame 17
--Regeln der Transformation
• Jeder Entity-Typ wird in einen Record-Typ transformiert. Dabei führen einwertige Attribute wieder auf einwertige, einstellige
mehrwertige auf Vektoren, zusammengesetzte ein- sowie mehrwertige auf Einfach- bzw. Mehrfachwiederholungsgruppen.
• Binäre Relationship-Typen der Kardinalität 1:1 können entweder durch einen Record-Typ, welcher eine Zusammenfassung der
beteiligten Entity-Typen ist, oder durch einen Set-Typ darstellt werden.
• Binäre Relationship-Typen der Kardinalität 1:n führen auf Set –Typen.
• Binäre Relationship-Typen der Kardinalität m:n werden transformiert unter Einführung eines Kett-Record-Typs und Ersetzung der m:n- Beziehung durch eine m:1- und eine 1:n- Beziehung.
• Relationship-Typen der Stelligkeit>2 werden ebenfalls unter Einführung eines Kett-Record-Types transformiert.
• Rekursive Beziehungen verlangen die Duplizierung eines gegebenen Record-Typs, wobei das Duplikat umzubenennen ist.
• IS-A-Beziehungen werden durch einen Set-Typ „in umgekehrter Richtung“ modelliert, und zwar je einen im Fall einer mehrfachen Spezialisierung (alternative könnte in einem solchen Fall –wie bereits erwähnt– auch ein Multimember-Set-Typ verwendet weden).
A-C Person V-S
2001-10-30 Database Hall of Fame 19
5) Schema-Deklaration für Netzwerk-Datenbanken
CODASYL ó SQL
• Schema name is Bibiliothek
• Record name is Buch
duplicates are not allowed for InvNr InvNr type is character 6
Titel type is character 30 VerlagName type is character 20 VerlagOrt type is character 20 Jahr type is numeric integer
• Record name is Autoren autor type is character 30
• Create Table Buch (
InvNr char(6) not null, Titel char(30) not null, VerlagName char(20) , VerlagOrt char(20), Jahr int(4), PRIMARY KEY (InvNr) );
2001-10-30 Database Hall of Fame 21
• Record name is Leser
duplicates are not allowed for LNr LNr type is character 6
Nachname type is character 25 Vorname type is character 20 Strasse type is character 30 Ort type is character 15
• Set name is BuchAutoren owner is Buch
member is Autoren order is first insertion is automatic retention is mandatory
• Create Table Leser (
LNr char(6) not null, Nachname char(25) not null, Vorname char(25) not null, Strasse char(30) not null, Ort char(15) not null, Primary Key (LNr ) );
• Create Table BuchAutoren ( InvNr char(6) not null, Autoren char(30) not null, Primary key (InvNr,Autoren) );
• Set name is Ausleihe owner is Leser member is Buch order is system default insertion is manual retention is optional
set selection is thru current of set
• Create Table Ausleihe ( LNr char(6) not null, BuchInvNr char(6) not null, Primary key (LNr, BuchInvNr) ID auto_increment );
2001-10-30 Database Hall of Fame 23
4. Die DBTG Query-Sprache
• 1) Operation der DML
--Aufsuchen: FETCH, FIND, GET, ACCEPT,SET --Änderung: STORE, ERASE, MODIFY, CONNECT,
DISCONNECT, INSERT, REMOVE --Transactionssteuerung: READY, FINISH
--SATZSCHUTZ: KEEP,FREE
• 2)Zugreiffensunterstürtzung:
--CALC- Keys --Datebase-Keys
3) Find Statement
• (1) FIND... BY DATABASE KEY
• (2) FIND... BY CALC-KEY
• (3) FIND... NEXT[USING] ... / FIND DUPLICATE ... WITHIN..BY
• (4) FINDFIRST/NEXT ... WITHIN CURRENT ...
• (5) FINDFIRST/NEXT ... WITHIN CURRENT ... USING ... / FINDDUPLICATE ... WITHIN CURRENT ... USING ...
• (6) FINDOWNER ...
• (7)FINDCURRENT ...
2001-10-30 Database Hall of Fame 25
• (1) S.MatrNr :=S3;
FIND STUDENT BY CALC-KEY;
• (2) S_V.MatrNr :=S1;
FIND S_V WITHIN HÖRT USING S_V.MatrNr;
while not eof do begin
GET S_V; V_NR;
FIND DUPLICATES S_V WITHIN HÖRT USING S_V.MartNR;
end;
• (3) S_V.MatrNr :=S1;
FIND STUDENT BY CALC-KEY;
while not fail do begin
FIND NEXT S_V WITHIN CUURENT HÖRT;
FIND OWNER OF CUURENT WIRD_BESUCHT;
GET VORLESUNG; V_NAME end;
4)GET, MODIFY - Statement
• GET
Move S4 to SNo IN S Select * from S
Find S Record where SNo=‚S4‘
Get S
• MODIFY
Find S occurrence for S4 Update S Set Status=Status+‚10‘
Get S; Status where Sno=‚S4‘
Add 10 to Status IN S.
ModifyS; Status
2001-10-30 Database Hall of Fame 27
• INSERT
Find S Occurrence for S4 Insert into N
InsertS Into N Select * from S where SNo=‚S4‘
• REMOVE
Find S occurrent for S4 Delete from N where N.* in (Select * RemoveS from N from S where SNo=‚S4‘)
• DELETE
Find S occurrent for S4 Delete from S where SNo=‚S4‘
DeleteS
Teil 2:Turing Award
• 1. Was ist ACM?
-- Association for Computing Machinery -- gegründet in 1947
-- erste wissenschaftliche computing Gesellschaft.
• 2. Was ist A.M. Turing Award?
-- Seit 1966
-- Eine prestigevolle technische Prämie von ACM
2001-10-30 Database Hall of Fame 29
3.Der Turing Award Preisträger von 1973 ---- Charles W. Bachmann
• (1) Was hat er dazu beigetragen?
-- Er war ein Erschaffer und Hauptarchitekt der ersten handelsüblichen Data Base Management Systems -IDS-.
-- Er war ein der Gründers der CODASYL Data Base Task Group und arbeitete von 1966 bis 1968 für die Group
-- Er war der Erschaffer der wertvollen Methode für Darstellung der Data- Relationship – ein Tool für Datenbank Designers bzw.
Applikationssystem Designers.
Award Recipients
• 1966A.J. Perlis 1967Maurice V. Wilkes 1968Richard Hamming 1969Marvin Minsky 1970J.H. Wilkinson 1971John McCarthy 1972E.W. Dijkstra 1973Charles W. Bachman 1974Donald E. Knuth 1975Allen Newell 1975Herbert A. Simon 1976Michael O. Rabin 1976Dana S. Scott 1977John Backus 1978Robert W. Floyd 1979Kenneth E. Iverson 1980C. Antony R. Hoare 1981Edgar F. Codd 1982Stephen A. Cook
• 1984Niklaus Wirth 1985Richard M. Karp 1986John Hopcroft 1986Robert Tarjan 1987John Cocke 1988Ivan Sutherland 1989William (Velvel) Kahan 1990Fernando J. Corbato' 1991Robin Milner 1992Butler W. Lampson 1993Juris Hartmanis 1993Richard E. Stearns 1994Edward Feigenbaum 1994Raj Reddy 1995Manuel Blum 1996Amir Pnueli 1997Douglas Engelbart 1998James Gray
1999Frederick P. Brooks, Jr.
2000Andrew Chi-Chih Yao
2001-10-30 Database Hall of Fame 31
Zusammenfassung
• Historische Entwicklung;
• DBTG Daten Modell
• Transformation eines ER-Entwurfs in ein Netzwerk
--Set Typ
• Schema-Deklaration für Netzwerk-Datenbanken
• Die DBTG-Query Sprache
• Charles Bachmann
Ende
Vielen Dank für die Aufmerksamkeit!
Fragen & Diskussion