9: Datenbanken. Vergleich: Dateien und Datenbanken (1)

9: Datenbanken Inhalt:      Dateien vs. Datenbanken Datenbanken: Tabellen, Attribute und Datentyp Datenmodellierung und Normalformen einer Daten...
Author: Gerd Bruhn
2 downloads 1 Views 376KB Size
9: Datenbanken Inhalt:     

Dateien vs. Datenbanken Datenbanken: Tabellen, Attribute und Datentyp Datenmodellierung und Normalformen einer Datenbank Structured Query Language SQL Zugriff aus einer C++ -Anwendung auf eine Datenbank

Peter Sobe

1

Vergleich: Dateien und Datenbanken (1) Dateien:  sind benannte Objekte, die eine Speicherung von Anwendungsdaten auf einem linearen Adressraum zulassen  Persistente Speicherung, d.h. Daten bleiben nach Beendigung der Anwendung und auch nach Abschalten des Systems erhalten  Dateisystem als Teil des Betriebssystems sorgt für Zugriff mit Dateinamen, Verzeichnisse, Pufferung, Zugriffsschutz  Datei-Daten können beliebig strukturiert sein:  Binärdaten  Textdaten (lesbarer Text)  XML Datenformate  es werden keine Regelmäßigkeiten der abgespeicherten Datenstrukturen vorausgesetzt. Peter Sobe

2

Vergleich: Dateien und Datenbanken (2) Dateien (Fortsetzung):  Wenn Daten eine Struktur bzw. Regelmäßigkeiten aufweisen, so wird dieser Umstand nicht vom Dateisystem gespeichert und nicht verwaltet.  Hinweis auf Typ/Struktur der Datei über Dateityp, z.B. bild.jpg ist eine Bilddatei im JPEG-Format … aber nicht mehr  Zugriff auf Daten in vollständiger Kontrolle des Anwendungsprogramms  Konkurrierende Zugriffe durch mehrere Anwendungen sind nicht berücksichtigt und werden höchstens durch Sperren der gesamten Datei vermieden.

Peter Sobe

3

Vergleich: Dateien und Datenbanken (3) Datenbanken:  Tabellen mit gleichartig aufgebauten Datensätzen  Beziehungen zwischen Tabellen durch geeigneten Datenbankentwurf  Zugriff entweder durch Satzzugriff auf einzelne Sätze einer Tabelle  oder Zugriff durch eine Abfragesprache (SQL)  Die Datenbank-Tabellen werden als Dateien gespeichert, oder als Image auf einem Speichermedium, ein direkter Zugriff über Datei-Operation ist aber nicht vorgesehen.  Die regelmäßige Struktur der Daten wird in der Datenbank gespeichert und zur Steuerung der Zugriffe ausgenutzt.

Peter Sobe

4

Vergleich: Dateien und Datenbanken (4) Datenbanken (Fortsetzung):  Ein Datenbank-Management-System dient zur Laufzeit dem Zugriff auf die Datenbank. Das sind i.d.R. Serverprozesse, die im Hintergrund ausgeführt werden.  Persistente Speicherung, d.h. Daten bleiben nach Beendigung der Anwendung und auch nach Abschalten des Systems erhalten (wie Dateien)  Konkurrierende Zugriffe erlaubt, Verhalten bei Konflikten durch Transaktionen geregelt

Peter Sobe

5

Begriffe für Datenbanken Datenbank

DB-Server

Metadaten (Data Dictionary),

daten-modellbezogen

Peter Sobe

organisatorische Da-ten (Schlüs-sel, Indexdateien, ...), bezogen auf internes Schema

reale Daten

Installation Nutzerverwaltung

bezogen auf externes Schema

Datenbanksoftware

organisatorische Festlegung zum Datenbankbetrieb (DatenbankAdministrator)

Datenbasis

Hardware

Datensicherheit

Datenbankbetriebssystem

(DBMS)

Datenbanksprache

Nutzerprogramme

Entwicklungsumgebung

SQL

6

Tabellen, Attribute und Datentyp Tabellenname

Attribut Tupel, auch Datensatz oder Zeile

Wetter Ortsnr

Ortsname

Temperatur

Luftdruck

1

Dresden

22

1012

2

Leipzig

20

1010

3

Berlin

25

998









Wert mit einem speziellen Datentyp, der je Attribut definiert ist Peter Sobe

7

Tabellen, Attribute und Datentyp Eine Datenbank besteht oft aus mehreren einzelnen Tabellen, die Referenzen aufeinander beinhalten können. Orte Ortsnr

