SlideShare a Scribd company logo
1 of 35
EWD 3
トレーニング・コース #18
Global ストレージを用いて
NoSQL データベースをモデル化する
M/Gateway Developments Ltd.
Rob Tweed
訳: 日本ダイナシステム株式会社 嶋 芳成
GT.M版編集: 澤田 潔
※ 本稿オリジナルはCache’向けとして編纂
NoSQL データベース
• 主な4種類のモデル
• キー/値ストア型
• 表型 (カラム型)
• グラフ型
• ドキュメント (文書)型
2016/9/11 EWD 3 トレーニング・コース #18 2
NoSQL データベース
• ここから示すのは、これらを Global ストレージを用い
てモデル化するかということです
• 方法はひとつではありません
• もっと良い方法があるかもしれません
• ここでの目的は、Global ストレージ・データベースが実際い
かに柔軟で可能性に満ちているかを示すことです
2016/9/11 EWD 3 トレーニング・コース #18 3
キー/値ストア
2016/9/11 EWD 3 トレーニング・コース #18 4
telephone
"221-555-9012" "James, George"
"617-555-1414" "Tweed, Rob"
より複雑なキー/値ストア
2016/9/11 EWD 3 トレーニング・コース #18 5
telephone
"221-555-9012"
"James, George"
"617-555-1414"
"Tweed, Rob"
"住所"
"氏名"
"住所"
"氏名"
"5308,12th Avenue, Brooklyn"
"112 Beacon Street, Boston"
索引
• Global ストレージ・データベースは、索引を自動的に
は生成しません
• 索引は、Global ストレージを用いて自分で生成しま
す
2016/9/11 EWD 3 トレーニング・コース #18 6
索引
2016/9/11 EWD 3 トレーニング・コース #18 7
telephone
"221-555-9012"
"James, George"
"617-555-1414"
"Tweed, Rob"
"住所"
"氏名"
"住所"
"氏名"
"5308,12th Avenue, Brooklyn"
"112 Beacon Street, Boston"
nameIndex
"James, George"
索引
2016/9/11 EWD 3 トレーニング・コース #18 8
telephone
"221-555-9012"
"James, George"
"617-555-1414"
"Tweed, Rob"
"住所"
"氏名"
"住所"
"氏名"
"5308,12th Avenue, Brooklyn"
"112 Beacon Street, Boston"
nameIndex
"James, George" "211-555-9012" ""
索引
2016/9/11 EWD 3 トレーニング・コース #18 9
telephone
"221-555-9012"
"James, George"
"617-555-1414"
"Tweed, Rob"
"住所"
"氏名"
"住所"
"氏名"
"5308,12th Avenue, Brooklyn"
"112 Beacon Street, Boston"
nameIndex
"James, George" "211-555-9012" ""
"Tweed, Rob" "617-555-1414" ""
索引
2016/9/11 EWD 3 トレーニング・コース #18 10
telephone
"221-555-9012"
"James, George"
"617-555-1414"
"Tweed, Rob"
"住所"
"氏名"
"住所"
"氏名"
"5308,12th Avenue, Brooklyn"
"112 Beacon Street, Boston"
nameIndex
"James, George"
"211-555-9012" ""
"Tweed, Rob" "617-555-1414" ""
"211-863-3932" ""
"224-543-5431" ""
リンクされたリスト
2016/9/11 EWD 3 トレーニング・コース #18 11
list
"firstNode"
2"lastNode"
"John""value"
5
"previousNode" 4
"node"
"nextNode" 2
2
"previousNode" 5
"value" "George"
"myList"
"nodeCounter" 5
4
5
"Rob""value"
"nextNode" 4
Rob
George
John
リンクされたリスト
2016/9/11 EWD 3 トレーニング・コース #18 12
list
"firstNode"
2"lastNode"
"John""value"
5
"previousNode" 4
"node"
"nextNode" 2
2
"previousNode" 5
"value" "George"
"myList"
"nodeCounter" 5
4
5
"Rob""value"
"nextNode" 4
Rob
George
John
リンクされたリスト
2016/9/11 EWD 3 トレーニング・コース #18 13
list
"firstNode"
2"lastNode"
"John""value"
5
"previousNode" 4
"node"
"nextNode" 2
2
"previousNode" 5
"value" "George"
"myList"
"nodeCounter" 5
4
5
"Rob""value"
"nextNode" 4
Rob
George
John
リンクされたリスト
2016/9/11 EWD 3 トレーニング・コース #18 14
list
"firstNode"
2"lastNode"
"John""value"
5
"previousNode" 4
"node"
"nextNode" 2
2
"previousNode" 5
"value" "George"
"myList"
"nodeCounter" 5
4
5
"Rob""value"
"nextNode" 4
Rob
George
John
リンクされたリスト
2016/9/11 EWD 3 トレーニング・コース #18 15
list
"firstNode"
2"lastNode"
"John""value"
5
"previousNode" 4
"node"
"nextNode" 2
2
"previousNode" 5
"value" "George"
"myList"
"nodeCounter" 5
4
5
"Rob""value"
"nextNode" 4
Rob
George
John
リンクされたリスト
2016/9/11 EWD 3 トレーニング・コース #18 16
list
"firstNode"
2"lastNode"
"John""value"
5
"previousNode" 4
"node"
"nextNode" 2
2
"previousNode" 5
"value" "George"
"myList"
"nodeCounter" 5
4
5
"Rob""value"
"nextNode" 4
Rob
George
John
リンクされたリスト
2016/9/11 EWD 3 トレーニング・コース #18 17
list
"firstNode"
2"lastNode"
"John""value"
5
"previousNode" 4
"node"
"nextNode" 2
2
"previousNode" 5
"value" "George"
"myList"
"nodeCounter" 5
4
5
"Rob""value"
"nextNode" 4
Rob
George
John
リンクされたリスト
2016/9/11 EWD 3 トレーニング・コース #18 18
list
"firstNode"
2"lastNode"
"John""value"
5
"previousNode" 4
"node"
"nextNode" 2
2
"previousNode" 5
"value" "George"
"myList"
"nodeCounter" 5
4
5
"Rob""value"
"nextNode" 4
Rob
George
John
リンクされたリスト
2016/9/11 EWD 3 トレーニング・コース #18 19
list
"firstNode"
2"lastNode"
"John""value"
5
"previousNode" 4
"node"
"nextNode" 2
2
"previousNode" 5
"value" "George"
"myList"
"nodeCounter" 5
4
5
"Rob""value"
"nextNode" 4
Rob
George
John
リンクされたリスト
2016/9/11 EWD 3 トレーニング・コース #18 20
list
"firstNode"
2"lastNode"
"John""value"
5
"previousNode" 4
"node"
"nextNode" 2
2
"previousNode" 5
"value" "George"
"myList"
"nodeCounter" 5
4
5
"Rob""value"
"nextNode" 4
Chris
Rob
George
John
リンクされたリスト
2016/9/11 EWD 3 トレーニング・コース #18 21
list
"firstNode"
2"lastNode"
"John""value"
5
"previousNode" 4
"node"
"nextNode" 2
2
"previousNode" 5
"value" "George"
"myList"
"nodeCounter" 6
4
5
"Rob""value"
"nextNode" 4
Chris
Rob
George
John
リンクされたリスト
2016/9/11 EWD 3 トレーニング・コース #18 22
list
"firstNode"
2"lastNode"
"John""value"
5
"previousNode" 4
"node"
"nextNode" 2
2
"previousNode" 5
"value" "George"
"myList"
"nodeCounter" 6
4
5
"Rob""value"
"nextNode" 4
Chris
Rob
George
John
6
"Chris""value"
リンクされたリスト
2016/9/11 EWD 3 トレーニング・コース #18 23
list
"firstNode"
2"lastNode"
"John""value"
5
"previousNode" 4
"node"
"nextNode" 2
2
"previousNode" 5
"value" "George"
"myList"
"nodeCounter" 6
4
5
"Rob""value"
"nextNode" 4
Chris
Rob
George
John
6
"Chris""value"
"nextNode" 5
リンクされたリスト
2016/9/11 EWD 3 トレーニング・コース #18 24
list
"firstNode"
2"lastNode"
"John""value"
5
"previousNode" 4
"node"
"nextNode" 2
2
"previousNode" 5
"value" "George"
"myList"
"nodeCounter" 6
4
5
"Rob""value"
"nextNode" 4
Chris
Rob
George
John
6
"Chris""value"
"nextNode" 5
"previousNode" 6
リンクされたリスト
2016/9/11 EWD 3 トレーニング・コース #18 25
list
"firstNode"
2"lastNode"
"John""value"
6
"previousNode" 4
"node"
"nextNode" 2
2
"previousNode" 5
"value" "George"
"myList"
"nodeCounter" 6
4
5
"Rob""value"
"nextNode" 4
Chris
Rob
George
John
6
"Chris""value"
"nextNode" 5
"previousNode" 6
テーブル名 行番号 列番号 セルの値
表型/カラム型
2016/9/11 EWD 3 トレーニング・コース #18 26
^table "myTable"
1 "最初のセル"
3 "3番目のセル"
5 "5番目のセル"
1
2
"3番目のセル"3
2 "2番目のセル"
3
"5番目のセル"5
4 "4番目のセル"
グラフ型
2016/9/11 EWD 3 トレーニング・コース #18 27
名前="Rob"
名前="George"
名前="John"
1
2
7
開示 = public
年齢 = 2 年
開示 = public
年齢 = 3 日
知っている
グラフ型
2016/9/11 EWD 3 トレーニング・コース #18 28
名前="Rob"
名前="George"
名前="John"
1
2
7
開示 = public
年齢 = 2 年
開示 = public
年齢 = 3 日
知っている
個人
1
2
7
"知っている"
"名前"
"名前"
"知っている"
"名前"
2
7
""
"開示"
"日時"
""
"開示"
"日時"
""
"Rob"
"John"
"George"
2
"公的"
"公的"
"2009-12-16T10:06:44Z"
"2008-08-16 T12:23:01Z"
グラフ型
2016/9/11 EWD 3 トレーニング・コース #18 29
名前="Rob"
名前="George"
名前="John"
1
2
7
開示 = public
年齢 = 2 年
開示 = public
年齢 = 3 日
知っている
個人
1
2
7
"知っている"
"名前"
"名前"
"知っている"
"名前"
2
7
""
"開示"
"日時"
""
"開示"
"日時"
""
"Rob"
"John"
"George"
2
"公的"
"公的"
"2009-12-16T10:06:44Z"
"2008-08-16 T12:23:01Z"
グラフ型
2016/9/11 EWD 3 トレーニング・コース #18 30
名前="Rob"
名前="George"
名前="John"
1
2
7
開示 = public
年齢 = 2 年
開示 = public
年齢 = 3 日
知っている
個人
1
2
7
"知っている"
"名前"
"名前"
"知っている"
"名前"
2
7
""
"開示"
"日時"
""
"開示"
"日時"
""
"Rob"
"John"
"George"
2
"公的"
"公的"
"2009-12-16T10:06:44Z"
"2008-08-16 T12:23:01Z"
グラフ型
2016/9/11 EWD 3 トレーニング・コース #18 31
名前="Rob"
名前="George"
名前="John"
1
2
7
開示 = public
年齢 = 2 年
開示 = public
年齢 = 3 日
知っている
個人
1
2
7
"知っている"
"名前"
"名前"
"知っている"
"名前"
2
7
""
"開示"
"日時"
""
"開示"
"日時"
""
"Rob"
"John"
"George"
2
"公的"
"公的"
"2009-12-16T10:06:44Z"
"2008-08-16 T12:23:01Z"
グラフ型
2016/9/11 EWD 3 トレーニング・コース #18 32
名前="Rob"
名前="George"
名前="John"
1
2
7
開示 = public
年齢 = 2 年
開示 = public
年齢 = 3 日
知っている
個人
1
2
7
"知っている"
"名前"
"名前"
"知っている"
"名前"
2
7
""
"開示"
"日時"
""
"開示"
"日時"
""
"Rob"
"John"
"George"
2
"公的"
"公的"
"2009-12-16T10:06:44Z"
"2008-08-16 T12:23:01Z"
グラフ型
2016/9/11 EWD 3 トレーニング・コース #18 33
名前="Rob"
名前="George"
名前="John"
1
2
7
開示 = public
年齢 = 2 年
開示 = public
年齢 = 3 日
知っている
個人
1
2
7
"知っている"
"名前"
"名前"
"知っている"
"名前"
2
7
""
"開示"
"日時"
""
"開示"
"日時"
""
"Rob"
"John"
"George"
2
"公的"
"公的"
"2009-12-16T10:06:44Z"
"2008-08-16 T12:23:01Z"
ドキュメント・データベース
2016/9/11 EWD 3 トレーニング・コース #18 34
myGlobal
"a" 123
"b"
"c1" "foo"
"c2" "foo2"
"d"
"e1"
"e2"
"f1" "bar1"
"f2" "bar2"
"f1" "bar1"
"f2" "bar2"
"f3" "bar3"
myGlobal = {
a: 123,
b: {
c1: 'foo',
c2: 'foo2'
},
d: {
e1: {
f1: 'bar1',
f2: 'bar2'
},
e2: {
f1: 'bar1",
f2: 'bar2',
f3: 'bar3'
}
}
}
他のモデルも表現可能
• リレーショナル
• 実際 Caché は、グローバル・ストレージの上に リレーショナ
ル・ストレージを実現してサポートしています
• オブジェクト
• Caché ではこれもサポートしています
• ネイティブな XML データベース
• eXtc (今は廃止)
• http://www.mgateway.com/eXtcOverview4_0.pdf
• SimpleDB のエミュレーション
• https://github.com/robtweed/node-mdb
2016/9/11 EWD 3 トレーニング・コース #18 35

