メインコンテンツまでスキップ
バージョン: v20 R4 BETA

用語集

主なコンセプトの概要

アクション

リソース上 に対しておこなえるアクションを指します。 利用可能なアクションは、create (作成)、read (読み取り)、update (更新)、drop (削除)、execute (実行)、promote (昇格)、および describe (記述) です。

属性

属性とは、リレーショナルデータベース内における最小の保存セルです (リレーション属性 も参照してください)。 データクラス属性とエンティティ属性を混同しないようにしてください:

  • データクラスオブジェクトにおける各プロパティは、対応するテーブルの対応するフィールドへとマップするデータクラス属性です (同じ名前と型)。
  • エンティティオブジェクトにおけるエンティティ属性は、対応するデータストア属性の値を格納するプロパティです。

    属性プロパティ は似た概念です。 "属性" はデータを保存するデータクラスプロパティを指定するのに使われるのに対し、"プロパティ"はより一般的な概念でオブジェクト内で保存されるデータを定義します。

属性パス

属性パスとは、あるデータクラスあるいはエンティティ内の属性へのパスです。 プロパティパス も参照してください。

クラスコード

ユーザークラス関数のコード。

計算属性

計算属性は、実際には情報を保存しません。 代わりに、同じエンティティや他のエンティティ、属性、関数などから得られる値に基づいて、その属性値を決定します。 計算属性が参照されると、それを定義する "計算" が評価され、値が決定されます。 計算属性の値を算出するにあたっては、ユーザー定義のコードによって、その評価中に評価の仕方を決定することも可能です。

データモデルクラス

データモデルオブジェクトに関連して提供される拡張クラス。

データモデルオブジェクト

ORDA を通して提供されているデータベースオブジェクト (データストア、データクラス、エンティティ、エンティティセレクション)。

データモデル関数

ORDA データモデルクラスの関数。

データクラス

データクラスとは、データを記述するオブジェクトモデルです。 データストアによって提供されるデータベースのテーブルは、データクラスを通して管理されます。 データストアから提供されたデータベースの各テーブルは、対応する同名のデータクラスを持ちます。 テーブルの各フィールドは、データクラスの属性です。

データクラスは単一のデータストアにリレートされています。

DataClass クラス

カスタム関数を追加することのできる、特定のデータクラスオブジェクト用のクラス。

データストア

データストアとは、ORDA によって提供されるインターフェースオブジェクトです。データストアはストラクチャーを参照し、データへのアクセスを提供します。 ds コマンドによって返されるメインデータベースは、データストア (メインデータストア) として利用可能です。

データストアは以下のものを提供します:

  • 4Dデータベースへの接続
  • データベースを扱うためのデータクラスのセット

利用できるデータベースは、スタンダロンまたはクライアント/サーバーで開いているメインの 4D データベース (メインデータストア)、および REST リソースとして公開された 4D Server データベースです (リモートデータストア)。

データストアは単一のデータベースのみを参照しますが、 複数のデータベースをアクセスするために複数のデータストアを開くことも可能です。

DataStore クラス

カスタム関数を追加することのできる、データストアオブジェクト用のクラス。

DataStoreImplementation

4D クラスストア内の DataStore クラスの内部的な名称。

ディープコピー

ディープコピーは、あるオブジェクトとそこに格納されているすべての参照を複製します。 ディープコピーのあと、コピーされたコレクションには、すべてのオリジナル要素の複製 (つまり新規参照) が格納されています。 シャロウコピー も合わせて参照してください。

ds

ds は、データストア のオブジェクト参照を返す 4Dランゲージコマンドです。 この参照は 4D のメインデータベースが提供するデータストアに合致します。

エンティティ

エンティティとは、データクラスモデルに対応するオブジェクトです。 エンンティティには、データクラスと同じ属性が格納されます。

エンティティは、データクラスのインスタンスとも解釈可能なオブジェクトです。 しかしながら、エンティティはリレートされたデータも格納しています。 エンティティの目的はデータの管理 (作成、更新、削除) です。

詳細な情報については、エンティティ を参照してください。

エンティティセレクション

エンティティセレクションは、一つのオブジェクトです。 データストアをクエリすると、エンティティセレクションが返されます。 エンティティセレクションとは、同じデータクラスに所属するエンティティへの参照のセットのことです。

エンティティセレクションは以下を格納します:

  • 0 から X までのエンティティ参照のセット
  • length プロパティ(常に存在します)
  • queryPlan および queryPath プロパティ (クエリ時に要求した場合に存在します)

エンティティセレクションは空であることもあります。

汎用クラス

エンティティやデータクラスなどの ORDA オブジェクト用のビルトインクラス。 汎用クラスのプロパティや関数は、ユーザー拡張クラス (例: EmployeeEntity) において自動で利用可能です。

レイジーローディング

エンティティは参照として管理されているため、データは必要なときにのみロードされます。つまりコードや、インターフェースウィジェットを通してアクセスしたときなどです。 この最適化原理は、レイジーローディングと呼ばれています。

メインデータストア

開かれている 4Dデータベース (シングルユーザーまたはクライアント/サーバー) に対応するデータストアオブジェクト。 メインデータストアは ds コマンドによって返されます。

メソッド

データストア、データクラス、エンティティセレクション、エンティティなどの ORDA オブジェクトは、オブジェクトのクラスを定義します。 これらのクラスには、オブジェクトを直接操作するための専用のメソッドが提供されています。 これらのメソッドはメンバー関数とも呼ばれます。 このメソッドを使用するには、オブジェクトのインスタンスに対して呼び出します。