Name

geogr. Breite

Geogr. Länge

Höhe

1

Dresden

51,05

13,74

113

2

Leipzig

51,34

12,37

118

3

Berlin

52,52

13,41

34











Beispiel: Tabelle Orte und Tabelle Wetter Bezug über gleiche Ortsnr.

Wetter

Peter Sobe

Datum

Zeit

Temperatur Ortsnr Luftdruck

1-1-2013

17:01:24

-5

1

1012

1-1-2013

17:04:00

-4.9

2

1010

1-1-2013

17:00:01

3.1

3

998











8

Tabellen als so genannte Relation Die mathematische Modellierung von Datenbanken und Zugriffsoperationen kann über das Relationale Datenmodell (Codd 1970) erfolgen. Es basiert auf dem mathematischen Relationenbegriff. Durch die Einfachheit (Tabellensicht) und klare mathematische Basis konnte sich das relationale Modell in der Entwicklung der Datenbanktechnologie seit 1970 durchsetzen. Entity-Relationship-Modell (Chen 1976) dient zur Datenmodellierung, d.h. zur Entscheidung wie Dinge und Beziehungen auf Tabellen abgebildet werden. Peter Sobe

9

Definition der mathematischen Relation (1) (mathematische) Definition der Relation: Gegeben seien die nichtleeren Mengen W1, W2, ... Wn mit W1xW2x...xWn = {(w1,w2,...,wn) | wi є Wi (i=1,2,...,n)} Dann ist jede nichtleere Teilmenge R  W1xW2x...xWn eine n-stellige Relation über W1, W2, ..., Wn . Die Wi müssen nicht alle paarweise verschieden sein. Ein Tupel (w1,w2,...,wn) = (1; 1-1-2013; 17:01:24; -5; 1020). könnte z.B. zu R gehören. Als Trennzeichen zwischen den Tupelwerten wurde das Semikolon verwendet, da das Komma in Dezimalzahlen vorkommen kann. Für das obige Beispiel wären die Mengen Wi konkret festgelegt: W1 ganze Zahl (int), W2 Datum, W3 Zeit, W4 und W5 Fließkommazahl.

Peter Sobe

10

Wertebereiche, Eigenschaften und Relationenformat (1) Wir deuten jetzt die Mengen Wi als Wertebereiche und die wi є Wi als Werte und verbinden die Wi , genauer das Kreuzprodukt W1xW2x...xWn , mit einer Interpretation I E={E1,E2,...,En } = I(W1xW2x...xWn ) für i=1,2,...,n Diese Ei werden als Eigenschaften (Attribute) von Entitäten gedeutet. Für das obige Beispiel wären die Eigenschaften Ei wie folgt gedeutet: E1 Datum, E2 Uhrzeit, E3 Ortsnr(Identifikation des Orts), E4 Temperatur , E5 Luftdruck. E nennt man Relationenformat. Mit diesem Format würde das Tupel (1-1-2013; 17:01:24; 1; -5; 1020) die Entität einer Wettermessung an einem bestimmten Ort und zu einer bestimmten Zeit eindeutig charakterisieren. Peter Sobe

11

Wertebereiche, Eigenschaften und Relationenformat (2) In Datenbanken ist es möglich, dass ein Wert fehlt, d.h. undefiniert ist. Dieser Fall wird durch den (Sonder-)Wert NULL angezeigt. Definition: Eine Relation R= R(E1,E2,...,En) ist eine Menge von Tupeln, wobei R der Name der Relation, E={E1,E2,...,En } das Relationenformat und die Ei (i=1,2,...,n) die Eigenschaften sind, deren Werte wi aus den zugeordneten Wertebereichen Wi stammen müssen. Die Ei , die zu einer Relation gehören, müssen paarweise verschieden sein. Ist r ein Tupel der Relation, bezeichnet wi = r.Ei den Wert der i-ten Eigenschaft des Tupels r є R (W1xW2x...xWn ). n heißt Grad der Relation. Eine Relation ist eine Tabelle, die besondere Eigenschaften aufweist … Peter Sobe

12

