Lists: | pgsql-de-allgemein |
---|
From: | Pierre Pönisch <pierre_poenisch(at)web(dot)de> |
---|---|
To: | "Pgsql-De-Allgemein" <pgsql-de-allgemein(at)postgresql(dot)org> |
Subject: | Umsetzung des relationalen Modells |
Date: | 2004-10-25 14:38:13 |
Message-ID: | MOEIIDFKELKEEPGHMEDECECOCLAA.pierre_poenisch@web.de |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-de-allgemein |
Hallo,
da ich mich gerade intensiver mit dem relationalen Modell auseinandersetze
habe ich folgende Fragen.
Nach dem Modell besteht jede Relation aus Tupeln. Jedes Tupel ist eine Menge
aus Werten. Da der Kopf einer Relation aus einer Menge von Attributen
besteht, gibt es keine Ordnung der Attribute. Wie man bei folgendem Test
sehen kann, setzt PostgreSQL dies nicht um.
Test:
test=# select * from table1;
attr1 | attr2 | attr3
-------+-------+-------
1 | 2 | test1
3 | 4 | test2
5 | 6 | test3
(3 rows)
test=# select * from table2;
attr3 | attr2 | attr1
-------+-------+-------
9 | 10 | test4
11 | 12 | test5
13 | 14 | test6
(3 rows)
test=# (select * from table1) union (select * from table2);
attr1 | attr2 | attr3
-------+-------+-------
1 | 2 | test1
3 | 4 | test2
5 | 6 | test3
9 | 10 | test4
11 | 12 | test5
13 | 14 | test6
(6 rows)
Man sieht, dass PostgreSQL nicht die Spalten nach dem Spalten(Attribut-)name
vereint, sondern nach der Reihenfolge in der die Attribute bei CREATE TABLE
angegeben wurden. Diese Implementierung entspricht nicht dem relationalen
Modell.
Frage: Ist dieses Verhalten beabsichtigt? Wenn ja: Warum?
Grüße,
Pierre Pönisch
From: | Peter Eisentraut <peter_e(at)gmx(dot)net> |
---|---|
To: | Pierre Pönisch <pierre_poenisch(at)web(dot)de>, "Pgsql-De-Allgemein" <pgsql-de-allgemein(at)postgresql(dot)org> |
Subject: | Re: Umsetzung des relationalen Modells |
Date: | 2004-10-25 15:16:45 |
Message-ID: | 200410251716.45136.peter_e@gmx.net |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-de-allgemein |
Pierre Pönisch wrote:
> Man sieht, dass PostgreSQL nicht die Spalten nach dem
> Spalten(Attribut-)name vereint, sondern nach der Reihenfolge in der
> die Attribute bei CREATE TABLE angegeben wurden. Diese
> Implementierung entspricht nicht dem relationalen Modell.
>
> Frage: Ist dieses Verhalten beabsichtigt? Wenn ja: Warum?
Weil es so im SQL-Standard steht. Es ist ein weit verbreiteter Irrtum,
dass SQL irgendwas mit dem relationalen Datenbankmodell zu tun hat. ;-)
Es gibt im SQL-Standard auch eine Option UNION CORRESPONDING oder so,
die in der Tat nach Spaltennamen zusammenführt, aber die ist nicht
implementiert. Das Problem, das ich bei diesem Ansatz sehe, ist, dass
abgeleitete Spalten meistens gar keine eindeutigen oder vorhersehbaren
Namen haben. Daher würde so ein UNION sehr verwirrend und
fehleranfällig sein. So wie's jetzt ist, ist es schon einfacher.
--
Peter Eisentraut
http://developer.postgresql.org/~petere/
From: | Pierre Pönisch <pierre_poenisch(at)web(dot)de> |
---|---|
To: | "Pgsql-De-Allgemein" <pgsql-de-allgemein(at)postgresql(dot)org> |
Subject: | Re: Umsetzung des relationalen Modells |
Date: | 2004-10-25 16:49:19 |
Message-ID: | MOEIIDFKELKEEPGHMEDEGEDBCLAA.pierre_poenisch@web.de |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-de-allgemein |
>-----Ursprüngliche Nachricht-----
>Von: Peter Eisentraut [mailto:peter_e(at)gmx(dot)net]
>Gesendet: Montag, 25. Oktober 2004 17:17
>An: Pierre Pönisch; Pgsql-De-Allgemein
>Betreff: Re: [pgsql-de-allgemein] Umsetzung des relationalen Modells
>
>
>Pierre Pönisch wrote:
>> Man sieht, dass PostgreSQL nicht die Spalten nach dem
>> Spalten(Attribut-)name vereint, sondern nach der Reihenfolge in der
>> die Attribute bei CREATE TABLE angegeben wurden. Diese
>> Implementierung entspricht nicht dem relationalen Modell.
>>
>> Frage: Ist dieses Verhalten beabsichtigt? Wenn ja: Warum?
>
>Weil es so im SQL-Standard steht. Es ist ein weit verbreiteter Irrtum,
>dass SQL irgendwas mit dem relationalen Datenbankmodell zu tun hat. ;-)
Dann sind also relationale DBMS eher SQL-konforme DBMS. Wieder was gelernt.
:-)
Wo kann man denn mal den SQL-Standard mal einsehen? Gibt es noch mehr
Abweichungen
vom relationalen Modell?
Grüße,
Pierre Pönisch