Galileo Computing < openbook > Galileo Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
1 Einführung
2 Grundlagen
3 Fehlerbehandlung
4 Erweiterte Grundlagen
5 Objektorientierte Programmierung
6 Wichtige Klassen in .NET
7 Weitere Elemente eines Windows-Programms
8 Datenbank-Anwendungen mit ADO.NET
9 Internet-Anwendungen mit ASP.NET
10 Zeichnen mit GDI+
11 Neues in Visual Basic 2008
12 Beispielprojekte
A Installation
B Lösungen der Übungsaufgaben
Stichwort

Download:
- ZIP, ca. 8,4 MB
Buch bestellen
Ihre Meinung?

Spacer
 <<   zurück
Einstieg in Visual Basic 2008 von Thomas Theis
Inkl. zahlreicher Beispiele und Uebungen
Buch: Einstieg in Visual Basic 2008

Einstieg in Visual Basic 2008
geb., mit DVD
442 S., 24,90 Euro
Galileo Computing
ISBN 978-3-8362-1192-5
Online bestellenJetzt online bestellen
* versandkostenfrei in (D) und (A)
Pfeil 8 Datenbank-Anwendungen mit ADO.NET
  Pfeil 8.1 Was sind relationale Datenbanken?
    Pfeil 8.1.1 Beispiel »Lager«
    Pfeil 8.1.2 Indizes
    Pfeil 8.1.3 Relationen
    Pfeil 8.1.4 Übungen
  Pfeil 8.2 Anlegen einer Datenbank in MS Access
    Pfeil 8.2.1 Aufbau von MS Access
    Pfeil 8.2.2 Datenbank-Entwurf in MS Access 2007
    Pfeil 8.2.3 Übungen
  Pfeil 8.3 Datenbankzugriff mit Visual Basic
    Pfeil 8.3.1 Beispiel-Datenbank
    Pfeil 8.3.2 Ablauf eines Zugriffs
    Pfeil 8.3.3 Verbindung
    Pfeil 8.3.4 SQL-Befehl
    Pfeil 8.3.5 Auswahlabfrage
    Pfeil 8.3.6 Aktionsabfrage
  Pfeil 8.4 SQL-Befehle
    Pfeil 8.4.1 Auswahl mit Select
    Pfeil 8.4.2 Ändern mit Update
    Pfeil 8.4.3 Löschen mit Delete
    Pfeil 8.4.4 Einfügen mit Insert
  Pfeil 8.5 Ein Verwaltungsprogramm
    Pfeil 8.5.1 Initialisierung
    Pfeil 8.5.2 Alle Datensätze sehen
    Pfeil 8.5.3 Einen Datensatz einfügen
    Pfeil 8.5.4 Einen Datensatz ändern
    Pfeil 8.5.5 Einen Datensatz löschen
    Pfeil 8.5.6 Einen Datensatz suchen
  Pfeil 8.6 Verbindung zu MySQL
    Pfeil 8.6.1 ODBC-Treiber
    Pfeil 8.6.2 Datenquelle
    Pfeil 8.6.3 Datenbankzugriff mit Visual Basic
    Pfeil 8.6.4 .NET-Treiber
  Pfeil 8.7 Verbindung zu MS SQL Server 2005
    Pfeil 8.7.1 Anlegen einer Datenbank
    Pfeil 8.7.2 Datenbankzugriff mit Visual Basic

Wer große Datenmengen dauerhaft und geordnet speichern will, kommt an Datenbanken nicht vorbei.

8 Datenbank-Anwendungen mit ADO.NET

Falls Sie noch nicht mit relationalen Datenbanken vertraut sind, liefert Ihnen der erste Abschnitt dieses Kapitels das nötige Hintergrundwissen. Andernfalls können Sie diesen Teil überspringen und gleich zum Abschnitt 8.2, »Anlegen einer Datenbank«, übergehen.


Galileo Computing - Zum Seitenanfang

8.1 Was sind relationale Datenbanken?  Zur nächsten ÜberschriftZur vorigen Überschrift

Relation

Beim relationalen Datenmodell werden die Daten in Form von Tabellen angeordnet. Eine den Erfordernissen der Praxis genügende Datenbank wird sich aber kaum in einer einzigen Tabelle organisieren lassen. Sie wird vielmehr aus mehreren Tabellen bestehen, die miteinander in Beziehung (Relation) stehen. Eine solche Datenbank bezeichnet man als relational.

Index