More Related Content

What's hot

LODI/Linked Open Data連続講義 第1回 「オープンデータからLinked Open Dataへ」
LODI/Linked Open Data連続講義 第1回 「オープンデータからLinked Open Dataへ」LODI/Linked Open Data連続講義 第1回 「オープンデータからLinked Open Dataへ」
LODI/Linked Open Data連続講義 第1回 「オープンデータからLinked Open Dataへ」National Institute of Informatics (NII)
 
Linked Open Data勉強会2020 前編:LODの基礎・作成・公開
Linked Open Data勉強会2020 前編:LODの基礎・作成・公開Linked Open Data勉強会2020 前編:LODの基礎・作成・公開
Linked Open Data勉強会2020 前編:LODの基礎・作成・公開KnowledgeGraph
 
ナレッジグラフ/LOD利用技術の入門(後編)
ナレッジグラフ/LOD利用技術の入門(後編)ナレッジグラフ/LOD利用技術の入門(後編)
ナレッジグラフ/LOD利用技術の入門(後編)KnowledgeGraph
 
LODを使ってみよう!
LODを使ってみよう!LODを使ってみよう!
LODを使ってみよう!uedayou
 
第4回 AIツール入門講座 Linked Open Data入門
第4回 AIツール入門講座 Linked Open Data入門第4回 AIツール入門講座 Linked Open Data入門
第4回 AIツール入門講座 Linked Open Data入門Fumihiro Kato
 
