Relationale Datenbanken - Überblick AHS, LK Inf 13/1, Lue / SZR, Cs Relationale Datenbanken Daten können auf verschiedene Arten strukturiert abgespeichert werden, z.B. könnte man die Daten nach einer Baumstruktur geordnet ablegen. Für große Datenmengen hat sich heutzutage das relationale Datenmodell durchgesetzt, bei dem die Daten in Tabellen abgespeichert werden. „Relation“ ist eine mathematische Bezeichnung für eine Tabelle. Daher der Name relationale Datenbanken. Ein Programmierer kann nicht nur die Daten einzelner Tabellen abfragen. Relationale Datenbanksysteme besitzen auch die Fähigkeit Tabellen zu verknüpfen und auf diese Weise komplexere Informationen zu generieren. Nahezu alle bekannten Datenbanksystem arbeiten heute nach dem relationalen Modell. Datenbanksysteme Computerprogramme zur Beschreibung, Speicherung und Wiedergewinnung Datenmengen nennt man Datenbanksysteme. Bekannte Datenbanksysteme sind: von umfangreichen _______________________________________________________________________________ SQL – Structured Query Language SQL hat sich als Standardsprache für die Zugriffe auf relationale Datenbanken durchgesetzt und wird von allen gängigen Datenbanksystemen unterstützt. SQL ist keine imperative Programmiersprache wie Java, JavaScript oder VBA, sondern eine Art Abfragesprache mit der man Datenbanken erstellen und die Einträge in Datenbanken abfragen kann. Wenn man mit einer Programmiersprache wie z.B. Java oder PHP einen Datenbank-Client programmiert, dann werden die SQL-Befehle zur Steuerung der Datenbank in die Programmiersprache „eingebettet“, d.h. man wendet innerhalb der Programmiersprache SQL-Befehle an. Organisation eines Datenbankmanagementsystems (DBMS): Ein Eintrag in der Tabelle, der genau zu einer Zeile und einer Spalte gehört, heißt Datum (Einzahl von Daten) oder Datenwert. Die Datumswerte in einer Zeile der Tabelle bilden zusammen einen Datensatz (engl. record). Front End und Back End Die Software innerhalb eines Datenbanksystems, welche die Eingabe, Verwaltung und Ausgabe von Daten ermöglicht, nennt man Datenbankmanagementsystem (DBMS). Das DBMS wird auch Back End genannt, weil der Benutzer die Daten abfragt und sieht, ohne zu wissen, auf welchem Rechner sich die Datenbank eigentlich befindet und um welches DBMS es sich dabei handelt. Mit dem Datenbank-Front End führt der Benutzer hingegen die Abfrage und Manipulation der Datenbank durch. Damit er das kann, muss ein Front End immer eine Verbindung („Connection“) zu „seinem“ Back End aufbauen. In euren Übungen wird das in XAMPP enthaltene MySQL das Back End sein, und das Programm „MySQL Control Center“ ist euer Front End. (Übrigens: Der Benutzer muss nicht notwendigerweise SQL können. Viele DatenbankBenutzer können kein SQL, z. B. in Reisebüros. In der Praxis ist es üblich, dass ein Programm die FrontEnd-Funktion übernimmt, das GUI-Elemente für die Benutzereingabe anzeigt und dann daraus SQLBefehle generiert. Im Internet ist es sogar ganz normal, dass die Benutzereingabe erst einmal an ein anderes Programm, das auf dem Webserver liegt, übermittelt wird. Dieses generiert dann SQL-Befehle aus der Benutzereingabe, kommuniziert mit dem DBMS und erzeugt anschließend HTML-Code, um dem Benutzer das Ergebnis mitzuteilen. Das Programm ist meistens in PHP geschrieben.) Der Zugriff vom Frontend auf das Backend erfolgt mit SQL Alle Datenbank-Frontends benutzen SQL für die Abfrage und Manipulation ihres Back Ends. Das DBMS kann man sich als eine unbekannte Maschine vorstellen, von der man nicht mehr weiß (und auch nicht mehr wissen muss), als dass sie SQL-Befehle verarbeiten kann. SQL ist eine deskriptive Programmiersprache: Mit SQL legt man nur fest, was das DBMS tun soll. Wie es das tut, bleibt dem DBMS überlassen. (Letztlich wird die Maschine dafür Kontrollstrukturen benutzen müssen, weil ein Computer nichts anderes kann.)