タグ

ブックマーク / lets.postgresql.jp (299)

  • PostgreSQL 超入門 第1回(1) — Let's Postgres

    この記事は、PostgreSQL とは何か、リレーショナルデータベースとは何かをわかりやすく説明するためのものです。 もしあなたがデータベースについて聞いたことがない、あるいは、言葉くらいしか知らないのであれば、そして、これからデータベースに関わっていくのであれば、ぜひこの記事を注意深くお読みいただきたいと思います。 記事の記述内容で分かりにくい、不適切な部分、もっと知りたいことなどございましたら、ぜひ著者までご一報下さい。なるべく早い時期にこの記事に反映したいと思います。 【第1回】データベースとデータベース管理システム 1.1 データベース管理システムが扱うデータ 1.2 データーベース管理システムとアプリケーション 1.3 データベース管理システムはデータベースを守る 1.4 データベースを使うと何人もの人が同時にデータベースを使える 【第2回】PostgreSQL って何? 【第3

  • 物理バップアップの概要 — Let's Postgres

    NTT オープンソースソフトウェアセンタ 鈴木 幸市 4. 物理バックアップ 前記事では pg_dump や pg_dumpall を用いた論理バックアップを紹介しました。章では物理バックアップについて解説していきます。 pg_dump などを利用した論理バックアップでは、特定のデータベースやテーブル、あるいはスキーマなどを個別にバックアップできました。 一方、物理バックアップはデータベース・クラスタ全体の粒度でのみバックアップできます。 物理バックアップには、オフライン・バックアップとオンライン・バックアップがあります。 章ではこれらについて解説します。 5. オフライン・バックアップとリストア オフライン・バックアップは、PostgreSQLの運転を停止させ、データベースの内容をまるごとそのままバックアップするものです。 操作は単純で、バックアップは tar や rsync などの

  • dblink | Let's POSTGRES

    NTT オープンソースソフトウェアセンタ 板垣 貴裕 他の PostgreSQL データベースを SQL から直接操作できるモジュール "dblink" の使い方を紹介します。 dblink を使うと、分散環境で複数のデータベースをまたがる処理を行ったり、同じサーバ内の別のデータベースを操作することができます。 dblink の構成 dblink では、接続中のバックエンド・プロセスが別のバックエンド・プロセスに libpq ライブラリを用いて接続します。 このプロセスは、PostgreSQL のサーバプロセスでありながら、クライアントでもあるという構成になっています。 別のバックエンド・プロセスは、同一サーバ(インスタンス)であることもありますし、別マシンの別サーバへ接続することもできます。 基的な使い方 インストールと簡単な使い方 最初に dblink をインストールします。 RPM

  • PostgreSQL上にMediaWiki環境を構築 | Let's POSTGRES

    NTT オープンソースソフトウェアセンタ 板垣 貴裕 PostgreSQL はソースコードでの配布の他に、バイナリ・パッケージとしても配布されています。今回はバイナリ・パッケージを使った手軽なインストール方法を紹介します。また、データベースである PostgreSQL は、それ単体では特に「遊べる」ものでは無いため、MediaWiki も一緒に導入してみます。MediaWikiはWikipediaでも使われているWikiです。OS 環境は Windows XP および Vista を想定しています。 Windows 版のバイナリ・パッケージは http://www.postgresql.org/ftp/binary/ からダウンロードできます。執筆時には最新版である postgresql-8.3.5-1.zip をダウンロードしました。パッケージは以下のファイルを含んでいます。 Postg

  • キャストを追加してバージョン互換性を保つには | Let's POSTGRES

    NTT オープンソースソフトウェアセンタ 板垣 貴裕 PostgreSQL 8.3 では型変換のチェックが厳密になるよう仕様変更されました。特に文字列型への暗黙の型変換が無くなったため、以前のバージョンで動作していたアプリケーションであっても 8.3 上ではエラーが発生するかもしれません。もちろん、一番確実な対応方法は、型を厳密に扱うようアプリケーションやSQLを書き換えることですが、アプリケーションの規模が大きかったり、そもそも書き換えができないケースもあるのではないかと思います。できれば、せっかく高速化された 8.3 へはバージョンアップしたいですし、互換性を保つ手軽な方法は何か無いでしょうか? 型エラーのメッセージ 型変換でエラーが発生している場合の典型的なエラーメッセージには、以下のようなものがあります。もし 8.3 へのバージョンアップ後にこれらのエラーが出力されるようならば、キ

  • PostgreSQLの導入と初期設定 — Let's Postgres

    NTT オープンソースソフトウェアセンタ 板垣 貴裕 この記事は、gihyo.jp & Let's Postgres 連動企画「今こそ!PostgreSQL」の第4回記事です。「PostgreSQLの今を知る」シリーズに続き、今回から 4回に分けて PostgreSQL の使い方を解説していきます。第4回目は、PostgreSQL の導入、管理ツール類、運用を始める前に確認しておくべきポイントについて解説します。 インストール、基ツール、追加の GUI ツールについて解説します。 インストール PostgreSQL はソースコードや実行バイナリの形式で配布されています。32bit版と 64bit版がありますが、OS に併せて選ぶのが適当だと思います。(Windows では 32bit版のみ) インストールの手順は「目的別ガイド:インストール編」に一覧があります。CentOS, Ubunt

  • Window関数 — Let's Postgres

    また、CREATE FUNCTION 文でユーザ定義のWindow関数を追加することもできますが、バージョン 8.4 ではC言語で関数を記述する必要があります。SQLやPL/pgSQLは使えないので、敷居は高いかもしれません。 例 典型的なWindow関数の使い方を挙げます。この他にも、これまで複雑なSQLが必要だったさまざまなケースを効率化できる可能性がありますので、SQLパズルだと思って試してみてください。。 連番付与 連番付与を行います。ソートした後、番号をふるのがポイントです。 SELECT row_number() OVER (), * FROM (SELECT * FROM tbl ORDER BY sortkey) AS t; ただし、結果の最大行数を指定するには、row_number との値の比較ではなく、これまでどおり LIMIT 句を使ってください。row_number

  • 大量のデータを高速に投入するには — Let's Postgres

    FORCIA, Inc. 板垣 貴裕 PostgreSQL に大量のデータを高速に取り込む方法を紹介します。 COPY という専用のコマンドを使うと INSERT よりもずっと高速です。 また、COPY を使う際にひと工夫すると、さらに速くなります。 高速にデータをロードするコマンド INSERT の代わりに COPY FROM を使う PostgreSQL には COPY FROM という大量データ取り込み専用のコマンドがあります。 COPY コマンドは外部からタブ区切り (.tsv) やカンマ区切り (.csv) のファイルを読み込める上に、INSERT よりもずっと高速です。 同様に、pg_dump コマンドも -d や --inserts オプションを付けると INSERT を並べたダンプファイルを作ってしまいます。 オプションを付けないデフォルトでは高速な COPY 形式なので、

  • PHPでのSQLインジェクション対策 - エスケープ・クォート編: MDB2 | Let's POSTGRES

    PEAR::MDB2 MDB2はPHPでデータベースを操作するためのPEARのパッケージの1つです。MDB2の簡単な説明や、コネクトの方法、フェッチモードの設定などはプレースホルダ編を参照していただくことにして、ここでは実際にクォートをする例を説明します。 MDB2でクォートする まずはSQLに埋め込む値をそれぞれ型にあわせてクォートする例を見てみましょう。 $res = $mdb2->query( 'UPDATE users’ . ' SET profile = ' . $mdb2->quote($_REQUEST['profile'], 'text') . ' WHERE userid = ' . $mdb2->quote($_SESSION['me']['userid'], 'integer') ); $res->free(); $all = $mdb2->queryAll( 'SE

  • PostgreSQL 9.5の新機能 | Let's POSTGRES

    PostgreSQL 9.5 は 2016年1月にリリースされました。記事では、PostgreSQL9.5 の新機能の概要と外部参考資料の紹介をいたします。 9.5 新機能の概要 9.5では多数の性能改善、機能拡張が行われています。主要な点を以下に挙げます。すべての変更点は9.5のリリースノートに記載されています。 アプリケーション開発むけに以下の機能追加が行われています。 INSERT .. ON CONFLICT 構文が追加されました。INSERT して既に該当行があったなら UPDATE するという処理が1命令で表現できます。 行単位セキュリティ制御がサポートされました。行ごとにロールに応じたアクセス制御が可能になります。 新たなインデックス方式 BRIN(Block Range Index)が追加されました。更新が少ない静的なデータに対して効率的なインデックスを構成できます。 グ

  • パーティショニング | Let's POSTGRES

    パーティショニングとはデータを複数に分割して格納することです。特にデータサイズが大きい場合には、性能や運用性の向上や、故障の影響を局所化できる利点があります。

  • 論理バックアップ(pg_dump と pg_dumpall) — Let's Postgres

    NTT オープンソースソフトウェアセンタ 鈴木 幸市 3. 論理バックアップとリストア 論理バックアップを行うツールは pg_dump 及び pg_dumpall です。 pg_dump は PostgreSQL データベースクラスタの各データベース単位にバックアップを行います。pg_dumpall はターゲットのデータベースクラスタに格納してある全データベースのバックアップを行います。 pg_dump も pg_dumpall も、バックアップデータはデータベースを復元するために必要な SQL 文で構成されます。 従って、pg_dump や pg_dumpall を使うと PostgreSQL データベースの内容を別なデータベースに移行したり、特定のテーブルだけをバックアップしたりすることが可能となります。 pg_dump, pg_dumpall を使うためには特別な用意はいりませんが、

  • 再帰SQL | Let's POSTGRES

    NTT オープンソースソフトウェアセンタ 板垣 貴裕 共通表式 WITH 句と再帰SQL (WITH RECURSIVE) は PostgreSQL 8.4 の新機能です。WITH と WITH RECURSIVE それぞれの説明と、実際の利用例として再帰クエリを使ったロック競合解析の方法を解説します。 共通表式 WITH 句 あるクエリの中で他のクエリの結果を使う方法には、既にサブクエリがあります。WITH 句は、サブクエリの結果に名前をつけ、クエリの複数の箇所からその結果を参照するための構文です。そのクエリの中だけで使用できる一時表 (TEMP TABLE) を作るのに近い動作になります。 利用例としては、あるサブクエリの結果を複数の列と比較する場合が挙げられます。例えば以下のように、表 keyword_list から取得した結果を、表 document の keyword1, key

  • UbuntuでPostgreSQLを使ってみよう — Let's Postgres

    NTT オープンソースソフトウェアセンタ 鈴木 幸市 はじめに この記事では、Linuxの代表的なフリーのディストリビューションであるubuntuでPostgreSQLを動かす方法を紹介するものです。Linuxを動かすからといって、新しいPCを用意したり、デュアルブートにしたりする必要はありません。今回の「やってみよう」では、ごくふつうのWindows XP が動作しているPC上にubuntuをインストールして、この上でPostgreSQLを動かしてみることにします。そして、PostgreSQLのマニュアルにのっているチュートリアルが全部できるようにしてみましょう。 1.用意するもの 1.1 PC ごくふつうにWindows XP が動いているものであればOKです。ちなみに、記事で試したPCは3年前のデスクトップで、スペックは次のようなものです。 CPU: Pentium D 3.00G

  • PostgreSQLの機能と他のRDBMSの比較 | Let's POSTGRES

    全ての機能を網羅した表ではありませんが、PostgreSQLOracle Database と同様の機能があることがお分かりいただけるでしょう。レプリケーションやクラスタリングなどは、PostgreSQL体とは別にリリースされるサードパーティーでの提供となりますが、pgpool-II, Slony-I をはじめとした実績も豊富なソフトウェアが提供されています。 PostgreSQLが特に強みを発揮する分野として、最後の行に記載したGIS (地理情報システム) があります。GISは位置に関する情報を持ったデータ (空間データ) を管理し、主に地図と組み合わせて位置を表示、検索、分析するシステムです。PostgreSQLでは、PostGIS というサードパーティーソフトウェアで、GISオブジェクトをデータベースに格納し空間データに適した検索を行うインデックスと、GISオブジェクトを解析す

  • http://lets.postgresql.jp/documents/tutorial/hot_2/images/hot_defrag.png

  • yumでPostgreSQLをインストールしてみよう — Let's Postgres

    NTT オープンソースソフトウェアセンタ 笠原 辰仁 はじめに この記事では、yum を使った PostgreSQL のインストール方法を紹介します。yum はRedHat Enterprise Linux や CentOS、Fedora などで使用可能な RPM パッケージの管理システムです。RPM パッケージは、インストール時にパッケージ間の依存性を考慮する必要があります。A という RPM パッケージのインストールには B という RPM パッケージが必要になる……といった感じです。yum はこれらの依存関係を判別し、必要となる全てのパッケージを自動でダウンロード・インストールしてくれます。この記事では、Fedora を使ってその方法を紹介していきます。Fedoraを使っていますが、紹介する方法は RedHat Enterprise Linux や CentOS でも同じです。 コミ

  • これを読めば PostgreSQL の全てが分かる!PostgreSQL ガイドブック | Let's POSTGRES

    PostgreSQL ユーザ会 稲葉 香理 初出:日 PostgreSQL ユーザ会会報 No.5 2008.2.29 このガイドブックは、PostgreSQL の全てが分かる!と偉そうなことを書いていますが、技術的な細かい面はさておき、PostgreSQL の全体像をつかめるようにという観点で書いています。これから RDBMS を使おうと思っているのだけど、どの RDBMS がいいのかな?と思っている方には、 PostgreSQL 全体をみてみることによって自分が使いたい RDBMS のイメージにあっているかの判断材料になることを、他の RDBMS は知っているけど PostgreSQL は何が違うのかな?と思っている方には PostgreSQL 全体をみることでざっくりとした違いをつかめるようになることを期待しています。 PostgreSQLとは PostgreSQL(ポストグ

  • PostgreSQL上にMediaWiki環境を構築 (1) — Let's Postgres

    NTT オープンソースソフトウェアセンタ 板垣 貴裕 PostgreSQL はソースコードでの配布の他に、バイナリ・パッケージとしても配布されています。今回はバイナリ・パッケージを使った手軽なインストール方法を紹介します。また、データベースである PostgreSQL は、それ単体では特に「遊べる」ものでは無いため、MediaWiki も一緒に導入してみます。MediaWikiはWikipediaでも使われているWikiです。OS 環境は Windows XP および Vista を想定しています。 Windows 版のバイナリ・パッケージは http://www.postgresql.org/ftp/binary/ からダウンロードできます。執筆時には最新版である postgresql-8.3.5-1.zip をダウンロードしました。パッケージは以下のファイルを含んでいます。 Postg

  • 第1回 PostgreSQLとXML | Let's POSTGRES

    第1回 PostgreSQLとXML 響 楽人 XMLが制定されてから11年経ち、データベースの世界でもXML対応が進んでいます。そのような中、PostgreSQL は一段とXML対応を格化させています。連載では、PostgreSQL 8.3でのXMLの取り扱い方について基から応用まで説明してゆきます。 第1回はPostgreSQLとXMLというテーマですので、まずはPostgreSQLを使える状態にした上で、XMLの形をしたデータを格納し、そのデータをSQLによって操作可能かを試みます。 PostgreSQLは、8.3からXML型のデータの内容をXPathで操作できるようになりました。XPathとは、XMLの中の特定の箇所を指定するための仕組みです。XPathの詳細は第二回以降で取り上げますが、今回もXMLインスタンスをデータベースに格納した後、この機能を使ったSELECTを行って