Philipp Hasenfratz: Group by funktioniert nicht

Beitrag lesen

Halihallo Axel

Ja, jede Tabelle in einer relationalen Datenbank ist, mathematisch betrachtet, eine spezielle Form der Menge, eine Relation. Eine beliebige Ansammlung von Daten in Zeilen und Spalten ist keine Relation, speziell dann nicht, wenn in Spalten Daten unterschiedlichen Typs untereinander stehen können.

Dann ist also deiner Meinung nach auch jede Datebanktabelle eine
Relation, denn nach 1NF und CREATE TABLE-Möglichkeiten bestünde
keine Möglichkeit eine Tabelle so zu erstellen, dass es keine
Relation nach deiner Definition ist.

Das ist eine Relation:

Hm. Deine Definition. Ich bin damit nicht wirklich einverstanden, da
sie nicht impliziert eine Relationship mit einer anderen Tabelle auf-
zubauen, oder zumindest die Grundvoraussetzung dafür zu erfüllen.
Es sei denn, du definierst ID ausdrücklich als PRIMARY KEY, dann
wäre ich einverstanden.

Darin sind ID, Name, Vorname, Geburtsdatum und Gehalt Spalten bzw. Felder oder, mathematisch betrachtet, Attribute. Jedes Attribut kann _nur_ Attributwerte _eines_ definierten Typs annehmen.

Nein, mathematisch betrachtet sind Attribute Elemente einer Menge
und die Daten einer Tabelle ist eine Multimenge (und deshalb per
Definition unsortiert, was einigen Anfängern gerne zum Verhängnis
wird :-)).

Das ist keine Relation:
Beispiel2:
Spalte1 Spalte2  Spalte3    Spalte4
Rechnung

Herrn
Klaus Maier
Feldweg 23
04567 Testort

Pos     Artikel  Menge      Preis
1       Hose     5          34,67
2       Jacke    2          45,78

Full ACK.

Oder soll jetzt Excel auch als Datenbank
gewertet werden?
Nun, da man mit Excel sowohl Beispiel1 als auch Beispiel2 abbilden kann, _kann_ Excel auch eine Datenbank sein.

Na, meinetwegen, es gibt ja eine ODBC-Schnittstelle zu Excel ;-)

Access ist schon schlimm genug :-)
Warum?
[X/4] Weil es von Microsoft ist.
[X/4] Weil ich es nicht kenne bzw. beherrsche.

Ich kenne es nicht gut, habe aber schon damit gearbeitet.

[X/2] Aus folgenden, mir wichtigen Gründen:

Access wiederspiegelt einen meiner Meinung nach typischen
konzeptionellen Fehler von Microsoft. Sie vermischen verschiedene
Abstraktionsgrade (Darstellung/Formular - Datenebene) vermeindlich
zu Gunsten von Endanwendern und Otto-Normal-Usern. Ein
Datenbanksystem sollte in sich geschlossen sein und nichts mit der
Anwenderebene zu tun haben, mehr noch: selbst der Zugriff auf die
Datenbank (über connect zu query-parser) sollte von den internas
(table handler) getrennt sein. MS SQL-Server ist hier schon sehr gut
zu gebrauchen.

Viele Grüsse

Philipp

--
M$: Patches - don't.