Charakteristische Eigenschaften der Relation Eine Relation hat folgende charakteristische Eigenschaften: 1. R ist eine Menge. Damit gibt keine paarweise identischen Tupel. R hat deshalb einen Primärschlüssel, der jedes Tupel eindeutig identifiziert. 2. R ist eine Menge. Deshalb ist die Reihenfolge der Tupel in R ohne Belang. 3. Die Reihenfolge der Eigenschaften Ei in R ist ohne Belang. 4. Die Eigenschaftswerte wi = r.Ei mit r є R müssen einfach sein, d.h. dürfen nicht mengenwertig oder nicht strukturiert sein. wi = NULL ist aber möglich. Primärschlüssel PS : PS  E und PS ist in E identifizierende Eigenschaft bzw. Eigenschaftskombination, d.h. jedes Tupel r є R hat einen eindeutigen PS-Wert psr=r.PS und psr ≠ NULL. Peter Sobe

13

Datenmodellierung und Normalformen einer Datenbank(1) In der Regel werden Diskursbereiche durch mehrere Relationen (Tabellen) abgebildet. Ziele:  Vermeiden von Redundanz in Relationen  Vermeiden von Inkonsistenzen  Effizienzsteigerung, wenn nur wirklich benötigte Daten gelesen werden, bzw. nur die Informationen in wenigen Tupeln aktualisiert werden müssen. Beispiel: eine Datenbank über Verkäufe, eine Tabelle ‘Gesamt‘ Gesamt Verkaufs-Nr.

Produkt

Einzelpreis

Anzahl

Käufer

Käufer-Adresse













Peter Sobe

14

Datenmodellierung … (2) Gesamt Verk.-Nr.

Produkt

Einzelpreis

Anzahl

Käufer

Käufer-Adresse

1

Tomate

0.20

4

Heidi

33333 Wiesenhain, Am Waldrand 1

2

Apfelsaft

1.40

2

Heidi

33333 Wiesenhain, Am Waldrand 1

3

Katzenfutter

2.30

1

Kurt

33221 Bachhagen, Hauptstr. 23

4

Apfelsaft

1.40

3

Kurt

33221 Bachhagen, Hauptstr. 23

5

Gurke

0.55

1

Peter

33200 Feldstadt Am Markt 5

6

Tomate

0.20

8

Peter

33200 Feldstadt Am Markt 5

7

Bier

0.78

4

Kurt

22331 Bachhagen, Hauptstr. 23













Redundanzen und Inkonsistenz

Peter Sobe

15

Datenmodellierung … (3) Produkte

Verkaeufe

Produkt-ID

Name

Preis

T

Tomate

0.20

42

A

Apfelsaft

1.40

2

42

K

Katzenfutter

2.30

K

1

20

G

Gurke

0.55

4

A

3

20

B

Bier

0.78

5

G

1

17



6

T

8

17

Kunden

7

B

4

20

Käufer-ID

Name

Adresse









17

Peter

33200 Feldstadt Am Markt 5

20

Kurt

33221 Bachhagen, Hauptstr. 23

42

Heidi

33333 Wiesenhain, Am Waldrand 1







Verk. Nr.

ProduktID

Anzahl

1

T

4

2

A

3

Käufer-ID

 Redundanz ist jetzt beseitigt  Inkonsistenzen können jetzt nicht mehr auftreten Peter Sobe



16

Normalformen (1) Ziele:  Vermeiden von Redundanz in Relationen – bei ungünstiger Struktur der Tabellen würde gleiche Information u.U. mehrfach gespeichert. Eine Strukturierung entsprechend der dritten Normalform verhindert das.  Vermeiden von Anomalien – bei ungünstigem Entwurf können Informationen u.U. ungewollt verloren gehen.

Peter Sobe

17

Normalformen (2) Verk.-Nr.

Produkt

Einzelpreis

Anzahl

Käufer

Käufer-Adresse













Anomalien:  Einfügeanomalie – Neue Sachverhalte können nicht eingefügt werden. Im Beispiel oben kann keine neues Produkt mit einem Preis eingefügt werden, ohne einen Kaufvorgang zu beschreiben.  Löschanomalie – Das Löschen von Kaufvorgängen bedingt u.U. den Verlust von Produktinformationen und Käuferdaten.  Änderungsanomalie – Das Abändern eines Sachverhalts verlang oft das Ändern vieler Datensätze (bei Redundanz von z.B. Käufer-Adressen) Peter Sobe

18

Zweck der Normalformen Ein Datenbankentwurf nach dem Entity-Relationship-Modell bringt die Tabellen automatisch in eine redundanzfreie und anomaliefreie Struktur. Existierender Datenbestand

ERModell

Umstrukturierter Datenbestand Redundanzfreie und anomaliefreie Datenbank

