Update Japanese FAQ.

Jun Kuwamura
This commit is contained in:
Bruce Momjian 2005-10-05 11:51:27 +00:00
parent b0db380b09
commit ce150c4a8b
3 changed files with 217 additions and 144 deletions

View File

@ -1,5 +1,5 @@
From: Zeugswetter Andreas <ZeugswetterA@spardat.at>
$Date: 2005/10/05 11:27:09 $
$Date: 2005/10/05 11:51:26 $
On AIX 4.3.2 PostgreSQL compiled with the native IBM compiler xlc
(vac.C 5.0.1) passes all regression tests. Other versions of OS and

View File

@ -1,6 +1,6 @@
PostgreSQL(ポストグレス・キュー・エル)についてよくある質問とその解答(FAQ)
原文最終更新日: Mon May 9 13:15:04 EDT 2005
原文最終更新日: Wed Sep 28 07:45:42 EDT 2005
現在の維持管理者: Bruce Momjian (pgman at candle.pha.pa.us)
Maintainer of Japanese Translation: Jun Kuwamura (juk at PostgreSQL.jp)
@ -15,13 +15,13 @@ Maintainer of Japanese Translation: Jun Kuwamura (juk at PostgreSQL.jp)
[訳注:
日本語版の製作については、この文書の最後をごらんください。
2005年05月18日 桑村 潤
2005年10月05日 桑村 潤
]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
一般的な質問
一般的な質問
1.1) PostgreSQLとは何ですか何と読みますか
1.2) PostgreSQLの著作権はどうなってますか
1.3) PostgreSQLをサポートするプラットホームは
@ -36,14 +36,14 @@ Maintainer of Japanese Translation: Jun Kuwamura (juk at PostgreSQL.jp)
1.12) 他のDBMSと比べてPostgreSQLはどうなのですか
1.13) 誰が PostgreSQL をコントロールしますか?
ユーザ・クライアントの質問
ユーザ・クライアントの質問
2.1) PostgreSQL にはどんなインターフェースが使えますか?
2.2) PostgreSQL を Web ページと連携させるにはどんなツールがありますか?
2.3) PostgreSQL にグラフィカル・ユーザインターフェイスはありますか?
2.3) PostgreSQL にグラフィカル・ユーザインターフェースはありますか?
管理上の質問
管理上の質問
3.1) どうすれば、PostgreSQLを/usr/local/pgsql 以外の場所にインストールできます
か?
3.2) 他のホストからの接続はどのように制御しますか?
@ -55,8 +55,8 @@ Maintainer of Japanese Translation: Jun Kuwamura (juk at PostgreSQL.jp)
てはならないのはなぜですか?
3.7) ハードウェアにはどんなコンピュータを使えばよいですか?
操作上の質問
操作上の質問
4.1) 最初のいくつかのロウのみを select するにはどうしますか?ランダムなロウ?
4.2) 定義されたテーブル、インデックス、データベース、および、ユーザをどのように
して見つけ出しますか?
@ -89,15 +89,17 @@ Maintainer of Japanese Translation: Jun Kuwamura (juk at PostgreSQL.jp)
4.19) PL/PgSQL の関数の中で一時テーブルにアクセスするとき、どうして "relation
with OID ##### does not exist" というエラーを受け取るのでしょうか?
4.20) どのようなレプリケーションのソリューションがありますか?
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
4.21) テーブルとカラムの名前がクエリーの中で認識されないのはなぜですか?
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
一般的な質問
一般的な質問
1.1) PostgreSQL とは何ですか?何と発音しますか?
PostgreSQLはPost-Gres-Q-L(ポスト - グレス - キュー - エル) と発音します。
また、単純に Postgres とも呼ばれます。
また、ときによっては単純に Postgres として参照されます。この発音を聞きたい人の
ために、 MP3フォーマットの音声ファイルがあります。
PostgreSQL はオブジェクト-リレーショナルデータベースシステムで、伝統的な商用デ
ータベースシステムに、次世代DBMSシステムに見られるような改良が施された特徴を有
@ -116,7 +118,7 @@ PostgreSQL
[訳注:
正文は英語です。参考として、訳文を併記掲載します。
]
PostgreSQL Data Base Management System
@ -150,12 +152,12 @@ SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
およびこれに続く二つの段落が全ての複製に添付されている限りにおい
て、使用、複製、修正および配付の許可を、いかなる目的であっても、
無償でかつ同意書無しに行なえることをここに認めます。
カリフォルニア大学は、いかなる当事者にたいしても、利益の壊失を
含む、直接的、間接的、特別、偶然あるいは必然的にかかわらず生じた
損害について、たとえカリフォルニア大学がこれらの損害について訴追
を受けていたとしても、一切の責任を負いません。
カリフォルニア大学は、商用目的における暗黙の保証と、特定目的で
の適合性に関してはもとより、これらに限らず、いかなる保証も放棄す
ることを明言します。以下に用意されたソフトウェアは「そのまま」を
@ -166,7 +168,7 @@ SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
著作権に関する正文は上記の英語による表記です。日本語訳はあくまで
参考です。
]
1.3) PostgreSQL の動作環境は?
@ -187,7 +189,7 @@ PostgreSQL
詳しくは、次の Windwos版に関するFAQの和訳をごらんください。
http://www.postgresql.jp/wg/jpugdoc/FAQ_windows.ja.html
]
次のサイトに Novell Netware 6 への移植版もあります。 http://forge.novell.com ま
た、OS/2 (eComStation) バージョンは、 http://hobbes.nmsu.edu/cgi-bin/h-search?
@ -196,13 +198,13 @@ sh=1&button=Search&key=postgreSQL&stype=all&sort=type&dir=%2F
1.4) PostgreSQL はどこから入手できますか?
Webブラウザ経由だと、 http://www.postgresql.org/ftp/、それから、ftp経由だと、
Webブラウザ経由だと、 http://www.postgresql.org/ftp/、それから、ftp経由だと、
ftp://ftp.PostgreSQL.org/pub/ を使います。
1.5) サポートはどこで受けられますか?
PostgreSQL コミュニティは多くのユーザのために、電子メール経由の支援を提供してい
ます。電子メールリストをサブスクライブするためのメインとなるウェブサイトは
ます。電子メールリストをサブスクライブするためのメインとなるウェブサイトは
http://www.postgresql.org/community/lists/です。これから、始めるのであれば
general または、bugs といったリストがよいでしょう。
@ -220,15 +222,16 @@ postgresql-es)
[訳注:
1999年7月23日、日本ポストグレスユーザー会、略称JPUGが設立されました。
JPUG は非営利組織で、PostgreSQLを利用する人達の相互協力の場となっています。
JPUG は非営利組織で、PostgreSQLを利用する人達の相互協力の場となっています。
(2003年5月17日、「日本PostgreSQLユーザ会」に名称を改めました。)
正会員の会費は無料ですが、協賛会員の会費と会員の積極的な貢献が会の運営を助けています。
詳しくは、JPUG のWeb サイト:
http://www.PostgreSQL.jp/
をごらんください。会員登録も可能となっています。
日本語のIRCチャンネル '#PostgreSQL*jp' も存在します。
日本語のIRCチャンネル '#PostgreSQL:*.jp' も存在します。
]
商用サポート会社のリストは http://techdocs.postgresql.org/companies.phpにありま
す。
@ -243,10 +246,10 @@ PostgreSQL
1.7) 最新版はどれですか
PostgreSQL の最新版はバージョン 8.0.3 です。
PostgreSQL の最新版はバージョン 8.0.4 です。
我々は、1年毎にメジャーリリースを行ない、数ヵ月ごとのマイナーリリースを計画し
います。
我々は、1年毎にメジャーリリースを行ない、数ヵ月ごとのマイナーリリースを計画し
います。
1.8) どのような文書がありますか?
@ -257,14 +260,14 @@ PostgreSQL
[訳注:
JPUG 文書・書籍関連分科会で翻訳されたマニュアルもあります。
http://www.postgresql.jp/document/pg803doc/
インプレスから、
PostgreSQLオフィシャルマニュアルとして出版されています。
]
オンラインで参照できる PostgreSQL の本も2冊あります。 http://www.PostgreSQL.org
/docs/awbook.html
@ -274,7 +277,7 @@ PostgreSQL
で翻訳され、ピアソンから
「はじめてのPostgreSQL」として出版されました。
]
および、 http://www.commandprompt.com/ppbook/です。
@ -282,17 +285,17 @@ PostgreSQL
邦訳は「実践 PostgreSQL」
がオライリーから出版されています。
]
購入可能な書籍の目録は、http://techdocs.PostgreSQL.org/techdocs/bookreviews.php
にあります。 PostgreSQL 技術情報記事も、http://techdocs.PostgreSQL.org/ にあり
ます。
[訳注:
日本語の書籍等については、日本PostgreSQLユーザ会の、http://www.postgresql.jp/PostgreSQL/references.html
日本語の書籍等については、日本PostgreSQLユーザ会の、http://www.postgresql.jp/PostgreSQL/references.html
もごらんください。
]
コマンドラインのクライアントプログラムpsql も、型、演算子、関数、集約、その他の
情報をお見せする、いくつかの素晴らしい \d コマンドを持ちます。 - \? を使うと利
@ -302,7 +305,7 @@ PostgreSQL
1.9) 既知のバグや未だ無い機能はどうやって見つけますか?
PostgreSQLは拡張されたSQL-92のサブセットをサポートします。我々のページの TODO
PostgreSQLは拡張されたSQL:2003のサブセットをサポートします。我々のページの TODO
リストに、既知のバグや欠落機能や将来計画についての記述があります。
1.10) SQL はどうすれば学べますか?
@ -335,7 +338,7 @@ sqlcourse.com
Nikkei BP IT Pro にある石井達夫氏の PostgreSQL ウォッチ
では毎回新しい情報をとりあげています。
]
1.11) 開発チームにはどのように参加しますか?
@ -386,10 +389,10 @@ PostgreSQL
をサブスクライブして、議論に参加することです。Developer's FAQには、PostgreSQL
開発に加わり方についての情報があります。)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ユーザ・クライアントの質問
ユーザー・クライアントの質問
2.1) PostgreSQL にはどんなインターフェースが使えますか?
PostgreSQL のインストールに含まれる物はCと組込み Cのインターフェースだけです。
@ -407,7 +410,7 @@ PHP
データベースを裏に持つ Web ページについての素晴らしい紹介が、
http://www.webreview.comにあります。
Web への拡張のためには、PHP(http://www.php.net/) が卓越したインターフェスとな
Web への拡張のためには、PHP(http://www.php.net/) が卓越したインターフェスとな
っています。
[訳注:
@ -417,20 +420,20 @@ Web
http://www.geocities.jp/rui_hirokawa/php/
にかなりまとめられています。
]
処理が複雑な場合、多くの人は Perl インターフェイスと CGI.pm か mod_perl を使い
処理が複雑な場合、多くの人は Perl インターフェースと CGI.pm か mod_perl を使い
ます。
2.3) PostgreSQL にグラフィカル・ユーザインターフェスはありますか?
2.3) PostgreSQL にグラフィカル・ユーザインターフェスはありますか?
もちろん、あります。詳細は、http://techdocs.postgresql.org/guides/GUITools をご
らんください。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
管理上の質問
管理上の質問
3.1) どのようにすれば /usr/local/pgsql 以外の場所にインストールできますか?
簡単な方法は、 configure を走らせるときに --prefix オプションを指定することです
@ -460,21 +463,21 @@ Web
□ オプティマイザの正確な統計を維持するためにANALYZEを使用
□ VACUUM または pg_autovacuum の常用
□ 大きなデータ変更のあるときはインデックスを削除
サーバ構成
postgresql.confの設定のいくつかは性能に影響します。詳しくは、
Administration Guide/Server Run-time Environment/Run-time Configuration の
全件リストごらんください( JPUGサイトの日本語版)。そして、解説として、 http:
//www.varlena.com/varlena/GeneralBits/Tidbits/annotated_conf_e.html および
、 http://www.varlena.com/varlena/GeneralBits/Tidbits/perf.html をごらんく
ださい。
全件リストごらんください( JPUGサイトの日本語版)。そして、解説として、
http://www.varlena.com/varlena/GeneralBits/Tidbits/annotated_conf_e.html お
よび、 http://www.varlena.com/varlena/GeneralBits/Tidbits/perf.html をごら
んください。
ハードウェアの選定
性能におけるハードウェアの影響は http://candle.pha.pa.us/main/writings/
pgsql/hw_performance/index.html (JPUGサイトの日本語版) と http://
www.powerpostgresql.com/PerfList/ に述べられています。
3.4) どのようなデバグ機能が使えますか?
@ -509,10 +512,10 @@ SCSI
メーリングリストでもハードウェアオプションとトレードオフについて議論することが
できます。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
操作上の質問
操作上の質問
4.1) 最初の数ロウのみを SELECTするにはどうしますかランダムなロウ
たったの数行のロウを取り出すために、何行必要かがわかれば、 SELECT のときに
@ -530,14 +533,14 @@ LIMIT
4.2) 定義されたテーブル、インデックス、データベース、および、ユーザをどのように
して見つけ出しますかpsqlで使われているクエリを表示するにはどうしますか
psql の中で \dtコマンドを使ってテーブルを見ることができます。psqlの中で \? を
使って、コマンドの全リストを調べることができます。一方で、psql のソースコードで
バックスラッシュコマンドを出力する pgsql/src/bin/psql/describe.c ファイルを読
こともできます。その中には、 SQL コマンドを生成する部分も含まれます。また、
-E オプションを付けて psql を開始すると、入力されたコマンドを実行するためのクエ
を印字出力するようになります。 PostgreSQLは SQL 準拠の INFORMATION SCHEMA イ
ターフェースを提供しますので、データベースについての情報を問い合わせることも
きます。
psql の中で \dtコマンドを使ってテーブルを見ることができます。psqlの中で \? を使
って、コマンドの全リストを調べることができます。一方で、psql のソースコードで
バックスラッシュコマンドを出力する pgsql/src/bin/psql/describe.c ファイルを読
こともできます。その中には、 SQL コマンドを生成する部分も含まれます。また、 -E
オプションを付けて psql を開始すると、入力されたコマンドを実行するためのクエ
を印字出力するようになります。 PostgreSQLは SQL 準拠の INFORMATION SCHEMA イ
ターフェースを提供しますので、データベースについての情報を問い合わせることも
きます。
pg_ で始まるシステムテーブルでもこれらを記述することができます。
@ -566,16 +569,16 @@ VACUUM FULL tab
制限は以下のとおりです:
データベースの最大サイズ? 制限無し (32 TB のデータベースも存在しま
す)
テーブルの最大サイズ? 32 TB
ロウの最大サイズ? 1.6TB
フィールドの最大サイズ? 1 GB
テーブル内での最大ロウ数? 制限無し
テーブル内での最大カラム数? カラムの型によって 250-1600
テーブル内での最大インデックス 制限無し
数?
データベースの最大サイズ? 制限無し (32 TB のデータベースも存在しま
す)
テーブルの最大サイズ? 32 TB
ロウの最大サイズ? 1.6TB
フィールドの最大サイズ? 1 GB
テーブル内での最大ロウ数? 制限無し
テーブル内での最大カラム数? カラムの型によって 250-1600
テーブル内での最大インデックス 制限無し
数?
もちろん、これらは実際は無制限ではなく、ディスク容量とメモリーやスワップスペー
スの大きさにより制限されます。性能はこれらの値がことのほか大きな時に煽りを受け
ます。
@ -587,6 +590,11 @@ VACUUM FULL tab
デフォルトのブロックサイズを32kにすることで、最大テーブルサイズと最大カラム数と
を4倍にすることができます。
ひとつの制限は、約2,000文字以上の長さのカラムにインデックスを付けることができな
いことです。幸いにも、そのようなインデックスは実際は必要ありません。長いカラム
のMD5ハッシュの関数インデックスは一意性がなによりの保険で、また、フルテキストの
インデックスではカラム内の単語を検索することができます。
4.5) 一般的なテキストファイルのデータを保存するには、データベースのディスク容量
はどのくらい必要です?
@ -598,23 +606,23 @@ VACUUM FULL tab
は約2.8MB です。このデータを含む PostgreSQL データベースファイルの大きさは次の
ように約6.4MBと見積もることができます:
32 bytes: 各ロウのヘッダ(概算)
28 bytes: 各ロウのヘッダ(概算)
24 bytes: 整数(int)フィールドとテキスト(text)フィールド
+ 4 bytes: ページ上のタップルへのポインタ
----------------------------------------
60 bytes per row
56 bytes per row
PostgreSQL のデータページサイズは 8192バイト(8KB)なので:
8192 bytes per page
------------------- = 136 rows per database page (切り捨て)
60 bytes per row
------------------- = 146 rows per database page (切り捨て)
56 bytes per row
100000 data rows
-------------------- = 782 database pages (切り上げ)
128 rows per page
735 database pages * 8192 bytes per page = 6,021,120 bytes (6 MB)
-------------------- = 685 database pages (切り上げ)
146 rows per page
685 database pages * 8192 bytes per page = 5,611,520 bytes (5.6 MB)
インデックスは、これほどのオーバヘッドは要求しませんが、インデックス付けされる
データを含む以上、それなりに大きくなります。
@ -631,7 +639,7 @@ NULL
インデックスを使うかを決定するために、PostgreSQL はテーブルについての統計情報を
持たなければなりません。この統計情報は、 VACUUMANALYZEまたは、単に ANALYZE を使
って収集することができます。統計情報を使ってオティマイザはテーブルの中にある
って収集することができます。統計情報を使ってオティマイザはテーブルの中にある
ロウ数を知り、インデックスを使うべきかの決定をより正しくできます。統計情報は最
適な結合順や結合方法を決める上でも貴重なものもあります。統計情報の収集は、テー
ブルの内容がかわると毎に繰返しなされるべきです。
@ -665,20 +673,20 @@ LIKE
・ initdb においては、デフォルトでCロケールが使われなくてはなりません。その理
由は、Cロケール以外では次に大きな文字を知ることができないからです。このよう
な場合、
LIKE
インデクシングにだけ働くような、特別な
text_pattern_ops
インデックスを作成することもできます。
8.0より前のリリースでは、インデックスは、データ型がちょうどインデックスのカラム
の型と一致しなければ、使えないことがしばしばありました。おそらく、int2, int8,
および numeric 等のカラムのインデックスがそうです。
4.7) 問い合わせオティマイザがどのように問い合わせを評価するのかを見るにはどう
4.7) 問い合わせオティマイザがどのように問い合わせを評価するのかを見るにはどう
しますか?
オンラインマニュアルで EXPLAIN を見てください。
@ -702,6 +710,10 @@ LIKE
CREATE INDEX tabindex ON tab (lower(col));
上記のインデックスがUNIQUEで作成された場合、カラムは大文字と小文字を格納できま
すが、その違いが文字ケースだけであっても同一にはなりません。あえて特定の文字ケ
ースをカラムに格納するには CHECK制約か、トリガーを使ってください。
4.9) クエリの中で、フィールドがNULL であることを検出するにはどうしますか?フィ
ールドがNULLかどうかでどのようにソートができますか
@ -721,13 +733,13 @@ NULL
4.10) いろいろな文字型のそれぞれの違いは何ですか?
型 内部名 備考
VARCHAR(n) varchar 最大長のサイズを指定する、詰め物無し
型 内部名 備考
VARCHAR(n) varchar 最大長のサイズを指定する、詰め物無し
CHAR(n) bpchar 指定された固定長となるように空白が詰められる
TEXT text 長さに特別な上限は無し
BYTEA bytea 可変長のバイト配列(null-byte safe)
"char" char 1文字
TEXT text 長さに特別な上限は無し
BYTEA bytea 可変長のバイト配列(null-byte safe)
"char" char 1文字
内部名にお目にかかるのは、システム・カタログを調べるときや、エラーメッセージを
受け取るときです。
@ -748,15 +760,15 @@ NULL
PostgreSQL は SERIAL データ型をサポートします。カラム上にシーケンスを自動作成し
ます。たとえば、
CREATE TABLE person (
id SERIAL,
name TEXT
CREATE TABLE person (
id SERIAL,
name TEXT
);
は自動的に次のように翻訳されます:
CREATE SEQUENCE person_id_seq;
CREATE TABLE person (
CREATE TABLE person (
id INT4 NOT NULL DEFAULT nextval('person_id_seq'),
name TEXT
);
@ -805,7 +817,7 @@ currval()
PostgreSQLでつくられるすべてのロウは、WITHOUT OIDS でつくられないかぎり一意の
OIDを得ます。 OIDは自動的に4バイトの整数で与えられ、それは、全インストレーショ
ンを通して一意な値となります。しかし、約40億でオーバーフローし、そして、OIDは重
複をしはじめます。PostgreSQLは内部システムテーブルを一緒にリンクするtためにOID
複をしはじめます。PostgreSQLは内部システムテーブルを一緒にリンクするためにOID
を使います。
ユーザのテーブルのカラムに一意の番号を付けるためには、 OID ではなく SERIAL を使
@ -908,12 +920,32 @@ PL/PgSQL
この他にも、商用やハードウェア-ベースのレプリケーションソリューションがいろい
ろなレプリケーションモデルをサポートしています。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
4.21)テーブルとカラムの名前がクエリーの中で認識されないのはなぜですか?
The most common cause is the use of double-quotes around table or + column
names during table creation. When double-quotes are used, + table and column
names (called identifiers) are stored case-sensitive, meaning you must use +
double-quotes when referencing the names in a query. Some interfaces, + like
pgAdmin, automatically double-quote identifiers during table + creation. So,
for identifiers to be recognized, you must either: もっとも一般的な原因は、テー
ブルを作成する際に、テーブルやカラムを囲う二重引用符の使用です。二重引用符を使
うと、テーブルとカラムの名前(識別子と呼びます)は大文字と小文字の区別をして格
納されす。したがって、pgAdminのようにテーブル作成のときに自動的に二重引用符を使
うものはクエリの中でそれらの名前を使うときに二重引用符を付けなくてはならないこ
とを意味します。このため、識別子を認識させるためには以下のいずれかを心がけます
・ テーブルを作成するときに二重引用符で識別子を囲うことを避ける
・ Use only lowercase characters in identifiers
・ 識別子には小文字だけを使う
・ クエリの中で参照するときは二重引用譜で識別子を囲う
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[訳注:
日本語版の製作については以下の通りです。
最終更新日: 2005年05月18日
最終更新日: 2005年10月05
翻訳者: 桑村 潤 (Jun Kuwamura <juk at PostgreSQL.jp>)
このFAQの和訳の作成にあたり協力をしてくださった方々(敬称は略させていただきます):
@ -935,11 +967,11 @@ PL/PgSQL
稲葉 香理(Kaori Inaba <i-kaori at sra.co.jp>)
石井 達夫(Tatsuo Ishii <t-ishii at sra.co.jp>)
をはじめ、ポストグレスに関する話題豊富な日本語ポストグレス・メーリングリ
スト、 和訳のきっかけを作ってくれた JF(Linux Japanese FAQ Mailing List)プロジェ
クト、FreeBSD ドキュメンテーションプロジェクト、 その他、直接あるい
は間接的にかかわっているすべてのオープンソースコミュニティーの皆さんに
感謝します。
をはじめ、ポストグレスに関する話題豊富な日本語PostgreSQLメーリングリスト、
和訳のきっかけを作ってくれたり、いつもチェックをしてくれる
JF(Linux Japanese FAQ)プロジェクト、
FreeBSD ドキュメンテーションプロジェクト、 その他、直接あるいは間接的に
かかわっているすべてのオープンソースコミュニティーのみなさまに感謝します。
日本語版のこの文書は 本家 "Frequently Asked Questions" のページに "Japanese FAQ" という見出であります。
また、最新版は以下のサイトにあります。

View File

@ -9,7 +9,7 @@
<div id="pgContentWrap">
<h1>PostgreSQL(ポストグレス・キュー・エル)についてよくある質問とその解答(FAQ)</h1>
<p>原文最終更新日: Mon May 9 13:15:04 EDT 2005</p>
<p>原文最終更新日: Wed Sep 28 07:45:42 EDT 2005</p>
<p>現在の維持管理者: Bruce Momjian (<A
href="mailto:pgman at candle.pha.pa.us">pgman at candle.pha.pa.us</a>)<br />
Maintainer of Japanese Translation: Jun Kuwamura (<A
@ -30,7 +30,7 @@ href="mailto:juk at PostgreSQL.jp">juk at PostgreSQL.jp</a>)<br /></p>
[訳注:
日本語版の製作については、この文書の最後をごらんください。
2005年05月18日 桑村 潤
2005年10月05日 桑村 潤
]
</pre></small>
</p>
@ -54,11 +54,11 @@ href="mailto:juk at PostgreSQL.jp">juk at PostgreSQL.jp</a>)<br /></p>
<a href="#1.13">1.13</a>) 誰が PostgreSQL をコントロールしますか?<br />
<h2 align="center">ユーザ・クライアントの質問</h2>
<h2 align="center">ユーザ・クライアントの質問</h2>
<a href="#2.1">2.1</a>) PostgreSQL にはどんなインターフェースが使えますか?<br />
<a href="#2.2">2.2</a>) PostgreSQL を Web ページと連携させるにはどんなツールがありますか?<br />
<a href="#2.3">2.3</a>) PostgreSQL にグラフィカル・ユーザインターフェスはありますか?<br />
<a href="#2.3">2.3</a>) PostgreSQL にグラフィカル・ユーザインターフェスはありますか?<br />
<h2 align="center">管理上の質問</h2>
@ -97,6 +97,7 @@ href="mailto:juk at PostgreSQL.jp">juk at PostgreSQL.jp</a>)<br /></p>
<a href="#4.18">4.18</a>) 関数から複数のロウまたはカラムを返すにはどうしますか?<br />
<a href="#4.19">4.19</a>) PL/PgSQL の関数の中で一時テーブルにアクセスするとき、どうして "relation with OID ##### does not exist" というエラーを受け取るのでしょうか?<br />
<a href="#4.20">4.20</a>) どのようなレプリケーションのソリューションがありますか?<br />
<a href="#4.21">4.21</a>) テーブルとカラムの名前がクエリーの中で認識されないのはなぜですか?<br />
<hr />
@ -106,7 +107,10 @@ href="mailto:juk at PostgreSQL.jp">juk at PostgreSQL.jp</a>)<br /></p>
<h4><a name="1.1">1.1</a>) PostgreSQL とは何ですか? 何と発音しますか?</h4>
<p>PostgreSQLは<i>Post-Gres-Q-L</i>(ポスト - グレス - キュー - エル)
と発音します。</p>また、単純に Postgres とも呼ばれます。
と発音します。</p>また、ときによっては単純に <i>Postgres</i> として
参照されます。この発音を聞きたい人のために、
<a href="http://www.postgresql.org/files/postgresql.mp3">MP3フォー
マット</a>の音声ファイルがあります。</p>
<p>PostgreSQL はオブジェクト-リレーショナルデータベースシステムで、
伝統的な商用データベースシステムに、次世代<small>DBMS</small>システ
@ -262,7 +266,8 @@ href="mailto:juk at PostgreSQL.jp">juk at PostgreSQL.jp</a>)<br /></p>
<a href="http://www.PostgreSQL.jp/">http://www.PostgreSQL.jp/</a>
をごらんください。会員登録も可能となっています。
日本語のIRCチャンネル '#PostgreSQL*jp' も存在します。
日本語のIRCチャンネル '#PostgreSQL:*.jp' も存在します。
]
</pre></small>
<p>商用サポート会社のリストは<a
@ -286,9 +291,9 @@ href="mailto:juk at PostgreSQL.jp">juk at PostgreSQL.jp</a>)<br /></p>
<h4><a name="1.7">1.7</a>) 最新版はどれですか</h4>
<p>PostgreSQL の最新版はバージョン 8.0.3 です。</p>
<p>PostgreSQL の最新版はバージョン 8.0.4 です。</p>
<p>我々は、1年毎にメジャーリリースを行ない、数ヵ月ごとのマイナーリリー
スを計画しています。</p>
スを計画しています。</p>
<h4><a name="1.8">1.8</a>) どのような文書がありますか?</h4>
@ -347,7 +352,7 @@ href="mailto:juk at PostgreSQL.jp">juk at PostgreSQL.jp</a>)<br /></p>
<small><pre>
[訳注:
日本語の書籍等については、日本PostgreSQLユーザ会の、<A
日本語の書籍等については、日本PostgreSQLユーザ会の、<A
href="http://www.postgresql.jp/PostgreSQL/references.html">http://www.postgresql.jp/PostgreSQL/references.html</a>
もごらんください。
]
@ -364,7 +369,7 @@ href="mailto:juk at PostgreSQL.jp">juk at PostgreSQL.jp</a>)<br /></p>
<h4><a name="1.9">1.9</a>) 既知のバグや未だ無い機能はどうやって見つけますか?
</h4>
<p>PostgreSQLは拡張された<small>SQL</small>-92のサブセットをサポート
<p>PostgreSQLは拡張された<small>SQL:2003</small>のサブセットをサポート
します。我々のページの <A
href="http://www.PostgreSQL.org/docs/todo.html">TODO</a> リストに、
既知のバグや欠落機能や将来計画についての記述があります。</p>
@ -414,7 +419,7 @@ href="mailto:juk at PostgreSQL.jp">juk at PostgreSQL.jp</a>)<br /></p>
<h4><a name="1.11">1.11</a>) 開発チームにはどのように参加しますか?</h4>
<p><a href="http://www.postgresql.org/docs/faqs.FAQ_DEV.html">
開発者向けのDeveloper's FAQ</a>をごらんください。
開発者向けのDeveloper's FAQ</a>をごらんください。</p>
<h4><a name="1.12">1.12</a>) 他の<small>DBMS</small>と比べPostgreSQLはどうなのですか</h4>
@ -490,7 +495,7 @@ href="mailto:juk at PostgreSQL.jp">juk at PostgreSQL.jp</a>)<br /></p>
<hr />
<h2 align="center">ユーザ・クライアントの質問</h2>
<h2 align="center">ユーザ・クライアントの質問</h2>
<h4><a name="2.1">2.1</a>) PostgreSQL にはどんなインターフェースが使えますか?</h4>
@ -515,7 +520,7 @@ href="mailto:juk at PostgreSQL.jp">juk at PostgreSQL.jp</a>)<br /></p>
<p> データベースを裏に持つ Web ページについての素晴らしい紹介が、<br />
<a href="http://www.webreview.com">http://www.webreview.com</a>にあります。</p>
<p> Web への拡張のためには、PHP(<a href="http://www.php.net">http://www.php.net/</a>)
が卓越したインターフェスとなっています。</p>
が卓越したインターフェスとなっています。</p>
<small><pre>
[訳注:
@ -527,11 +532,11 @@ href="mailto:juk at PostgreSQL.jp">juk at PostgreSQL.jp</a>)<br /></p>
]
</pre></small>
<p> 処理が複雑な場合、多くの人は Perl インターフェスと CGI.pm か
<p> 処理が複雑な場合、多くの人は Perl インターフェスと CGI.pm か
mod_perl を使います。 </p>
<h4><a name="2.3">2.3</a>) PostgreSQL にグラフィカル・ユーザインターフェスはありますか?</h4>
<h4><a name="2.3">2.3</a>) PostgreSQL にグラフィカル・ユーザインターフェスはありますか?</h4>
<p>もちろん、あります。
@ -585,7 +590,7 @@ href="mailto:juk at PostgreSQL.jp">juk at PostgreSQL.jp</a>)<br /></p>
詳しくは、<a href=
"http://www.postgresql.org/docs/current/static/runtime.html">
Administration Guide/Server Run-time Environment/Run-time
Configuration</a> の全件リストごらんください(<a
Configuration</a> の全件リストごらんください(<a
href="http://www.postgresql.jp/document/pg803doc/html/runtime.html">
JPUGサイトの日本語版</a>)。
そして、解説として、<a
@ -670,7 +675,7 @@ href="mailto:juk at PostgreSQL.jp">juk at PostgreSQL.jp</a>)<br /></p>
<h4><a name="4.2">4.2</a>) 定義されたテーブル、インデックス、データベース、および、ユーザをどのようにして見つけ出しますか?<i>psql</i>で使われているクエリを表示するにはどうしますか?</h4>
<p><i>psql</i> の中で \dtコマンドを使ってテーブルを見ることができ
<p><i>psql</i> の中で \dtコマンドを使ってテーブルを見ることができ
ます。psqlの中で \? を使って、コマンドの全リストを調べることができま
す。一方で、<i>psql</i> のソースコードで、バックスラッシュコマンドを
出力する <i>pgsql/src/bin/psql/describe.c</i> ファイルを読むこともで
@ -736,6 +741,11 @@ href="mailto:juk at PostgreSQL.jp">juk at PostgreSQL.jp</a>)<br /></p>
<p> デフォルトのブロックサイズを32kにすることで、最大テーブルサイズ
と最大カラム数とを4倍にすることができます。</p>
<p>ひとつの制限は、約2,000文字以上の長さのカラムにインデックスを付
けることができないことです。 幸いにも、そのようなインデックスは実際
は必要ありません。長いカラムのMD5ハッシュの関数インデックスは一意性
がなによりの保険で、また、フルテキストのインデックスではカラム内の
単語を検索することができます。</p>
<h4><a name="4.5">4.5</a>) 一般的なテキストファイルのデータを保存するには、データベースのディスク容量はどのくらい必要です?</h4>
@ -750,23 +760,23 @@ href="mailto:juk at PostgreSQL.jp">juk at PostgreSQL.jp</a>)<br /></p>
ます:
<pre>
32 bytes: 各ロウのヘッダ(概算)
28 bytes: 各ロウのヘッダ(概算)
24 bytes: 整数(int)フィールドとテキスト(text)フィールド
+ 4 bytes: ページ上のタップルへのポインタ
----------------------------------------
60 bytes per row
56 bytes per row
PostgreSQL のデータページサイズは 8192バイト(8KB)なので:
8192 bytes per page
------------------- = 136 rows per database page (切り捨て)
60 bytes per row
------------------- = 146 rows per database page (切り捨て)
56 bytes per row
100000 data rows
-------------------- = 782 database pages (切り上げ)
128 rows per page
-------------------- = 685 database pages (切り上げ)
146 rows per page
735 database pages * 8192 bytes per page = 6,021,120 bytes (6 MB)
685 database pages * 8192 bytes per page = 5,611,520 bytes (5.6 MB)
</pre>
<p>インデックスは、これほどのオーバヘッドは要求しませんが、インデッ
@ -786,7 +796,7 @@ href="mailto:juk at PostgreSQL.jp">juk at PostgreSQL.jp</a>)<br /></p>
<p>インデックスを使うかを決定するために、PostgreSQL はテーブルについ
ての統計情報を持たなければなりません。この統計情報は、
<small>VACUUMANALYZE</small>または、単に <small>ANALYZE</small> を使っ
て収集することができます。統計情報を使ってオティマイザはテーブルの
て収集することができます。統計情報を使ってオティマイザはテーブルの
中にあるロウ数を知り、インデックスを使うべきかの決定をより正しくでき
ます。統計情報は最適な結合順や結合方法を決める上でも貴重なものもあり
ます。統計情報の収集は、テーブルの内容がかわると毎に繰返しなされるべ
@ -842,7 +852,7 @@ href="mailto:juk at PostgreSQL.jp">juk at PostgreSQL.jp</a>)<br /></p>
です。</p>
<h4><a NAME="4.7">4.7</a>) 問い合わせオティマイザがどのように問い合わせを評価するのかを見るにはどうしますか?</h4>
<h4><a NAME="4.7">4.7</a>) 問い合わせオティマイザがどのように問い合わせを評価するのかを見るにはどうしますか?</h4>
<p>オンラインマニュアルで <small>EXPLAIN</small> を見てください。</p>
@ -867,6 +877,12 @@ href="mailto:juk at PostgreSQL.jp">juk at PostgreSQL.jp</a>)<br /></p>
CREATE INDEX tabindex ON tab (lower(col));
</pre>
<p>上記のインデックスが<small>UNIQUE</small>で作成された場合、カラム
は大文字と小文字を格納できますが、その違いが文字ケースだけであっても
同一にはなりません。あえて特定の文字ケースをカラムに格納するには
<small>CHECK</small>制約か、トリガーを使ってください。</p>
<h4><a name="4.9">4.9</a>) クエリの中で、フィールドが<small>NULL</small> であることを検出するにはどうしますか? フィールドが<small>NULL</small>かどうかでどのようにソートができますか?</h4>
@ -1002,7 +1018,7 @@ href="mailto:juk at PostgreSQL.jp">juk at PostgreSQL.jp</a>)<br /></p>
O<small>ID</small>は自動的に4バイトの整数で与えられ、それは、全イン
ストレーションを通して一意な値となります。しかし、約40億でオーバーフ
ローし、そして、O<small>ID</small>は重複をしはじめます。PostgreSQLは
内部システムテーブルを一緒にリンクするtためにO<small>ID</small> を使
内部システムテーブルを一緒にリンクするためにO<small>ID</small> を使
います。
<p>ユーザのテーブルのカラムに一意の番号を付けるためには、
@ -1121,12 +1137,38 @@ href="mailto:juk at PostgreSQL.jp">juk at PostgreSQL.jp</a>)<br /></p>
<p>この他にも、商用やハードウェア-ベースのレプリケーションソリュー
ションがいろいろなレプリケーションモデルをサポートしています。</p>
<h3><a name="4.21">4.21</a>)テーブルとカラムの名前がクエリーの中で認識されないのはなぜですか?</h3>
<p>The most common cause is the use of double-quotes around table or
+ column names during table creation. When double-quotes are used,
+ table and column names (called identifiers) are stored <a href="http://www.postgresql.org/docs/8.0/static/sql-syntax.html#SQL-
+ SYNTAX-IDENTIFIERS">case-sensitive</a>, meaning you must use
+ double-quotes when referencing the names in a query. Some interfaces,
+ like pgAdmin, automatically double-quote identifiers during table
+ creation. So, for identifiers to be recognized, you must either:
もっとも一般的な原因は、テーブルを作成する際に、テーブルやカラムを囲
う二重引用符の使用です。二重引用符を使うと、テーブルとカラムの名前
(識別子と呼びます)は<a
href="http://www.postgresql.org/docs/8.0/static/sql-syntax.html#SQL-SYNTAX-IDENTIFIERS">大文字と小文字の区別</a>
をして格納されす。したがって、pgAdminのようにテーブル作成のときに自
動的に二重引用符を使うものはクエリの中でそれらの名前を使うときに二
重引用符を付けなくてはならないことを意味します。このため、識別子を
認識させるためには以下のいずれかを心がけます。
<ul>
<li>テーブルを作成するときに二重引用符で識別子を囲うことを避ける</li>
<li>Use only lowercase characters in identifiers</li>
<li>識別子には小文字だけを使う</li>
<li>クエリの中で参照するときは二重引用譜で識別子を囲う</li>
</ul>
<hr />
<small><pre>
[訳注:
日本語版の製作については以下の通りです。
最終更新日: 2005年05月18日
最終更新日: 2005年10月05
翻訳者: 桑村 潤 (<a href="mailto:juk at PostgreSQL.jp">Jun Kuwamura &lt;juk at PostgreSQL.jp&gt;</a>)
このFAQの和訳の作成にあたり協力をしてくださった方々(敬称は略させていただきます):
@ -1148,12 +1190,11 @@ href="mailto:juk at PostgreSQL.jp">juk at PostgreSQL.jp</a>)<br /></p>
稲葉 香理(<a href="mailto:i-kaori at sra.co.jp">Kaori Inaba &lt;i-kaori at sra.co.jp&gt;</a>)
石井 達夫(<a href="mailto:t-ishii at sra.co.jp">Tatsuo Ishii &lt;t-ishii at sra.co.jp&gt;</a>)
をはじめ、ポストグレスに関する話題豊富な日本語ポストグレス・メーリングリ
スト、 和訳のきっかけを作ってくれた <a
href="http://jf.linux.or.jp/">JF(Linux Japanese FAQ Mailing List)プロジェ
クト</a>、FreeBSD ドキュメンテーションプロジェクト、 その他、直接あるい
は間接的にかかわっているすべてのオープンソースコミュニティーの皆さんに
感謝します。
をはじめ、ポストグレスに関する話題豊富な日本語PostgreSQLメーリングリスト、
和訳のきっかけを作ってくれたり、いつもチェックをしてくれる
<a href="http://jf.linux.or.jp/">JF(Linux Japanese FAQ)プロジェクト</a>
FreeBSD ドキュメンテーションプロジェクト、 その他、直接あるいは間接的に
かかわっているすべてのオープンソースコミュニティーのみなさまに感謝します。
日本語版のこの文書は <a href="http://www.postgresql.org/docs/faq/">本家 "Frequently Asked Questions" </a> のページに "Japanese FAQ" という見出であります。
また、最新版は以下のサイトにあります。