doufam že mají postgresové v plánu podporu datovýho typu „relace“, když umí tak pěkně zacházet s polema
Vlákno názorů k článku
Pole v PostgreSQL
Re: Pole v PostgreSQL
Co si pod pojmem relace představujete? N-tici hodnot nebo něco jiného?
Re: Pole v PostgreSQL
No, pro nás matematiky je relace definována jako podmnožina kartézského součinu, ale už jsem potkal i „odborníky“ kteří žijí v představě že relace je vazba mezi tabulkami :D
Re: Pole v PostgreSQL
Takovéto interpretaci bohužel napomáhaly i některé „databázové“ produkty. Například (tuším že) ve FoxBase/Pro byl používán příkaz SET RELATION… na propojení dvou tabulek. Inu, také vztah, jen ve zcela jiném významu – a pak se divte.
Re: Pole v PostgreSQL
Docela dlouho jsem si s podobným chápáním relace vystačil. Nejspíš záleželo, kde a s čím člověk začal. Za mě (na výšce) se dělalo vše (včetně výuky) ve Foxce, o SQL bohužel neměl nikdo páru :(. Na druhou stranu, alespoň pro mne nematematika, je relace coby vazba dvou tabulek více-méně jeden speciální případ obecnější matematické definice – beru-li ovšem jako relaci výsledný produkt spojení tabulek, nikoliv samotnou vazbu.
Re: Pole v PostgreSQL
teď sem málem spadnul ze židle
pod pojmem relace si představuju relaci, v SQL se tomu říká tabulka nebo pohled
Re: Pole v PostgreSQL
ok – znam databazi, kde datovy typ relace predstavoval pole ukazatelu.
Jinak k Vasi puvodni otazce – pole muze obsahovat krome skalarnich hodnot, take kompozitni hodnoty – tudiz lze prevest tabulku do jedne hodnoty.
postgres=# create table f(a int, b int, c int);
CREATE TABL
postgres=# create table ff(v f[]);
CREATE TABLE
postgres=# insert into f values(10,20,30),(40,50,60);
INSERT 0 2
postgres=# insert into ff select array(select row(a,b,c)::f from f);
INSERT 0 1
postgres=# select * from ff;
v
-----------------------------
{"(10,20,30)","(40,50,60)"}
(1 row)
postgres=# select unnest(v) from ff;
unnest
------------
(10,20,30)
(40,50,60)
(2 rows)
postgres=# select (unnest(v)).* from ff;
a | b | c
----+----+----
10 | 20 | 30
40 | 50 | 60
(2 rows)

