質問: ラージオブジェクトについて pdfファイルのデータベースをpostgresqlで構築しています。 データベースの項目には「タイトル」「著者名」「注釈」などとともにラージオブジェクトとしてpdfファイルそのものをデータベースに取り込んでいます。pdfファイルのファイルサイズは10kb~20mb程度です。 最近、書店でpostgresqlの本を見てもラージオブジェクトに関する解説を書いたものがほとんどなく、ひょっとすると将来的にはラージオブジェクトは廃止になるのではと危惧しています。 よく考えてみれば、データベースを初めに構築するときに、pdfファイルをファイルシステムのディレクトリ内に保存して、そのファイル名をデータベースで管理すれば良かったと今頃後悔しているところです。 ラージオブジェクトを使って、バイナリファイル(ここではpdf)を保管するメリットがあるのか? ラージオブジェクトはpostgresqlで今後も対応されるのか? など、ご意見、感想などありましたらご教示ください。 ラージオブジェクトにメリットが無いなら、近い将来、あまりデータベースが巨大にならないうちに、pdfファイルを取り出すスクリプトなど作らなければと考えております。 よろしくお願いいたします。
回答: lobはsql99で標準sqlに入ったばかりだし、操作するのにアプリケーションを作成する必要があり、rdbms全体の機能としては局所的なものなので、雑誌や書籍類で取り上げられる機会は少ないと思います。 >ラージオブジェクトを使って、バイナリファイル(ここではpdf)を保管するメリットがあるのか? メリットとしては、 (1)障害運用を一元化できる (2)セキュリティの管理を一元化できる (3)pdfデータを管理するテーブルのデータと、pdfの内容の不整合を防げる などでしょう。 デメリットとしては (1)pdfの内容を確認したい場合、rdbms経由でないとダメ。検索や更新用のアプリケーション等を作っておく必要がある。 (2)pdfのデータを管理するのに、rdbms側でも管理情報が必要になり、dbの容量が増える などです。