Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

NoSQL and JavaScript 2013-02-09

1,153 views

Published on

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

Published in: Technology
  • Be the first to comment

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/

×