User manual - DT-900 高速ファイルサーチライブラリver.1.00(2006年9月29日)
Hash Library User’s Manual 2
II.
II.II.
II.
ファイル構造
ファイル構造ファイル構造
ファイル構造
INDEX FILE (*.IDX) DATA FILE
INDEX FILE (*.IDX) DATA FILEINDEX FILE (*.IDX) DATA FILE
INDEX FILE (*.IDX) DATA FILE
l
W CR,LF KEY
KEYKEY
KEY
DATA
DATADATA
DATA
V :
: :
: abcdefgh data
CR, LF
L :
::
: Header
Header Header
Header
: : :
l :
::
:
: : :
N :
::
: V
V V
V
: : :
:
::
:
:
::
:
: : :
:
::
:
:
::
:
W
W W
W
: : :
:
::
:
:
::
:
: : :
8 2 L
8 2 L 8 2 L
8 2 L
Bytes
Bytes Bytes
Bytes
A.
A.A.
A.
用語説明
用語説明用語説明
用語説明
1. l : キーフィールドの長さ (Bytes).
2. L : データレコード長 (KEY+DATA)
3. V : 総データレコード数
4. W : 総インデックス数
インデックスの衝突を避けるために、最低でも
W≧1.2×V が必要です。
WをVの2~3倍程度確保すると、より効率の良いファイルが構
築できます。
5. N : 使用レコード数
B.
B.B.
B.
HASH
HASHHASH
HASH関数
関数関数
関数
キーデータからインデックスを求めるために、HASH関数を使用します。
HASH関数はライブラリ内で自動的に実行されるため、ユーザが意識する必要はありませ
ん。
仮にキーが 'abcdefgh' の場合、HASH関数は以下のようになります。
(内部的に、キーは ‘abcdefgh00000’ のように、自動桁数補正されます)
f(x) = MOD { [square(a*b*c*d) + square(b*c*d*e) + square(c*d*e*f)
+ square(d*e*f*g) + square(e*f*g*h) + square(f*g*h*0)
+ square(g*h*0*0) + square(h*0*0*0) ] / (W - 1) }
C.
C.C.
C.
注意事項
注意事項注意事項
注意事項
1. データファイルは、上記フォーマットに従い、ユーザ側で作成しなければなりません。
2. データレコードは、データファイルの先頭から順に格納されていなければなりません。
3. キーは、ユニークでなければなりません。
4. インデックスファイルおよびデータファイルのOPEN/CLOSEは、ユーザ側で行ってくだ
さい。
5. DT900のドライブ(特にBドライブ)は、デバイスの特性上、書き込み速度が遅いため
HASHREAD関数以外(特にHASHASSIGN関数)は、PC上で実行することを強く推奨しま
す。