regelbasierter Entwurf (hier nicht gezeigt)

Herstellung der Normalformen

Für existierende Datenbanken können Probleme behoben werden, indem das Vorhandensein der Normalformen geprüft wird und diese durch Umstrukturierung der Tabellenstruktur hergestellt werden. Peter Sobe

19

Erste Normalform (1) Eine Tabelle ist in der ersten Normalform (1NF), falls die Wertebereiche der Merkmale atomar sind. 1NF verlangt, dass jedes Merkmal Werte aus einem unstrukturierten Wertebereich aufnimmt. Damit dürfen keine Mengen, Aufzählungstypen oder Wiederholungsgruppen in den einzelnen Merkmalen vorkommen. Beispiel für eine nicht erfüllte 1NF: Matrnr

Name

Vorname

Studiengänge

11

Schmidt

Robert

{Mathemetik, Physik}

47

Schulze

Klaus

{Sport, Erziehungswissenschaften}

78

Peters

Karoline

{Informatik}

Peter Sobe

20

Erste Normalform (2) Beispiel mit atomarem Wertebereich für Studiengang Matrnr

Name

Vorname

Studiengang

11

Schmidt

Robert

Mathematik

11

Schmidt

Robert

Physik

47

Schulze

Klaus

Sport

47

Schulze

Klaus

Erziehungswissenschaften

78

Peters

Karoline

Informatik

Peter Sobe

21

Zweite Normalform (1) Eine Tabelle ist in der zweiten Normalform (2NF), wenn sie in 1NF ist und wenn jedes Nichtschlüsselmerkmal von jedem Schlüssel voll funktional abhängig ist. Voll funktional abhängig bezieht sich auf zusammengesetzte Schlüssel (S1,S2) von denen alle Nichtschlüsselmerkmale abhängig sind: (S1,S2) -> N Sie dürfen dabei aber nicht funktional abhängig von einem Teilschlüssel sein, z.B. S1->N Im Beispiel sind Name und Vorname Nichtschlüsselmerkmale, der Schlüssel setzt sich aus Matrnr und Studiengang zusammen. (Matrnr, Studiengang) -> Name aber auch Matrnr -> Name … damit keine 2NF

Peter Sobe

22

Zweite Normalform (2) Herstellung der zweiten Normalform (2NF): Tabellenteilung Alle Merkmale, die von einem Teilschlüssel abhängig sind werden in eine eigene Tabelle ausgegliedert. Matrnr

Name

Vorname

Matrnr

Studiengang

11

Schmidt

Robert

11

Mathematik

47

Schulze

Klaus

11

Physik

78

Peters

Karoline

47

Sport

47

Erziehungswissenschaften

78

Informatik

Peter Sobe

23

Dritte Normalform (1) Eine Tabelle ist in der dritten Normalform (3NF), wenn sie in 2NF ist und kein Nichtschlüsselmerkmal von irgendeinem Schlüssel transitiv abhängig ist Ein Beispiel für nicht erfüllte 3NF: Matrnr

WohnPLZ

Wohnort

11

01217

Dresden

47

01219

Dresden

78

14197

Berlin

89

14197

Berlin

95

01217

Dresden

Peter Sobe

Matr nr

Wohn PLZ

Wohn ort

Wohnort tritt redundant auf. 24

Dritte Normalform (2) Überführung in dritte Normalform (3NF), indem transitiv abhängiges Merkmal in eine neue Tabelle ausgegliedert wird. Das Merkmal von dem die letzte Stufe der Abhängigkeit ausgegangen ist, wird als Fremdschlüssel in die neue Tabelle aufgenommen. Matrnr

WohnPLZ

PLZ

Ort

11

01217

01217

Dresden

47

01219

14197

Berlin

78

14197

01219

Dresden

89

14197

95

01217

Peter Sobe

25

Datenbankanfragen und -operationen mittels SQL Über den verschiedenen Tabellen einer Datenbank werden Operationen ausgeführt, die immer wieder eine Tabelle als Ergebnis zurückgeben. Mathematisch modelliert durch Relationenalgebra, mit Operationen wie z.B.:  Projektion  Selektion  Kreuzprodukt  Join (in verschiedenen Varianten)

Peter Sobe

26

SQL SQL: Structured Query Language  Datenbankspezifische Manipulations- und Abfragesprache  Eine Deklarative Sprache – Man beschreibt das Ziel der Operation, Unterschied gegenüber imperativer Programmierung, wie z.B. mit C/C++  In den siebziger Jahren entwickelt, inzwischen ISO-Norm  Weit verbreitet: MS-ACCESS, MS-SQL-Server, mySQL u.v.a.m. Abfrage-Grundform: SELECT … FROM … WHERE …;