SPARQLとMashup環境 (年岡先生)
SPARQLとMashup環境 (年岡先生)SPARQLとMashup環境 (年岡先生)
SPARQLとMashup環境 (年岡先生)Shun Shiramatsu
 
Sparql epcuでlodをマッシュアップ
Sparql epcuでlodをマッシュアップSparql epcuでlodをマッシュアップ
Sparql epcuでlodをマッシュアップChubu University
 
Linked Open Data 作成支援ツールの紹介
Linked Open Data作成支援ツールの紹介Linked Open Data作成支援ツールの紹介
Linked Open Data 作成支援ツールの紹介uedayou
 
SPARQLでマッシュアップ -LOD活用のための技術紹介-
SPARQLでマッシュアップ-LOD活用のための技術紹介-SPARQLでマッシュアップ-LOD活用のための技術紹介-
SPARQLでマッシュアップ -LOD活用のための技術紹介-uedayou
 
SparqlEPCUが提供するlod開発プラットフォーム
SparqlEPCUが提供するlod開発プラットフォームSparqlEPCUが提供するlod開発プラットフォーム
SparqlEPCUが提供するlod開発プラットフォームChubu University
 
SPARQLから入門するLinked Open Data(LOD)ハンズオン 第1回
SPARQLから入門するLinked Open Data(LOD)ハンズオン 第1回SPARQLから入門するLinked Open Data(LOD)ハンズオン 第1回
SPARQLから入門するLinked Open Data(LOD)ハンズオン 第1回yamahige
 
つながるデータShare
つながるデータShareつながるデータShare
つながるデータShareSeiji Koide
 
第5回AIツール入門講座 Linked Open Dataの現状とその活用
第5回AIツール入門講座 Linked Open Dataの現状とその活用第5回AIツール入門講座 Linked Open Dataの現状とその活用
第5回AIツール入門講座 Linked Open Dataの現状とその活用Fumihiro Kato
 
オープンデータ公開プラットフォームとしてのWordPressへの期待
オープンデータ公開プラットフォームとしてのWordPressへの期待オープンデータ公開プラットフォームとしてのWordPressへの期待
オープンデータ公開プラットフォームとしてのWordPressへの期待Kouji Kozaki
 

What's hot (20)

LODI/Linked Open Data連続講義 第1回 「オープンデータからLinked Open Dataへ」
LODI/Linked Open Data連続講義 第1回 「オープンデータからLinked Open Dataへ」LODI/Linked Open Data連続講義 第1回 「オープンデータからLinked Open Dataへ」
LODI/Linked Open Data連続講義 第1回 「オープンデータからLinked Open Dataへ」
 
第5回LinkedData勉強会@yayamamo
第5回LinkedData勉強会@yayamamo第5回LinkedData勉強会@yayamamo
第5回LinkedData勉強会@yayamamo
 
Linked Open Data勉強会2020 前編:LODの基礎・作成・公開
Linked Open Data勉強会2020 前編:LODの基礎・作成・公開Linked Open Data勉強会2020 前編:LODの基礎・作成・公開
Linked Open Data勉強会2020 前編:LODの基礎・作成・公開
 
学術分野の事例紹介
学術分野の事例紹介学術分野の事例紹介
学術分野の事例紹介
 
ナレッジグラフ/LOD利用技術の入門(後編)
ナレッジグラフ/LOD利用技術の入門(後編)ナレッジグラフ/LOD利用技術の入門(後編)
ナレッジグラフ/LOD利用技術の入門(後編)
 
RDF Refineの使い方
RDF Refineの使い方RDF Refineの使い方
RDF Refineの使い方
 
DBpedia Japaneseとは?
DBpedia Japaneseとは?DBpedia Japaneseとは?
DBpedia Japaneseとは?
 
DBpedia Japanese
DBpedia JapaneseDBpedia Japanese
DBpedia Japanese
 
LODを使ってみよう!
LODを使ってみよう!LODを使ってみよう!
LODを使ってみよう!
 
第4回 AIツール入門講座 Linked Open Data入門
第4回 AIツール入門講座 Linked Open Data入門第4回 AIツール入門講座 Linked Open Data入門
第4回 AIツール入門講座 Linked Open Data入門
 
Linked Data (再)入門
Linked Data (再)入門Linked Data (再)入門
Linked Data (再)入門
 
SPARQLとMashup環境 (年岡先生)
SPARQLとMashup環境 (年岡先生)SPARQLとMashup環境 (年岡先生)
SPARQLとMashup環境 (年岡先生)
 
Sparql epcuでlodをマッシュアップ
Sparql epcuでlodをマッシュアップSparql epcuでlodをマッシュアップ
Sparql epcuでlodをマッシュアップ
 
Linked Open Data 作成支援ツールの紹介
Linked Open Data作成支援ツールの紹介Linked Open Data作成支援ツールの紹介
Linked Open Data 作成支援ツールの紹介
 
SPARQLでマッシュアップ -LOD活用のための技術紹介-
SPARQLでマッシュアップ-LOD活用のための技術紹介-SPARQLでマッシュアップ-LOD活用のための技術紹介-
SPARQLでマッシュアップ -LOD活用のための技術紹介-
 
SparqlEPCUが提供するlod開発プラットフォーム
SparqlEPCUが提供するlod開発プラットフォームSparqlEPCUが提供するlod開発プラットフォーム
SparqlEPCUが提供するlod開発プラットフォーム
 
SPARQLから入門するLinked Open Data(LOD)ハンズオン 第1回
SPARQLから入門するLinked Open Data(LOD)ハンズオン 第1回SPARQLから入門するLinked Open Data(LOD)ハンズオン 第1回
SPARQLから入門するLinked Open Data(LOD)ハンズオン 第1回
 
つながるデータShare
つながるデータShareつながるデータShare
つながるデータShare
 
第5回AIツール入門講座 Linked Open Dataの現状とその活用
第5回AIツール入門講座 Linked Open Dataの現状とその活用第5回AIツール入門講座 Linked Open Dataの現状とその活用
第5回AIツール入門講座 Linked Open Dataの現状とその活用
 
オープンデータ公開プラットフォームとしてのWordPressへの期待
オープンデータ公開プラットフォームとしてのWordPressへの期待オープンデータ公開プラットフォームとしてのWordPressへの期待
オープンデータ公開プラットフォームとしてのWordPressへの期待
 

Viewers also liked

EWD 3トレーニングコース#7 ewd-xpressメッセージ・パターンを適用する
EWD 3トレーニングコース#7 ewd-xpressメッセージ・パターンを適用するEWD 3トレーニングコース#7 ewd-xpressメッセージ・パターンを適用する
EWD 3トレーニングコース#7 ewd-xpressメッセージ・パターンを適用するKiyoshi Sawada
 
