Rami Swailem FH Gießen-Friedberg Datenbanksysteme Übungsblatt3 Übungen Datenbanksysteme Teil 3 (Datenbank-Design) 1. Autowerkstatt ERD Entwurf des Entity-Relationship-Diagramms in UML-Notation Kunde 1 gehört * kundennr {pk} name vorname adresse strasse plz ort telefonnr KFZ 1 hat * fahrgestllnr {pk} kennzeichen marke Reparatur rechnungsnr {pk} datum km_stand 1 1..* Arbeiten Bezeichnung preis 2. Autowerkstatt Datenbankschema Transformation des vorigen Entity-Relationship-Diagramms in ein Datenbankschema Kunde DbSysI.Uebung3.tex,v,1.2,January 14, 2006 at 22:48:28 CET kundennr:dec(6) {pk} kundennr= kundennr name:varchar(40) vorname:varchar(40) strasse:varchar405) plz:char(10) ort:varchar(40) Telefon:varchar(20) KFZ fahrgestellnr:char(15) {pk} fahrgestellnr= fahrgestellnr Kennzeichen:varchar(12) marke:varchar(20) kundennr:dec(6) Reparatur rechnungsnr:char(9) {pk} datum:date fahrgestellnr:char(15) 6 rechnungsnr= rechnungsnr Arbeiten rechnungsnr:char(9) {pk} LfdNr:dec(2) {pk} Bezeichnung:varchar(120) preis:money Erstellen der SQL-Anweisungen zum Erzeugen der Datenbankstruktur Listing 1: Kunde Wintersemester 2005/06 1 Rami Swailem FH Gießen-Friedberg Datenbanksysteme Übungsblatt3 create t a b l e Kunde ( kundennr dec ( 6 ) primary key , name varchar ( 4 0 ) not n u l l , vorname varchar ( 4 0 ) , s t r a s s e varchar ( 4 0 ) , p l z char ( 1 0 ) , o r t varchar ( 4 0 ) , t e l e f o n : varchar ( 2 0 ) ) Listing 2: KFZ create t a b l e KFZ ( f a h r g e s t e l l n r char ( 1 5 ) primary key , kennzeichen varchar ( 1 2 ) , marke varchar ( 2 0 ) , kundennr dec ( 6 ) r e f e r e n c e s Kunde ( kundennr ) ) Listing 3: Reparatur create t a b l e Reparatur ( rechnungsnr char ( 9 ) primary key , datum date , f a h r g e s t e l l n r char ( 1 5 ) r e f e r e n c e s KFZ ( f a h r g e s t e l l n r ) ) Listing 4: Arbeiten DbSysI.Uebung3.tex,v,1.2,January 14, 2006 at 22:48:28 CET create t a b l e A r b e i t e n ( rechnungsnr char ( 9 ) r e f e r e n c e s Reparatur ( rechnungsnr ) , LfdNr dec ( 2 ) , Bezeichnung varchar ( 1 2 0 ) not n u l l , p r e i s money , primary key ( rechnungsnr , LfdNr ) ) 3. Autowerkstatt SQL Formulieren Sie SQL-Anweisungen für die folgenden Anfragen an die Datenbank der Autowerkstatt: 1. Bestimmen Sie die Anzahl der Werkstattbesuche eines bestimmten, vom Namen her bekannten Kunden. 2. Liste mit der Reparaturhäufigkeit der verschiedenen Automarken Wintersemester 2005/06 2 Rami Swailem FH Gießen-Friedberg Datenbanksysteme Übungsblatt3 3. Liste mit dem Umsatz je Kunde mit Kundennr und Name 4. Liste mit den mittleren Reparaturkosten je Automarke 5. Liste der Kunden mit Angabe der Anzahl ihrer KFZ 4. Autowerkstatt Diskussion Die Fakten über die Autowerkstatt, die dem Entity-Relationship zugrundeliegen, sind stark vereinfacht. Finden Sie 3 Gegebenheiten, die in einer wirklichen Autowerkstatt anders sind und stellen Sie dar, wie diese Gegebenheiten einbauen könnten. 5. Belegsystem einer Hochschule ERD Entwurf des Entity-Relationship-Diagramms in UML-Notation Dozent 1 macht Name Vorname * Veranstaltung 1..* besucht 1..* Wochentag Block Raum Student MatrikelNr {PK} Name Vorname * 6 beschreibt 1 Modul DbSysI.Uebung3.tex,v,1.2,January 14, 2006 at 22:48:28 CET ModulNr Bezeichnung CrPoints Transformation des vorigen Entity-Relationship-Diagramms in ein Datenbankschema Wintersemester 2005/06 3 Rami Swailem FH Gießen-Friedberg Dozent Datenbanksysteme Übungsblatt3 Veranstaltung DozNr = DozNr DozNr:int {PK} Name:varchar(40) Vorname:varchar(40) Teilnahme VeranstNr = VeranstNr VeranstNr:int{PK} Wochentag:char(2) Block:dec(1) Raum:char(4) DozNr:int {not null} ModulNr:char(6) {not null} VeranstNr:int{PK} MatrikelNr:dec(6) {PK} MatrikelNr = MatrikelNr ? Student 6 ModulNr = ModulNr Modul MatrikelNr:dec(6) {PK} Name:varchar(40) Vorname:varchar(40) ModulNr:char(6) {PK} Bezeichnung:varchar(120) CrPoints:int Erstellen der SQL-Anweisungen zum Erzeugen der Datenbankstruktur Listing 5: Teilnahme Create t a b l e Teilnahme ( VeranstNr i n t r e f e r e n c e s V e r a n s t a l t u n g ( VeranstNr ) , M a t r i k e l N r dec ( 6 ) r e f e r e n c e s Student ( M a t r i k e l N r ) , primary key ( VeranstNr , M a t r i k e l N r ) 11. Juristisches Informationssystem ERD DbSysI.Uebung3.tex,v,1.2,January 14, 2006 at 22:48:28 CET Wintersemester 2005/06 4 Rami Swailem FH Gießen-Friedberg Gericht 1 Datenbanksysteme Übungsblatt3 arbeitet an Richter * Name Adresse strasse plz Ort Art Name Vorname ........ ... Titel TelNr *..1 leitet * Ein Richter kann nur Verfahren seines Gerichtes leiten Verfahren Aktenzeichen {pk} Sache Richter Begin 13. Ausschnitt eines ERD für eine Klinikorganisation Mitarbeiter * arbeitet in Name Vorname 1 Abteilung Name .... ..... ..... ..... ..... DbSysI.Uebung3.tex,v,1.2,January 14, 2006 at 22:48:28 CET 14. Artikel in einer betrieblichen Anwendung „Fehler“ des Diagramms: verletz (den Geist der) 1NF Wintersemester 2005/06 5 Rami Swailem FH Gießen-Friedberg Artikel 1 Datenbanksysteme Übungsblatt3 * Verkauf ArtikelNr {pk} Menge Bezeichnung Jahr DbSysI.Uebung3.tex,v,1.2,January 14, 2006 at 22:48:28 CET Wintersemester 2005/06 6