Seminar Datenbankanwendung für Architekten neunter Termin.

32
Seminar Datenbankanwendung für Architekten neunter Termin

Transcript of Seminar Datenbankanwendung für Architekten neunter Termin.

Page 1: Seminar Datenbankanwendung für Architekten neunter Termin.

Seminar

Datenbankanwendungfür

Architekten

neunter Termin

Page 2: Seminar Datenbankanwendung für Architekten neunter Termin.

Tagesprogramm

• Entwurfslehre:– Übertragen von ER-Schemata in Relationenschemata

• Access– Formulare

Page 3: Seminar Datenbankanwendung für Architekten neunter Termin.

Schritte beim Erstellen von Relationenschemata

• Übertragen der Entitätstypen in Relationenschemata

• Übertragen der ist-Ein Beziehungen

• Übertragen der starken 1:n Beziehungstypen

• Übertragen der schwachen 1:n Beziehungstypen

• Übertragen der 1:1 Beziehungstypen

• Übertragen der n:m Beziehungstypen

Page 4: Seminar Datenbankanwendung für Architekten neunter Termin.

Übertragen der Entitätstypen

• Für jeden Entitätstyp ein eigenes Relationenschema erstellen• Attribute übernehmen, geeignete Domänen festlegen• Primärschlüssel geeignet wählen

Person

nummer vorname name Person(

nummer : Ganzzahl,

vorname : Zeichenkette,

name : Zeichenkette

)

Tip: In Java ist es üblich, Klassennamen (entspricht Tabellennamen) mit Grossbuch-staben und Attributnamen mit Kleinbuchstaben zu beginnen.

Page 5: Seminar Datenbankanwendung für Architekten neunter Termin.

Übung: Übertragung des folgenden ER-Schemas in Relationenschemata

Schritt 1: Entitätstypen zu Relationenschemata

Lager Lagereinheitumfasst

enthältProdukt

KomponenteFertigprodukt

HändlerbestehtAus

kaufBei

1 n

m

1

n m

n

1

Position

Anzahl

Kapazität

Bezeichnung

Bezeichnung

Anzahl

PNummer

HNummer

Preis

Preis

ID

Größe

Page 6: Seminar Datenbankanwendung für Architekten neunter Termin.

Lösung Schritt 1

Schritt 1 Entitätstypen:

Lager( id:Ganzzahl,bezeichnung:Text )

Lagereinheit( position:Ganzzahl,kapazität:Zahl )

Produkt( pnummer:Ganzzahl,größe:Zahl,bezeichnung:Text )

Fertigprodukt( preis:Währung )

Komponente()

Händler( hnummer:Ganzzahl )

Page 7: Seminar Datenbankanwendung für Architekten neunter Termin.

Übertragen der Ist-Ein Beziehungstypen

• Zwei Alternativen sind abzuwägen:– Für jeden Entitätstyp wird ein eigenes Relationenschema erstellt– Nur für den Supertyp wird ein eigenes Relationenschema erstellt

Person(

nummer : Ganzzahl,

vorname : Zeichenkette,

name : Zeichenkette

)

Student(

nummer : Person.nummer,

matrikelNummer : Ganzzahl

)

Assistent(

nummer : Person.nummer,

personalNummer : Ganzzahl

)

Person

nummer vorname name

Student Assistent

matrikelNummer personalNummer

Hinweis: Fremdschlüssel auf eine Tabelle schreibe ich hier als Domäne in der Form Tabelle.attributname

Page 8: Seminar Datenbankanwendung für Architekten neunter Termin.

Übertragen der Ist-Ein Beziehungstypen

• Es gibt zwei Alternativen, die abzuwägen sind:– Für jeden Entitätstyp wird ein eigenes Relationenschema erstellt– Nur für den Supertyp wird ein eigenes Relationenschema erstellt

Person(

nummer : Ganzzahl,

istEin : Zeichenkette,

vorname : Zeichenkette,

name : Zeichenkette,

matrikelNummer : Ganzzahl,

personalNummer : Ganzzahl

)

Person

nummer vorname name

Student Assistent

matrikelNummer personalNummer

Hinweis: In diesem Fall sollte ein zusätzliches Attribut den Typ bezeichen

Page 9: Seminar Datenbankanwendung für Architekten neunter Termin.

Übung: Übertragung des folgenden ER-Schemas in Relationenschemata

Schritt 2: istEin: Generalisierung - Spezialisierung(mit mehreren Relationen)

Lager Lagereinheitumfasst

enthältProdukt

KomponenteFertigprodukt

HändlerbestehtAus

kaufBei

1 n

m

1

n m

n

1

Position

Anzahl

Kapazität

Bezeichnung

Bezeichnung

Anzahl

PNummer