EWD 3トレーニング・コース #29 ewd-xpress を Linux systemdでサービスとして稼働させる
EWD 3トレーニング・コース #29 ewd-xpress を Linux systemdでサービスとして稼働させるEWD 3トレーニング・コース #29 ewd-xpress を Linux systemdでサービスとして稼働させる
EWD 3トレーニング・コース #29 ewd-xpress を Linux systemdでサービスとして稼働させるKiyoshi Sawada
 
EWD 3トレーニングコース#28 従来のMUMPSコードをewd-xpressと統合する
EWD 3トレーニングコース#28 従来のMUMPSコードをewd-xpressと統合するEWD 3トレーニングコース#28 従来のMUMPSコードをewd-xpressと統合する
EWD 3トレーニングコース#28 従来のMUMPSコードをewd-xpressと統合するKiyoshi Sawada
 
EWD 3トレーニングコース#25 GlobalストレージのJavaScript用抽象化-(f) Documentデータベースのできること
EWD 3トレーニングコース#25 GlobalストレージのJavaScript用抽象化-(f) DocumentデータベースのできることEWD 3トレーニングコース#25 GlobalストレージのJavaScript用抽象化-(f) Documentデータベースのできること
EWD 3トレーニングコース#25 GlobalストレージのJavaScript用抽象化-(f) DocumentデータベースのできることKiyoshi Sawada
 
EWD 3トレーニングコース#5 ewd-xpressアプリ開発第1ステップ
EWD 3トレーニングコース#5 ewd-xpressアプリ開発第1ステップEWD 3トレーニングコース#5 ewd-xpressアプリ開発第1ステップ
EWD 3トレーニングコース#5 ewd-xpressアプリ開発第1ステップKiyoshi Sawada
 
EWD 3トレーニング・コース #2 EWD 3 の概要
EWD 3トレーニング・コース #2 EWD 3 の概要EWD 3トレーニング・コース #2 EWD 3 の概要
EWD 3トレーニング・コース #2 EWD 3 の概要Kiyoshi Sawada
 
EWD 3 トレーニング・コース #1 Node.jsとGT.Mの統合方法
EWD 3トレーニング・コース #1 Node.jsとGT.Mの統合方法EWD 3トレーニング・コース #1 Node.jsとGT.Mの統合方法
EWD 3 トレーニング・コース #1 Node.jsとGT.Mの統合方法Kiyoshi Sawada
 
GT.M: A Tried and Tested Open-Source NoSQL Database
GT.M: A Tried and Tested Open-Source NoSQL DatabaseGT.M: A Tried and Tested Open-Source NoSQL Database
GT.M: A Tried and Tested Open-Source NoSQL DatabaseRob Tweed
 
トランザクションの設計と進化
トランザクションの設計と進化トランザクションの設計と進化
トランザクションの設計と進化Kumazaki Hiroki
 

Viewers also liked (9)

EWD 3トレーニングコース#7 ewd-xpressメッセージ・パターンを適用する
EWD 3トレーニングコース#7 ewd-xpressメッセージ・パターンを適用するEWD 3トレーニングコース#7 ewd-xpressメッセージ・パターンを適用する
EWD 3トレーニングコース#7 ewd-xpressメッセージ・パターンを適用する
 
EWD 3トレーニング・コース #29 ewd-xpress を Linux systemdでサービスとして稼働させる
EWD 3トレーニング・コース #29 ewd-xpress を Linux systemdでサービスとして稼働させるEWD 3トレーニング・コース #29 ewd-xpress を Linux systemdでサービスとして稼働させる
EWD 3トレーニング・コース #29 ewd-xpress を Linux systemdでサービスとして稼働させる
 
EWD 3トレーニングコース#28 従来のMUMPSコードをewd-xpressと統合する
EWD 3トレーニングコース#28 従来のMUMPSコードをewd-xpressと統合するEWD 3トレーニングコース#28 従来のMUMPSコードをewd-xpressと統合する
EWD 3トレーニングコース#28 従来のMUMPSコードをewd-xpressと統合する
 
EWD 3トレーニングコース#25 GlobalストレージのJavaScript用抽象化-(f) Documentデータベースのできること
EWD 3トレーニングコース#25 GlobalストレージのJavaScript用抽象化-(f) DocumentデータベースのできることEWD 3トレーニングコース#25 GlobalストレージのJavaScript用抽象化-(f) Documentデータベースのできること
EWD 3トレーニングコース#25 GlobalストレージのJavaScript用抽象化-(f) Documentデータベースのできること
 
EWD 3トレーニングコース#5 ewd-xpressアプリ開発第1ステップ
EWD 3トレーニングコース#5 ewd-xpressアプリ開発第1ステップEWD 3トレーニングコース#5 ewd-xpressアプリ開発第1ステップ
EWD 3トレーニングコース#5 ewd-xpressアプリ開発第1ステップ
 
EWD 3トレーニング・コース #2 EWD 3 の概要
EWD 3トレーニング・コース #2 EWD 3 の概要EWD 3トレーニング・コース #2 EWD 3 の概要
EWD 3トレーニング・コース #2 EWD 3 の概要
 
EWD 3 トレーニング・コース #1 Node.jsとGT.Mの統合方法
EWD 3トレーニング・コース #1 Node.jsとGT.Mの統合方法EWD 3トレーニング・コース #1 Node.jsとGT.Mの統合方法
EWD 3 トレーニング・コース #1 Node.jsとGT.Mの統合方法
 
GT.M: A Tried and Tested Open-Source NoSQL Database
GT.M: A Tried and Tested Open-Source NoSQL DatabaseGT.M: A Tried and Tested Open-Source NoSQL Database
GT.M: A Tried and Tested Open-Source NoSQL Database
 
トランザクションの設計と進化
トランザクションの設計と進化トランザクションの設計と進化
トランザクションの設計と進化
 

More from Kiyoshi Sawada

EWD 3トレーニングコース#33 ewd-xpressアプリケーションからREST/Webサービスにアクセスする
EWD 3トレーニングコース#33 ewd-xpressアプリケーションからREST/WebサービスにアクセスするEWD 3トレーニングコース#33 ewd-xpressアプリケーションからREST/Webサービスにアクセスする
EWD 3トレーニングコース#33 ewd-xpressアプリケーションからREST/WebサービスにアクセスするKiyoshi Sawada
 
EWD 3トレーニングコース#31 ewd-xpressでWebおよびRESTサービスを作る
EWD 3トレーニングコース#31 ewd-xpressでWebおよびRESTサービスを作るEWD 3トレーニングコース#31 ewd-xpressでWebおよびRESTサービスを作る
EWD 3トレーニングコース#31 ewd-xpressでWebおよびRESTサービスを作るKiyoshi Sawada
 
EWD 3トレーニングコース#30 ewd-xpressアプリケーションをモジュラー化する
EWD 3トレーニングコース#30 ewd-xpressアプリケーションをモジュラー化するEWD 3トレーニングコース#30 ewd-xpressアプリケーションをモジュラー化する
EWD 3トレーニングコース#30 ewd-xpressアプリケーションをモジュラー化するKiyoshi Sawada
 