Sowohl die Tabellen als auch die Relationen lassen sich sehr einfach auf den physikalischen Speicher abbilden. Der Nachteil einer relationalen Datenbank besteht darin, dass zusätzliche Hilfsdatenstrukturen, sogenannte Indizes, aufgebaut und ständig aktualisiert werden müssen. Diese Indizes erleichtern die Abfrage, Suche und Sortierung in relationalen Datenbanken.

Je größer und komplexer eine Datenbank wird, desto mehr überwiegen jedoch die Vorteile der klaren Strukturierung der Daten und der Speicherplatz-Einsparung gegenüber dem Nachteil durch den Aufbau und die Aktualisierung der Indizes.


Galileo Computing - Zum Seitenanfang

8.1.1 Beispiel »Lager«  Zur nächsten ÜberschriftZur vorigen Überschrift

Als anschauliches Beispiel für den Entwurf einer Datenbank soll die Erfassung des Lagerbestands eines Einzelhändlers dienen. Die Artikel des Lagers sollen durch folgende Daten gekennzeichnet werden:


Beschreibung Abkürzung

eigene Artikelnummer

artnr

Bestellnummer für diesen Artikel beim Lieferanten

bestnr

vorhandene Anzahl

anz

Lieferantennummer

lnr

Adresse des Lieferanten

adr

Telefonnummer des Lieferanten

telnr

Regional-Vertreter des Lieferanten

vertr

Einkaufspreis

ek

Verkaufspreis

vk


Erster Entwurf

Tabelle

Im ersten Entwurf für eine solche Datenbank werden die Daten in einer Tabelle mit dem Namen artikel gespeichert, die folgende Spalten hat:


artnr bestnr anz lnr adr telnr vertr ek vk

12

877

5

1

Köln

162376

Mertens

23

35

22

231

22

3

Koblenz

875434

Mayer

55

82

24

623

10

4

Bonn

121265

Marck

12

18

30

338

30

12

Aachen

135543

Schmidt

77

116

33

768

5

1

Köln

162376

Mertens

90

135

56

338

2

1

Köln

162376

Mertens

125

190

58

338

16

3

Koblenz

875434

Mayer

50

74

76

912

15

12

Aachen

135543

Schmidt

45

70


Feld, Datensatz

In diesem Beispiel sind acht verschiedene Artikel im Lager, zu jedem dieser Artikel existiert in der Tabelle eine Zeile. Eine solche Zeile in einer Datenbank-Tabelle wird Datensatz genannt. Die Spalten einer Datenbank-Tabelle nennt man Felder, sie werden durch ihre Überschrift, den Feldnamen, gekennzeichnet.

Alle Artikel sind innerhalb einer Tabelle abgelegt. Dies wirkt auf den ersten Blick sehr übersichtlich, man erkennt allerdings schnell, dass viele Daten mehrfach vorhanden sind. Bei jedem Artikel des gleichen Lieferanten sind Adresse, Telefonnummer und Vertreter in jedem Datensatz erfasst. Es ergibt sich eine Daten-Redundanz, d. h. viele Daten sind überflüssig. Außerdem können sich schnell inkonsistente, uneinheitliche Daten ergeben, falls die Telefonnummer eines Lieferanten sich ändert und diese Änderung nur in einem Datensatz eingetragen wird.

Zweiter Entwurf

Daher geht man dazu über, den Lagerbestand in zwei Tabellen abzulegen, die miteinander verbunden sind. Die reinen Artikeldaten werden in der ersten Tabelle mit dem Namen artikel gespeichert, die folgende Felder hat:


artnr bestnr anz lnr ek vk

12

877

5

1

23

35

22

231

22

3

55

82

24

623

10

4

12

18

30

338

30

12

77

116

33

768

5

1

90

135

56

338

2

1

125

190

58

338

16

3

50

74

76

912

15

12

45

70


Die zweite Tabelle lieferanten enthält nur die Daten zu den einzelnen Lieferanten. Sie hat folgende Felder:


lnr adr telnr vertr

1

Köln

162376

Mertens

3

Koblenz

875434

Mayer

4

Bonn

121265

Marck

12

Aachen

135543

Schmidt


1:n Relation

Außer den beiden Tabellen wird noch eine sogenannte 1:n-Relation aufgebaut. Diese Relation (=Beziehung, Verknüpfung) wird zwischen den beiden Feldern mit dem Namen lnr in den beiden Tabellen geknüpft. Im folgenden Bild sind die beiden Tabellen mit ihren Feldnamen und der Verknüpfung dargestellt (siehe Abbildung 8.1).