Peter Sobe

27

Operationen auf Relationen - Projektion Die Projektion ist eine der am meisten benutzten relationalen Operationen. Es wird dabei auf eine Teilmenge von Eigenschaften des Relationenformats einer Relation R projiziert. Projektion: Es sei R eine Relation mit dem Relationenformat E. Dann heißt Π Ea,Eb,Ec,... ( R ) = { (r.Ea, r.Eb, r.Ec,...) | r є R UND {Ea,Eb,Ec,...}  E } die Projektion von R auf die Eigenschaften {Ea,Eb,Ec,...} . Die Projektion wird in SQL in der SELECT-Klausel kodiert. Die projizierten Eigenschaften werden hinter SELECT als Liste angegeben. Wird keine Projektion durchgeführt, d.h. es sind alle Eigenschaften des Relationenformats ausgewählt, wird dies in SQL durch einen Stern (*) anstelle der Liste angegeben. Beispiel: SELECT Name, Preis FROM Produkte; Peter Sobe

28

Operationen auf Relationen – Selektion (1) Die Selektion ist eine der am meisten benutzten relationalen Operationen. Es wird dabei ein Prädikat P über Eigenschaften des Relationenformats einer Relation R gebildet. Nur Tupel r є R , für die das Prädikat erfüllt ist, werden in die Ergebnisrelation Σ( R ) aufgenommen. Selektion: Es sei R eine Relation mit dem Relationenformat E. Dann heißt Σ ( R ) = { r | r є R UND P(r)=wahr } die Selektion von r bezüglich des Prädikates P. Beispiel: SELECT * FROM Produkte WHERE Preis>5;

Peter Sobe

29

Operationen auf Relationen – Selektion (2) Das Prädikat P wird in SQL in der WHERE-Klausel kodiert. Beispielhaft sollen hier einige Möglichkeiten für die Nutzung von Prädikaten angegeben werden. Vergleichsausdrücke: Gehalt>=2000 AND Geschlecht= ‘m‘ YEAR(Geburtstag)100) GROUP BY Bundesland Ergebnis: Bundesland Sachsen Thüringen

Peter Sobe

Expr1001 1381750 408000

Hier werden nur jene Städte ausgewertet, die höher als 100 Meter liegen. 46

Weitere SQL-Beispiele (1) Ausgangsbasis ist die Datenbank firma.mdb.

Frage: Anzahl der Personen, die in ihren Räumen selbst Raumverantwortliche sind?

SELECT Count(ID) FROM personen AS p, raeume AS r WHERE p.Raumnr = r.Raumnr AND ID=Rverantw Peter Sobe

47

Weitere SQL-Beispiele (2)

Frage: Alle Abteilungsleiter und die jeweilige Anzahl der unterstellten Personen. SELECT Abtleiter, COUNT(ID) FROM abteilungen AS a , personen AS p WHERE a.Abtnr = p.Abtnr AND a.Abtleiter p.ID GROUP BY Abtleiter

Peter Sobe

48

Weitere SQL-Beispiele (3)

Frage: Alle Abteilungsleiter, die mindestens eine andere Person in ihrer Abteilung leiten. SELECT Vorname, Famname FROM personen WHERE ID IN (SELECT DISTINCT Abtleiter FROM abteilungen AS a , personen AS p WHERE a.Abtnr = p.Abtnr AND a.Abtleiter p.ID)

Peter Sobe

49

Weitere SQL-Beispiele (4)

Frage: Maximale Anzahl Personen, die in einem Raum arbeiten. Erster Schritt … Anzahl von Personen gruppiert nach Raumnr SELECT Count (ID) FROM personen GROUP BY Raumnr Zweiter Schritt …erste Abfrage als Unterfrage SELECT Max( Count (ID) ) FROM (SELECT Count (ID) FROM personen GROUP BY Raumnr) Peter Sobe

50

Weitere SQL-Beispiele (5) Zweiter Schritt …erste Abfrage als Unterfrage SELECT Max( Count (ID) ) FROM (SELECT Count (ID) FROM personen GROUP BY Raumnr) … mit MS-Access wird angezeigt: Fehler: Aggregatfunktion im Ausdruck (Max(COUNT(ID))) nicht möglich Lösung über Aliasnamen: SELECT Max(x) FROM (SELECT Count(ID) AS x FROM personen GROUP BY Raumnr)

