Commit 0f397b9e authored by Bruce Momjian's avatar Bruce Momjian

Update Japanese FAQ.

 Jun Kuwamura
parent ad308fc4
PostgreSQL(ポストグレス・キュー・エル)についてよくある質問とその解答(FAQ) 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) 現在の維持管理者: Bruce Momjian (pgman at candle.pha.pa.us)
Maintainer of Japanese Translation: Jun Kuwamura (juk at PostgreSQL.jp) Maintainer of Japanese Translation: Jun Kuwamura (juk at PostgreSQL.jp)
...@@ -15,7 +15,7 @@ Maintainer of Japanese Translation: Jun Kuwamura (juk at PostgreSQL.jp) ...@@ -15,7 +15,7 @@ Maintainer of Japanese Translation: Jun Kuwamura (juk at PostgreSQL.jp)
[訳注: [訳注:
日本語版の製作については、この文書の最後をごらんください。 日本語版の製作については、この文書の最後をごらんください。
2005年05月18日 桑村 潤 2005年10月05日 桑村 潤
] ]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
...@@ -36,11 +36,11 @@ Maintainer of Japanese Translation: Jun Kuwamura (juk at PostgreSQL.jp) ...@@ -36,11 +36,11 @@ Maintainer of Japanese Translation: Jun Kuwamura (juk at PostgreSQL.jp)
1.12) 他のDBMSと比べてPostgreSQLはどうなのですか? 1.12) 他のDBMSと比べてPostgreSQLはどうなのですか?
1.13) 誰が PostgreSQL をコントロールしますか? 1.13) 誰が PostgreSQL をコントロールしますか?
ユーザー・クライアントの質問 ユーザ・クライアントの質問
2.1) PostgreSQL にはどんなインターフェースが使えますか? 2.1) PostgreSQL にはどんなインターフェースが使えますか?
2.2) PostgreSQL を Web ページと連携させるにはどんなツールがありますか? 2.2) PostgreSQL を Web ページと連携させるにはどんなツールがありますか?
2.3) PostgreSQL にグラフィカル・ユーザインターフェスはありますか? 2.3) PostgreSQL にグラフィカル・ユーザインターフェスはありますか?
管理上の質問 管理上の質問
...@@ -89,6 +89,7 @@ Maintainer of Japanese Translation: Jun Kuwamura (juk at PostgreSQL.jp) ...@@ -89,6 +89,7 @@ Maintainer of Japanese Translation: Jun Kuwamura (juk at PostgreSQL.jp)
4.19) PL/PgSQL の関数の中で一時テーブルにアクセスするとき、どうして "relation 4.19) PL/PgSQL の関数の中で一時テーブルにアクセスするとき、どうして "relation
with OID ##### does not exist" というエラーを受け取るのでしょうか? with OID ##### does not exist" というエラーを受け取るのでしょうか?
4.20) どのようなレプリケーションのソリューションがありますか? 4.20) どのようなレプリケーションのソリューションがありますか?
4.21) テーブルとカラムの名前がクエリーの中で認識されないのはなぜですか?
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
一般的な質問 一般的な質問
...@@ -97,7 +98,8 @@ with OID ##### does not exist" ...@@ -97,7 +98,8 @@ with OID ##### does not exist"
PostgreSQLはPost-Gres-Q-L(ポスト - グレス - キュー - エル) と発音します。 PostgreSQLはPost-Gres-Q-L(ポスト - グレス - キュー - エル) と発音します。
また、単純に Postgres とも呼ばれます。 また、ときによっては単純に Postgres として参照されます。この発音を聞きたい人の
ために、 MP3フォーマットの音声ファイルがあります。
PostgreSQL はオブジェクト-リレーショナルデータベースシステムで、伝統的な商用デ PostgreSQL はオブジェクト-リレーショナルデータベースシステムで、伝統的な商用デ
ータベースシステムに、次世代DBMSシステムに見られるような改良が施された特徴を有 ータベースシステムに、次世代DBMSシステムに見られるような改良が施された特徴を有
...@@ -227,7 +229,8 @@ postgresql-es) ...@@ -227,7 +229,8 @@ postgresql-es)
http://www.PostgreSQL.jp/ http://www.PostgreSQL.jp/
をごらんください。会員登録も可能となっています。 をごらんください。会員登録も可能となっています。
日本語のIRCチャンネル '#PostgreSQL*jp' も存在します。 日本語のIRCチャンネル '#PostgreSQL:*.jp' も存在します。
]
商用サポート会社のリストは http://techdocs.postgresql.org/companies.phpにありま 商用サポート会社のリストは http://techdocs.postgresql.org/companies.phpにありま
...@@ -243,10 +246,10 @@ PostgreSQL ...@@ -243,10 +246,10 @@ PostgreSQL
1.7) 最新版はどれですか 1.7) 最新版はどれですか
PostgreSQL の最新版はバージョン 8.0.3 です。 PostgreSQL の最新版はバージョン 8.0.4 です。
我々は、1年毎にメジャーリリースを行ない、数ヵ月ごとのマイナーリリースをを計画し 我々は、1年毎にメジャーリリースを行ない、数ヵ月ごとのマイナーリリースを計画して
います。 います。
1.8) どのような文書がありますか? 1.8) どのような文書がありますか?
...@@ -289,7 +292,7 @@ PostgreSQL ...@@ -289,7 +292,7 @@ PostgreSQL
ます。 ます。
[訳注: [訳注:
日本語の書籍等については、日本PostgreSQLユーザ会の、http://www.postgresql.jp/PostgreSQL/references.html 日本語の書籍等については、日本PostgreSQLユーザ会の、http://www.postgresql.jp/PostgreSQL/references.html
もごらんください。 もごらんください。
] ]
...@@ -302,7 +305,7 @@ PostgreSQL ...@@ -302,7 +305,7 @@ PostgreSQL
1.9) 既知のバグや未だ無い機能はどうやって見つけますか? 1.9) 既知のバグや未だ無い機能はどうやって見つけますか?
PostgreSQLは拡張されたSQL-92のサブセットをサポートします。我々のページの TODO PostgreSQLは拡張されたSQL:2003のサブセットをサポートします。我々のページの TODO
リストに、既知のバグや欠落機能や将来計画についての記述があります。 リストに、既知のバグや欠落機能や将来計画についての記述があります。
1.10) SQL はどうすれば学べますか? 1.10) SQL はどうすれば学べますか?
...@@ -388,7 +391,7 @@ PostgreSQL ...@@ -388,7 +391,7 @@ PostgreSQL
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ユーザー・クライアントの質問 ユーザ・クライアントの質問
2.1) PostgreSQL にはどんなインターフェースが使えますか? 2.1) PostgreSQL にはどんなインターフェースが使えますか?
...@@ -407,7 +410,7 @@ PHP ...@@ -407,7 +410,7 @@ PHP
データベースを裏に持つ Web ページについての素晴らしい紹介が、 データベースを裏に持つ Web ページについての素晴らしい紹介が、
http://www.webreview.comにあります。 http://www.webreview.comにあります。
Web への拡張のためには、PHP(http://www.php.net/) が卓越したインターフェスとな Web への拡張のためには、PHP(http://www.php.net/) が卓越したインターフェスとな
っています。 っています。
[訳注: [訳注:
...@@ -419,10 +422,10 @@ Web ...@@ -419,10 +422,10 @@ Web
] ]
処理が複雑な場合、多くの人は Perl インターフェスと CGI.pm か mod_perl を使い 処理が複雑な場合、多くの人は Perl インターフェスと CGI.pm か mod_perl を使い
ます。 ます。
2.3) PostgreSQL にグラフィカル・ユーザインターフェスはありますか? 2.3) PostgreSQL にグラフィカル・ユーザインターフェスはありますか?
もちろん、あります。詳細は、http://techdocs.postgresql.org/guides/GUITools をご もちろん、あります。詳細は、http://techdocs.postgresql.org/guides/GUITools をご
らんください。 らんください。
...@@ -465,10 +468,10 @@ Web ...@@ -465,10 +468,10 @@ Web
サーバ構成 サーバ構成
postgresql.confの設定のいくつかは性能に影響します。詳しくは、 postgresql.confの設定のいくつかは性能に影響します。詳しくは、
Administration Guide/Server Run-time Environment/Run-time Configuration の Administration Guide/Server Run-time Environment/Run-time Configuration の
全件リストごらんください( JPUGサイトの日本語版)。そして、解説として、 http: 全件リストをごらんください( JPUGサイトの日本語版)。そして、解説として、
//www.varlena.com/varlena/GeneralBits/Tidbits/annotated_conf_e.html および http://www.varlena.com/varlena/GeneralBits/Tidbits/annotated_conf_e.html お
、 http://www.varlena.com/varlena/GeneralBits/Tidbits/perf.html をごらんく よび、 http://www.varlena.com/varlena/GeneralBits/Tidbits/perf.html をごら
ださい。 んください。
ハードウェアの選定 ハードウェアの選定
性能におけるハードウェアの影響は http://candle.pha.pa.us/main/writings/ 性能におけるハードウェアの影響は http://candle.pha.pa.us/main/writings/
...@@ -530,14 +533,14 @@ LIMIT ...@@ -530,14 +533,14 @@ LIMIT
4.2) 定義されたテーブル、インデックス、データベース、および、ユーザをどのように 4.2) 定義されたテーブル、インデックス、データベース、および、ユーザをどのように
して見つけ出しますか?psqlで使われているクエリを表示するにはどうしますか? して見つけ出しますか?psqlで使われているクエリを表示するにはどうしますか?
psql の中で \dtコマンドをを使ってテーブルを見ることができます。psqlの中で \? を psql の中で \dtコマンドを使ってテーブルを見ることができます。psqlの中で \? を使
使って、コマンドの全リストを調べることができます。一方で、psql のソースコードで って、コマンドの全リストを調べることができます。一方で、psql のソースコードで、
、バックスラッシュコマンドを出力する pgsql/src/bin/psql/describe.c ファイルを読 バックスラッシュコマンドを出力する pgsql/src/bin/psql/describe.c ファイルを読む
むこともできます。その中には、 SQL コマンドを生成する部分も含まれます。また、 こともできます。その中には、 SQL コマンドを生成する部分も含まれます。また、 -E
-E オプションを付けて psql を開始すると、入力されたコマンドを実行するためのクエ オプションを付けて psql を開始すると、入力されたコマンドを実行するためのクエリ
リを印字出力するようになります。 PostgreSQLは SQL 準拠の INFORMATION SCHEMA イ を印字出力するようになります。 PostgreSQLは SQL 準拠の INFORMATION SCHEMA イン
ンターフェースを提供しますので、データベースについての情報を問い合わせることも ターフェースを提供しますので、データベースについての情報を問い合わせることもで
きます。 きます。
pg_ で始まるシステムテーブルでもこれらを記述することができます。 pg_ で始まるシステムテーブルでもこれらを記述することができます。
...@@ -587,6 +590,11 @@ VACUUM FULL tab ...@@ -587,6 +590,11 @@ VACUUM FULL tab
デフォルトのブロックサイズを32kにすることで、最大テーブルサイズと最大カラム数と デフォルトのブロックサイズを32kにすることで、最大テーブルサイズと最大カラム数と
を4倍にすることができます。 を4倍にすることができます。
ひとつの制限は、約2,000文字以上の長さのカラムにインデックスを付けることができな
いことです。幸いにも、そのようなインデックスは実際は必要ありません。長いカラム
のMD5ハッシュの関数インデックスは一意性がなによりの保険で、また、フルテキストの
インデックスではカラム内の単語を検索することができます。
4.5) 一般的なテキストファイルのデータを保存するには、データベースのディスク容量 4.5) 一般的なテキストファイルのデータを保存するには、データベースのディスク容量
はどのくらい必要です? はどのくらい必要です?
...@@ -598,23 +606,23 @@ VACUUM FULL tab ...@@ -598,23 +606,23 @@ VACUUM FULL tab
は約2.8MB です。このデータを含む PostgreSQL データベースファイルの大きさは次の は約2.8MB です。このデータを含む PostgreSQL データベースファイルの大きさは次の
ように約6.4MBと見積もることができます: ように約6.4MBと見積もることができます:
32 bytes: 各ロウのヘッダ(概算) 28 bytes: 各ロウのヘッダ(概算)
24 bytes: 整数(int)フィールドとテキスト(text)フィールド 24 bytes: 整数(int)フィールドとテキスト(text)フィールド
+ 4 bytes: ページ上のタップルへのポインタ + 4 bytes: ページ上のタップルへのポインタ
---------------------------------------- ----------------------------------------
60 bytes per row 56 bytes per row
PostgreSQL のデータページサイズは 8192バイト(8KB)なので: PostgreSQL のデータページサイズは 8192バイト(8KB)なので:
8192 bytes per page 8192 bytes per page
------------------- = 136 rows per database page (切り捨て) ------------------- = 146 rows per database page (切り捨て)
60 bytes per row 56 bytes per row
100000 data rows 100000 data rows
-------------------- = 782 database pages (切り上げ) -------------------- = 685 database pages (切り上げ)
128 rows per page 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)
インデックスは、これほどのオーバヘッドは要求しませんが、インデックス付けされる インデックスは、これほどのオーバヘッドは要求しませんが、インデックス付けされる
データを含む以上、それなりに大きくなります。 データを含む以上、それなりに大きくなります。
...@@ -631,7 +639,7 @@ NULL ...@@ -631,7 +639,7 @@ NULL
インデックスを使うかを決定するために、PostgreSQL はテーブルについての統計情報を インデックスを使うかを決定するために、PostgreSQL はテーブルについての統計情報を
持たなければなりません。この統計情報は、 VACUUMANALYZEまたは、単に ANALYZE を使 持たなければなりません。この統計情報は、 VACUUMANALYZEまたは、単に ANALYZE を使
って収集することができます。統計情報を使ってオティマイザはテーブルの中にある って収集することができます。統計情報を使ってオティマイザはテーブルの中にある
ロウ数を知り、インデックスを使うべきかの決定をより正しくできます。統計情報は最 ロウ数を知り、インデックスを使うべきかの決定をより正しくできます。統計情報は最
適な結合順や結合方法を決める上でも貴重なものもあります。統計情報の収集は、テー 適な結合順や結合方法を決める上でも貴重なものもあります。統計情報の収集は、テー
ブルの内容がかわると毎に繰返しなされるべきです。 ブルの内容がかわると毎に繰返しなされるべきです。
...@@ -678,7 +686,7 @@ LIKE ...@@ -678,7 +686,7 @@ LIKE
の型と一致しなければ、使えないことがしばしばありました。おそらく、int2, int8, の型と一致しなければ、使えないことがしばしばありました。おそらく、int2, int8,
および numeric 等のカラムのインデックスがそうです。 および numeric 等のカラムのインデックスがそうです。
4.7) 問い合わせオティマイザがどのように問い合わせを評価するのかを見るにはどう 4.7) 問い合わせオティマイザがどのように問い合わせを評価するのかを見るにはどう
しますか? しますか?
オンラインマニュアルで EXPLAIN を見てください。 オンラインマニュアルで EXPLAIN を見てください。
...@@ -702,6 +710,10 @@ LIKE ...@@ -702,6 +710,10 @@ LIKE
CREATE INDEX tabindex ON tab (lower(col)); CREATE INDEX tabindex ON tab (lower(col));
上記のインデックスがUNIQUEで作成された場合、カラムは大文字と小文字を格納できま
すが、その違いが文字ケースだけであっても同一にはなりません。あえて特定の文字ケ
ースをカラムに格納するには CHECK制約か、トリガーを使ってください。
4.9) クエリの中で、フィールドがNULL であることを検出するにはどうしますか?フィ 4.9) クエリの中で、フィールドがNULL であることを検出するにはどうしますか?フィ
ールドがNULLかどうかでどのようにソートができますか? ールドがNULLかどうかでどのようにソートができますか?
...@@ -805,7 +817,7 @@ currval() ...@@ -805,7 +817,7 @@ currval()
PostgreSQLでつくられるすべてのロウは、WITHOUT OIDS でつくられないかぎり一意の PostgreSQLでつくられるすべてのロウは、WITHOUT OIDS でつくられないかぎり一意の
OIDを得ます。 OIDは自動的に4バイトの整数で与えられ、それは、全インストレーショ OIDを得ます。 OIDは自動的に4バイトの整数で与えられ、それは、全インストレーショ
ンを通して一意な値となります。しかし、約40億でオーバーフローし、そして、OIDは重 ンを通して一意な値となります。しかし、約40億でオーバーフローし、そして、OIDは重
複をしはじめます。PostgreSQLは内部システムテーブルを一緒にリンクするtためにOID 複をしはじめます。PostgreSQLは内部システムテーブルを一緒にリンクするためにOID
を使います。 を使います。
ユーザのテーブルのカラムに一意の番号を付けるためには、 OID ではなく SERIAL を使 ユーザのテーブルのカラムに一意の番号を付けるためには、 OID ではなく SERIAL を使
...@@ -908,12 +920,32 @@ PL/PgSQL ...@@ -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>) 翻訳者: 桑村 潤 (Jun Kuwamura <juk at PostgreSQL.jp>)
このFAQの和訳の作成にあたり協力をしてくださった方々(敬称は略させていただきます): このFAQの和訳の作成にあたり協力をしてくださった方々(敬称は略させていただきます):
...@@ -935,11 +967,11 @@ PL/PgSQL ...@@ -935,11 +967,11 @@ PL/PgSQL
稲葉 香理(Kaori Inaba <i-kaori at sra.co.jp>) 稲葉 香理(Kaori Inaba <i-kaori at sra.co.jp>)
石井 達夫(Tatsuo Ishii <t-ishii at sra.co.jp>) 石井 達夫(Tatsuo Ishii <t-ishii at sra.co.jp>)
をはじめ、ポストグレスに関する話題豊富な日本語ポストグレス・メーリングリ をはじめ、ポストグレスに関する話題豊富な日本語PostgreSQLメーリングリスト、
スト、 和訳のきっかけを作ってくれた JF(Linux Japanese FAQ Mailing List)プロジェ 和訳のきっかけを作ってくれたり、いつもチェックをしてくれる
クト、FreeBSD ドキュメンテーションプロジェクト、 その他、直接あるい JF(Linux Japanese FAQ)プロジェクト、
は間接的にかかわっているすべてのオープンソースコミュニティーの皆さん FreeBSD ドキュメンテーションプロジェクト、 その他、直接あるいは間接的
感謝します。 かかわっているすべてのオープンソースコミュニティーのみなさまに感謝します。
日本語版のこの文書は 本家 "Frequently Asked Questions" のページに "Japanese FAQ" という見出であります。 日本語版のこの文書は 本家 "Frequently Asked Questions" のページに "Japanese FAQ" という見出であります。
また、最新版は以下のサイトにあります。 また、最新版は以下のサイトにあります。
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
<div id="pgContentWrap"> <div id="pgContentWrap">
<h1>PostgreSQL(ポストグレス・キュー・エル)についてよくある質問とその解答(FAQ)</h1> <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 <p>現在の維持管理者: Bruce Momjian (<A
href="mailto:pgman at candle.pha.pa.us">pgman at candle.pha.pa.us</a>)<br /> href="mailto:pgman at candle.pha.pa.us">pgman at candle.pha.pa.us</a>)<br />
Maintainer of Japanese Translation: Jun Kuwamura (<A Maintainer of Japanese Translation: Jun Kuwamura (<A
...@@ -30,7 +30,7 @@ href="mailto:juk at PostgreSQL.jp">juk at PostgreSQL.jp</a>)<br /></p> ...@@ -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> </pre></small>
</p> </p>
...@@ -54,11 +54,11 @@ href="mailto:juk at PostgreSQL.jp">juk at PostgreSQL.jp</a>)<br /></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 /> <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.1">2.1</a>) PostgreSQL にはどんなインターフェースが使えますか?<br />
<a href="#2.2">2.2</a>) PostgreSQL を Web ページと連携させるにはどんなツールがありますか?<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> <h2 align="center">管理上の質問</h2>
...@@ -97,6 +97,7 @@ href="mailto:juk at PostgreSQL.jp">juk at PostgreSQL.jp</a>)<br /></p> ...@@ -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.18">4.18</a>) 関数から複数のロウまたはカラムを返すにはどうしますか?<br />
<a href="#4.19">4.19</a>) PL/PgSQL の関数の中で一時テーブルにアクセスするとき、どうして "relation with OID ##### does not exist" というエラーを受け取るのでしょうか?<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.20">4.20</a>) どのようなレプリケーションのソリューションがありますか?<br />
<a href="#4.21">4.21</a>) テーブルとカラムの名前がクエリーの中で認識されないのはなぜですか?<br />
<hr /> <hr />
...@@ -106,7 +107,10 @@ href="mailto:juk at PostgreSQL.jp">juk at PostgreSQL.jp</a>)<br /></p> ...@@ -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> <h4><a name="1.1">1.1</a>) PostgreSQL とは何ですか? 何と発音しますか?</h4>
<p>PostgreSQLは<i>Post-Gres-Q-L</i>(ポスト - グレス - キュー - エル) <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 はオブジェクト-リレーショナルデータベースシステムで、 <p>PostgreSQL はオブジェクト-リレーショナルデータベースシステムで、
伝統的な商用データベースシステムに、次世代<small>DBMS</small>システ 伝統的な商用データベースシステムに、次世代<small>DBMS</small>システ
...@@ -262,7 +266,8 @@ href="mailto:juk at PostgreSQL.jp">juk at PostgreSQL.jp</a>)<br /></p> ...@@ -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> <a href="http://www.PostgreSQL.jp/">http://www.PostgreSQL.jp/</a>
をごらんください。会員登録も可能となっています。 をごらんください。会員登録も可能となっています。
日本語のIRCチャンネル '#PostgreSQL*jp' も存在します。 日本語のIRCチャンネル '#PostgreSQL:*.jp' も存在します。
]
</pre></small> </pre></small>
<p>商用サポート会社のリストは<a <p>商用サポート会社のリストは<a
...@@ -286,9 +291,9 @@ href="mailto:juk at PostgreSQL.jp">juk at PostgreSQL.jp</a>)<br /></p> ...@@ -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> <h4><a name="1.7">1.7</a>) 最新版はどれですか</h4>
<p>PostgreSQL の最新版はバージョン 8.0.3 です。</p> <p>PostgreSQL の最新版はバージョン 8.0.4 です。</p>
<p>我々は、1年毎にメジャーリリースを行ない、数ヵ月ごとのマイナーリリー <p>我々は、1年毎にメジャーリリースを行ない、数ヵ月ごとのマイナーリリー
スを計画しています。</p> スを計画しています。</p>
<h4><a name="1.8">1.8</a>) どのような文書がありますか?</h4> <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> ...@@ -347,7 +352,7 @@ href="mailto:juk at PostgreSQL.jp">juk at PostgreSQL.jp</a>)<br /></p>
<small><pre> <small><pre>
[訳注: [訳注:
日本語の書籍等については、日本PostgreSQLユーザ会の、<A 日本語の書籍等については、日本PostgreSQLユーザ会の、<A
href="http://www.postgresql.jp/PostgreSQL/references.html">http://www.postgresql.jp/PostgreSQL/references.html</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> ...@@ -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><a name="1.9">1.9</a>) 既知のバグや未だ無い機能はどうやって見つけますか?
</h4> </h4>
<p>PostgreSQLは拡張された<small>SQL</small>-92のサブセットをサポート <p>PostgreSQLは拡張された<small>SQL:2003</small>のサブセットをサポート
します。我々のページの <A します。我々のページの <A
href="http://www.PostgreSQL.org/docs/todo.html">TODO</a> リストに、 href="http://www.PostgreSQL.org/docs/todo.html">TODO</a> リストに、
既知のバグや欠落機能や将来計画についての記述があります。</p> 既知のバグや欠落機能や将来計画についての記述があります。</p>
...@@ -414,7 +419,7 @@ href="mailto:juk at PostgreSQL.jp">juk at PostgreSQL.jp</a>)<br /></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> <h4><a name="1.11">1.11</a>) 開発チームにはどのように参加しますか?</h4>
<p><a href="http://www.postgresql.org/docs/faqs.FAQ_DEV.html"> <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> <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> ...@@ -490,7 +495,7 @@ href="mailto:juk at PostgreSQL.jp">juk at PostgreSQL.jp</a>)<br /></p>
<hr /> <hr />
<h2 align="center">ユーザ・クライアントの質問</h2> <h2 align="center">ユーザ・クライアントの質問</h2>
<h4><a name="2.1">2.1</a>) PostgreSQL にはどんなインターフェースが使えますか?</h4> <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> ...@@ -515,7 +520,7 @@ href="mailto:juk at PostgreSQL.jp">juk at PostgreSQL.jp</a>)<br /></p>
<p> データベースを裏に持つ Web ページについての素晴らしい紹介が、<br /> <p> データベースを裏に持つ Web ページについての素晴らしい紹介が、<br />
<a href="http://www.webreview.com">http://www.webreview.com</a>にあります。</p> <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> Web への拡張のためには、PHP(<a href="http://www.php.net">http://www.php.net/</a>)
が卓越したインターフェスとなっています。</p> が卓越したインターフェスとなっています。</p>
<small><pre> <small><pre>
[訳注: [訳注:
...@@ -527,11 +532,11 @@ href="mailto:juk at PostgreSQL.jp">juk at PostgreSQL.jp</a>)<br /></p> ...@@ -527,11 +532,11 @@ href="mailto:juk at PostgreSQL.jp">juk at PostgreSQL.jp</a>)<br /></p>
] ]
</pre></small> </pre></small>
<p> 処理が複雑な場合、多くの人は Perl インターフェスと CGI.pm か <p> 処理が複雑な場合、多くの人は Perl インターフェスと CGI.pm か
mod_perl を使います。 </p> mod_perl を使います。 </p>
<h4><a name="2.3">2.3</a>) PostgreSQL にグラフィカル・ユーザインターフェスはありますか?</h4> <h4><a name="2.3">2.3</a>) PostgreSQL にグラフィカル・ユーザインターフェスはありますか?</h4>
<p>もちろん、あります。 <p>もちろん、あります。
...@@ -585,7 +590,7 @@ href="mailto:juk at PostgreSQL.jp">juk at PostgreSQL.jp</a>)<br /></p> ...@@ -585,7 +590,7 @@ href="mailto:juk at PostgreSQL.jp">juk at PostgreSQL.jp</a>)<br /></p>
詳しくは、<a href= 詳しくは、<a href=
"http://www.postgresql.org/docs/current/static/runtime.html"> "http://www.postgresql.org/docs/current/static/runtime.html">
Administration Guide/Server Run-time Environment/Run-time Administration Guide/Server Run-time Environment/Run-time
Configuration</a> の全件リストごらんください(<a Configuration</a> の全件リストごらんください(<a
href="http://www.postgresql.jp/document/pg803doc/html/runtime.html"> href="http://www.postgresql.jp/document/pg803doc/html/runtime.html">
JPUGサイトの日本語版</a>)。 JPUGサイトの日本語版</a>)。
そして、解説として、<a そして、解説として、<a
...@@ -670,7 +675,7 @@ href="mailto:juk at PostgreSQL.jp">juk at PostgreSQL.jp</a>)<br /></p> ...@@ -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> <h4><a name="4.2">4.2</a>) 定義されたテーブル、インデックス、データベース、および、ユーザをどのようにして見つけ出しますか?<i>psql</i>で使われているクエリを表示するにはどうしますか?</h4>
<p><i>psql</i> の中で \dtコマンドを使ってテーブルを見ることができ <p><i>psql</i> の中で \dtコマンドを使ってテーブルを見ることができ
ます。psqlの中で \? を使って、コマンドの全リストを調べることができま ます。psqlの中で \? を使って、コマンドの全リストを調べることができま
す。一方で、<i>psql</i> のソースコードで、バックスラッシュコマンドを す。一方で、<i>psql</i> のソースコードで、バックスラッシュコマンドを
出力する <i>pgsql/src/bin/psql/describe.c</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> ...@@ -736,6 +741,11 @@ href="mailto:juk at PostgreSQL.jp">juk at PostgreSQL.jp</a>)<br /></p>
<p> デフォルトのブロックサイズを32kにすることで、最大テーブルサイズ <p> デフォルトのブロックサイズを32kにすることで、最大テーブルサイズ
と最大カラム数とを4倍にすることができます。</p> と最大カラム数とを4倍にすることができます。</p>
<p>ひとつの制限は、約2,000文字以上の長さのカラムにインデックスを付
けることができないことです。 幸いにも、そのようなインデックスは実際
は必要ありません。長いカラムのMD5ハッシュの関数インデックスは一意性
がなによりの保険で、また、フルテキストのインデックスではカラム内の
単語を検索することができます。</p>
<h4><a name="4.5">4.5</a>) 一般的なテキストファイルのデータを保存するには、データベースのディスク容量はどのくらい必要です?</h4> <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> ...@@ -750,23 +760,23 @@ href="mailto:juk at PostgreSQL.jp">juk at PostgreSQL.jp</a>)<br /></p>
ます: ます:
<pre> <pre>
32 bytes: 各ロウのヘッダ(概算) 28 bytes: 各ロウのヘッダ(概算)
24 bytes: 整数(int)フィールドとテキスト(text)フィールド 24 bytes: 整数(int)フィールドとテキスト(text)フィールド
+ 4 bytes: ページ上のタップルへのポインタ + 4 bytes: ページ上のタップルへのポインタ
---------------------------------------- ----------------------------------------
60 bytes per row 56 bytes per row
PostgreSQL のデータページサイズは 8192バイト(8KB)なので: PostgreSQL のデータページサイズは 8192バイト(8KB)なので:
8192 bytes per page 8192 bytes per page
------------------- = 136 rows per database page (切り捨て) ------------------- = 146 rows per database page (切り捨て)
60 bytes per row 56 bytes per row
100000 data rows 100000 data rows
-------------------- = 782 database pages (切り上げ) -------------------- = 685 database pages (切り上げ)
128 rows per page 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> </pre>
<p>インデックスは、これほどのオーバヘッドは要求しませんが、インデッ <p>インデックスは、これほどのオーバヘッドは要求しませんが、インデッ
...@@ -786,7 +796,7 @@ href="mailto:juk at PostgreSQL.jp">juk at PostgreSQL.jp</a>)<br /></p> ...@@ -786,7 +796,7 @@ href="mailto:juk at PostgreSQL.jp">juk at PostgreSQL.jp</a>)<br /></p>
<p>インデックスを使うかを決定するために、PostgreSQL はテーブルについ <p>インデックスを使うかを決定するために、PostgreSQL はテーブルについ
ての統計情報を持たなければなりません。この統計情報は、 ての統計情報を持たなければなりません。この統計情報は、
<small>VACUUMANALYZE</small>または、単に <small>ANALYZE</small> を使っ <small>VACUUMANALYZE</small>または、単に <small>ANALYZE</small> を使っ
て収集することができます。統計情報を使ってオティマイザはテーブルの て収集することができます。統計情報を使ってオティマイザはテーブルの
中にあるロウ数を知り、インデックスを使うべきかの決定をより正しくでき 中にあるロウ数を知り、インデックスを使うべきかの決定をより正しくでき
ます。統計情報は最適な結合順や結合方法を決める上でも貴重なものもあり ます。統計情報は最適な結合順や結合方法を決める上でも貴重なものもあり
ます。統計情報の収集は、テーブルの内容がかわると毎に繰返しなされるべ ます。統計情報の収集は、テーブルの内容がかわると毎に繰返しなされるべ
...@@ -842,7 +852,7 @@ href="mailto:juk at PostgreSQL.jp">juk at PostgreSQL.jp</a>)<br /></p> ...@@ -842,7 +852,7 @@ href="mailto:juk at PostgreSQL.jp">juk at PostgreSQL.jp</a>)<br /></p>
です。</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> <p>オンラインマニュアルで <small>EXPLAIN</small> を見てください。</p>
...@@ -867,6 +877,12 @@ href="mailto:juk at PostgreSQL.jp">juk at PostgreSQL.jp</a>)<br /></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)); CREATE INDEX tabindex ON tab (lower(col));
</pre> </pre>
<p>上記のインデックスが<small>UNIQUE</small>で作成された場合、カラム
は大文字と小文字を格納できますが、その違いが文字ケースだけであっても
同一にはなりません。あえて特定の文字ケースをカラムに格納するには
<small>CHECK</small>制約か、トリガーを使ってください。</p>
<h4><a name="4.9">4.9</a>) クエリの中で、フィールドが<small>NULL</small> であることを検出するにはどうしますか? フィールドが<small>NULL</small>かどうかでどのようにソートができますか?</h4> <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> ...@@ -1002,7 +1018,7 @@ href="mailto:juk at PostgreSQL.jp">juk at PostgreSQL.jp</a>)<br /></p>
O<small>ID</small>は自動的に4バイトの整数で与えられ、それは、全イン O<small>ID</small>は自動的に4バイトの整数で与えられ、それは、全イン
ストレーションを通して一意な値となります。しかし、約40億でオーバーフ ストレーションを通して一意な値となります。しかし、約40億でオーバーフ
ローし、そして、O<small>ID</small>は重複をしはじめます。PostgreSQLは ローし、そして、O<small>ID</small>は重複をしはじめます。PostgreSQLは
内部システムテーブルを一緒にリンクするtためにO<small>ID</small> を使 内部システムテーブルを一緒にリンクするためにO<small>ID</small> を使
います。 います。
<p>ユーザのテーブルのカラムに一意の番号を付けるためには、 <p>ユーザのテーブルのカラムに一意の番号を付けるためには、
...@@ -1121,12 +1137,38 @@ href="mailto:juk at PostgreSQL.jp">juk at PostgreSQL.jp</a>)<br /></p> ...@@ -1121,12 +1137,38 @@ href="mailto:juk at PostgreSQL.jp">juk at PostgreSQL.jp</a>)<br /></p>
<p>この他にも、商用やハードウェア−ベースのレプリケーションソリュー <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 /> <hr />
<small><pre> <small><pre>
[訳注: [訳注:
日本語版の製作については以下の通りです。 日本語版の製作については以下の通りです。
最終更新日: 2005年05月18 最終更新日: 2005年10月05
翻訳者: 桑村 潤 (<a href="mailto:juk at PostgreSQL.jp">Jun Kuwamura &lt;juk at PostgreSQL.jp&gt;</a>) 翻訳者: 桑村 潤 (<a href="mailto:juk at PostgreSQL.jp">Jun Kuwamura &lt;juk at PostgreSQL.jp&gt;</a>)
このFAQの和訳の作成にあたり協力をしてくださった方々(敬称は略させていただきます): このFAQの和訳の作成にあたり協力をしてくださった方々(敬称は略させていただきます):
...@@ -1148,12 +1190,11 @@ href="mailto:juk at PostgreSQL.jp">juk at PostgreSQL.jp</a>)<br /></p> ...@@ -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: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="mailto:t-ishii at sra.co.jp">Tatsuo Ishii &lt;t-ishii at sra.co.jp&gt;</a>)
をはじめ、ポストグレスに関する話題豊富な日本語ポストグレス・メーリングリ をはじめ、ポストグレスに関する話題豊富な日本語PostgreSQLメーリングリスト、
スト、 和訳のきっかけを作ってくれた <a 和訳のきっかけを作ってくれたり、いつもチェックをしてくれる
href="http://jf.linux.or.jp/">JF(Linux Japanese FAQ Mailing List)プロジェ <a href="http://jf.linux.or.jp/">JF(Linux Japanese FAQ)プロジェクト</a>
クト</a>、FreeBSD ドキュメンテーションプロジェクト、 その他、直接あるい FreeBSD ドキュメンテーションプロジェクト、 その他、直接あるいは間接的に
は間接的にかかわっているすべてのオープンソースコミュニティーの皆さんに かかわっているすべてのオープンソースコミュニティーのみなさまに感謝します。
感謝します。
日本語版のこの文書は <a href="http://www.postgresql.org/docs/faq/">本家 "Frequently Asked Questions" </a> のページに "Japanese FAQ" という見出であります。 日本語版のこの文書は <a href="http://www.postgresql.org/docs/faq/">本家 "Frequently Asked Questions" </a> のページに "Japanese FAQ" という見出であります。
また、最新版は以下のサイトにあります。 また、最新版は以下のサイトにあります。
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment