競馬データベースプログラミング

JRA-VAN Data Lab.対応ソフトを作るにはデータベースが必要

 競馬ソフトを作るには、出馬表やオッズなど、競馬番組に関するデータが必要になります。JRAのウェブサイトや競馬新聞、レーシングプログラムを見れば、その週に開催されている競馬番組についての情報を得ることが出来ます。
 しかし、これらはパソコンソフトで処理するには不向きな情報です。パソコン向けのデータソースとして、JRA-VAN Data Lab.競馬道 OnLineがあります。当サイトでは主にJRA-VAN Data Lab.を対象にしています。

JRA-VAN Data Lab.とは?

 JRA-VAN Data Lab.は、JRA-VANが提供している月額制競馬データサービスです。JV-Linkというソフトを通じて、JRA-VANのサーバーからデータを取得します。競馬ソフトは取得したデータを蓄積して、利用します。Data Lab.のデータは大きく分けて3種類あります。

(1)蓄積系データ

 スタンダードな利用法です。すべてのData Lab.データを利用するのであれば、蓄積系データを意識して作る必要があります。蓄積系データとは、JRA-VANが保有する1986年からの競馬データをダウンロードし、それをデータベースやファイルの形式で蓄積します。
  毎週のデータ更新は以前にダウンロードしたデータの続きとしてダウンロードされるため、データに抜けがあると役に立たなくなります。
  蓄積系ソフトは、一番はじめに過去データをすべてダウンロードするセットアップを行わなければなりません

(2)非蓄積系データ

 1週間単位で必要なデータをダウンロードする形式です。競馬をやる日だけ競馬ソフトを立ち上げればよいのでお手軽ですが、反面提供されないデータも存在します。
  また、その週に出走する全馬の過去成績もダウンロードされるため、データのダウンロードや登録処理に時間が掛かります。
  DIY競馬ではこの方式について取り扱いません。

(3)速報系データ

 速報系データとは、競馬開催日に提供されるデータのことで、馬体重やオッズ、速報成績がこれにあたります。また、出走取り消し、馬場状態の変更なども速報系データに含まれます。
  比較的扱いが簡単なデータでもあります。

Data Lab.の抱える問題

 Data Lab.サービスがはじまる前は、データファイル配信制でした(第3期データ)。第3期データの頃のJRA-VANには、その週出走する馬の近5走の戦績データが含まれていました。これを利用すれば簡単に競馬新聞ぐらいは作れましたが、Data Lab.により状況は一転します。Data Lab.はJV-Linkの扱いにクセがあったので、サービス利用開始当初、競馬ソフト作者の間でも混乱が見られました。
 何より一番混乱したのは、データ形式ががらりと変わったことです。データがレース情報RAと、馬毎データSEに分けられたため、データフォーマットとしては非常にすっきりしましたが、使い勝手は格段に悪くなったのです。

    • レース情報(開催日やコース、レース名など)と出走馬がバラバラのデータになった(これまではひとつのファイルで確認可能)
    • 成績と払い戻し情報が別のデータになった(これまではひとつのファイルで確認可能)
    • 5走の戦績データが配信されなくなった


 あげればキリがありませんが、新しいデータ形式はリレーショナルデータベースで利用することを前提とした作りになっていました。おそらくJRAから提供されているデータ形式に近いと思われます。
 これまでファイル形式で保存していた多くのソフトは、データの保存方法を根本から見直す必要性が出てきました。これでソフト作成の敷居がぐっと上がってしまい、JRA-VAN Data Lab.対応ソフトは減少してしまいました(第3期と比較して)。

リレーショナルデータベースで解決

 データ形式がデータベースを念頭に置かれているなら、データの保存には「リレーショナルデータベース」を利用するのが一番簡単です。しかし、データベースは慣れない人には扱いづらい代物です。データベースの操作、設計などある程度の専門知識が必要になります。
 個人的なソフトの場合は、悩む必要はありません。データベースをより簡単に扱えるソフトが公開されています。それが、EveryDBです。EveryDBは、SQL ServerやOracle、MySQL、アクセスと言った様々なリレーショナルデータベースに、Data Lab.のデータを登録してくれるソフトです。設定さえ済ませれば、ワンタッチでデータベースを更新してくれます。
 あとは、SQL Server等に蓄積されたデータを読み出すだけで競馬ソフトに利用できます。読み出すだけなら、データベースの専門知識はほとんど必要ありません。

 DIY競馬では、無料で利用できるSQL Server 2005 Express Editionと、EveryDBを組みあわせて競馬ソフトを作る方法について説明していきます。