[3026] 多重CRUDの脅威

投稿:  著者:  読了時間:15分(本文:約7,400文字)


《............祈るしかない............》

■データ・デザインの地平[04]
 多重CRUDの脅威
 薬師寺 聖

■クリエイター手抜きプロジェクト[272]Adobe Premiere CS5編
 プロジェクト内のシーケンスのサイズ等を出力する
 古籏一浩


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■データ・デザインの地平[04]
多重CRUDの脅威

薬師寺 聖
< http://bn.dgcr.com/archives/20110314140200.html >
───────────────────────────────────
まずは、このたびの東日本大震災の被災地域の方々にお見舞い申し上げます。本稿が配信されるのは発生3日後ですので、まだ多数の方々が不安な時間をお過ごしのことと思います。一日も早く安心して暮らせる日々が訪れますようお祈りいたします。

●設計者が直面する、未知のデータ

さて、前回からの続きです。

現在、一人のヒトに従属するデータとは、氏名、生年月日、住所などの個人情報や、診療記録、購入記録、交友リストといった、従来手法で定義可能なものです。しかし、近未来、ヒトそのものがデバイスとなるとき、現在の汎用的なデータベースの基本項目にはない、「ヒト自身のデータ」が追加されることになるでしょう。それは記憶と自己認識に係るもので、次の3つが考えられます。

1つは、ヒトの生活史の映像データです。生活史ログがクラウド上で公開され、永代使用存在証明ポータルが開設され、3Dと音声合成技術によりヒトの姿が再現されるのも、そう遠い先ではないでしょう。その再現の元となる「記憶の中の」イメージ・データです。

2つ目は、客観的事実ではなく、ヒト固有の記憶です。たとえば、蜜柑の爽やかな香り、潮騒の音、タオルの柔らかい感触などです。この記憶は、身体感覚と切り離せないものであるかもしれず、海馬をメモリカード扱いすれば済むものではないかもしれません。

3つ目は、「私という一意な存在がある」ことを主張する基盤となる、意識のシーケンスです。全てのヒトにとって、「ヒトを存在たらしめるシステムはただひとつしかなく、それを認識するのは脳の働きによるものであって、意識の座は脳の一箇所にもとめることができる」かどうかは分かりません。それは実に曖昧で漠とした社会的承認にすぎません。もし、脳以外の場所に意識のシーケンスが認められるならば、その場所にもまた、一意性を示すデータが従属することになるでしょう。

●ヒトの入れ子化は、データの入れ子化を招く

第2回目で述べたように、「モノ」が動けば、それに伴って「データ」が、そして(XMLでは)「メタデータ」も、動きます。Aさんの所有する品物が、Bさんの所有するところとなれば、XMLでいえば、<品名>品名データ</品名>も、品物に伴って動きます。

前述の、記憶と自己認識のデータは、個人の所有であり、この「モノ」に相当します。デバイスたるヒトの身体の一部分が受け渡されると、それに伴い、記憶と自己認識のデータはCRUD(Create/生成、Read/読み取り、Update/更新、Delete/削除)されます。

しかし、ヒトの身体の部分の受け渡し──Aさんの身体の部分がBさんに提供される──では、デバイス間の物理的な境界が不明瞭になります。このことは、ヒトが入れ子化した時、それに伴って入れ子化する従属データの扱いに厄介な問題を引き起こします。

たとえば、Aさんの身体の部分が、Bさんに提供されたとします。Aさんに従属するデータは、Bさんに従属することになります。

次に、Bさんの身体の部分が、Cさんに提供されたとします。(Aさんに従属するデータを含む)Bさんに従属するデータは、Cさんに従属することになります。

もし、Cさんの身体の部分が、巡り巡ってAさんに提供されるなら、Aさんのデータとは、(((Aさんのデータ)+Bさんのデータ)+Cさんのデータ)という、何とも珍妙なことになってしまいます。一歩間違えれば無限ループになってしまいます。

デバイスたるヒトは「一意なもの」です。そして、記憶と自己認識のデータも、その一意性を裏付けるものです。

そのため、Aさんの身体の部分がBさんに提供され、Aさんに従属するデータがBさんに従属するようになると、「一意なもの」であるBさんは、「一意なもの」であるAさんの一意性を裏付けるデータを含んでしまうか、あるいはトレース可能となります。

これでは、一意なものは親ノードであるBさんであって、AさんはBさんの子ノードである、という関係になりかねません。等しいプライオリティであるはずのデバイスのデータベースで、プライオリティの差異が生じることは望ましくありません。

誰が一意な存在、一意なデバイスなのかを明確にするには、データのCRUDをどの時点で止め、一意性をどこまで認めるかという制約が必要です。また、データのCRUDを許可せず、受け渡し先から参照するにしても、どの時点までさかのぼってトレースを可能とするかという基準がもとめられます。最終的に誰(どのデバイス)に一意性を認めるかという、境界設定が必要になります。

●過渡期の構造変換は、混迷をきわめる

我々の社会生活基盤を支えるシステムで扱われるデータベースの主キーや、ユニークなデータを持つノードは、「一意なもの」に対する社会的承認のうえに定義されています。

