Seminar Datenbankanwendung für Architekten neunter Termin.
-
Upload
eilert-drey -
Category
Documents
-
view
105 -
download
0
Transcript of Seminar Datenbankanwendung für Architekten neunter Termin.
Seminar
Datenbankanwendungfür
Architekten
neunter Termin
Tagesprogramm
• Entwurfslehre:– Übertragen von ER-Schemata in Relationenschemata
• Access– Formulare
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
Ü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.
Ü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
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 )
Ü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
Ü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
Ü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
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 )
Ü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
Ü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
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 )
Ü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
Ü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
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 )
Ü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,
)
Ü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
)
Ü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,
)
Ü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
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
Ü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
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 )
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)
Teil 2
Formulare
mit Feldern und Textenund Texten
und Knöpfen
und formu-
Unter -
laren
und
Graphiken
und, und, und …
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
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
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
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)
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
Unterformulare
• Unterformular Steuerelement
• Unterformular
• Verknüpfung von-nach (n:1)
• Achtung bei mehreren Unterformularen mit gleichnamigen Attributen (Fehler in Access: geht nicht)
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