SQL und 'relational'

Hi !

Ich verstehe nicht ganz, was an SQL (mySQL) das „relational“ bedeutet. Ich habe über 1:n, 1:1 und n:m Beziehungen gelesen, aber wirklich verstehen kann ich das ganze nicht. Kann mir jemand vielleicht kurz erklären, wie die Datenstruktur in mySQL Tabellen ist ?

Vielen Dank

Daniel

Hallo,
Relational heißt, daß die Tabellendaten nicht einzeln und für sich stehen, sondern in Beziehung zu anderen Tabellen. Wenn Du verstanden hast, was eine 1:1-, eine 0:1-, eine 1:n- oder eine m:n-Beziehung ist, dann weißt Du schon ziemlich genau, was „relational“ heißt.
Eine weiter reichende Definition findest Du hier: http://v.hbi-stuttgart.de/~riekert/lehre/db-kelz/ , vor allem Kapitel 6 (http://v.hbi-stuttgart.de/~riekert/lehre/db-kelz/cha…).

Gruß

J.

Dr.E.F.Codd sprach imho von Relationen und meinte damit zweidimensionale Tabellen.

Wäre auch eine Erklärung…

Gruß Janus

Dr.E.F.Codd sprach imho von Relationen und meinte damit
zweidimensionale Tabellen.

Hi Janus,
meinte er die Tabellen oder die Beziehungen zwischen ihnen? „Relation“ heißt ja schließlich „Beziehung“, und mir ist der Begriff nur so geläufig… Ich lasse mich aber gern überzeugen.

Gruß

J.

Hi Jose,

da gibt’s Relation und Relationship, also Tupel und Beziehung. Frei nach [Vetter, Aufbau betrieblicher Informationssysteme]:

Ein Tupel ist eine Liste von Werten (Attributen).
Eine Relation

  • hat einen Namen,
  • ist eine Menge von Tupeln,
  • hat einen Schlüssel, dessen Wert ein Tupel identifiziert.

Wenn eine Relation den Schlüssel einer anderen Relation enthält,
so wird damit die Beziehung zwischen den beiden Relationen hergestellt. Überzeugt?

Gruß Ralf

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hi Daniel,

„relational“ heißt:

Jede Tabelle hat einen Schlüssel und Attribute. Jeder Schlüssel kommt nur einmal in der Tabelle vor. Manche Tabellen enthalten die Schlüssel anderer Tabellen, das sind dann die Beziehungen.

Gruß Ralf

Nachtrag (das Wichtigste)
Hi Daniel,

das Wichtigste zum Begriff ‚relational‘ habe ich prompt vergessen (weil’s einfach dazugehört): Die Normalformen.

  1. NF: Eine Relation enthält keine Wiederholgruppen. Damit wird vermieden, dass die Position einer Spalte als zusätzliche Information verwendet wird.

  2. NF: Jedes Attribut der Relation hängt funktional vom Schlüssel, nicht aber von Teilen des Schlüssels. Andernfalls wäre das Attribut redundant.

  3. NF: Es existieren keinerlei Abhängigkeiten zwischen Attributen, die nicht dem Schlüssel angehören.

Sinn und Zweck der Normalformen ist es, Daten so unabhängig zu halten, dass sie nicht ungewollt gelöscht werden und andererseits sicherzustellen, dass jedes Datum nur einmal abgelegt wird. Es gibt weitere Normalformen, je nach Autor insgesamt 5 bis 10 Stück, die aber mehr von akademischem Interesse sind. Für die Praxis genügt es immer, bis zur 3.NF zu normalisieren.

Hoffentlich habe ich Dich jetzt nicht an die Wand gelabert!
Gruß Ralf

ps: Das Ganze gilt für jede relationale Datenbank, also nicht nur für MySQL.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]