DBFlute用語集 N

"N" で始まる用語に関するページです。

{n : 1} 型リレーション

基点テーブルのレコード一つに対し、必ず一つの関連テーブルのレコードが存在するようなリレーションのことを示します。要は、"相手が絶対にいるリレーション" と言えます。業務的な論理構造ではなく、実装上意識すべき物理構造を示した表現です。

実装上の特徴としては、基点テーブルのFKカラムが NotNull、もしくは、カージナリティが "1 : 1" (相手が必ず存在)の one-to-one (よく "1:必ず1" と呼んでいます) であることです。

例えば、購入の会員へのリレーション、会員の会員ステータスへのリレーションが該当します。 また、基点の "n" には 1 も含まれると捉え、会員の会員セキュリティ情報へのリレーションのような(相手が必ずいる) one-to-one も該当します。

また、静的な構造だけでなく、SQL上の一時的なビューにおいてもこの表現を利用します。 例えば、会員の会員ステータスは {n : 1} 型リレーションですが、OnClause や InlineView で結合先だけを絞り込む条件を指定した場合は、そのSQL上ではそのリレーションは(一時的な) {n : 0..1} 型リレーションと表現することがあります。

会話上では、えぬわんがたりれーしょん もしくは えぬわんりれーしょん と表現します。

{n : 0..1} 型リレーション

基点テーブルのレコード一つに対し、関連テーブルのレコードが存在しない可能性のあるリレーションのことを示します。要は、"相手がいるとは限らないリレーション" と言えます。業務的な論理構造ではなく、実装上意識すべき物理構造を示した表現です。

実装上の特徴としては、基点テーブルのFKカラムが Nullable、もしくは、カージナリティが "1 : 0..1" の one-to-one (よく "1:いないかもしれない1" と呼んでいます) であることです。

例えば、会員退会情報の退会理由へのリレーションが該当します。 また、基点の "n" には 1 も含まれると捉え、会員の会員退会情報へのリレーションのような(相手がいないかもしれない) one-to-one も該当します。

また、静的な構造だけでなく、SQL上の一時的なビューにおいてもこの表現を利用します。 例えば、会員退会情報の退会理由は {n : 0...1} 型リレーションですが、退会理由コードに IsNotNull の条件を指定した場合や、退会理由のカラムで絞り込み条件(IsNullは除く)を指定した場合は、そのSQL上ではそのリレーションは(一時的な) {n : 1} 型リレーションと表現することがあります。

会話上では、えぬぜろわんがたりれーしょん もしくは えぬぜろわんりれーしょん と表現します。

NotParamResult(Set) for プロシージャ

プロシージャにおける、(OUT)パラメータ経由での取得ではない ResultSet (結果セット)のこと(概念)を、DBFluteではこのように呼びます。 主に、MySQL、DB2、そして、SQLServerがサポートしています。複数の ResultSet を戻せるのが特徴です。 JDBCでは、CallableStatement.getResultSet() を利用して取得します(二つ目以降の ResultSet は getMoreResult() を呼び出してからもう一度 getResultSet())。

e.g. NotParamResultを利用して複数の ResultSet を戻すプロシージャ {MySQL} @Procedure
create procedure SP_RETURN_RESULT_SET_MORE()
begin
  select * from MEMBER;
  select * from MEMBER_STATUS;
end;