HNummer

Preis

Preis

ID

Größe

Page 10: Seminar Datenbankanwendung für Architekten neunter Termin.

Lösung Schritt 2

Schritt 1 Entitätstypen:

Lager( id:Ganzzahl,bezeichnung:Text )

Lagereinheit( position:Ganzzahl,kapazität:Zahl )

Produkt( pnummer:Ganzzahl,größe:Zahl,bezeichnung:Text )

Händler( hnummer:Ganzzahl )

Schritt 2 istEin-Beziehung:

Fertigprodukt( pnummer:Produkt.pnummer, preis:Währung )

Komponente( pnummer:Produkt.pnummer )

Page 11: Seminar Datenbankanwendung für Architekten neunter Termin.

Übertragen der starken 1:n Beziehungstypen

• Übernehmen aller Schlüsselattibute des Entitätstyps auf der 1-Seite als Fremdschlüssel im Entitätstyp der n-Seite.

• Attribute des Beziehungstyps werden im Entitätstyp auf der n-Seite übernommen.

Person(

nummer : Ganzzahl,

vorname : Zeichenkette,

name : Zeichenkette,

gehZuBer : Abteilung.bereich,

gehZuNr : Abteilung.nummer,

seitWann : Datum

)Person

nummer vorname name

Abteilung

gehörtZu

nummer

bezeichnung

bereich

n

1

seitWann

Page 12: Seminar Datenbankanwendung für Architekten neunter Termin.

Übung: Übertragung des folgenden ER-Schemas in Relationenschemata

Schritt 3: starke 1:n Beziehungen

Lager Lagereinheitumfasst

enthältProdukt

KomponenteFertigprodukt

HändlerbestehtAus

kaufBei

1 n

m

1

n m

n

1

Position

Anzahl

Kapazität

Bezeichnung

Bezeichnung

Anzahl

PNummer

HNummer

Preis

Preis

ID

Größe

Page 13: Seminar Datenbankanwendung für Architekten neunter Termin.

Lösung Schritt 3

Schritt 1 und 2 Entitätstypen, istEin-Beziehung:Lager( id : Ganzzahl,

bezeichnung : Text )

Produkt( pnummer : Ganzzahl,größe : Zahl,bezeichnung : Text )

Fertigprodukt( pnummer : Ganzzahl, preis : Währung )

Händler( hnummer : Ganzzahl )

Schritt 3 starke 1:n-Beziehung:Lagereinheit( position : Ganzzahl,

kapazität : Zahl,enthält : Produkt.pnummer,enthältAnzahl : Zahl )

Komponente( pnummer : Produkt.pnummer,kaufBei : Händler.hnummer,preis : Währung )

Page 14: Seminar Datenbankanwendung für Architekten neunter Termin.

Übertragen der schwachen 1:n Beziehungstypen

• Übernehmen aller Schlüsselattibute des Entitätstyps auf der 1-Seite als Fremd- und Teilschlüssel im Entitätstyp der n-Seite.

• Attribute des Beziehungstyps werden im Entitätstyp auf der n-Seite übernommen.

Lieferschein(

nummer : Ganzzahl,

kunde : Nummer,

datum : Datum

)

LieferscheinPosition(

lieferschein : Lieferschein.nummer,

nummer : Ganzzahl,

anzahl : Ganzzahl

)

Lieferschein

nummer kunde datum

LieferscheinPosition

liefertanzahl

nummer

1

n

Page 15: Seminar Datenbankanwendung für Architekten neunter Termin.

Übung: Übertragung des folgenden ER-Schemas in Relationenschemata

Schritt 4: schwache 1:n Beziehungen

Lager Lagereinheitumfasst

enthältProdukt

KomponenteFertigprodukt

HändlerbestehtAus

kaufBei

1 n

m

1

n m

n

1

Position

Anzahl

Kapazität

Bezeichnung

Bezeichnung

Anzahl

PNummer

HNummer

Preis

Preis

ID

Größe

Page 16: Seminar Datenbankanwendung für Architekten neunter Termin.

Lösung Schritt 4

Schritt 1 bis 3 Entitätstypen, istEin, 1:n starkLager( id : Ganzzahl,

bezeichnung : Text )

Produkt( pnummer : Ganzzahl,größe : Zahl,bezeichnung : Text )

Fertigprodukt( pnummer : Ganzzahl, preis : Währung )

Händler( hnummer : Ganzzahl )

Komponente( pnummer : Produkt.pnummer,kaufBei : Händler.hnummer,preis : Währung )

Schritt 4 schwache 1:n-Beziehung:Lagereinheit( umfasstVon:Lager.id,

position : Ganzzahl,kapazität : Zahl,enthält : Produkt.pnummer,enthältAnzahl : Zahl )