EWD 3トレーニングコース#29 ewd-xpressをWindows上のサービスとして稼働させる
EWD 3トレーニングコース#29 ewd-xpressをWindows上のサービスとして稼働させるEWD 3トレーニングコース#29 ewd-xpressをWindows上のサービスとして稼働させる
EWD 3トレーニングコース#29 ewd-xpressをWindows上のサービスとして稼働させるKiyoshi Sawada
 
EWD 3トレーニングコース#28 従来のMUMPSコードをewd-xpressと統合する
EWD 3トレーニングコース#28 従来のMUMPSコードをewd-xpressと統合するEWD 3トレーニングコース#28 従来のMUMPSコードをewd-xpressと統合する
EWD 3トレーニングコース#28 従来のMUMPSコードをewd-xpressと統合するKiyoshi Sawada
 
EWD 3トレーニングコース#27 GlobalストレージのJavaScript用抽象化-(h) EWD 3 セッション
EWD 3トレーニングコース#27 GlobalストレージのJavaScript用抽象化-(h) EWD 3 セッションEWD 3トレーニングコース#27 GlobalストレージのJavaScript用抽象化-(h) EWD 3 セッション
EWD 3トレーニングコース#27 GlobalストレージのJavaScript用抽象化-(h) EWD 3 セッションKiyoshi Sawada
 
EWD 3トレーニングコース#26 GlobalストレージのJavaScript用抽象化-(g) イベント駆動の索引管理
EWD 3トレーニングコース#26 GlobalストレージのJavaScript用抽象化-(g) イベント駆動の索引管理EWD 3トレーニングコース#26 GlobalストレージのJavaScript用抽象化-(g) イベント駆動の索引管理
EWD 3トレーニングコース#26 GlobalストレージのJavaScript用抽象化-(g) イベント駆動の索引管理Kiyoshi Sawada
 
EWD 3トレーニングコース#24 GlobalストレージのJavaScript用抽象化-(e) ドキュメントの末端ノードを渡り歩く
EWD 3トレーニングコース#24 GlobalストレージのJavaScript用抽象化-(e) ドキュメントの末端ノードを渡り歩くEWD 3トレーニングコース#24 GlobalストレージのJavaScript用抽象化-(e) ドキュメントの末端ノードを渡り歩く
EWD 3トレーニングコース#24 GlobalストレージのJavaScript用抽象化-(e) ドキュメントの末端ノードを渡り歩くKiyoshi Sawada
 
EWD 3トレーニングコース#23 GlobalストレージのJavaScript用抽象化-(d) ノードの範囲を渡り歩く
EWD 3トレーニングコース#23 GlobalストレージのJavaScript用抽象化-(d) ノードの範囲を渡り歩くEWD 3トレーニングコース#23 GlobalストレージのJavaScript用抽象化-(d) ノードの範囲を渡り歩く
EWD 3トレーニングコース#23 GlobalストレージのJavaScript用抽象化-(d) ノードの範囲を渡り歩くKiyoshi Sawada
 
EWD 3トレーニングコース#22 GlobalストレージのJavaScript用抽象化-(c) ドキュメントを渡り歩く
EWD 3トレーニングコース#22 GlobalストレージのJavaScript用抽象化-(c) ドキュメントを渡り歩くEWD 3トレーニングコース#22 GlobalストレージのJavaScript用抽象化-(c) ドキュメントを渡り歩く
EWD 3トレーニングコース#22 GlobalストレージのJavaScript用抽象化-(c) ドキュメントを渡り歩くKiyoshi Sawada
 
EWD 3トレーニングコース#21 GlobalストレージのJavaScript用抽象化-(b) JavaScriptの永続オブジェクト
EWD 3トレーニングコース#21 GlobalストレージのJavaScript用抽象化-(b) JavaScriptの永続オブジェクトEWD 3トレーニングコース#21 GlobalストレージのJavaScript用抽象化-(b) JavaScriptの永続オブジェクト
EWD 3トレーニングコース#21 GlobalストレージのJavaScript用抽象化-(b) JavaScriptの永続オブジェクトKiyoshi Sawada
 
EWD 3トレーニングコース#20 GlobalストレージのJavaScript用抽象化-(a)DocumentNodeオブジェクト
EWD 3トレーニングコース#20 GlobalストレージのJavaScript用抽象化-(a)DocumentNodeオブジェクトEWD 3トレーニングコース#20 GlobalストレージのJavaScript用抽象化-(a)DocumentNodeオブジェクト
EWD 3トレーニングコース#20 GlobalストレージのJavaScript用抽象化-(a)DocumentNodeオブジェクトKiyoshi Sawada
 
EWD 3トレーニングコース#19 JavaScriptからGlobalストレジにアクセスする
EWD 3トレーニングコース#19 JavaScriptからGlobalストレジにアクセスするEWD 3トレーニングコース#19 JavaScriptからGlobalストレジにアクセスする
EWD 3トレーニングコース#19 JavaScriptからGlobalストレジにアクセスするKiyoshi Sawada
 
EWD 3トレーニングコース#17 Globalストレジ・データベース入門
EWD 3トレーニングコース#17 Globalストレジ・データベース入門EWD 3トレーニングコース#17 Globalストレジ・データベース入門
EWD 3トレーニングコース#17 Globalストレジ・データベース入門Kiyoshi Sawada
 
EWD 3トレーニングコース#16 ewd-xpressサービス
EWD 3トレーニングコース#16 ewd-xpressサービスEWD 3トレーニングコース#16 ewd-xpressサービス
EWD 3トレーニングコース#16 ewd-xpressサービスKiyoshi Sawada
 
EWD 3トレーニングコース#15 ewd-xpressでjQuery以外のフレームワークを利用する
EWD 3トレーニングコース#15 ewd-xpressでjQuery以外のフレームワークを利用するEWD 3トレーニングコース#15 ewd-xpressでjQuery以外のフレームワークを利用する
EWD 3トレーニングコース#15 ewd-xpressでjQuery以外のフレームワークを利用するKiyoshi Sawada
 
EWD 3トレーニングコース#14 ewd-xpressメッセージ用にAjaxを用いる
EWD 3トレーニングコース#14 ewd-xpressメッセージ用にAjaxを用いるEWD 3トレーニングコース#14 ewd-xpressメッセージ用にAjaxを用いる
EWD 3トレーニングコース#14 ewd-xpressメッセージ用にAjaxを用いるKiyoshi Sawada
 
EWD 3トレーニングコース#13 全てをひとつにまとめてewd-xpressで稼働させてみる
EWD 3トレーニングコース#13 全てをひとつにまとめてewd-xpressで稼働させてみるEWD 3トレーニングコース#13 全てをひとつにまとめてewd-xpressで稼働させてみる
EWD 3トレーニングコース#13 全てをひとつにまとめてewd-xpressで稼働させてみるKiyoshi Sawada
 
EWD 3トレーニングコース#12 ewd-xpressのセッション・タイムアウトの制御
EWD 3トレーニングコース#12 ewd-xpressのセッション・タイムアウトの制御EWD 3トレーニングコース#12 ewd-xpressのセッション・タイムアウトの制御
EWD 3トレーニングコース#12 ewd-xpressのセッション・タイムアウトの制御Kiyoshi Sawada
 
EWD 3トレーニングコース#11 ewd-xpressでのエラー処理
EWD 3トレーニングコース#11 ewd-xpressでのエラー処理EWD 3トレーニングコース#11 ewd-xpressでのエラー処理
EWD 3トレーニングコース#11 ewd-xpressでのエラー処理Kiyoshi Sawada
 