従来にはないデータを扱う必要性が生じれば、社会的承認も変わり、データ構造も変わります。しかしながら、ヒトのデバイス化が根付くまでの過渡期には、この社会的承認の変更が難しい社会が形作られていきます。

前回述べた、脳が子ノード化する「フュージョン」の時代には、完全リアルタイムで思考が流通する世界になります。

リアルタイム性は、圧倒的な速度の脳活動を要求し、時間を要する作業に「NO」を突き付けます。子ノードたちは互いの思考の熟成期間を牽制し合い、個々の深い思考に沈潜する機会は奪われます。子ノード群のリンクは、例外的な思考様式をフィルタリングし、思考は一方向へと集約しがちになります。

その結果として集積されるのは、高速且つ正確な入出力処理による「知識」であり、いびつな脳の活動によって引き起こされるある種の「気付き」ではありません。膨大な知識の上に構築されるのは「過剰に健全で安定した社会」です。一度「一意性」に対する「社会的な承認」が標準化されてしまうと、その変更には、時間がかかるようになるでしょう。

頻繁な変更はもちろん混乱のもとですが、逆に、変更が遅延されたままデータベースを運用継続すると、後に見直さなければならないデータは肥大化します。

ようやく一意性に対する社会的承認が変更された暁には、それに沿った構造に合わせて、数年〜数十年にわたり蓄積されてきた膨大なデータを再構築する必要が生じます。

それが365日24時間稼働が原則であったり、人命にかかわるようなシステムともなれば、一時停止させることなく、データ移行するのは、容易なことではありません。そのうえ、すべてのシステムのデータが一斉に再構築されることはないため、過渡期には、「一意なもの」の定義が異なる複数のシステムが稼働することになります。それらのデータ共有や連携にあたっては、構造変換が必要になります。

あまりにも荒唐無稽なことを書いているように思われるかもしれません。しかし、ヒトは、升目の形、木の形、に成型されるべく、生まれてくるわけではありません。データベース設計者は、いびつな形をしたヒトのデータを、データベースに当て嵌めなければならないのです。

近未来、我々設計者は、ため息交じりに、つぶやくことになるでしょう。

Who is a primary key ?
Who is a root node ?

【薬師寺聖/個人事業所セイザインデザイン】
個人事業所 < http://www.seindesign.net/ >
ブログ < http://blogs.itmedia.co.jp/seindesign/ >
PROJECT KySS < http://www.projectkyss.net/ >
< infosei@seindesign.net >

ヴィジュアル、サウンド、テキスト、コードの間を彷徨っている、四国の個人事業主。科学技術や医療・福祉分野のXML案件の企画デザインに実績があり、コラボレーションユニットPROJECT KySS名義で、XML、RIA、.NETに関する書籍や記事、多数。
Microsoft MVP for Development Platforms - Client App Dev
(Oct 2003-Sep 2011)

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■クリエイター手抜きプロジェクト[272]Adobe Premiere CS5編
プロジェクト内のシーケンスのサイズ等を出力する

古籏一浩
< http://bn.dgcr.com/archives/20110314140100.html >
───────────────────────────────────
Adobe Premiere CS5でレポートを出力するネタです。というよりも、現在のPremiere CS5のJavaScriptでは一部の情報の読み出ししかできないためです。プロジェクトをスクリプトから開くこともできません(app.open()がない)。もう少し機能があれば、いちいち手動でフォルダとかフッテージを読み込ませなくてもよいのですが。

ということで、以下のスクリプトはプロジェクト内のシーケンスのサイズ等を出力するものです。


// プロジェクトのサイズやフレームレート情報を出力する(再帰)
(function(){
var savefile = File.saveDialog("保存するレポートファイル名を入れて下さい!");
if (!savefile) return;
if (!savefile.open("w")){
alert("レポートファイルを保存できません");
return;
}
  savefile.writeln(app.project.name); // プロジェクト名
  savefile.writeln(app.project.path); // プロジェクトが保存されているパス
  var seqList = app.project.sequences;
  $.writeln(seqList.numSequences);
   for(var i=0; i<seqList.numSequences; i++){
    var txt = seqList[i].name;
    txt = txt + " サイズ:" +seqList[i].frameSizeHorizontal;
    txt = txt + "×" +seqList[i].frameSizeVertical;
    txt = txt + " (" +seqList[i].zeroPoint;
    txt = txt + " - " +seqList[i].end + ")";
    savefile.writeln(txt);
  }
})();


次のスクリプトは、シーケンス内に配置されている映像クリップの尺の長さ(秒数)をファイルに出力するものです。なお、クリップ名やフッテージ(素材)があるパスは、プロパティが存在しないため出力できません。