Redundanz vermeiden

Um also die vollständige Information über einen Artikel zu erhalten, muss man zuerst den Datensatz innerhalb der Tabelle artikel aufsuchen und anschließend über das Feld lnr den zugehörigen Datensatz in der Tabelle lieferanten beachten. Auf diese Weise werden redundante Informationen vermieden und es kann ein erheblicher Teil an Speicherplatz eingespart werden.

Abbildung 8.1  Relation zwischen Lieferanten und Artikel

Datenbanksystem

Diese beiden verknüpften Tabellen werden, zusammen mit einem geeigneten Abfragesystem zum schnellen Auffinden und Auswerten der Daten, als relationales Datenbanksystem bezeichnet. Zu einem solchen System gehören Indizes und Relationen.


Galileo Computing - Zum Seitenanfang

8.1.2 Indizes  Zur nächsten ÜberschriftZur vorigen Überschrift

Hilfstabelle

Ein Index ist eine sortierte Hilfstabelle, in der sich die indizierten Felder in der entsprechenden, sortierten Reihenfolge befinden. Außerdem steht hier ein Verweis auf den Ort des zugehörigen Datensatzes. Wenn das Datenbanksystem beim Suchen oder Sortieren einen Index benutzen kann, können effizientere Verfahren angewendet werden, weil nicht Satz für Satz der Tabelle verarbeitet werden muss. Dies bringt besonders bei großen Tabellen Geschwindigkeitsvorteile.

Da für jeden Index Speicherplatz benötigt wird, wächst die Datenbank entsprechend. Außerdem müssen die Index-Hilfstabellen beim Eingeben und Ändern der Daten aktualisiert werden, was die Geschwindigkeit beim Bearbeiten der Daten verlangsamt. In diesem Zusammenhang sind die Begriffe Primärindex und Sekundärindex von Bedeutung.

Primärindex

Eindeutig

Jede Tabelle kann ein Feld aufweisen, das als Primärindex dient. In einem Primärindexfeld ist jeder Wert einzigartig, d. h. zwei Datensätze haben niemals den gleichen Wert im Primärindexfeld. Diese Eigenschaft wird vom Datenbanksystem überwacht, wenn Sie ein Feld oder eine Gruppe von Feldern als Primärindex definieren. Über das Primärindexfeld kann jeder Datensatz eindeutig identifiziert werden.

Ein Beispiel aus dem vorigen Abschnitt: Innerhalb der Tabelle artikel versieht man sinnvollerweise das Feld artnr mit einem Primärindex. Jede Artikelnummer sollte in dieser Tabelle nur einmal vorkommen. Innerhalb der Tabelle lieferanten versieht man das Feld lnr mit einem Primärindex.

Sekundärindex

Suchen und Sortieren

Wird für ein Feld oder eine Gruppe von Feldern die Eigenschaft »Sekundärindex« vereinbart, kann mehrfach derselbe Feldinhalt vorkommen. Eine eindeutige Identifizierung eines Datensatzes ist also über einen Sekundärindex nicht möglich. Trotzdem empfiehlt es sich, Sekundärindizes anzulegen, wenn schnellere Sortierung oder schnelleres Suchen nach diesen Feldern möglich sein sollen.

Ein Beispiel aus dem vorigen Abschnitt: Innerhalb der Tabelle lieferanten versieht man z. B. das Feld adr mit einem Sekundärindex. Dadurch ermöglicht man das schnelle Sortieren der Tabelle nach Adressen, bzw. das schnelle Suchen nach einer bestimmten Adresse.


Galileo Computing - Zum Seitenanfang

8.1.3 Relationen  Zur nächsten ÜberschriftZur vorigen Überschrift

Wenn man mehrere Tabellen hat, werden diese meist in einer Relation (=Beziehung) zueinander stehen. Das Datenbanksystem ermöglicht das Festlegen der Relationen zwischen je zwei Tabellen, um diese miteinander zu verknüpfen.

Eine 1:1-Relation

Eine 1:1-Relation liegt dann vor, wenn einem Datensatz der einen Tabelle genau ein Datensatz der zweiten Tabelle zugeordnet ist. Die Verknüpfungsfelder müssen in beiden Tabellen eindeutig sein. Im Prinzip könnte man zwei Tabellen, die zueinander in einer 1:1-Relation stehen, zu einer einzigen Tabelle zusammenfassen. Es kann aber Gründe geben, die das Führen von zwei Tabellen notwendig machen, z. B. Datenschutz-erfordernisse.