More from Kiyoshi Sawada (20)

EWD 3トレーニングコース#33 ewd-xpressアプリケーションからREST/Webサービスにアクセスする
EWD 3トレーニングコース#33 ewd-xpressアプリケーションからREST/WebサービスにアクセスするEWD 3トレーニングコース#33 ewd-xpressアプリケーションからREST/Webサービスにアクセスする
EWD 3トレーニングコース#33 ewd-xpressアプリケーションからREST/Webサービスにアクセスする
 
EWD 3トレーニングコース#31 ewd-xpressでWebおよびRESTサービスを作る
EWD 3トレーニングコース#31 ewd-xpressでWebおよびRESTサービスを作るEWD 3トレーニングコース#31 ewd-xpressでWebおよびRESTサービスを作る
EWD 3トレーニングコース#31 ewd-xpressでWebおよびRESTサービスを作る
 
EWD 3トレーニングコース#30 ewd-xpressアプリケーションをモジュラー化する
EWD 3トレーニングコース#30 ewd-xpressアプリケーションをモジュラー化するEWD 3トレーニングコース#30 ewd-xpressアプリケーションをモジュラー化する
EWD 3トレーニングコース#30 ewd-xpressアプリケーションをモジュラー化する
 
EWD 3トレーニングコース#29 ewd-xpressをWindows上のサービスとして稼働させる
EWD 3トレーニングコース#29 ewd-xpressをWindows上のサービスとして稼働させるEWD 3トレーニングコース#29 ewd-xpressをWindows上のサービスとして稼働させる
EWD 3トレーニングコース#29 ewd-xpressをWindows上のサービスとして稼働させる
 
EWD 3トレーニングコース#28 従来のMUMPSコードをewd-xpressと統合する
EWD 3トレーニングコース#28 従来のMUMPSコードをewd-xpressと統合するEWD 3トレーニングコース#28 従来のMUMPSコードをewd-xpressと統合する
EWD 3トレーニングコース#28 従来のMUMPSコードをewd-xpressと統合する
 
EWD 3トレーニングコース#27 GlobalストレージのJavaScript用抽象化-(h) EWD 3 セッション
EWD 3トレーニングコース#27 GlobalストレージのJavaScript用抽象化-(h) EWD 3 セッションEWD 3トレーニングコース#27 GlobalストレージのJavaScript用抽象化-(h) EWD 3 セッション
EWD 3トレーニングコース#27 GlobalストレージのJavaScript用抽象化-(h) EWD 3 セッション
 
EWD 3トレーニングコース#26 GlobalストレージのJavaScript用抽象化-(g) イベント駆動の索引管理
EWD 3トレーニングコース#26 GlobalストレージのJavaScript用抽象化-(g) イベント駆動の索引管理EWD 3トレーニングコース#26 GlobalストレージのJavaScript用抽象化-(g) イベント駆動の索引管理
EWD 3トレーニングコース#26 GlobalストレージのJavaScript用抽象化-(g) イベント駆動の索引管理
 
EWD 3トレーニングコース#24 GlobalストレージのJavaScript用抽象化-(e) ドキュメントの末端ノードを渡り歩く
EWD 3トレーニングコース#24 GlobalストレージのJavaScript用抽象化-(e) ドキュメントの末端ノードを渡り歩くEWD 3トレーニングコース#24 GlobalストレージのJavaScript用抽象化-(e) ドキュメントの末端ノードを渡り歩く
EWD 3トレーニングコース#24 GlobalストレージのJavaScript用抽象化-(e) ドキュメントの末端ノードを渡り歩く
 
EWD 3トレーニングコース#23 GlobalストレージのJavaScript用抽象化-(d) ノードの範囲を渡り歩く
EWD 3トレーニングコース#23 GlobalストレージのJavaScript用抽象化-(d) ノードの範囲を渡り歩くEWD 3トレーニングコース#23 GlobalストレージのJavaScript用抽象化-(d) ノードの範囲を渡り歩く
EWD 3トレーニングコース#23 GlobalストレージのJavaScript用抽象化-(d) ノードの範囲を渡り歩く
 
EWD 3トレーニングコース#22 GlobalストレージのJavaScript用抽象化-(c) ドキュメントを渡り歩く
EWD 3トレーニングコース#22 GlobalストレージのJavaScript用抽象化-(c) ドキュメントを渡り歩くEWD 3トレーニングコース#22 GlobalストレージのJavaScript用抽象化-(c) ドキュメントを渡り歩く
EWD 3トレーニングコース#22 GlobalストレージのJavaScript用抽象化-(c) ドキュメントを渡り歩く
 
EWD 3トレーニングコース#21 GlobalストレージのJavaScript用抽象化-(b) JavaScriptの永続オブジェクト
EWD 3トレーニングコース#21 GlobalストレージのJavaScript用抽象化-(b) JavaScriptの永続オブジェクトEWD 3トレーニングコース#21 GlobalストレージのJavaScript用抽象化-(b) JavaScriptの永続オブジェクト
EWD 3トレーニングコース#21 GlobalストレージのJavaScript用抽象化-(b) JavaScriptの永続オブジェクト
 
EWD 3トレーニングコース#20 GlobalストレージのJavaScript用抽象化-(a)DocumentNodeオブジェクト
EWD 3トレーニングコース#20 GlobalストレージのJavaScript用抽象化-(a)DocumentNodeオブジェクトEWD 3トレーニングコース#20 GlobalストレージのJavaScript用抽象化-(a)DocumentNodeオブジェクト
EWD 3トレーニングコース#20 GlobalストレージのJavaScript用抽象化-(a)DocumentNodeオブジェクト
 
EWD 3トレーニングコース#19 JavaScriptからGlobalストレジにアクセスする
EWD 3トレーニングコース#19 JavaScriptからGlobalストレジにアクセスするEWD 3トレーニングコース#19 JavaScriptからGlobalストレジにアクセスする
EWD 3トレーニングコース#19 JavaScriptからGlobalストレジにアクセスする
 
EWD 3トレーニングコース#17 Globalストレジ・データベース入門
EWD 3トレーニングコース#17 Globalストレジ・データベース入門EWD 3トレーニングコース#17 Globalストレジ・データベース入門
EWD 3トレーニングコース#17 Globalストレジ・データベース入門
 
EWD 3トレーニングコース#16 ewd-xpressサービス
EWD 3トレーニングコース#16 ewd-xpressサービスEWD 3トレーニングコース#16 ewd-xpressサービス
EWD 3トレーニングコース#16 ewd-xpressサービス
 
EWD 3トレーニングコース#15 ewd-xpressでjQuery以外のフレームワークを利用する
EWD 3トレーニングコース#15 ewd-xpressでjQuery以外のフレームワークを利用するEWD 3トレーニングコース#15 ewd-xpressでjQuery以外のフレームワークを利用する
EWD 3トレーニングコース#15 ewd-xpressでjQuery以外のフレームワークを利用する
 
EWD 3トレーニングコース#14 ewd-xpressメッセージ用にAjaxを用いる
EWD 3トレーニングコース#14 ewd-xpressメッセージ用にAjaxを用いるEWD 3トレーニングコース#14 ewd-xpressメッセージ用にAjaxを用いる
EWD 3トレーニングコース#14 ewd-xpressメッセージ用にAjaxを用いる
 