// プロジェクト内のシーケンス情報を出力する
(function(){
var savefile = File.saveDialog("保存するレポートファイル名を入れて下さい!");
if (!savefile) return;
if (!savefile.open("w")){
alert("レポートファイルを保存できません");
return;
}
  savefile.writeln(app.project.name); // プロジェクト名
  savefile.writeln(app.project.path); // プロジェクトが保存されているパス
  var seqList = app.project.sequences;
  $.writeln(seqList.numSequences);
   for(var i=0; i<seqList.numSequences; i++){
    savefile.writeln("シーケンス名:"+seqList[i].name);
    for(var j=0; j<seqList[i].videoTracks.numTracks; j++){
      savefile.writeln("トラック番号:"+(j+1));
      for(var k=0; k<seqList[i].videoTracks[j].clips.numItems; k++){
        savefile.writeln("("+(k+1)+")尺:"+seqList[i].videoTracks[j].clips[k].duration.seconds+"秒");
      }
    }
  }
  
})();


【古籏一浩】openspc@alpha.ocn.ne.jp
< http://www.openspc2.org/ >

凄い地震でした。被災された方には心よりお見舞い申し上げます。また、亡くなられた方には心からお悔やみ申し上げます。

長野県もかなり揺れましたが私のところは震度3〜4でした。その後、長野県北部でも大きい地震があって鉄道が駄目、建物が倒壊といった具合。地震の影響で物流が一部麻痺して、物が届かないとの連絡。千葉にある工場も一部停止。今日から関東以北は計画停電との事。また、ガソリンがなくなってきているので、そのうち流通も一部停止してしまうかも。こんな大地震でもTwitterは止まらずにスムーズに稼働していたのは素晴らしいのかも。

・Retro Driver【11話まで書いた】
< http://www.openspc2.org/reibun/comipo/RetroDriver/ >

・iPhone/iPad × HTML5アプリ制作【3/24あたり発売予定】
 (地震の影響で予定通りに発行されるか現時点では不明)
< http://www.amazon.co.jp/dp/4797362618 >

・HTML5+JavaScriptアイデア&実践サンプル【発売中】
< http://www.amazon.co.jp/dp/4048704486 >

・JavaScriptコーディング ベストプラクティス【発売中】
< http://www.amazon.co.jp/dp/4844361791 >

・Google API Expertが解説するHTML5ガイドブック
< http://www.amazon.co.jp/dp/4844329278 >

・ハイビジョン映像素材集
< http://www.openspc2.org/HDTV/ >

・Adobe Illustrator CS3 + JavaScript 自動化サンプル集 発売中
< http://www.openspc2.org/book/PDF/Adobe_Illustrator_CS3_JavaScript_Book/ >

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■編集後記(3/14)

東日本大震災で被災された方々に心からお見舞い申し上げます
本誌は明日よりしばらくの間休刊します

・日を追って東日本大震災の被害状況の凄まじさがあらわになってきた。当日は多少揺れたが(生まれて初めて体験した恐ろしい大揺れだったが)実害はなく、計画停電などで生活が多少不便になっても(今日は市内のスーパー、コンビニすべてにすごい人出。ミニパニック状態か?)被災地のことを思うと申し訳ないくらい平穏な日常だ。わが家は食品も日用品も備蓄があるのであまり焦りはない。福島の原発が焦眉の急を告げる事態に。最も恐れていたことがついに起きてしまった。日本はどうなるんだ............祈るしかない。(柴田)

・日本は今までも復興してきた。絶対乗り切れる。/私にできることは何だろう。義援金はもちろんする。/政治家や電力会社などいろいろと言いたいことはあるけれど......。/CSS Nite in OSAKA、リクリ(Re:Creator's Kansai)、ドットプラス、日本Androidの会 関西支部、HTML5-WEST.jpなど多数の団体(関西広域連合?)主催で、4/3に大阪産業創造館にて、今回の地震のチャリティーセミナー(イベント)あり。発案者はおかださん。詳細近日中。サイトにアクセスお願いします。/航空業界で働く叔父。出張で仙台空港にいる時に被災。阪神大震災でも被災したよ。「今、メールつながりました! 電気も水も情報もないけど何とか元気です。皆さん頑張っています! 食べ物もお土産などを配っています!」とのメールあり。昨夕、無事救出されて福島のホテルに移動。/弟はヤフオクで取引した相手で被災地域の人たちに、こちらの気休めにしかならないけれどと言いながら(本当に大変な人たちは読めるはずないから)避難マニュアルをメール。若林の住所の人もいて、無事を祈っている。/阪神大震災を思い出し、怖くてしばらく動けなかった。ネット...Twitterなどにアクセスするのも怖く、ずっとテレビの前。皆の安否を聞きたかったし、感想も書きたかった。でもトラフィックを増やすのはまずいと我慢。聞いてもこちらは何もできない。テレビの被害者数は少なかったが、阪神大震災の時もそうだった。怖い怖い怖い。寝られない。ずっと手が震える。今も怖くて仕方がない。被災者はもっと大変なのに怖がっている場合じゃないとも思う。テレビを消すと静かな日常がある。胸が痛い。一人でもたくさんの人が助かって欲しい。/原発に計画停電。西日本が頑張らなあかん。支えなあかん。(hammer.mule)
< http://sites.google.com/site/quake20110311jp/bokin >
募金情報まとめ
< http://osaka.cssnite.jp/ >  チャリティーイベント詳細は後日