Page 17: Seminar Datenbankanwendung für Architekten neunter Termin.

Übertragen der 1:1 Beziehungstypen

• Auch hier gibt es zwei Alternativen:– Modellieren als 1:n Beziehungstyp

– Modellieren als n:1 Beziehungstyp

– gewählt wird die Alternative mit geringerem Aufwand

Professor

DienstZimmer

Raum

1

1

persNr

raumNr

Professor(

persNr : Ganzzahl,

name : Zeichenkette,

dienstZimmer : Raum.raumNr

)

Raum(

raumNr : Ganzzahl,

)

Page 18: Seminar Datenbankanwendung für Architekten neunter Termin.

Übertragen der 1:1 Beziehungstypen

• Auch hier gibt es zwei Alternativen:– Modellieren als 1:n Beziehungstyp

– Modellieren als n:1 Beziehungstyp

– gewählt wird die Alternative mit geringerem Aufwand

Professor

DienstZimmer

Raum

1

1

persNr

raumNr

Professor(

persNr : Ganzzahl,

name : Zeichenkette,

)

Raum(

raumNr : Ganzzahl,

dienstZimmerVon : Professor.persNr

)

Page 19: Seminar Datenbankanwendung für Architekten neunter Termin.

Übertragen der 1:1 Beziehungstypen(ohne Übung)

• Auch hier gibt es zwei Alternativen:– Modellieren als 1:n Beziehungstyp

– Modellieren als n:1 Beziehungstyp

– gewählt wird die Alternative mit geringerem Aufwand• hier: Jeder Professor hat ein Dienstzimmer aber nicht jeder Raum ist

Dienstzinner eines Professors.

Professor

DienstZimmer

Raum

1

1

persNr

raumNr

Professor(

persNr : Ganzzahl,

name : Zeichenkette,

dienstZimmer : Raum.raumNr

)

Raum(

raumNr : Ganzzahl,

)

Page 20: Seminar Datenbankanwendung für Architekten neunter Termin.

Übertragen der n:m Beziehungstypen

• Dieser Beziehungstyp erfordert eine eigene Tabelle• Alle Schlüsselattribute aller an der Beziehung beteiligten

Entitätstypen werden als Schlüssel des Beziehungstyps übernommen.

• mehrstellige n:m:k-Beziehungen werden in naheliegender Weise behandelt.

Anwesend(

wer : Teilnehmer.nummer,

wann : Termin.datum,

mitarbeit : Zeichenkette

)

Teilnehmer

anwesend

Termin

n

m

nummer

datum

mitarbeit

Page 21: Seminar Datenbankanwendung für Architekten neunter Termin.

Achtung bei reflexiven n:m Beziehungstypen!

• Ist ein Entitätstyp mehrfach an einer n:m Beziehung beteiligt, dann werden auch die Schlüsselattribute entsprechend mehrfach übernommen.

Kennt(

werVorN : Person.vorname,

werNachN : Person.nachname,

wenVorN : Person.vorname,

wenNachN : Person.nachname,

istFreund : Ja/Nein

)

Person

kennt

n

m

vorname

nachname

istFreund

Page 22: Seminar Datenbankanwendung für Architekten neunter Termin.

Übung: Übertragung des folgenden ER-Schemas in Relationenschemata

Schritt 5: n:m Beziehungen

Lager Lagereinheitumfasst

enthältProdukt

KomponenteFertigprodukt

HändlerbestehtAus

kaufBei

1 n

m

1

n m

n

1

Position

Anzahl

Kapazität

Bezeichnung

Bezeichnung

Anzahl

PNummer

HNummer

Preis

Preis

ID

Größe

Page 23: Seminar Datenbankanwendung für Architekten neunter Termin.

Lösung Schritt 5

Schritt 1 bis 4 Entitätstypen, istEin, alle 1:nLager( id : Ganzzahl,

bezeichnung : Text )

Produkt( pnummer : Ganzzahl,größe : Zahl, bezeichnung : Text )

Fertigprodukt( pnummer : Ganzzahl, preis : Währung )

Händler( hnummer : Ganzzahl )

Komponente( pnummer : Produkt.pnummer,kaufBei : Händler.hnummer, preis : Währung )

Lagereinheit(lager:Lager.id, position : Ganzzahl,kapazität : Zahl,enthält : Produkt.pnummer, enthältAnzahl : Zahl )

Schritt 5 n:m-BeziehungstypBestehtAus( fProdukt : Fertigprodukt.pnummer,

komponente : Komponente.pnummer,Anzahl : Zahl )

Page 24: Seminar Datenbankanwendung für Architekten neunter Termin.

Lösungsschritte im Überblickgrau bedeutet: In diesem Schritt noch unfertig

