Einzelnen Beitrag anzeigen

Reinhard Kern

Registriert seit: 22. Okt 2006
772 Beiträge
 
#20

Re: Definition "Schlüssel" in einer Datenbank

  Alt 19. Dez 2006, 13:40
Zitat von alzaimar:
Ich verstehe nicht, was Du an meiner Aussage kritisierst und wieso Du diese Bemerkungen von Dir gibst...

Schlüssel sind per definitionem eindeutig. Ob Du das als Anwender mitbekommst, oder nicht, ist für die Definition unerheblich. Im Übrigen ist es auch unerheblich, ob bei einem Index die RecID nun explizit oder implizit mit angegeben ist. Implizit ("Clustered Index" heisst das bei MSSQL) bedeutet hier z.B., das die gesammte Tabelle ('Datenmenge') anhand eines Index sortiert abgelegt ist. Dann kannst Du auf Binärbebene suchen bis der Arzt kommt, ein Tupel (Key/RecID) wirst du natürlich so nicht finden, aber da die RecID des Key im Index = RecID des Datensatzes ist, haben wir wieder die Zuordnung. Und auch wenn dieser Index (=Schlüssel) für sich gesehen nicht eindeutig ist, ist die Kombination (Schlüssel-RecordID) natürlich eindeutig.

...

Abschließend sei noch Eins gesagt: "Schlüssel" können aus der Anwendersicht natürlich mehrdeutig sein (Deine Behauptung), sie sind es aber aus DB-Sicht nicht (meine Behauptung). Da ist kein Widerspruch drin, sondern jeweils nur eine Erweiterung Deiner/Meiner Definition.
Hallo,

leider schlicht falsch. Du denkst viel zu kompliziert, aber ein Problem mit möglichst hohem Aufwand zu lösen, ist nicht die Aufgabe eines Programmierers.

Bei der von mir erwähnten und real existierenden Auftragsdatei ist es viel einfacher: Der Index "K" ordnet diese Datei nach Kunden, wobei ein Kunde natürlich mehr als einen Auftrag haben kann, z.B. 5. Dann enthält die Indexdatei eben 5 Einträge nacheinander, jeder besteht genau aus der Kunden-ID und der absoluten Position des entsprechenden Auftrags in der Datei. Ganz schlicht und einfach. Ich habe mit so etwas ja auch nicht allein gearbeitet, sondern eine Million andere haben es auch so gemacht. Auch wenn das aus deiner Sicht alles Mist ist - allerdings hast du offensichtlich die Funktion von Datenbanken wie DBase, Clipper, Fox usw. (auch Paradox)überhaupt nicht verstanden. Trotzdem ist vieles davon heute noch im Einsatz. Es waren ja auch nicht alle blöd, die schon im letzten Jahrtausend programmiert haben.

Wenn ein grosser Teil der Software an der Theorie vorbei geschrieben ist, so spricht das im übrigen nicht sehr für Nutzen und Konsistenz der Theorie; dazu kommt noch, dass oft rechtliche Grundsätze dazu zwingen, von der Theorie abzuweichen, aber das würde hier zu weit führen.

Gruss Reinhard
  Mit Zitat antworten Zitat