NOSQL & JavaScript      4D Japan      原田 光一
4D についてNOSQL: WakandaRDBMS: 4DW3C MEMBER
NOSQL
NOSQL
NOSQL
NOSQL
SQL トランザクション  強い整合性
Webサービス
Webサービス大量のデータ素早く処理サービスの更新頻度
NOSQLSQLで間に合わない部分ニーズにあったDB
NOSQL ファミリードキュメントストアー          オブジェクトストアー              グラフキー・バリューストアー          カラムストアー
NOSQL ファミリードキュメントストアー          オブジェクトストアー              グラフキー・バリューストアー          カラムストアー
NOSQL ファミリードキュメントストアー          オブジェクトストアー              グラフキー・バリューストアー          カラムストアー
NOSQL Facts多くは スキーマ定義不要多くは REST / JSON API を提供多くは JSON を格納多くは JavaScript エンジンを含む多くは JavaScript シェルを提供
JavaScript
JavaScript エンジン                                                                                                           ...
サーバーサイドJSSpiderMonkey            JavaScriptCore   Rhino                      V8           Trident / Chakra
JSでDBアクセス
キー・バリュー
WebStorageW3C / WHATWG    HTML5                                         // set or get items by methods                    ...
Document
Indexed DatabaseHTML5                                var request = indexedDB.open("MyTestDatabase", 3);                   ...
Object
WakandaDBWebkit JavaScriptCoreREST / JSONデータクラス  自動更新  アクセッサー              john = ds.Person.find("fistName eq John");  イベント ...
Upcoming SlideShare
Loading in …5
×

NoSQL and JavaScript 2013-02-09

970 views
865 views

Published on

2013年2月9日,九州産業大学『HTML5カーニバル』で使用したスライドです。

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
970
On SlideShare
0
From Embeds
0
Number of Embeds
67
Actions
Shares
0
Downloads
3
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

NoSQL and JavaScript 2013-02-09

  1. 1. NOSQL & JavaScript 4D Japan 原田 光一
  2. 2. 4D についてNOSQL: WakandaRDBMS: 4DW3C MEMBER
  3. 3. NOSQL
  4. 4. NOSQL
  5. 5. NOSQL
  6. 6. NOSQL
  7. 7. SQL トランザクション 強い整合性
  8. 8. Webサービス
  9. 9. Webサービス大量のデータ素早く処理サービスの更新頻度
  10. 10. NOSQLSQLで間に合わない部分ニーズにあったDB
  11. 11. NOSQL ファミリードキュメントストアー オブジェクトストアー グラフキー・バリューストアー カラムストアー
  12. 12. NOSQL ファミリードキュメントストアー オブジェクトストアー グラフキー・バリューストアー カラムストアー
  13. 13. NOSQL ファミリードキュメントストアー オブジェクトストアー グラフキー・バリューストアー カラムストアー
  14. 14. NOSQL Facts多くは スキーマ定義不要多くは REST / JSON API を提供多くは JSON を格納多くは JavaScript エンジンを含む多くは JavaScript シェルを提供
  15. 15. JavaScript
  16. 16. JavaScript エンジン C+ C +SpiderMonkey webkit JavaScriptCore 3 JIT Compilers: SquirrelFish Extreme: SFX aka Nitro TraceMonkey, (JIT Compiler inside) JägerMonkey, IonMonkey Jav C+ a + Rhino V8Interpreted or Compiled execution JIT Compiler: CrankShaft ? Chakra -> Classic JScript, Managed JScript, & JScript.NET C+ ? + Tamarin Carakan JIT Compiler: NanoJIT -> ActionScript / “ECMAScript 4” Previously: Linear A, Linear B, Futhark
  17. 17. サーバーサイドJSSpiderMonkey JavaScriptCore Rhino V8 Trident / Chakra
  18. 18. JSでDBアクセス
  19. 19. キー・バリュー
  20. 20. WebStorageW3C / WHATWG HTML5 // set or get items by methods localStorage.setItem("storedItem", "value"); var value = localStorage.getItem("storedItem");local // set or get items using the store as a map localStorage.storedItem = value; var value = localStorage.storedItem;session // accessible only for this session var foo = sessionStorage.bar;storage イベント sessionStorage.bar = foo; // sync interface when data change, even from other window window.addEventListener("storage", handle_storage, false);Note: Firefox used to propose “globalStorage”, Wakanda implements “user.storage” http://www.w3.org/TR/webstorage/
  21. 21. Document
  22. 22. Indexed DatabaseHTML5 var request = indexedDB.open("MyTestDatabase", 3); request.onerror = function(event) {同期 / 非同期 }; // Do something request.onsuccess with request.errorCode! = function(event) { // Do something with request.result! };インデックス request.onupgradeneeded = function(event) { // Update object stores and indices ....トランザクション } var objectStore = db.createObjectStore("customers", { keyPath: "ssn" });カーソル objectStore.createIndex("name", "name", { unique: false }); objectStore.add({ ssn: "444-44-4444", name: "Bill", age: 35}); var transaction = db.transaction(["customers"], IDBTransaction.READ_WRITE); http://www.w3.org/TR/IndexedDB/
  23. 23. Object
  24. 24. WakandaDBWebkit JavaScriptCoreREST / JSONデータクラス 自動更新 アクセッサー john = ds.Person.find("fistName eq John"); イベント conferences = john.allConferences; JohnJSConferences = conferences.filter("title == :1", "*JavaScript*"); JSAttendeesJohnMet = JSConferences.allPeople; メソッド http://wakanda.org/

×