Bootstrap

データモデルについて

Sharperlightで使用するデータモデルは、Sharperlightの重要な機能になります。

データモデルは、Sharperlightからデータベースにアクセスする際に使用され、テーブル・フィールドの定義から、データベース設計に依存しない、ビューやクエリ、ストアドプロシージャ、カスタムフィールドを定義する事ができます。

データモデルは、システムのデータベース定義をサンドボックス化(仮想定義化)し、ユーザーのデータベースアクセスを補助し、安全なデータ取得を保証します。

データモデルは製品化されたプロダクトデータモデルと、ユーザーが独自に作成するカスタムデータモデルに分かれます。プロダクトデータモデルはそのデータモデルを継承したデータモデルを作成する事により、ユーザー独自のデータモデルとすることが可能です。

カスタムフィールド

データベースを設計する際に、通常であれば日付項目はDate型で定義します。しかし、アプリケーションで年月のみの入力項目の場合、疑似的にString型を使用してデータベースに保存する場合が有ります。
カスタムフィールドは、疑似的に保存されている情報を本来の使い方に近くする為に、独自のフィールドを追加し、SQL関数などを使った定義をする事が可能です。

基本関数の補完機能

データベース プロダクト によって、日付関数や文字列関数などに違いが有ります。SQLを記述する際は、各データベース プロダクト に合わせた関数記述を行う必要があり、利用者に専門的なスキルを要求します。
データモデルでは、基本的な関数の違いを各データベースプロダクト毎に定義しており、ユーザーにその違いを要求しません。

項目値の補完

データベースの項目には、アプリケーションに依存した区分などのマスタ化されない情報が含まれています。
通常SQLを使用したデータ取得の際は、その情報の意味をデータ取得時にに判断する必要が有ります。
データモデルでは、データ取得時に項目値を疑似的にリスト化する事が可能で、ユーザーのデータベース定義依存を軽減します。

Joinテーブル

ユーザーはデータベースからデータを取得する際に、関連するテーブルを接ぎ合わせる為にJoinを使用します。
Joinを使用する際はテーブル間の関連性に合わせた定義をする必要が有ります。また、どのテーブルがどのフィールドを関連するのかはデータベース設計に関連します。
データモデルでは、このような各テーブル間のデータを関連付けするJoinを埋め込む事が可能です。定義したJoinはクエリビルダ使用の際にユーザーはデータの関連性を把握でき、適切なSQLを実行する事ができます。

データフィルター

データモデルはログインIDを取得する事により、実行SQLに選択条件を記述する事ができます。この機能によりログインユーザーに関連するデータのみを検索可能にします。

強力なWriteback(書き込みSQL)

他社のBIツールはデータ取得に対し、便利な機能を発揮します。Shaperlightでは、他社のBIツールど同様にデータ取得機能を持ちつつ、データベースへの書き込みの実現を可能にします。
但し、ユーザーの直接SQLを実行する機能は無く、データモデル内に記述したSQLに従って実行する為に、ユーザーはデータベース仕様を意識することなく、データ書き込みを実行する事が可能です。

ストアドプロシージャの実行

システム管理者はメンテナンスの為に直接SQLを実行する事が有ります。このようなSQLは記述を間違った場合、大きな事故になりかねません。
データモデルでは、内部にバッチ処理を記述し簡単に実行する事が可能です。また、その処理を「ソリューション」を使ったSharperlightのモジュールより起動する事ができ、システム管理者の不安を軽減する事できます。

各種機能やデータの配布とインストール

データモデルにパブリッシャー、スケジューラ、ダッシュボード、付随するデータ、ドキュメントを組込み、データモデルを使用する上で基本になる機能の配布とインストールを可能にします。