330 likes | 473 Views
Seminar Datenbankanwendung fü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
E N D
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
nummer vorname name Person Ü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 : 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 RelationenschemataSchritt 1: Entitätstypen zu Relationenschemata ID Bezeichnung Position 1 n umfasst Lager Lagereinheit Kapazität m Bezeichnung Anzahl 1 enthält Größe Produkt PNummer Preis kaufBei n Fertigprodukt Komponente 1 n m bestehtAus Händler Preis Anzahl HNummer
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 )
nummer vorname name Person Student Assistent matrikelNummer personalNummer Ü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 ) Hinweis: Fremdschlüssel auf eine Tabelle schreibe ich hier als Domäne in der Form Tabelle.attributname
nummer vorname name Person Student Assistent matrikelNummer personalNummer Ü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 ) Hinweis: In diesem Fall sollte ein zusätzliches Attribut den Typ bezeichen
Übung: Übertragung des folgenden ER-Schemas in RelationenschemataSchritt 2: istEin: Generalisierung - Spezialisierung(mit mehreren Relationen) ID Bezeichnung Position 1 n umfasst Lager Lagereinheit Kapazität m Bezeichnung Anzahl 1 enthält Größe Produkt PNummer Preis kaufBei n Fertigprodukt Komponente 1 n m bestehtAus Händler Preis Anzahl HNummer
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 )
bereich nummer Abteilung 1 bezeichnung gehörtZu seitWann n Person nummer vorname name Ü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 )
Übung: Übertragung des folgenden ER-Schemas in RelationenschemataSchritt 3: starke 1:n Beziehungen ID Bezeichnung Position 1 n umfasst Lager Lagereinheit Kapazität m Bezeichnung Anzahl 1 enthält Größe Produkt PNummer Preis kaufBei n Fertigprodukt Komponente 1 n m bestehtAus Händler Preis Anzahl HNummer
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 ) nummer kunde datum Lieferschein 1 liefert anzahl n nummer LieferscheinPosition
Übung: Übertragung des folgenden ER-Schemas in RelationenschemataSchritt 4: schwache 1:n Beziehungen ID Bezeichnung Position 1 n umfasst Lager Lagereinheit Kapazität m Bezeichnung Anzahl 1 enthält Größe Produkt PNummer Preis kaufBei n Fertigprodukt Komponente 1 n m bestehtAus Händler Preis Anzahl HNummer
Lösung Schritt 4 Schritt 1 bis 3 Entitätstypen, istEin, 1:n stark Lager( 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 )
Professor persNr 1 DienstZimmer 1 Raum raumNr Ü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( persNr : Ganzzahl, name : Zeichenkette, dienstZimmer : Raum.raumNr ) Raum( raumNr : Ganzzahl, )
Professor persNr 1 DienstZimmer 1 Raum raumNr Ü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( persNr : Ganzzahl, name : Zeichenkette, ) Raum( raumNr : Ganzzahl, dienstZimmerVon : Professor.persNr )
Professor persNr 1 DienstZimmer 1 Raum raumNr Ü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( persNr : Ganzzahl, name : Zeichenkette, dienstZimmer : Raum.raumNr ) Raum( raumNr : Ganzzahl, )
Teilnehmer nummer n anwesend mitarbeit m Termin datum Ü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 )
vorname m Person nachname n kennt istFreund 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 )
Übung: Übertragung des folgenden ER-Schemas in RelationenschemataSchritt 5: n:m Beziehungen ID Bezeichnung Position 1 n umfasst Lager Lagereinheit Kapazität m Bezeichnung Anzahl 1 enthält Größe Produkt PNummer Preis kaufBei n Fertigprodukt Komponente 1 n m bestehtAus Händler Preis Anzahl HNummer
Lösung Schritt 5 Schritt 1 bis 4 Entitätstypen, istEin, alle 1:n Lager( 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-Beziehungstyp BestehtAus( 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-Beziehung Fertigprodukt(pnummer:Produkt.pnummer, preis:Währung) Komponente(pnummer:Produkt.pnummer) 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) Schritt 4 schwache 1:n-Beziehung Lagereinheit(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 und Texten mit Feldern und Graphiken und Knöpfen 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 Formular Datenbank 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