EWD 3トレーニングコース#17 Globalストレジ・データベース入門
-
Upload
kiyoshi-sawada -
Category
Software
-
view
19 -
download
0
Transcript of EWD 3トレーニングコース#17 Globalストレジ・データベース入門
![Page 1: EWD 3トレーニングコース#17 Globalストレジ・データベース入門](https://reader035.fdocument.pub/reader035/viewer/2022062901/58f192741a28ab94768b46df/html5/thumbnails/1.jpg)
EWD 3トレーニング・コース #17
グローバル・ストレージ・データ
ベース入門M/Gateway Developments Ltd.
Rob Tweed訳 : 日本ダイナシステム株式会社 嶋 芳成
GT.M 版編集 : 澤田 潔
※ 本稿オリジナルは Cache’ 向けとして編纂
![Page 2: EWD 3トレーニングコース#17 Globalストレジ・データベース入門](https://reader035.fdocument.pub/reader035/viewer/2022062901/58f192741a28ab94768b46df/html5/thumbnails/2.jpg)
05/02/2023 2
EWD 3 グローバル・ストレージ・モジュール• ewd-qoper8-cache• cache.node インターフェース・ファイルをラップす
る
• ewd-qoper8-gtm• NodeM モジュールをラップする
• ewd-qoper8 ワーカーが呼び出すように設計• 2つとも this (ewd-qoper8 ワーカー・オブジェ
クト ) を拡張• this.db
• ewd-xpress をインストールすると自動的にインストールされ構成されます
EWD 3 トレーニング・コース #17
![Page 3: EWD 3トレーニングコース#17 Globalストレジ・データベース入門](https://reader035.fdocument.pub/reader035/viewer/2022062901/58f192741a28ab94768b46df/html5/thumbnails/3.jpg)
05/02/2023 3
アクセスの 3 つの方式
• Caché と GT.M の関数• グローバル• Caché オブジェクト/クラス
EWD 3 トレーニング・コース #17
![Page 4: EWD 3トレーニングコース#17 Globalストレジ・データベース入門](https://reader035.fdocument.pub/reader035/viewer/2022062901/58f192741a28ab94768b46df/html5/thumbnails/4.jpg)
05/02/2023 4
関数を呼び出す
• Caché や GT.M アプリケーションを、 EWD 3 で最新式にすることができます• 従来のコードを、 JavaScript 経由で実行できま
す• Caché / GT.M の組み込み言語を用いてグローバ
ル・ストレージを間接的にアクセスできます• JavaScript 開発者が、新しい EWD 3 / ewd-
xpress アプリケーションを構築することを意図あるいは必要としているのではありません
EWD 3 トレーニング・コース #17
![Page 5: EWD 3トレーニングコース#17 Globalストレジ・データベース入門](https://reader035.fdocument.pub/reader035/viewer/2022062901/58f192741a28ab94768b46df/html5/thumbnails/5.jpg)
05/02/2023 5
関数を呼び出すvar result = this.db.function({ function: 'myFunc^theRoutine', argument: [arg1, arg2]});
EWD 3 トレーニング・コース #17
![Page 6: EWD 3トレーニングコース#17 Globalストレジ・データベース入門](https://reader035.fdocument.pub/reader035/viewer/2022062901/58f192741a28ab94768b46df/html5/thumbnails/6.jpg)
05/02/2023 6
関数を呼び出すvar result = this.db.function({ function: 'myFunc^theRoutine', argument: [arg1, arg2]});
これは以下のコードと等価
set result=$$myFunc^theRoutine(arg1,arg2)
引数 (arg1 や arg2) は、スカラー変数で、値を参照渡しでは渡せません
result は文字列 ( しかし、文字列化 (stringified) された JSON かもしれません )
EWD 3 トレーニング・コース #17
![Page 7: EWD 3トレーニングコース#17 Globalストレジ・データベース入門](https://reader035.fdocument.pub/reader035/viewer/2022062901/58f192741a28ab94768b46df/html5/thumbnails/7.jpg)
05/02/2023 7
グローバル・ストレージ・データベースにアクセスする
• 関数についてのさらに詳しい情報は、このコースの後のパートで解説します• ここでは主に、グローバル・ストレージ・
データベースへの直接アクセスについて扱います
EWD 3 トレーニング・コース #17
![Page 8: EWD 3トレーニングコース#17 Globalストレジ・データベース入門](https://reader035.fdocument.pub/reader035/viewer/2022062901/58f192741a28ab94768b46df/html5/thumbnails/8.jpg)
05/02/2023 8
グローバル・ストレージ : 基礎
EWD 3 トレーニング・コース #17
![Page 9: EWD 3トレーニングコース#17 Globalストレジ・データベース入門](https://reader035.fdocument.pub/reader035/viewer/2022062901/58f192741a28ab94768b46df/html5/thumbnails/9.jpg)
05/02/2023 9
グローバル・ストレージ・データベース• 主に2つの実装• InterSystems 社製 Caché
• http://www.intersystems.com/our-products/cache/cache-overview/
• FIS 社製 GT.M• https:/www.fisglobal.com/Solutions/Services/Database-Engine• Linux 向け無料のオープン・ソース版
• マルチ・モデルの NoSQL データベース
EWD 3 トレーニング・コース #17
![Page 10: EWD 3トレーニングコース#17 Globalストレジ・データベース入門](https://reader035.fdocument.pub/reader035/viewer/2022062901/58f192741a28ab94768b46df/html5/thumbnails/10.jpg)
05/02/2023 10
グローバル・ストレージ・データベース• 階層構造
EWD 3 トレーニング・コース #17
![Page 11: EWD 3トレーニングコース#17 Globalストレジ・データベース入門](https://reader035.fdocument.pub/reader035/viewer/2022062901/58f192741a28ab94768b46df/html5/thumbnails/11.jpg)
05/02/2023 11
グローバル・ストレージ・データベース• 階層構造• スキーマなし
EWD 3 トレーニング・コース #17
![Page 12: EWD 3トレーニングコース#17 Globalストレジ・データベース入門](https://reader035.fdocument.pub/reader035/viewer/2022062901/58f192741a28ab94768b46df/html5/thumbnails/12.jpg)
05/02/2023 12
グローバル・ストレージ・データベース• 階層構造• スキーマなし• 散在 (sparse: スパース、まばら )
EWD 3 トレーニング・コース #17
![Page 13: EWD 3トレーニングコース#17 Globalストレジ・データベース入門](https://reader035.fdocument.pub/reader035/viewer/2022062901/58f192741a28ab94768b46df/html5/thumbnails/13.jpg)
05/02/2023 13
グローバル・ストレージ・データベース• 階層構造• スキーマなし• 散在 (sparse: スパース、まばら )• 動的
EWD 3 トレーニング・コース #17
![Page 14: EWD 3トレーニングコース#17 Globalストレジ・データベース入門](https://reader035.fdocument.pub/reader035/viewer/2022062901/58f192741a28ab94768b46df/html5/thumbnails/14.jpg)
05/02/2023 14
グローバル名
EWD 3 トレーニング・コース #17
![Page 15: EWD 3トレーニングコース#17 Globalストレジ・データベース入門](https://reader035.fdocument.pub/reader035/viewer/2022062901/58f192741a28ab94768b46df/html5/thumbnails/15.jpg)
05/02/2023 15
グローバル名
Employee
EWD 3 トレーニング・コース #17
![Page 16: EWD 3トレーニングコース#17 Globalストレジ・データベース入門](https://reader035.fdocument.pub/reader035/viewer/2022062901/58f192741a28ab94768b46df/html5/thumbnails/16.jpg)
05/02/2023 16
グローバル名添字 ( なし , 1 またはそれ以上 )
Employee
EWD 3 トレーニング・コース #17
![Page 17: EWD 3トレーニングコース#17 Globalストレジ・データベース入門](https://reader035.fdocument.pub/reader035/viewer/2022062901/58f192741a28ab94768b46df/html5/thumbnails/17.jpg)
05/02/2023 17
グローバル名添字 ( なし , 1 またはそれ以上 ) – 数値/文字列
Employee(123456, " 名前 ")
EWD 3 トレーニング・コース #17
![Page 18: EWD 3トレーニングコース#17 Globalストレジ・データベース入門](https://reader035.fdocument.pub/reader035/viewer/2022062901/58f192741a28ab94768b46df/html5/thumbnails/18.jpg)
05/02/2023 18
グローバル名添字 ( なし , 1 またはそれ以上 )値 Employee(123456, " 名前 ")
EWD 3 トレーニング・コース #17
![Page 19: EWD 3トレーニングコース#17 Globalストレジ・データベース入門](https://reader035.fdocument.pub/reader035/viewer/2022062901/58f192741a28ab94768b46df/html5/thumbnails/19.jpg)
05/02/2023 19
グローバル名添字 ( なし , 1 またはそれ以上 )値 – 数値/文字列 Employee(123456, " 名前 ") = "Rob Tweed"
EWD 3 トレーニング・コース #17
![Page 20: EWD 3トレーニングコース#17 Globalストレジ・データベース入門](https://reader035.fdocument.pub/reader035/viewer/2022062901/58f192741a28ab94768b46df/html5/thumbnails/20.jpg)
05/02/2023 20
グローバル名添字 ( なし , 1 またはそれ以上 )値 – 数値/文字列 Employee(123456, " 名前 ") = "Rob Tweed"
EWD 3 トレーニング・コース #17
グローバル節
![Page 21: EWD 3トレーニングコース#17 Globalストレジ・データベース入門](https://reader035.fdocument.pub/reader035/viewer/2022062901/58f192741a28ab94768b46df/html5/thumbnails/21.jpg)
05/02/2023 21
グローバル名添字 ( なし , 1 またはそれ以上 )値 – 数値/文字列 Employee(123456, " 名前 ") = "Rob Tweed"
EWD 3 トレーニング・コース #17
グローバル節
= 格納・保存する単位
![Page 22: EWD 3トレーニングコース#17 Globalストレジ・データベース入門](https://reader035.fdocument.pub/reader035/viewer/2022062901/58f192741a28ab94768b46df/html5/thumbnails/22.jpg)
05/02/2023 22
グローバル名添字 ( なし , 1 またはそれ以上 )値 – 数値/文字列 Employee(123456, " 名前 ") = "Rob Tweed"
EWD 3 トレーニング・コース #17
グローバル節
= 格納・保存する単位
各グローバルは、1つ以上の グローバル節 を持つ
![Page 23: EWD 3トレーニングコース#17 Globalストレジ・データベース入門](https://reader035.fdocument.pub/reader035/viewer/2022062901/58f192741a28ab94768b46df/html5/thumbnails/23.jpg)
05/02/2023 23
グローバル名添字 ( なし , 1 またはそれ以上 )値 – 数値/文字列 Employee(123456, " 名前 ") = "Rob Tweed"
EWD 3 トレーニング・コース #17
グローバル節
= 格納・保存する単位
各グローバルは、1つ以上の グローバル節 を持つことができる1 つの MUMPS データベースは、1つ以上の グローバル を持つことができる
![Page 24: EWD 3トレーニングコース#17 Globalストレジ・データベース入門](https://reader035.fdocument.pub/reader035/viewer/2022062901/58f192741a28ab94768b46df/html5/thumbnails/24.jpg)
05/02/2023 24
グローバル名添字 ( なし , 1 またはそれ以上 )値動的 – 予め宣言したりスキーマを用意する必要なし
EWD 3 トレーニング・コース #17
![Page 25: EWD 3トレーニングコース#17 Globalストレジ・データベース入門](https://reader035.fdocument.pub/reader035/viewer/2022062901/58f192741a28ab94768b46df/html5/thumbnails/25.jpg)
05/02/2023 25
グローバル名添字 ( なし , 1 またはそれ以上 )値動的 – 予め宣言したりスキーマを用意する必要なし 生成 : Employee(123456," 名前 ") = "Rob Tweed"
EWD 3 トレーニング・コース #17
![Page 26: EWD 3トレーニングコース#17 Globalストレジ・データベース入門](https://reader035.fdocument.pub/reader035/viewer/2022062901/58f192741a28ab94768b46df/html5/thumbnails/26.jpg)
05/02/2023 26
グローバル名添字 ( なし , 1 またはそれ以上 )値動的 – 予め宣言したりスキーマを用意する必要なし 生成 : Employee(123456," 名前 ") = "Rob Tweed"
削除 : Employee(123456," 名前 ")
EWD 3 トレーニング・コース #17
![Page 27: EWD 3トレーニングコース#17 Globalストレジ・データベース入門](https://reader035.fdocument.pub/reader035/viewer/2022062901/58f192741a28ab94768b46df/html5/thumbnails/27.jpg)
05/02/2023 27
階層構造
EWD 3 トレーニング・コース #17
![Page 28: EWD 3トレーニングコース#17 Globalストレジ・データベース入門](https://reader035.fdocument.pub/reader035/viewer/2022062901/58f192741a28ab94768b46df/html5/thumbnails/28.jpg)
05/02/2023 28
階層構造
myGlobal("a")=123
EWD 3 トレーニング・コース #17
![Page 29: EWD 3トレーニングコース#17 Globalストレジ・データベース入門](https://reader035.fdocument.pub/reader035/viewer/2022062901/58f192741a28ab94768b46df/html5/thumbnails/29.jpg)
05/02/2023 29
階層構造myGlobal("a")=123
EWD 3 トレーニング・コース #17
myGlobal "a" 123
![Page 30: EWD 3トレーニングコース#17 Globalストレジ・データベース入門](https://reader035.fdocument.pub/reader035/viewer/2022062901/58f192741a28ab94768b46df/html5/thumbnails/30.jpg)
05/02/2023 30
階層構造myGlobal("a")=123myGlobal("b","c1")="foo"
EWD 3 トレーニング・コース #17
myGlobal "a" 123
![Page 31: EWD 3トレーニングコース#17 Globalストレジ・データベース入門](https://reader035.fdocument.pub/reader035/viewer/2022062901/58f192741a28ab94768b46df/html5/thumbnails/31.jpg)
05/02/2023 31
階層構造myGlobal("a")=123myGlobal("b","c1")="foo"
EWD 3 トレーニング・コース #17
myGlobal
"a" 123"b" "c1" "foo"
![Page 32: EWD 3トレーニングコース#17 Globalストレジ・データベース入門](https://reader035.fdocument.pub/reader035/viewer/2022062901/58f192741a28ab94768b46df/html5/thumbnails/32.jpg)
05/02/2023 32
階層構造myGlobal("a")=123myGlobal("b","c1")="foo"myGlobal("b","c2")="foo2"
EWD 3 トレーニング・コース #17
myGlobal
"a" 123"b"
"c1" "foo"
"c2" "foo2"
![Page 33: EWD 3トレーニングコース#17 Globalストレジ・データベース入門](https://reader035.fdocument.pub/reader035/viewer/2022062901/58f192741a28ab94768b46df/html5/thumbnails/33.jpg)
05/02/2023 33
階層構造myGlobal("a")=123myGlobal("b","c1")="foo"myGlobal("b","c2")="foo2"myGlobal("d","e1","f1")="bar1"myGlobal("d","e1","f2")="bar2"myGlobal("d","e2","f1")="bar1"myGlobal("d","e2","f2")="bar2"myGlobal("d","e2","f3")="bar3"
EWD 3 トレーニング・コース #17
myGlobal"a" 123
"b"
"c1" "foo"
"c2" "foo2"
"d"
"e1"
"e2"
"f1" "bar1"
"f2" "bar2"
"f1" "bar1"
"f2" "bar2"
"f3" "bar3"
![Page 34: EWD 3トレーニングコース#17 Globalストレジ・データベース入門](https://reader035.fdocument.pub/reader035/viewer/2022062901/58f192741a28ab94768b46df/html5/thumbnails/34.jpg)
05/02/2023 34
階層構造
削除
myGlobal("b","c1")
EWD 3 トレーニング・コース #17
myGlobal"a" 123
"b"
"c1" "foo"
"c2" "foo2"
"d"
"e1"
"e2"
"f1" "bar1"
"f2" "bar2"
"f1" "bar1"
"f2" "bar2"
"f3" "bar3"
![Page 35: EWD 3トレーニングコース#17 Globalストレジ・データベース入門](https://reader035.fdocument.pub/reader035/viewer/2022062901/58f192741a28ab94768b46df/html5/thumbnails/35.jpg)
05/02/2023 35
階層構造
削除
myGlobal("b")
枝分かれ構造の下のノードもすべてを含む部分が削除されるので注意 !!
EWD 3 トレーニング・コース #17
myGlobal"a" 123
"b"
"c1" "foo"
"c2" "foo2"
"d"
"e1"
"e2"
"f1" "bar1"
"f2" "bar2"
"f1" "bar1"
"f2" "bar2"
"f3" "bar3"