ヘッダーをスキップ
Oracle TimesTen In-Memory Databaseオペレーション・ガイド
リリース7.0
E05167-03
  目次へ
目次
索引へ
索引

前へ
前へ
次へ
次へ
 

表の理解

TimesTenの表は、共通の書式または構造を持つ行で構成されています。この書式は、表の列で定義します。各列には、次の値が設定されています。

列は、NOT NULLと明示的に宣言しないかぎり、NULL値可能になります。表の列がNULL値可能の場合は、その列にNULL値を保存できます。NULL値可能でない場合は、表のその列の各行にNULL以外の値を設定する必要があります。

TimesTen列の書式は変更できません。列の追加または削除はできますが、列の定義は変更できません。列の追加または削除を実行するには、ALTER TABLE文を使用します。列の定義を変更する場合は、まずその表を破棄してから、新しい定義で表を再作成する必要があります。

この項の後半の内容は次のとおりです。

インライン列およびアウトライン列

表の行のインメモリー・レイアウトは、行への高速アクセスを可能にし、無駄な領域が最小限になるように設計されています。TimesTenでは、表のVARBINARY、NVARCHARおよびVARCHARの各列がインラインまたは非インラインのいずれかに指定されます。

行のインライン部分およびアウトオブライン部分の最大サイズについては、「表サイズの見積り」を参照してください。

デフォルトの列値

表の作成時に、デフォルトの列値を指定できます。指定するデフォルト値は、列のデータ型と互換性がある必要があります。列には、次のいずれかのデフォルト値を指定できます。

CREATE TABLE文のDEFAULT句を使用し、デフォルト値を指定しなかった場合、デフォルト値はNULLになります。『Oracle TimesTen In-Memory Database SQLリファレンス・ガイド』の列定義に関する説明を参照してください。

表名

TimesTenの表は、所有者名および表名によって一意に識別されます。すべての表に所有者が存在します。デフォルトでは、表を作成したユーザーが所有者になります。TimesTenによって作成される表(システム表など)の所有者名はSYSですが、レプリケーション時に作成される場合はTTREPになります。

表を一意に参照するには、MARY.PAYROLLなどのように表の所有者名と表名をピリオド「.」で区切って指定します。所有者を指定しなかった場合、TimesTenは、コール元のユーザー名の下にある表を検索し、次にユーザー名SYSの下にある表を検索します。

名前は、数字ではなく文字で始まる英数字の値です。名前には、アンダースコアを使用できます。表名の最大長は30文字で、所有者名の最大長も30文字です。TimesTenでは、すべての表名、列名および所有者名が大文字で表示されます。詳細は、『Oracle TimesTen In-Memory Database SQLリファレンス・ガイド』の名前に関する説明を参照してください。

表へのアクセス

アプリケーションは、SQL文を介して表にアクセスします。TimesTenの問合せオプティマイザは、表に高速にアクセスする方法を自動的に選択します。アクセスの高速化には、既存の索引が使用されます。また、必要に応じて一時索引が作成されます。一時索引の自動作成および自動破棄を行うとパフォーマンスのオーバーヘッドが発生するため、パフォーマンスを向上させるには、頻繁に検索する列に対して、アプリケーションで索引を明示的に作成する必要があります。詳細は、「文のチューニングと索引の使用」を参照してください。

主キー、外部キーおよび一意索引

TimesTen表の作成者は、1つ以上の列を主キーに指定して、それらの列で重複値が拒否されるように設定できます。主キーの列は、NULL値可能にできません。1つの表に設定可能な主キーは1つのみです。TimesTenは、主キーに対してハッシュ索引を自動的に作成して、主キーに一意性を適用し、主キーを介した高速アクセスを保証します。索引の詳細は、「索引の理解」を参照してください。行を挿入すると、Tツリー索引をハッシュ索引に変更する場合を除き、主キー列を変更できなくなります。

1つの表に設定可能な主キーは1つのみですが、一意索引を使用すると、一意性に関するプロパティを表に追加できます(『Oracle TimesTen In-Memory Database SQLリファレンス・ガイド』のCREATE INDEXに関する説明を参照)。


注意: 主キーの列はNULL値可能にできませんが、一意索引をNULL値可能な列に作成することはできます。

また、表には、別の表の行に対応する行を持つ1つ以上の外部キーを設定できます。外部キーは、他方の表の主キーまたは一意に索引付けされた列に関連付けられています。また、参照列に対してTツリー索引を使用します(『Oracle TimesTen In-Memory Database SQLリファレンス・ガイド』のCREATE TABLEに関する説明を参照)。

システム表

TimesTenのデータ・ストアには、アプリケーションで作成された表のみでなく、システム表も含まれています。システム表には、TimesTenメタデータ(データ・ストア内のすべての表および索引の定義など)およびその他の情報(オプティマイザ計画など)が保存されています。アプリケーションでは、ユーザー表の場合と同様にシステム表を問い合せることができますが、システム表を更新することはできません。TimesTenのシステム表については、『Oracle TimesTen In-Memory Database SQLリファレンス・ガイド』のシステム表およびレプリケーション表に関する説明を参照してください。


注意: TimesTenシステム表の書式は、リリースによって異なる場合があります。32ビット版と64ビット版のTimesTenでは、この書式が異なります。