Datenschutz

Im Beispiel aus dem vorigen Abschnitt könnte man die Daten auch in zwei Tabellen anordnen, die über das Feld lnr miteinander verbunden sind. Beide Tabellen haben acht Datensätze, zu jedem Datensatz in der ersten Tabelle gibt es genau einen Datensatz in der zweiten Tabelle.

Teil 1:


artnr bestnr anz lnr ek vk

12

877

5

1

23

35

22

231

22

3

55

82

24

623

10

4

12

18

30

338

30

12

77

116

33

768

5

1

90

135

56

338

2

1

125

190

58

338

16

3

50

74

76

912

15

12

45

70


Teil 2:


lnr adr telnr vertr

1

Köln

162376

Mertens

3

Koblenz

875434

Mayer

4

Bonn

121265

Marck

12

Aachen

135543

Schmidt

1

Köln

162376

Mertens

1

Köln

162376

Mertens

3

Koblenz

875434

Mayer

12

Aachen

135543

Schmidt


Die persönlichen Daten eines Lieferanten, die in einer eigenen Tabelle stehen, können so von den Daten des Artikel-Lagers getrennt werden. Falls man für einzelne Benutzer nur den Zugriff auf die Artikel-Tabelle ermöglicht, hat man an dieser Stelle den Datenschutz gewährleistet, ohne die Funktion der Artikel-Verwaltung zu beeinträchtigen.

Eine 1:n-Relation

Master, Detail

Bei einer 1:n-Relation können zu einem Datensatz der ersten Tabelle mehrere Datensätze der zweiten Tabelle vorliegen, die sich darauf beziehen. In einem Datenbanksystem wird die Tabelle der 1-Seite auch als Mastertabelle für diese Relation bezeichnet, die Tabelle der n-Seite wird auch Detailtabelle genannt.

Im Beispiel aus dem vorigen Abschnitt sind die Daten über eine solche 1:n-Relation miteinander verbunden. Die Mastertabelle für diese Relation ist die Tabelle der Lieferanten, die Detailtabelle ist die Tabelle der Artikel.

Eine m:n-Relation

Dritte Tabelle

Bei einer m:n-Relation entsprechen einem Datensatz der ersten Tabelle mehrere Datensätze der zweiten Tabelle, aber auch umgekehrt entsprechen einem Datensatz der zweiten Tabelle mehrere Datensätze der ersten Tabelle. Eine m:n-Relation lässt sich nicht unmittelbar, sondern nur über den »Umweg« einer dritten Tabelle definieren.

Um eine Datenbank mit einer m:n-Relation darzustellen, muss das einfache Beispiel aus dem vorigen Abschnitt erweitert werden. Bisher konnte ein Artikel nur von einem Lieferanten bezogen werden. Im neuen Beispiel soll es die Möglichkeit geben, einen Artikel unter unterschiedlichen Bestellnummern bei verschiedenen Lieferanten zu beziehen. Die Tabelle artikel würde wie folgt erweitert:


artnr bestnr anz lnr ek vk

12

877

3

1

23

35

12

655

2

4

26

35

22

231

22

3

55

82

24

623

10

4

12

18

30

338

30

12

77

116

33

768

5

1

90

135

56

338

2

1

125

190

58

338

3

3

50

74

58

442

5

1

47

74

58

587

6

4

42

74

58

110

2

12

55

74

76

912

15

12

45

70


Sowohl der Artikel 12 als auch der Artikel 58 ist unter unterschiedlichen Bestellnummern und Einkaufspreisen bei verschiedenen Lieferanten zu beziehen. Die Tabelle artikel hat nun keinen Primärindex mehr im Feld artnr, da eine Artikelnummer mehrfach vorkommen kann.

Diese Daten legt man zur besseren Strukturierung in folgenden drei Tabellen an:

Tabelle lieferanten mit den Lieferantendaten:


lnr adr telnr vertr

1

Köln

162376

Mertens

3

Koblenz

875434

Mayer

4

Bonn

121265

Marck

12

Aachen

135543

Schmidt


Tabelle art_einzel mit den unterschiedlichen Daten pro Artikel und Lieferant:


artnr bestnr anz_einzel lnr ek

12

877

3

1

23

12

655

2

