Relationales Datenmodell

From DHVLab

Revision as of 10:09, 21 July 2016 by Jschulz (talk | contribs) (Anmerkungen)

Das relationale Datenmodell organisiert Informationen in Gestalt von einer oder mehreren Tabellen. Die Bezeichnung rührt daher, dass Tabellen in der Fachsprache auch als „Relationen“ bezeichnet werden. Die Zeilen einer Tabelle werden auch "Datensatz" oder "Tupel" genannt, anstatt von Spalten spricht man auch von "Feldern", "Attributen" oder "Eigenschaften". Verknüpfungen/Beziehungen zwischen einzelnen Datensätzen werden über sogenannte "Schlüssel", die den Datensatz eindeutig identifizierbar machen, geschaffen.
(Stephan Lücke)

Datenbanken oder Excel?


Vermutlich sind Sie bereits mit einem Tabellenkalkulationsprogramm wie Excel vertraut. Letzteres eignet sich für die Verwaltung von (kleineren) Datensammlungen. Die grafische Benutzeroberfläche ermöglicht eine benutzerfreundliche Bearbeitung. Zeilen und Spalten können grafisch beliebig formatiert werden.
Für größere Datensammlungen sollten jedoch Datenbanken Anwendung finden. Die Bedienung erfolgt über Datenbanksprachen wie SQL. Die Arbeit mit den Datensätzen erfolgt entweder über relationale Datenbankverwaltungssysteme[A 1] (grafische Bedienoberfläche) wie MySQL oder unmittelbar über die Befehlzeile der Shell. Der entscheidende Vorteil von Datenbanken gegenüber Excel und Co. ist ihre Funktion als Schnittstelle zu Programmiersprachen wie JavaScript (via AJAX), PHP oder Python. Ihre Kombination bildet die Grundlage für die Schaffung von komplexen dynamischen Webinterfaces.

SQL-Umgebung (Server) im DHVlab


Die Steuerung der Datenbank erfolgt über das browserbasierte MySQL-Webinterface.
[Screenshot phpMyAdmin-Startseite]
Entscheidender Unterschied zu Excel: Die Daten werden über die jeweiligen Spaltennamen abgerufen, daher sind die Spaltennamen zur Steuerung der Datenbank von zentraler Bedeutung.
[Screenshot Tabellenstruktur]
Zunächst muss definiert werden, welche Datentypen in einer jeden Spalte enthalten sein dürfen. Es seien an dieser Stelle nur die gängigen Datentypen angeführt:

Datentyp Beschreibung
INT Integer, Ganzzahlen; Länge bestimmt Anzahl der Ziffern
FLOAT Floating, Gleitkommazahlen; Länge bestimmt A d. Z.
VARCHAR Various Character; Länge bestimmt die Anzahl der Buchstaben
LONGTEXT Langtext im Umfang von 4.294.967.295 Buchstaben
DATE Feld für Datumseinträge
PRIMARY(INT) Primärschlüssel, angelegt über Index, AutoIncrement aktivieren

(Tabelle nach Markus Frank)

Import einer CSV-Datei in die SQL-Umgebung


Durch Ihre Anmeldung im DHVlab wurde für Sie bereits eine persönliche Datenbank angelegt. Diese können Sie nun, ganz nach Ihren Forschungsinteressen bzw. den Kursvorgaben entsprechend, mit Inhalten füllen. Eine Möglichkeit stellt der Import einer CSV-Datei (Comma Separated Values) dar. Bei CSV handelt es sich um ein einfaches relationales Dateiformat, bei dem jede Zeile einen Datensatz darstellt. Jeder Datensatz wiederum besteht aus mehreren Spalten, die durch ein Komma getrennt sind. Die Daten jeder Spalte werden durch Anführungszeichen ("...") eingeschlossen. Eine CSV-Datei können Sie aus einer bestehenden Excel-Tabelle erzeugen ("Speichern unter").
Der SQL-Befehl zum Import einer CSV-Datei lautet wie folgt:

LOAD DATA LOCAL INFILE '[pfad]/[ergänzen]/dateiname.csv' INTO TABLE `tabellenname` FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n' IGNORE 1 ROWS;

Bedeutung der einzelnen Bestandteile:
LOAD DATA LOCAL INFILE: Pfad der Datei auf dem lokalen PC angeben
INTO TABLE: Zieltabelle angeben
FIELDS TERMINATED BY: Symbol zum Trennen der CSV-Felder
ENCLOSED BY: Symbol am Anfang und am Ende eines CSV-Feldes
LINES TERMINATED BY: Symbol am Ende des jeweiligen Datensatzes (\n = New Line)
IGNORE 1 ROWS: Ignoriert die erste Zeile, weil diese z.B. Metainformationen enthält.

Sie können eine CSV-Datei auch über die MySQL-Benutzeroberfläche importieren (siehe Screenshot).
[Screenshot phpMyAdmin-Importseite]


Mindestanforderungen an eine relationale Datenbank und die zwölf goldenen Regeln der Relationalität:
Mindestanforderungen und zwölf Regeln
Grundlegendes zu Relationalen Datenbanken
Cite error: <ref> tags exist for a group named "A", but no corresponding <references group="A"/> tag was found, or a closing </ref> is missing