-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathfeatures.sgml
More file actions
178 lines (156 loc) · 7.1 KB
/
features.sgml
File metadata and controls
178 lines (156 loc) · 7.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
<!--
$PostgreSQL: pgsql/doc/src/sgml/features.sgml,v 2.23 2004/11/27 21:27:06 petere Exp $
-->
<appendix id="features">
<title>Conformidade com o padrão SQL</title>
<para>
Esta seção procura delinear até que ponto o <productname>PostgreSQL</> está em
conformidade com o padrão SQL corrente. As informações que se seguem não são
uma declaração completa da conformidade, mas apresentam os tópicos principais
em um nível de detalhe que é tanto razoável quanto útil para os usuários.
</para>
<para>
O nome formal do padrão SQL é ISO/IEC 9075 <quote>Database Language SQL</>.
A versão revisada do padrão é liberada de tempos em tempos; a mais recente
surgiu no final de 2003; Esta versão é referida como ISO/IEC 9075:2003, ou
simplesmente como SQL:2003.
As versões anteriores a esta foram SQL:1999 e SQL-92.
Cada versão substitui a versão anterior, portanto declarar que está em
conformidade com uma versão anterior não tem mérito oficial.
O desenvolvimento do <productname>PostgreSQL</productname> tenta manter a
conformidade com a última versão oficial do padrão, quando esta conformidade
não contradiz as funcionalidades tradicionais ou o senso comum.
Durante a preparação do SQL:2003 o projeto PostgreSQL não esteve representado
no Grupo de Trabalho ISO/IEC 9075, mesmo assim muitas funcionalidades
requeridas pelo SQL:2003 já são suportadas, emboras às vezes com uma sintaxe
ligeiramente diferente ou através de uma função.
Pode-se esperar movimentos em direção à conformidade nas próximas versões.
</para>
<para>
O <acronym>SQL-92</acronym> definiu três conjuntos de funcionalidades para
conformidade: Entrada, Intermediário e Completo. A maioria dos sistemas
gerenciadores de banco de dados que se declaravam em conformidade com este
padrão <acronym>SQL</acronym>, estavam em conformidade apenas com o nível de
Entrada, porque o conjunto completo de funcionalidades nos níveis
Intermediário e Completo era muito volumoso, ou conflitava com comportamentos
legados.
</para>
<para>
A partir do <acronym>SQL:1999</acronym>, o padrão SQL passou a definir um
conjunto maior de funcionalidades individuais, em vez dos três níveis grandes
e ineficazes presentes no <acronym>SQL-92</acronym>. Um subconjunto grande
destas funcionalidades representa as funcionalidades <quote>núcleo</quote>
(<literal>core</literal>), que toda implementação em conformidade com o padrão
SQL deve atender. As demais funcionalidades são inteiramente opcionais.
Algumas funcionalidades opcionais são agrupadas para formarem
<quote>pacotes</quote>, com os quais as implementações SQL podem se declarar
em conformidade, portanto se declarando em conformidade com um determinado
grupo de funcionalidades.
</para>
<para>
O padrão <acronym>SQL:2003</acronym> também está dividido em partes.
Cada uma destas partes é conhecia por um nome abreviado.
Deve ser observado que estas partes não são numeradas seqüencialmente.
<itemizedlist>
<listitem><para>ISO/IEC 9075-1 Framework (<acronym>SQL/Framework</acronym>)</para></listitem>
<listitem><para>ISO/IEC 9075-2 Foundation (<acronym>SQL/Foundation</acronym>)</para></listitem>
<listitem><para>ISO/IEC 9075-3 Call Level Interface (<acronym>SQL/CLI</acronym>)</para></listitem>
<listitem><para>ISO/IEC 9075-4 Persistent Stored Modules (<acronym>SQL/PSM</acronym>)</para></listitem>
<listitem><para>ISO/IEC 9075-9 Management of External Data (<acronym>SQL/MED</acronym>)</para></listitem>
<listitem><para>ISO/IEC 9075-10 Object Language Bindings (<acronym>SQL/OLB</acronym>)</para></listitem>
<listitem><para>ISO/IEC 9075-11 Information and Definition Schemas (<acronym>SQL/Schemata</acronym>)</para></listitem>
<listitem><para>ISO/IEC 9075-13 Routines and Types using the Java Language (<acronym>SQL/JRT</acronym>)</para></listitem>
<listitem><para>ISO/IEC 9075-14 XML-related specifications (<acronym>SQL/XML</acronym>)</para></listitem>
</itemizedlist>
</para>
<para>
O <productname>PostgreSQL</productname> cobre as partes 1, 2 e 11.
A parte 3 é semelhante à interface ODBC, e a parte 4 é semelhante à
linguagem de programação <application>PL/pgSQL</application>, mas nestes
casos não se busca ou verifica especificamente a conformidade exata.
</para>
<para>
O <productname>PostgreSQL</productname> suporta a maioria das funcionalidades
principais do padrão SQL:2003. Das 164 funcionalidades requeridas para a
conformidade total com o núcleo, o <productname>PostgreSQL</productname> está
em conformidade com pelo menos 150. Além disso, existe uma longa lista de
funcionalidades opcionais suportadas. Vale a pena notar que no momento em que
esta documentação foi escrita nenhum sistema de gerenciamento de banco de
dados se declarava em conformidade total com o núcleo do SQL:2003.
</para>
<para>
Nas seções que se seguem, é fornecida uma lista das funcionalidades que o
<productname>PostgreSQL</productname> suporta, seguida por uma lista das
funcionalidades definidas pelo <acronym>SQL:2003</acronym> que o
<productname>PostgreSQL</productname> ainda não suporta.
As duas listas são aproximadas: podem existir pequenos detalhes que não estão
em conformidade em uma funcionalidade declarada como suportada, enquanto
grande parte de uma funcionalidade não suportada pode, na verdade, estar
implementada.
O corpo principal da documentação sempre contém informações mais precisas
sobre o que funciona e o que não funciona.
</para>
<note>
<para>
Os códigos de funcionalidade contendo hífen são subfuncionalidades. Portanto,
se uma determinada subfuncionalidade não for suportada, a funcionalidade
principal é declarada como não suportada, mesmo que outras subfuncionalidades
sejam suportadas.
</para>
</note>
<sect1 id="features-sql-standard">
<title>Funcionalidades suportadas</title>
<para>
<informaltable>
<tgroup cols="4">
<thead>
<row>
<entry>Identificador</entry>
<entry>Pacote</entry>
<entry>Descrição</entry>
<entry>Comentário</entry>
</row>
</thead>
&features-supported;
</tgroup>
</informaltable>
</para>
</sect1>
<sect1 id="unsupported-features-sql-standard">
<title>Funcionalidades não suportadas</title>
<para>
As seguintes funcionalidades definidas no <acronym>SQL:2003</acronym>
não estão implementadas nesta versão do <productname>PostgreSQL</>.
Em alguns poucos casos, está disponível uma funcionalidade equivalente.
<informaltable>
<tgroup cols="4">
<thead>
<row>
<entry>Identificador</entry>
<entry>Pacote</entry>
<entry>Descrição</entry>
<entry>Comentário</entry>
</row>
</thead>
&features-unsupported;
</tgroup>
</informaltable>
</para>
</sect1>
</appendix>
<!-- Keep this comment at the end of the file
Local variables:
mode:sgml
sgml-omittag:nil
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
sgml-parent-document:nil
sgml-default-dtd-file:"./reference.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:("/usr/lib/sgml/catalog")
sgml-local-ecat-files:nil
End:
-->