4. Entwicklung von Software mit Datenbankzugriff 4.1 4.2 Prinzipien der Datenbankanbindung (Back-End-/Front-End-Lösungen) kennen Prinzipien der Datenbanknutzung in einer ausgewählten Entwicklungsumgebung unter Verwendung entsprechender Schnittstellen (ADO) mit 4.2.1 Datenzugriffskomponenten ADOTable, ADOQuery, DataSource (mind. Table, Query, DataSource) 4.2.2 Datensteuerungskomponenten DBEdit, DBGrid, DBText, DBMemo, DBNavigator 4.3 berufsbezogene Anwendungen zur Auswertung von Datenbanken am Rechner erstellen 4.1 Prinzipien der Datenbankanbindung (Back-End-/Front-End-Lösungen) kennen Frontend und Backend Im Zusammenhang mit Datenbanken tauchen auch die Begriffe Frontend und Backend auf. Diese Begriffe bezeichnen die verschiedenen Seiten einer Datenbankanwendung und des DBMS, das die Datenbankanwendung verwendet. Das Frontend ist der Teil einer Anwendung, der dem Menschen Zugriff auf die Daten oder die Strukturen einer Datenbank erlaubt – in der Sprache des vorigen Abschnitts also die Datenbankanwendung. Mit dem Frontend arbeitet in der Regel der Anwender eines Programms. Das Backend ist der Teil, den der Anwender nicht sieht und der sich im Hintergrund um die Prozesse auf dem Computer kümmert, die nötig sind, um Daten zu speichern und zu verändern – im Falle einer Datenbankanwendung also das DBMS. Je nach der Rolle, die jemand im Zusammenhang mit der Datenverarbeitung einnimmt, kann es verschiedene Frontends für dasselbe Backend geben. So arbeitet ein Datenbankadministrator wahrscheinlich mit einem anderen Frontend als jemand, der Daten in die Datenbank eingibt, oder jemand, der die Daten für eine Präsentation auswertet. Ein Frontend kann auch für verschiedene Rollen einheitlich sein. Umgekehrt kann ein Frontend auch auf verschiedene Backends zugreifen. Das Ziel ist, eine möglichst einheitliche Oberfläche und Arbeitsweise zu erreichen, unabhängig davon, welches Backend im Endeffekt die Datenverwaltung und -speicherung übernimmt. Sie können mit OpenOffice.org Base statt der internen Datenbank HSQLDB zum Beispiel auch MySQL als Backend verwenden. Damit es möglich ist, mit einem Frontend verschiedene Backends zu benutzen oder auf ein Backend mit verschiedenen Frontends zuzugreifen, ist eine Abstraktion nötig. Erreicht wird diese Abstraktion durch eine weitgehend vereinheitlichte Schnittstelle zwischen DBMS und Datenbankanwendung. Zur Kommunikation an dieser Schnittstelle wird die Datenbanksprache SQL (Structured Query Language) verwendet. SQL ist eine Sprache zur Datendefinition, Datenabfrage und Datenmanipulation. Sie wird von den meisten DBMS verstanden 4.2 Prinzipien der Datenbanknutzung in einer ausgewählten Entwicklungsumgebung unter Verwendung entsprechender Schnittstellen (ADO) mit Schnittstellen ODBC (Open DataBase Connectivity – „Offene Datenbank-Verbindungsfähigkeit“) ist eine standardisierte Datenbankschnittstelle, die SQL als Datenbanksprache verwendet. ODBC bietet also eine Programmierschnittstelle (API), die es einem Programmierer erlaubt, seine Anwendung relativ unabhängig vom verwendeten Datenbankmanagementsystem (DBMS) zu entwickeln, wenn dafür ein ODBC-Treiber existiert. ActiveX Data Objects ADO ist der Nachfolger von DAO (Data Access Objects). Mit ADO lassen sich nahezu alle gebräuchlichen Datenbanken ansprechen, wie z.B. Microsoft Access, SQLServer, Oracle oder Informix. Das ADO-Datenmodell besteht aus den 3 wichtigsten Komponenten: Connection ("Verbindung"): Muss den Ort und den Namen der angesprochenen Datenbank beinhalten und braucht für eine angesprochene Datenbank nur einmal definiert zu werden. Recordset ("Datensatz-Objekt"): Der Verbindung untergeordnetes und abhängiges Objekt das Daten in Form von Tabellen oder Abfragen zurückgibt. Command ("Befehls-Objekt"): Das Command-Objekt benötigt keine Connection. Damit lässt sich die Datenbank mit Befehlen wie z.B. UPDATE, CREATE TABLE, INSERT INTO, usw. ändern. Der Datenbankzugriff mit ADO weist gegenüber dem Vorgänger (DAO) wesentliche Verbesserungen in der Performance auf. Der Grund liegt bei ADO in der Verwendung der ODBC-Schnittstelle. Für die Festlegung des Datenbankzugriffs wird der OLE DB-Provider benötigt, der zur Neuerung von ADO gehört. Mit Hilfe des Providers kann dem Connection-Objekt mitgeteilt werden, auf welche Datenbank zugegriffen werden soll und um welche Version es sich dabei handelt. Der Wert wird dabei als String angegeben. Beispiel: "Microsoft.Jet.OLEDB.4.0" für Access 2000. 4.2.1 Datenzugriffskomponenten ADOTable, ADOQuery, DataSource (mind. Table, Query, DataSource) ADOTable Relevante Eigenschaften: Name,Connection,TableName, Funktionen: .Eof: Ende der Tabelle .delete: Datensätze Löschen .first erster Datensatz ADOTablekontakte.FieldByName('VNr').AsInteger = 1111 ADOTablekontakte.Next; ADOTableabrechnung.Last; ADOTableabrechnung.Insert; ADOTableabrechnung.FieldByName('VNr').AsInteger :=1112; // Änderungen abspeichern und neu einlesen ADOTableabrechnung.Post; ADOTableabrechnung.Close; ADOTableabrechnung.Open; ADOTablevertreter.Locate('VNr',vertreternr,[]); ADOTablevertreter.Next; ADOQuery Relevante Eigenschaften: Name,Active,SQL Funtkionen: AdoQuery.Active:=false; AdoQuery.SQL.Add(‘string'); AdoQuery.SQL.Clear; AdoQuery.Active:=true; DataSource Relevante Eigenschaften: Name,Dataset 4.2.2 Datensteuerungskomponenten DBEdit, DBGrid, DBText, DBMemo, DBNavigator DBEdit Eigenschaften: Datafield,Datasource,Name DBGrid Eigenschaften: Datasource,Name Weitere Infos: siehe Arbeitsblätter 4.3 berufsbezogene Anwendungen zur Auswertung von Datenbanken am Rechner erstellen