EWD 3トレーニングコース#13 全てをひとつにまとめてewd-xpressで稼働させてみる
EWD 3トレーニングコース#13 全てをひとつにまとめてewd-xpressで稼働させてみるEWD 3トレーニングコース#13 全てをひとつにまとめてewd-xpressで稼働させてみる
EWD 3トレーニングコース#13 全てをひとつにまとめてewd-xpressで稼働させてみる
 
EWD 3トレーニングコース#12 ewd-xpressのセッション・タイムアウトの制御
EWD 3トレーニングコース#12 ewd-xpressのセッション・タイムアウトの制御EWD 3トレーニングコース#12 ewd-xpressのセッション・タイムアウトの制御
EWD 3トレーニングコース#12 ewd-xpressのセッション・タイムアウトの制御
 
EWD 3トレーニングコース#11 ewd-xpressでのエラー処理
EWD 3トレーニングコース#11 ewd-xpressでのエラー処理EWD 3トレーニングコース#11 ewd-xpressでのエラー処理
EWD 3トレーニングコース#11 ewd-xpressでのエラー処理
 

EWD 3トレーニングコース#18 GlobalストレジでNoSQLデータベースをモデル化する

  • 1. EWD 3 トレーニング・コース #18 Global ストレージを用いて NoSQL データベースをモデル化する M/Gateway Developments Ltd. Rob Tweed 訳: 日本ダイナシステム株式会社 嶋 芳成 GT.M版編集: 澤田 潔 ※ 本稿オリジナルはCache’向けとして編纂
  • 2. NoSQL データベース • 主な4種類のモデル • キー/値ストア型 • 表型 (カラム型) • グラフ型 • ドキュメント (文書)型 2016/9/11 EWD 3 トレーニング・コース #18 2
  • 3. NoSQL データベース • ここから示すのは、これらを Global ストレージを用い てモデル化するかということです • 方法はひとつではありません • もっと良い方法があるかもしれません • ここでの目的は、Global ストレージ・データベースが実際い かに柔軟で可能性に満ちているかを示すことです 2016/9/11 EWD 3 トレーニング・コース #18 3
  • 4. キー/値ストア 2016/9/11 EWD 3 トレーニング・コース #18 4 telephone "221-555-9012" "James, George" "617-555-1414" "Tweed, Rob"
  • 5. より複雑なキー/値ストア 2016/9/11 EWD 3 トレーニング・コース #18 5 telephone "221-555-9012" "James, George" "617-555-1414" "Tweed, Rob" "住所" "氏名" "住所" "氏名" "5308,12th Avenue, Brooklyn" "112 Beacon Street, Boston"
  • 6. 索引 • Global ストレージ・データベースは、索引を自動的に は生成しません • 索引は、Global ストレージを用いて自分で生成しま す 2016/9/11 EWD 3 トレーニング・コース #18 6
  • 7. 索引 2016/9/11 EWD 3 トレーニング・コース #18 7 telephone "221-555-9012" "James, George" "617-555-1414" "Tweed, Rob" "住所" "氏名" "住所" "氏名" "5308,12th Avenue, Brooklyn" "112 Beacon Street, Boston" nameIndex "James, George"
  • 8. 索引 2016/9/11 EWD 3 トレーニング・コース #18 8 telephone "221-555-9012" "James, George" "617-555-1414" "Tweed, Rob" "住所" "氏名" "住所" "氏名" "5308,12th Avenue, Brooklyn" "112 Beacon Street, Boston" nameIndex "James, George" "211-555-9012" ""
  • 9. 索引 2016/9/11 EWD 3 トレーニング・コース #18 9 telephone "221-555-9012" "James, George" "617-555-1414" "Tweed, Rob" "住所" "氏名" "住所" "氏名" "5308,12th Avenue, Brooklyn" "112 Beacon Street, Boston" nameIndex "James, George" "211-555-9012" "" "Tweed, Rob" "617-555-1414" ""
  • 10. 索引 2016/9/11 EWD 3 トレーニング・コース #18 10 telephone "221-555-9012" "James, George" "617-555-1414" "Tweed, Rob" "住所" "氏名" "住所" "氏名" "5308,12th Avenue, Brooklyn" "112 Beacon Street, Boston" nameIndex "James, George" "211-555-9012" "" "Tweed, Rob" "617-555-1414" "" "211-863-3932" "" "224-543-5431" ""
  • 11. リンクされたリスト 2016/9/11 EWD 3 トレーニング・コース #18 11 list "firstNode" 2"lastNode" "John""value" 5 "previousNode" 4 "node" "nextNode" 2 2 "previousNode" 5 "value" "George" "myList" "nodeCounter" 5 4 5 "Rob""value" "nextNode" 4 Rob George John
  • 12. リンクされたリスト 2016/9/11 EWD 3 トレーニング・コース #18 12 list "firstNode" 2"lastNode" "John""value" 5 "previousNode" 4 "node" "nextNode" 2 2 "previousNode" 5 "value" "George" "myList" "nodeCounter" 5 4 5 "Rob""value" "nextNode" 4 Rob George John
  • 13. リンクされたリスト 2016/9/11 EWD 3 トレーニング・コース #18 13 list "firstNode" 2"lastNode" "John""value" 5 "previousNode" 4 "node" "nextNode" 2 2 "previousNode" 5 "value" "George" "myList" "nodeCounter" 5 4 5 "Rob""value" "nextNode" 4 Rob George John
  • 14. リンクされたリスト 2016/9/11 EWD 3 トレーニング・コース #18 14 list "firstNode" 2"lastNode" "John""value" 5 "previousNode" 4 "node" "nextNode" 2 2 "previousNode" 5 "value" "George" "myList" "nodeCounter" 5 4 5 "Rob""value" "nextNode" 4 Rob George John
  • 15. リンクされたリスト 2016/9/11 EWD 3 トレーニング・コース #18 15 list "firstNode" 2"lastNode" "John""value" 5 "previousNode" 4 "node" "nextNode" 2 2 "previousNode" 5 "value" "George" "myList" "nodeCounter" 5 4 5 "Rob""value" "nextNode" 4 Rob George John
  • 16. リンクされたリスト 2016/9/11 EWD 3 トレーニング・コース #18 16 list "firstNode" 2"lastNode" "John""value" 5 "previousNode" 4 "node" "nextNode" 2 2 "previousNode" 5 "value" "George" "myList" "nodeCounter" 5 4 5 "Rob""value" "nextNode" 4 Rob George John
  • 17. リンクされたリスト 2016/9/11 EWD 3 トレーニング・コース #18 17 list "firstNode" 2"lastNode" "John""value" 5 "previousNode" 4 "node" "nextNode" 2 2 "previousNode" 5 "value" "George" "myList" "nodeCounter" 5 4 5 "Rob""value" "nextNode" 4 Rob George John
  • 18. リンクされたリスト 2016/9/11 EWD 3 トレーニング・コース #18 18 list "firstNode" 2"lastNode" "John""value" 5 "previousNode" 4 "node" "nextNode" 2 2 "previousNode" 5 "value" "George" "myList" "nodeCounter" 5 4 5 "Rob""value" "nextNode" 4 Rob George John
  • 19. リンクされたリスト 2016/9/11 EWD 3 トレーニング・コース #18 19 list "firstNode" 2"lastNode" "John""value" 5 "previousNode" 4 "node" "nextNode" 2 2 "previousNode" 5 "value" "George" "myList" "nodeCounter" 5 4 5 "Rob""value" "nextNode" 4 Rob George John
  • 20. リンクされたリスト 2016/9/11 EWD 3 トレーニング・コース #18 20 list "firstNode" 2"lastNode" "John""value" 5 "previousNode" 4 "node" "nextNode" 2 2 "previousNode" 5 "value" "George" "myList" "nodeCounter" 5 4 5 "Rob""value" "nextNode" 4 Chris Rob George John
  • 21. リンクされたリスト 2016/9/11 EWD 3 トレーニング・コース #18 21 list "firstNode" 2"lastNode" "John""value" 5 "previousNode" 4 "node" "nextNode" 2 2 "previousNode" 5 "value" "George" "myList" "nodeCounter" 6 4 5 "Rob""value" "nextNode" 4 Chris Rob George John
  • 22. リンクされたリスト 2016/9/11 EWD 3 トレーニング・コース #18 22 list "firstNode" 2"lastNode" "John""value" 5 "previousNode" 4 "node" "nextNode" 2 2 "previousNode" 5 "value" "George" "myList" "nodeCounter" 6 4 5 "Rob""value" "nextNode" 4 Chris Rob George John 6 "Chris""value"
  • 23. リンクされたリスト 2016/9/11 EWD 3 トレーニング・コース #18 23 list "firstNode" 2"lastNode" "John""value" 5 "previousNode" 4 "node" "nextNode" 2 2 "previousNode" 5 "value" "George" "myList" "nodeCounter" 6 4 5 "Rob""value" "nextNode" 4 Chris Rob George John 6 "Chris""value" "nextNode" 5
  • 24. リンクされたリスト 2016/9/11 EWD 3 トレーニング・コース #18 24 list "firstNode" 2"lastNode" "John""value" 5 "previousNode" 4 "node" "nextNode" 2 2 "previousNode" 5 "value" "George" "myList" "nodeCounter" 6 4 5 "Rob""value" "nextNode" 4 Chris Rob George John 6 "Chris""value" "nextNode" 5 "previousNode" 6
  • 25. リンクされたリスト 2016/9/11 EWD 3 トレーニング・コース #18 25 list "firstNode" 2"lastNode" "John""value" 6 "previousNode" 4 "node" "nextNode" 2 2 "previousNode" 5 "value" "George" "myList" "nodeCounter" 6 4 5 "Rob""value" "nextNode" 4 Chris Rob George John 6 "Chris""value" "nextNode" 5 "previousNode" 6
  • 26. テーブル名 行番号 列番号 セルの値 表型/カラム型 2016/9/11 EWD 3 トレーニング・コース #18 26 ^table "myTable" 1 "最初のセル" 3 "3番目のセル" 5 "5番目のセル" 1 2 "3番目のセル"3 2 "2番目のセル" 3 "5番目のセル"5 4 "4番目のセル"
  • 27. グラフ型 2016/9/11 EWD 3 トレーニング・コース #18 27 名前="Rob" 名前="George" 名前="John" 1 2 7 開示 = public 年齢 = 2 年 開示 = public 年齢 = 3 日 知っている
  • 28. グラフ型 2016/9/11 EWD 3 トレーニング・コース #18 28 名前="Rob" 名前="George" 名前="John" 1 2 7 開示 = public 年齢 = 2 年 開示 = public 年齢 = 3 日 知っている 個人 1 2 7 "知っている" "名前" "名前" "知っている" "名前" 2 7 "" "開示" "日時" "" "開示" "日時" "" "Rob" "John" "George" 2 "公的" "公的" "2009-12-16T10:06:44Z" "2008-08-16 T12:23:01Z"
  • 29. グラフ型 2016/9/11 EWD 3 トレーニング・コース #18 29 名前="Rob" 名前="George" 名前="John" 1 2 7 開示 = public 年齢 = 2 年 開示 = public 年齢 = 3 日 知っている 個人 1 2 7 "知っている" "名前" "名前" "知っている" "名前" 2 7 "" "開示" "日時" "" "開示" "日時" "" "Rob" "John" "George" 2 "公的" "公的" "2009-12-16T10:06:44Z" "2008-08-16 T12:23:01Z"
  • 30. グラフ型 2016/9/11 EWD 3 トレーニング・コース #18 30 名前="Rob" 名前="George" 名前="John" 1 2 7 開示 = public 年齢 = 2 年 開示 = public 年齢 = 3 日 知っている 個人 1 2 7 "知っている" "名前" "名前" "知っている" "名前" 2 7 "" "開示" "日時" "" "開示" "日時" "" "Rob" "John" "George" 2 "公的" "公的" "2009-12-16T10:06:44Z" "2008-08-16 T12:23:01Z"
  • 31. グラフ型 2016/9/11 EWD 3 トレーニング・コース #18 31 名前="Rob" 名前="George" 名前="John" 1 2 7 開示 = public 年齢 = 2 年 開示 = public 年齢 = 3 日 知っている 個人 1 2 7 "知っている" "名前" "名前" "知っている" "名前" 2 7 "" "開示" "日時" "" "開示" "日時" "" "Rob" "John" "George" 2 "公的" "公的" "2009-12-16T10:06:44Z" "2008-08-16 T12:23:01Z"
  • 32. グラフ型 2016/9/11 EWD 3 トレーニング・コース #18 32 名前="Rob" 名前="George" 名前="John" 1 2 7 開示 = public 年齢 = 2 年 開示 = public 年齢 = 3 日 知っている 個人 1 2 7 "知っている" "名前" "名前" "知っている" "名前" 2 7 "" "開示" "日時" "" "開示" "日時" "" "Rob" "John" "George" 2 "公的" "公的" "2009-12-16T10:06:44Z" "2008-08-16 T12:23:01Z"
  • 33. グラフ型 2016/9/11 EWD 3 トレーニング・コース #18 33 名前="Rob" 名前="George" 名前="John" 1 2 7 開示 = public 年齢 = 2 年 開示 = public 年齢 = 3 日 知っている 個人 1 2 7 "知っている" "名前" "名前" "知っている" "名前" 2 7 "" "開示" "日時" "" "開示" "日時" "" "Rob" "John" "George" 2 "公的" "公的" "2009-12-16T10:06:44Z" "2008-08-16 T12:23:01Z"
  • 34. ドキュメント・データベース 2016/9/11 EWD 3 トレーニング・コース #18 34 myGlobal "a" 123 "b" "c1" "foo" "c2" "foo2" "d" "e1" "e2" "f1" "bar1" "f2" "bar2" "f1" "bar1" "f2" "bar2" "f3" "bar3" myGlobal = { a: 123, b: { c1: 'foo', c2: 'foo2' }, d: { e1: { f1: 'bar1', f2: 'bar2' }, e2: { f1: 'bar1", f2: 'bar2', f3: 'bar3' } } }
  • 35. 他のモデルも表現可能 • リレーショナル • 実際 Caché は、グローバル・ストレージの上に リレーショナ ル・ストレージを実現してサポートしています • オブジェクト • Caché ではこれもサポートしています • ネイティブな XML データベース • eXtc (今は廃止) • http://www.mgateway.com/eXtcOverview4_0.pdf • SimpleDB のエミュレーション • https://github.com/robtweed/node-mdb 2016/9/11 EWD 3 トレーニング・コース #18 35