Was ist SQLite? Relationale Datenbanksysteme

Beispi elprojekte - Datenbankprogrammierung – SQLite mit Delphi www.delphi-treff.de 185 verwendet wird. SQL erlaubt es, bestimmte Daten aus der Datenbank abzufragen, aber auch neue Daten hinzuzufügen, bestehende zu verändern und auch ganze Tabellen anzulegen oder zu entfernen. SQL wird von allen großen Datenbankservern Oracle, DB2, MS SQL Server, Interbase usw. unterstützt. Diese Datenbankserver sind allerdings nicht Inhalt dieses Kapitels. Vielmehr soll ein Einblick in die Arbeit mit SQLite gegeben werden. 7.2.3. Was ist SQLite? SQLite ist ein relationales Datenbankmanagementsystem. Es unterstützt den Großteil der im SQL-92-Standard festgelegten SQL-Sprachbefehle. SQLite kommt ohne Datenbankserver aus. Die Datenbank wird als Datei abgelegt, was einen Vorteil gegenüber MySQL darstellt. Es sind keine umständlichen Server-Installationen notwendig, es muss nur die SQLite-DLL mitgeliefert werden, was von den Machern des Datenbanksystems erlaubt ist. Mehr und aktuelle Informationen dazu findet man auf der Website des Projektes http:sqlite.org . SQLite ist für den Einsatz innerhalb einer Anwendung, also ohne Server, entworfen und findet Verwendung in bekannten Produkten von Apple, Mozilla, Adobe, Microsoft und Google. Auch die teilweise in Delphi geschriebene Videotelefonie-Anwendung Skype setzt auf SQLite. Es existieren mehrere Delphi-Wrapper um die SQLite-DLL. Bei einem Wrapper handelt es sich um eine Zwischenschicht, die sich einfach in einer Programmiersprache bei uns Delphi verwenden lässt und die Aufrufe intern übersetzt in die Form, wie die DLL sie erwartet. In diesem Kapitel wird die Verwendung des SQLiteSimpleDelphi-Wrappers von Tim Anderson demonstriert. Erhältlich ist sein Wrapper auf seiner Website unter http:www.itwriting.comblog?page_id=659 .

7.2.4. Relationale Datenbanksysteme

Ein relationales Datenbanksystem besteht, wie oben bereits erwähnt, aus Tabellen Relationen, die über sogenannte Fremdschlüsselbeziehungen miteinander verknüpft sind. Ein simples Beispiel für eine Fremdschlüsselbeziehung ist folgendes: Für eine kleine Bücherei soll ein Ausleihsystem implementiert werden. Dazu benötigen wir in der Datenbank eine Tabelle mit Büchern, eine mit den Daten der Leser und eine, in der steht, welcher Leser welche Bücher ausgeliehen hat. Also in etwa so auf die Details kommt es nicht an, es geht mehr um das grundsätzliche Vorgehen: Tabelle Buch Titel Autor Tabelle Leser Name Adresse Beispi elprojekte www.delphi-treff.de 186 Jetzt stellt si h die F age, ie die Ta elle „Ausleihe auszusehe hat. Diese e i det ja die Lese it de Büchern, die sie ausgeliehen haben. Dazu müssen die Bücher und die Leser zunächst einmal eindeutig identifizierbar gemacht werden. Der Buchtitel reicht dafür nicht aus, weil dieser nicht eindeutig ist. Die ISBN wäre geeignet, allerdings bieten Bibliotheken häufig ja auch andere Medien wie CDs oder Zeitschriften an. Bei den Lesern besteht das gleiche Problem. Namen sind nicht eindeutig. Deshalb bekommen beide Tabellen eine zusätzli he “palte „ID e passt. Die ID i d ei e fo tlaufe de ahl sei . Date a k a age e ts ste e iete in der Regel einen entsprechenden Automatismus an, so dass man sich als Entwickler nicht selbst um das Hochzählen der IDs kümmern muss. Diese IDs, die jeden Datensatz einer Tabelle eindeutig identifizierbar machen, nennt man Primärschlüssel. Nu i d au h kla e , ie die Ta elle „Ausleihe aussehe kö te. We Ma Muste a ID das Bu h „Delphi “ta te ID ausleiht, uss ei fa h ei Date satz it diese eide I fo atio e a gelegt e de kö e . Natü li h kopie e i i ht die Date aus de Ta elle „Bu h u d „Lese so st hätte i einiges zu ändern, wenn Max Mustermann umzieht, sondern speichern nur die IDs des Buchs und des Lesers. Das e t a „Fremdschlüssel , da si h de We t auf de P i ä s hlüssel ei e f e de Ta elle ezieht. Die Ta elle „Ausleihe kö te also so aussehe : Tabelle Ausleihe Leser-ID Fremdschlüssel Buch-ID Fremdschlüssel Ausleihdatum Rückgabedatum

7.2.5. Wichtige SQL-Befehle