Peter Sobe

51

Tabellen-Manipulation mittels SQL (1) SQL – Erzeugen neuer Tabellen: Create Table Allgemeine Form: CREATE TABLE "Tabellen_Name" ("Spalte1" "Datentyp_für_Spalte1", "Spalte2" "Datentyp_für_Spalte2", ... ) Beispiel: CREATE TABLE Bahnstrecke (Von CHAR, Nach CHAR, Distanz INTEGER) Einfügen neuer Tupel mittels Insert Into: Allgemeine Form: INSERT INTO "Tabellen_Name" ("Spalte1", "Spalte2", ...) WertS ("Wert1", "Wert2", ...) Allgemeine Form: INSERT INTO Bahnstrecke (Von, Nach, Distanz) VALUES (‘Dresden‘, ‘Berlin‘, 185) Peter Sobe

52

Tabellen-Manipulation mittels SQL (8) SQL – Ändern einzelner Werte: Update Allgemeine Form: UPDATE "Tabellen_Name„ SET "Spalte1" = [Wert] WHERE {Bedingung} Beispiel: UPDATE Staedte SET Einwohner=524000 WHERE Stadt=‘Dresden‘ Es ist immer eine Selektion eines (oder mehrerer) Tupel vorzunehmen, die geändert werden sollen.

Peter Sobe

53

Tabellen-Manipulation mittels SQL (8) SQL – Löschen einzelner Tupel einer Tabelle: Delete From Allgemeine Form: DELETE FROM "Tabellen_Name“ WHERE “Bedingung“ Beispiel: DELETE FROM Bahnstrecke WHERE Von=‘‘Cottbus‘ AND Nach=‘Dresden‘ Löschen einer Tabelle oder eines Views: Drop bzw. Truncate Allgemeine Form: DROP TABLE "Tabellen_Name" Wird von Access nicht unterstützt, DELETE stattdessen TRUNCATE TABLE "Tabellen_Name“ Nur die Daten (Tupel) werden gelöscht. Das Tabellenformat bleibt bestehen. Peter Sobe

54

Zugriff aus einer C++ -Anwendung auf eine Datenbank (1) Aufbau einer OLEDB-Verbindung (siehe Vorführung Beispiel der Datenbank auf Folie 22) using namespace System; int main(array ^args) { String^ connectionString="Provider=Microsoft.ACE.OLEDB.12.0; Data Source=c:\\Temp\\laden.accdb;Persist Security Info=False"; System::Data::OleDb::OleDbCommand ^command; System::Data::OleDb::OleDbDataReader ^reader; System::Data::OleDb::OleDbConnection^ connObj = gcnew System::Data::OleDb::OleDbConnection(connectionString);



Peter Sobe

55

Zugriff aus einer C++ -Anwendung auf eine Datenbank (2) Ausführen eines SQL-Kommandos und anschließendes Auslesen der Resultate mit einem s.g. „reader“-Objekt … Console::WriteLine(L"Connection to Database"); try { connObj->Open(); command = connObj->CreateCommand(); command->CommandText = "SELECT * FROM kunden"; reader = command->ExecuteReader();

Achtung: Das ist s.g. managed C++ unter .NET mit zum Teil noch nicht eingeführten C++ Erweiterungen.

while (reader->Read()) { Console::Write(reader->GetInt32(0)); Console::Write("\t"); Console::Write(reader->GetString(1)); Console::Write("\t"); Console::WriteLine(reader->GetString(2)); } reader->Close(); } catch(System::Data::OleDb::OleDbException^ ex) { Console::WriteLine(ex->Message); } connObj->Close(); return 0; } Peter Sobe

56

Zugriff aus einer C++ -Anwendung auf eine Datenbank (3) Prinzip:  Das C/C++-Programm stellt eine Verbindung zur Datenbank her  Ein Kommando wird als SQL- Anweisung zur Datenbank gesendet  Die Ergebnisse werden durch das C/C++ Programm verarbeitet  Das Schreiben von Daten in die Datenbank erfolgt auch über ein SQLKommando (SQL INSERT …)  Sämtliche Such-, Auswahl- und Verknüpfungsoperationen werden durch entsprechende SQL-Anweisungen der Datenbanksoftware übergeben.  Das Anwendungsprogramm muss diese Operation nicht implementieren, es wertet ausschließlich die Ergebnisse aus. Peter Sobe

57