fc2ブログ

4本値と出来高をフィールドに持つテーブルが良くない理由

ここからは、株価データを保存するデータベース設計の「背景」について、少しお話しします。最終的には、筆者は読者の皆さんに、拡張性の高いテーブル設計方法を提示するのですが、このテーブルを読者自身の手で拡張するときに困らないようにするための説明です。少し退屈かもしれませんが、お付き合いください。
スポンサーリンク
さて、株価をデータベースに保存する際、テーブル設計はどのようにすれば良いでしょうか。真っ先に思いつく方法は、次のようなフィールドを持つ株価テーブルを作ることです。
  • 日時
  • 銘柄コード
  • 市場(東証1部、大証2部、など)
  • 始値
  • 高値
  • 安値
  • 終値
  • 出来高
もちろん、間違いではありません。しかし、拡張性の面から考えると、対応が難しくなってきます。例えば、信用残の売り/買いのデータを新たに保存する場合は、どうするでしょうか。さらに加えて、ティックデータ(価格と出来高)の保存も必要になった場合はどうでしょうか。案としては、2つ考えられます。
  1. 上の株価テーブルを使って、始値のフィールドに売り残(あるいはティックの価格)、高値のフィールドに買い残(あるいはティックの出来高)を格納する、などと運用ルールを決める
  2. 株価テーブルとは別に、信用残テーブル、ティックデータテーブルを作成する
1.の場合は、新たに保存したいデータが増えるたびに、運用ルールが増え、混乱を招きます。2.の場合は、似たようなデータにも関わらず、新しいテーブルがどんどんできて、管理できなくなるでしょう。さらに、まだ問題はあります。上のようなフィールド構成では、日足データと分足データの区別ができないのです。
では、どうすれば良いのでしょうか。実はこれらの問題点を一挙に解決し、拡張性が高く、管理もしやすい、テーブル設計の方法があるのです。次にこのことについて詳しく説明します。
スポンサーリンク
<<バルサラの破産確率の計算 | ホーム | より汎用的な時系列データを扱うためのテーブル>>
コメント(0)
コメントの投稿
トラックバック(0)