たとえば、query() メソッドはデータクラスのメンバー関数です。 $myClass 変数にデータクラスオブジェクトを格納している場合、次のように書くことができます:

$myClass.query("name = smith")

ミックスデータ型

このドキュメントでは、データクラス属性に保存可能な値の様々な型を指定するために、"ミックス" データ型が使用されます。 :

  • 数値
  • テキスト
  • null
  • ブール
  • 日付
  • オブジェクト
  • コレクション
  • ピクチャー (*)

(*) ピクチャー型は entitySelection.max( ) などの統計型メソッドではサポートされていません。

オプティミスティック・ロック

"オプティミスティック・ロック" モードでは、エンティティは更新されるまでは明示的にはロックされていません。 各エンティティは、そのエンティティがディスクに保存されるたびに自動でインクリメントされる内部スタンプを持っています。 entity.save( ) および entity.drop( ) メソッドは(メモリ内に) ロードされたスタンプと、ディスク上のエンティティのスタンプが合致しない場合、あるいはエンティティがドロップされている場合にはエラーを返します。 オプティミスティック・ロックは ORDA 実装内でのみ使用可能です。 ペシミスティック・ロック も合わせて参照してください。

ペシミスティック・ロック

"ペシミスティック・ロック" とは、entity.lock( ) メソッドにより、エンティティがアクセスされる前にそれをロックすることを意味します。 ロックが解除されるまで、他のプロセスからはそのエンティティを更新することも、ドロップすることもできません。 クラシック 4Dランゲージにおいてはペシミスティック・ロックのみが利用可能です。 オプティミスティック・ロック も合わせて参照してください。

権限

リソース に対する実行が許可された アクション の範囲のことです。 ビジネスロジックに応じて、複数の権限を ロール としてまとめることができます。

プロパティ

属性 を参照してください。

属性とプロパティは似た概念です。 "属性" はデータを保存するデータクラスプロパティを指定するのに使われるのに対し、"プロパティ"はより一般的な概念でオブジェクト内で保存されるデータを定義します。

プロパティパス

プロパティパスとは、あるオブジェクトのプロパティへのパスです。 プロパティが複数の階層にネストされている場合、各階層はドット (".") によって区切られます。

通常クラス

ORDA オブジェクトとは関わりのないユーザークラス。

リレートされたデータクラス

リレートされたデータクラスとは、リレーション属性によってリンクされたデータクラスのことを指します。

リレーション属性

リレーション属性は、データクラス間のリレーション (1対N および N対1) を概念化するものです。

  • N対1リレーション (データクラスA はデータクラスB のオカレンスを参照します): リレーション属性はデータクラスA 内で利用可能で、データクラスB の一つのインスタンスを参照します。
  • 1対Nリレーション (データクラスB のオカレンスがデータクラスA の複数のオカレンスを参照します): リレーション属性はデータクラスB 内で利用可能で、データクラスA の複数のインスタンスを参照します。

データクラスは再帰的なリレーション属性を持つことができます。

エンティティ内では、リレーション属性の値はエンティティあるいはエンティティセレクションとなります。

リレートエンティティ

リレートエンティティはデータクラス内のリレーション属性のインスタンスとしてみることができます。

エンティティセレクションは、対応するデータクラス内で定義されたリレーション属性に応じて、複数のリレートエンティティを参照することもあります。

リモートデータストア

4D または (HTTP経由で利用可能な) 4D Server 上で開かれている、REST リソースとして公開された 4Dデータベース。 このデータベースは他のマシンにおいてデータストアとしてローカルに参照することができ、その際には割り当てられた locaID で識別されます。 リモートデータストアは ORDA の概念 (データストア、データクラス、エンティティセレクション等) を使って利用できます。 利用にあたってはライセンスが消費されます。

リソース

権限 における アクション の許可・拒否の対象となる ORDA 要素。 利用可能なリソースは、データストア、データクラス、データクラス属性、ORDAデータモデル関数のいずれかです。

ロール

ロールとは、管理者が使用することを目的とした、公開された 権限 のことです。 ロールは 1つ以上の権限を持つことができます。

セッション

4Dアプリケーションがリモートデータストアに接続すると、4D Server (HTTP) 上では セッション が作成されます。 セッションcookie が生成され、ローカルデータストアID と紐づけられます。

新規セッションが開始されるごとに、ライセンスが消費されます。 セッションが閉じられると、ライセンスは解放されます。

アクティビティのないセッションはタイムアウト後に自動的に終了します。 デフォルトのタイムアウトは 48時間で、任意に設定することができます (最少時間は 60分)。

シャロウコピー

シャロウコピーは、要素の構造のみを複製し、同じ内部参照を保持します。 シャロウコピーのあと、二つのコレクションに格納された個々の要素は同じものが共有されています。 ディープコピー も合わせて参照してください。

スタンプ

"オプティミステック" ロックテクノロジーにおいて使用されるものです。 すべてのエンティティにはスタンプと呼ばれる内部カウンターがあり、エンティティが保存されるたびにインクリメントされていきます。 エンティティ内のスタンプとディスク上に保存されているエンティティのスタンプを自動的に比較することで、4D は同じエンティティへの書き込みの衝突を防いでいます。

ストレージ属性

ストレージ属性 (スカラー属性と呼ばれることも) は、データストアクラスの属性の中で最も基本的なタイプであり、リレーショナルデータベースのフィールドに最も直接的に対応するものです。 ストレージ属性は、データクラスのエンティティ毎に 1つの値を持ちます。