oracle2013

JPOUG Advent Calendar 2013

の12月24日担当、吉田もとたかです



昨日23日は、

sh2ndさんの

Oracle/MySQL/PostgreSQLにおけるサブクエリを含むDMLの非互換性 - SH2の日記
http://bit.ly/JPOUGac20131223

でした


さて、今日のテーマは、

2009年にオラクルが提案した Indexed DB は今!?




なんのこっちゃと思う人もいるでしょう、

InnoDBと間違えてない?という事はないです

Colomner DBと間違えてない?という事はないです


簡単にいうと、HTML5で動くブラウザDatabase です。

まあ、いろんな覇権争いがあったのですが、ようやく


Indexed DB に落ち着くのでは、、と思っています


もうね、 BiG Dataとか古い古い~

これからは、なにがなんでも、Indexed DBです

といっても、名前が古いですよね、いまさら、Indexedですから・・・


ちなみに、Googleで日付絞りで検索してみたところ、一番古いのは、

ですね。
http://technosiastic.wordpress.com/tag/indexeddb/

んー、本文中には、いっさい ORACLEというキーワードはないし、
でも、HTML5は出ていますね。2001年ごろから始まっていたんですね

ちなみに、いまでも、Indexed DBはこちらの辞書にはありませんでした。

え!、じゃあ単なるマイナーなんじゃないの?とおもうあなた、

浅はかです。 (^ ^ ;;;

Indexed DBを知らずに、これからのシステム構築は言えません。

それは、あなたが、HTML5なんか知らなくてもシステム作れるさ!と言ってるのと同じです。
2013-14冬季にテレビを買う時に、Miracastを知らずに買うのと同じです。

Miracastを知らない? ええい、ヨドバシに行って勉強してきてください。(^ ^ )

さあ、話を続けましょう
2009年12月31日までですと、たいした情報は出てきません

ところが、2010年末までで調べると、

ほら!
HTML5という文字と一緒に、出てきてます!

(オラクルが提唱してきてる記事とは違いますが・・・)


まあ、オラクルが提唱したときは、別の名前だったんです

http://www.w3.org/TR/2009/WD-WebSimpleDB-20090929/



オラクルは、 WebSimpleDB APIって言ってたんですね、
で、Indexed DBも同じってことで。

さて、2010年というのは、世の中のDBの流行は、それはもう、

KeyValue




いまそりゃ、KeyValueがあれば、なんでもできる!みたいな風潮だったし、
その中で、 Indexed DBだ!なっていったら・・・
あと、    Indexed DBには HTML5に対応したブラウザが必要なんです

それも十分に出回ってなかったし、そりゃ仕方ないです

で、じゃあ、なぜ今 Indexed DBなのか?

そう、そこが大事
いまが、ベストタイミングなんです

http://fmbip.com/litmus/

そう、MACも、WINも、 ChromeとFirefoxが対応準備がそろったんです

そして、IEも(一応10なら)

もちろん、Androidも対応済ですよ
http://caniuse.com/indexeddb




いまから、どんどん Indexed DB対応のサービスが増えてきます。

それは、サーバーとつながってないオフラインでも継続稼働するからです

いままでのシステム
APと、Browserの接続が切れたら、終わり

つらい、つらい、途中まで入力していたのに、途切れて、終わり。
飛行機の予約が失敗・・・

何ページも、何ページも書いたのに、、、最後にトンネルに入って,
セッションが切れて終わり



トイレ
トイレ終わり

ユビキタス、ユビキタスっていったって、ネットは途切れるんです。
客先が山奥だったら、つながらないんです。とくに富士山の麓。

そんなとき、せっかく作ったWEBシステムを、面倒だけど、仮想環境のサーバーを用意して、
そこにWEBシステムを立ち上げて、PCやモバイルから接続して、、、、
あーーーーーめんどうだーーーー(実体験)

そんな時、Indexed DBを使っていれば、
ぶちきれたネットであって、動き続けます。

ようは、こんな感じ

WEBブラウザーシステムが、IndexedDBを使うことで、容易に堅牢な
高継続性サービスになりえるんですw

で、またネットがつながりなおしたら、そこから動かせばいいわけですよ

以上、前置き!

さて、具体的に使ってみましょう

用意するもの、Chrome 下記のバージョンより上でお願いします


つづいて、
なんかテキストエディター。 どれか悩んでいる人は、1
Sublime Text 2にしてみてください。このエディターのうたい文句は、
「恋に落ちるエディター」です。はい、私もこのエディターに恋に落ちました。

http://www.sublimetext.com/2
あなた、オラクルに関連してるんでしょ、だったら英語ぐらい気にしない、気にしない
わからない単語は、ググればOK


さて、続けます


IndexedDBってなんなの?

IndexedDBは、HTML5で実装された、「ブラウザの内部に格納する仕組み」です。

みなさんご存知の HTML5 ローカルストレージは、簡単な key-value をつかってのみ、データを操作できます。

ですが、IndexedDBは、もっと大きなデータを、もっと使い勝手よく、柔軟にデータ操作できます。

高速に複雑な検索も可能になります。


なんで IndexedDBを使ったほうがよいの?

W3Cは、Web SQL database ( HTML5 storage )は、非推奨仕様ですと宣言しました。

http://www.w3.org/TR/webdatabase/

その代り、 indexedDBを使うように指示がでています。

W3Cが言うなら、それに従ったほうが無難ですよね



IndexedDBの特徴

IndexedDB は、リレーショナルデータベースとは異なります。
どちらかというと、オブジェクト指向データベースになります。

IndexedDB は、Key-Valueにデータを格納しますが、
オブジェクトは、1つ以上のプロパティ(列みたいなもの)を持てます。


IndexedDB API は、値を返すことはしません。
 その代りに、コールバック機能を実装する必要があります。

IndexedDB は、SQLが使えません。 検索には、1つのインデックスだけが使えます。
ようは、インデックスから取り出して、また別途検索する必要があります。

IndexedDB は、同一のドメインとポートからだけデータを処理できます。
http://www.oralce.com から、 http://www.oracle.co.jp の IndexedDBは操作できません。


というわけで、これをダウンロードして、ローカルに展開してみてください


IndexedDB.zip


展開したら、index.html をChromeで開いてください





そうすると、こんな画面が見えます


Add Eventを実行すると、



このようにデータが、ローカルブラウザ側に格納されました。

あとは、いろんなサイトをみて、このソースを開いていけば、

だいたいわかるもんです


続きは、1月ごろに書きますね


ではでは


んーーーー、オラクルと絡むものが少なかった・・・

クリスマスイブですもの。気軽に読んでくださいませ


メリークリスマス♪


25日は、JPOUG会長です

12cでリソースの共有と非共有のはざまで... その1

こうご期待!

ċ
indexedDB.zip
(84k)
Mototaka Yoshida,
2013/12/24 6:54
Comments