Schritt 1 Entitätstypen:Lager(id:Ganzzahl, bezeichnung:Text)

Lagereinheit(position:Ganzzahl, kapazität:Zahl)

Produkt(pnummer:Ganzzahl, größe:Zahl, bezeichnung:Text)

Fertigprodukt(preis:Währung)

Komponente()

Händler(hnummer:Ganzzahl)

Schritt 2 IstEin-BeziehungFertigprodukt(pnummer:Produkt.pnummer, preis:Währung)

Komponente(pnummer:Produkt.pnummer)

Schritt 3 starke 1:n-BeziehungLagereinheit(position:Ganzzahl, kapazität:Zahl,

enthält:Produkt.pnummer, enthältAnzahl:Zahl)

Komponente(pnummer:Produkt.pnummer,kaufBei:Händler.hnummer,preis:Währung)

Schritt 4 schwache 1:n-BeziehungLagereinheit(lager:Lager.id, position:Ganzzahl, kapazität:Zahl

enthält:Produkt.pnummer, enthältAnzahl:Zahl)

Schritt 5 n:m-Beziehung BestehtAus(produkt:Produkt.pnummer, komponente:Komponente.pnummer,

Anzahl:Zahl)

Page 25: Seminar Datenbankanwendung für Architekten neunter Termin.

Teil 2

Formulare

mit Feldern und Textenund Texten

und Knöpfen

und formu-

Unter -

laren

und

Graphiken

und, und, und …

Page 26: Seminar Datenbankanwendung für Architekten neunter Termin.

Zweck der Formulare

• Darstellung der Daten für den Benutzer – auch: Verbergen gewisser Daten vor dem Benutzer

• Bedienung der Datenbank durch den Benutzer– z.B. Dateneingabe

• bildet also die Schnittstelle Benutzer - Datenbank

Datenbank Formular Benutzer

Page 27: Seminar Datenbankanwendung für Architekten neunter Termin.

Klassen von Formularen bei Access

• Einzelformular– Stellt immer nur genau einen Datensatz dar:

• Endlosformular– Untereinander "verklebte" Einzelformulare

– z.B. Adressetiketten für Serienbriefe

• Datenblattformular– Darstellung der Daten in Tabellenform

Page 28: Seminar Datenbankanwendung für Architekten neunter Termin.

Erstellen von Einzelformularen

• Objekte - Formulare

• Klick auf "Neu" (oben) und dann "Entwurfsansicht" oder "Erstellt ein Formular in der Entwurfsansicht"

• Das kleine Quadrat in der rechten oberen Ecke markieren…

• Datenherkunft: Tabelle oder Abfrage

Page 29: Seminar Datenbankanwendung für Architekten neunter Termin.

Steuerelemente

• Dienen der Darstellung der Daten und der Entgegennahme von Benutzereingaben– genau eine Komponente hat dazu den Focus

• Kleine rechteckige Komponenten, die in das Formular eingebettet werden können– Auswahl mit der Toolbox

• Beispiele:– Bezeichner (unveränderlliche Texte)

– Textfelder (Textein- und Ausgabe)

– Knöpfe (Auslösen von Aktionen)

– Unterformulare (Darstellung detaillierter Information)

– OLE (Eingebettete Dokumente)

Page 30: Seminar Datenbankanwendung für Architekten neunter Termin.

gemeinsame Übung

• Gemeinsam Fertigstellen unserer Anwesenheitsliste– Automatische Formulare erstellen

• Mit Formulareigenschaften "spielen"– Datenherkunft

– Verknüpfung mit Unterformularen

– Elemente der Toolbox

• OLE-Daten

– Graphiken: Grössenanpassung: Zoomen

– Direkt einsetzbare ActiveX Controls (mit Value-Eigenschaft)

• Date and Time-Picker (mit/ohne CheckBox)

• Kalender

• evtl. Datenblatt als Navigationssteuerelement

Page 31: Seminar Datenbankanwendung für Architekten neunter Termin.

Unterformulare

• Unterformular Steuerelement

• Unterformular

• Verknüpfung von-nach (n:1)

• Achtung bei mehreren Unterformularen mit gleichnamigen Attributen (Fehler in Access: geht nicht)

Page 32: Seminar Datenbankanwendung für Architekten neunter Termin.

Ereignisse und Visual Basic

• Ereignisse– Knopf drücken

– Maus bewegen

– Datensatz auswählen

• Ereignisprozeduren: – Was passiert wenn … ?

• Wichtige Ereignisse: Current und Click– Current: Auswahl eines Datensatzes mit Unterformular

– Click bei Knöpfen

• Experimente mit Wizard

• Datensatzknöpfe:

– neu Einfügen

– eintragen

– löschen