Gemstone

GemStone/S（ジェムストーン/エス）は、GemTalk Systemsより販売されているオブジェクトデータベース管理システム (ODBMS) 兼Smalltalk環境。

商用製品ではあるものの2018年11月現在無償版も配布されている。

概要 
Smalltalk環境はイメージファイルとして実行状態を永続化できる機能を備えるが、そのSmalltalk環境に複数使用者による同時使用の管理や手続きの取消機能 (UnDo)、更新操作と連動した永続化、索引などを追加しデータベース管理システムとしたものがGemStone/Sである。GemStone/Sはデータベース管理システムとしての機能以外にアプリケーションサーバとしての機能も備えており、Seasideのようなプログラムを動作させることができる。データベース管理システムとして運用することを前提としておりSmalltalk環境としては珍しくGUIをもたない。管理はGemBuilderといった別途開発ツールを使うようになっている。

問い合わせと更新 
GemStone/SはSmalltalk-80の上位互換であり、データベース管理システムとしての固有の機能を使わなければSmalltalk-80環境として扱うことができる。また、記憶領域 (RDBMSではテーブル) はSmalltalk環境で集合要素を扱うのに一般的なCollectionの派生クラスで生成したオブジェクトであり、Smalltalkの使用者にとっては馴染み深いOrderedCollectionやDictionaryといったクラスやそこから派生させたクラスを使うことができる。データベースの参照及び更新といった問い合わせはSmalltalk環境におけるCollection操作と基本的に同じであり、Smalltalkの使用者は排他と更新の確定およびデータベース管理システムとの接続以外は殆ど意識することなく透過的に処理を記述することができる。

接続するための開発ツールが提供されている環境と言語 
GemStone/Sは他の環境や言語から接続および開発するためにGemTalkはGemBuilderとGemConnectいう開発ツールを提供している。開発ツールを提供している環境には下記のものがある。GemStone/SをSmalltalk環境以外の言語で操作する場合は、型の関連付けが必要となるが下記のうちSmalltalk環境と記述しているものは関連付けなしでオブジェクトを問い合わせることができる（但し性能の面から関連付けの省略多用は推奨されない）。

 VisualWorks（Smalltalk環境）
 VA Smalltalk（Smalltalk環境）
 C++
 Java
 Oracle Releational Database（GemStone/Sからの参照先となる）

出典

関連項目 
 GNU Smalltalk - GUIを持たないSmlltalk環境

オブジェクト指向データベース管理システム