読者です 読者をやめる 読者になる 読者になる

理系学生日記

おまえはいつまで学生気分なのか

忍者TOOLS

PoEAA: Serialized LOB

poeaa

今日は Serialized LOB。

Patterns of Enterprise Application Architecture (Addison-Wesley Signature Series (Fowler))

Patterns of Enterprise Application Architecture (Addison-Wesley Signature Series (Fowler))

あんまり珍しくないパターンが多かったけど、このパターンには思い出があって、どうやったって仕様が固まらないけど開発だけは進めないといけなかった某サービス開発のときに使った(邪道です)。

Serialized LOB は、言ってみれば複雑な構造を持ちデータベースとマッピングしづらいデータを、プログラムの方でシリアライズしてデータベースの 1 カラムに突っ込むというパターンです。 本の中ではシリアライズの形式として XML が例示されていますが、今だったら JSON とかを使うんでしょうね。

便利ではあるんですけど、厄介なのはシリアライズし DB に叩き込んだデータは一般に SQL のクエリで検索キーにできない(しづらい)点です。最近(?)は Postgresql の JSON サポートとか、Oracle の XML DB とか、色々と RDB 側のサポートもありますね。ぼく自身は使ったことありませんが。 このため、Serialized LOB はトランザクションとしての「記録」には使えるけれども、その後、それらを使ってのデータ抽出なんかは厳しいと思います。