4

26

22

231

22

3

55

24

623

10

4

12

30

338

30

12

77

33

768

5

1

90

56

338

2

1

125

58

338

3

3

50

58

442

5

1

47

58

587

6

4

42

58

110

2

12

55

76

912

15

12

45


Tabelle art_gesamt mit den gemeinsamen Daten der Artikel:


artnr vk

12

35

22

82

24

18

30

116

33

135

56

190

58

74

76

70


Zweimal 1:n

Die Tabelle lieferanten ist über das Feld lnr mit der Tabelle art_einzel über eine 1:n-Relation verbunden. Die Tabelle art_gesamt ist über das Feld artnr mit der Tabelle art_einzel ebenfalls über eine 1:n-Relation verbunden.

Abbildung 8.2  Zwei 1:n-Relationen, eine m:n-Relation

Zwischen den beiden Tabellen lieferanten und art_gesamt gibt es eine m:n-Relation, da es zu jedem Lieferanten mehrere Artikelnummern und zu jeder Artikelnummer mehrere Lieferanten geben kann. Primärindizes gibt es in der Tabelle lieferanten auf lnr und in der Tabelle art_gesamt auf artnr.


Galileo Computing - Zum Seitenanfang

8.1.4 Übungen  topZur vorigen Überschrift

Bei den nachfolgenden Übungen sollen eigene, relationale Datenbanken übersichtlich »auf Papier« modelliert werden. Vermeiden Sie dabei Redundanzen und Inkonsistenzen. Kennzeichnen Sie Primärindizes und gegebenenfalls Sekundärindizes. Zeichnen Sie 1:n-Relationen und (falls vorhanden) m:n-Relationen ein.

Übung »Projektverwaltung«

Modellieren Sie eine eigene, relationale Datenbank projektverwaltung zur Verwaltung von Personal und Projekten innerhalb einer Firma. Folgende Basis-Informationen stehen Ihnen zur Verfügung und sollen in der Datenbank verfügbar sein:

  • Ein Mitarbeiter hat Name, Vorname und Personalnummer.
  • Ein Projekt hat Bezeichnung und Projektnummer.
  • Ein Mitarbeiter kann an mehreren Projekten innerhalb der Firma beteiligt sein.
  • Ein Projekt kann von einem oder mehreren Mitarbeitern bearbeitet werden.
  • Jeder Mitarbeiter notiert jeden Tag, wie viele Stunden er für welches Projekt gearbeitet hat.

Übung »Mietwagen«

Modellieren Sie eine eigene, relationale Datenbank mietwagen zur Verwaltung einer Mietwagenfirma. Folgende Basis-Informationen stehen Ihnen zur Verfügung und sollen in der Datenbank verfügbar sein:

  • Ein Fahrzeug hat Fahrgestellnummer, Kfz-Kennzeichen, gehört zu einer Preisklasse, hat einen Kilometerstand und einen Standort.
  • Die Mietwagenfirma hat mehrere Standorte. Gemietete Fahrzeuge können nur an der gleichen Station zurückgegeben werden.
  • Ein Kunde hat Name, Vorname, Adresse und eine Kundennummer. Er kann beliebig oft Fahrzeuge mieten.
  • Bei einem Mietvorgang sind wichtig: Zeitpunkt (Beginn und Ende), gewünschte Preisklasse, tatsächlich gemietetes Fahrzeug, Mietstation und gefahrene Kilometer.
  • Eine Preisklasse beinhaltet die Kosten pro Tag (bei 300 Freikilometern) und die Kosten für jeden zusätzlichen Kilometer.


Ihr Kommentar

Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen.






 <<   zurück
  Zum Katalog
Zum Katalog: Einstieg in Visual Basic 2008






Einstieg in Visual Basic 2008
bestellen
 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchtipps
Zum Katalog: Visual Basic 2008






 Visual Basic 2008


Zum Katalog: Einstieg in Visual C++ 2008






 Einstieg in
 Visual C++ 2008


Zum Katalog: Einstieg in Visual C# 2008






 Einstieg in
 Visual C# 2008


Zum Katalog: Visual C# 2008






 Visual C# 2008


Zum Katalog: Visual C# - Video-Training






 Visual C# -
 Video-Training


Zum Katalog: Einstieg in PHP 5 und MySQL 5






 Einstieg in PHP 5
 und MySQL 5


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo





Copyright © Galileo Press 2008
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Galileo Computing]

Galileo Press, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de