Alma Core Pro

競馬データベース管理システム 運用マニュアル & かんたんSQL実践ガイド

1. システム概要と動作環境

本システムは、「競馬道OnLine」のKD3形式データおよび「ストライド競馬新聞」のCSV/ZIPデータを自動ダウンロード・解析し、SQLiteデータベース(keiba.db)へ高速統合・管理するためのデスクトップアプリケーションです。

動作環境

OS Windows 10 / 11 (64bit)
外部解凍ツール 7-Zip (C:\Program Files\7-Zip\7z.exe)
※大容量アーカイブの高速展開に使用します。
データベース SQLite 3(WALモード対応・インデックス自動最適化)
主要ファイル keiba.db : 統合データベース実体
config.json : 認証設定ファイル
downloads/ : 競馬道LZH一時展開領域
stride_data/ : ストライドZIP一時展開領域

2. 会員認証設定 (config.json)

自動取得機能を利用するには、各サービスの会員アカウントを登録する必要があります。

必要な有料会員契約
  • 競馬道OnLine: データ会員(全データコース)➔ member_id, password
  • ストライド競馬新聞: プレミアム会員 ➔ uid (メールアドレス), パスワード (4桁数字)

設定手順

  1. メニューの 『ファイル(F)』 ➔ 『⚙️ 会員認証設定 (config.json)』 を開きます。
  2. 競馬道の会員ID・パスワード、およびストライド新聞のメールアドレス・4桁数字パスワードを入力します。
  3. 「💾 設定を保存」 をクリックすると、ルートディレクトリの config.json に安全に書き込まれます。
会員認証設定ダイアログ

会員認証設定ダイアログ

3. 過去データの一括構築手順

初期導入時は、提供されている過去全期間のデータをワンクリックで一括ダウンロード&インポートできます。

① 競馬道 過去データの一括構築 (2007年10月〜)

  1. メニューの 『データベース(D)』 ➔ 『🏇 競馬道 過去データ一括取得&インポート』 を選択します。
  2. 取得範囲(直近1年・3年・5年・10年・全期間一括)を選択し、実行します。
  3. 各年のデータ一覧を走査し、ダウンロードからDB登録まで完全自動で行われます。

② ストライド 過去データの一括構築 (2019年6月8日〜)

  1. メニューの 『データベース(D)』 ➔ 『📊 ストライド 過去データ一括取得&インポート』 を選択します。
  2. 全開催日(土日・祝日等)を自動判定し、アーカイブZIPを順次取得・展開・DBへ格納します。
処理の中断について

処理中に 「🛑 処理中止」 を押した場合でも、完了した年・ファイルまでのデータは安全にDBへ保存されます。次回再開時は重複登録されずに差分から継続されます。

4. 週末の通常運用ルーティン

毎週末の出馬表更新、直前オッズ、レース終了後の確定着順・払戻金の反映は、以下の3ステップで行います。

ステップ 操作ボタン 処理内容・挙動
Step 1 🔄 差分取得 (競馬道) DB内の最新日付以降に配信された最新データパックおよび未取得LZHファイルを検出し、自動ダウンロードします。
Step 2 📥 インポート (競馬道LZH) ダウンロードされたLZHファイルを高速解凍し、各テーブルへデータを反映します。インポート完了後のファイルは自動削除されます。
Step 3 🌐 ストライドWeb自動DL ダイアログに開催日(例: 20260823)を入力して実行すると、当日の指数データを取得・解析し、kol_stride テーブルへ格納します。
ローカルファイルの直接取込

ブラウザ等から手動でダウンロードしたストライドのZIPファイルがある場合は、stride_data フォルダ内に配置して 📁 ローカルストライド取込 を押すことで一括インポートできます。

5. データベース仕様(主要テーブル・定義書)

本システムで自動構築・同期されるSQLiteテーブルの概要です。

テーブル名 主キー (PRIMARY KEY) 格納データ内容
kol_sei1 year, venue_code, times, day, race_number レース確定成績、ラップタイム、コーナー通過順、全券種払戻金
kol_sei2 上記 + horse_number 出走各馬の確定着順、確定オッズ、斤量、調教時計、タイム差
kol_den1 year, venue_code, times, day, race_number 出馬表ヘッダ、コースレコード、想定展開、本紙短評
kol_den2 上記 + horse_number 出走登録馬、枠順・馬番、騎手・厩舎、直前調教評価、前走情報
kol_uma horse_code 競走馬マスタ、5代血統、通算成績、馬主・生産者情報
kol_stride race_date, venue_code, race_number, horse_number ST指数、仕上り指数、先行力、追走力、持久力、持続力、瞬発力、展開、バイアス
kol_ods / kol_kod year, venue_code, times, day, race_number 単勝・複勝・馬連・三連単等の確定および前日オッズ明細
📑 全テーブル定義書の閲覧・ダウンロードについて

全テーブル・全カラム(データ型、日本語カラム名、主キー設定)を網羅した詳細定義書は、メニューバーの 『ヘルプ(H)』 ➔ 『📑 全テーブル定義書』 からいつでも閲覧可能です。

また、定義書画面右上の 「📥 定義書をダウンロード (CSV / HTML)」 をクリックすることで、Excel等で開ける定義書ファイルをローカルへ保存できます。

6. 3分でわかる!超初心者向けSQL講座 & 実践レシピ

1. SQLってなに?(レストランの注文と同じ!)

難しそうに見えるSQLですが、やっていることは「レストランで店員さんに注文する」のと全く同じです。

🍽️ レストランで注文するとき:

【メニュー表】 から、【ハンバーグ】【ライス】 をください!」

💻 データベースへの命令(SQL)に置き換えると:

FROM 【テーブル名】 から、SELECT 【見たいデータ列】 を持ってきて!」

つまり、「どのシートから(FROM)」「どの項目を取り出すか(SELECT)」 を指定するだけで完了します。

2. 基本の形はこれだけ!

ストライド指数テーブル(kol_stride)から、馬番と先行力を取り出す基本構文です。

SELECT horse_number, senko FROM kol_stride;

これだけで、データベースの中から「馬番」と「先行力」の列だけが一覧になって取り出せます。

3. 英語の列名を日本語に変える魔法「AS」

データベースの中身は race_date(開催日)や st(ST指数)のように英単語になっています。そこで、単語の後ろに AS 日本語名 を付けると、見出しを日本語に変えて取り出すことができます。

SELECT 
    race_date AS 開催日,
    venue_code AS 場コード,
    race_number AS レース,
    horse_number AS 馬番,
    st AS ST指数,
    senko AS 先行力,
    bias AS バイアス
FROM kol_stride
LIMIT 10;

このクエリを実行してExcelに貼り付けると、最初から綺麗な日本語見出しがついた表が一瞬で完成します。

Excel貼り付け例

「AS 〇〇」を使うと、Excelの1行目に日本語の見出しがそのままセットされます

4. コピペで即使える!お宝抽出レシピ集

レシピ 1 出走馬の能力バランスを一覧チェック

ST指数・先行力・追走力・瞬発力をまとめて取得し、レース内の力関係を一目で把握します。

SELECT 
    race_date AS 開催日,
    venue_code AS 場コード,
    race_number AS R,
    horse_number AS 馬番,
    st AS ST指数,
    senko AS 先行力,
    tsuiso AS 追走力,
    shunpatsu AS 瞬発力
FROM kol_stride
ORDER BY race_date DESC, CAST(race_number AS INTEGER) DESC
LIMIT 15;
能力バランス一覧

Excelで馬ごとの瞬発力や追走力の違いが一目瞭然になります

レシピ 2 先行力も追走力も高い「強力先行馬」を絞り込み

WHERE(条件指定)を使い、先行力55以上かつ追走力50以上の軸馬候補を抽出します。

SELECT 
    race_date AS 開催日,
    venue_code AS 場,
    race_number AS R,
    horse_number AS 馬番,
    st AS ST指数,
    senko AS 先行力,
    tsuiso AS 追走力
FROM kol_stride
WHERE senko >= 55.0 AND tsuiso >= 50.0
ORDER BY race_date DESC, CAST(race_number AS INTEGER) DESC
LIMIT 20;
先行力・追走力絞り込み

軸馬候補となるハイレベルな先行馬だけがズラリと抽出されます

5. Excel用コピー (TSV) の活用手順

  1. レシピのSQLをコピーします。
  2. 画面右上の「SQLクエリコンソール」入力欄をクリックし、キーボードの Ctrl + V を押して貼り付けます。
  3. 右側の ▶ SQL実行 ボタンを押します。
  4. 📊 Excel用コピー (TSV) をクリックします(数千件の全データが一括コピーされます)。
  5. Excelを開き、貼り付けたいセルを選択してキーボードの Ctrl + V を押すだけで表が完成します。

7. データベース保守 (VACUUM)

データ件数の増加に伴うパフォーマンス低下を防ぐための機能です。

8. トラブルシューティング

症状・エラー 原因 対処方法
ログイン失敗 / 認証エラー config.json の認証情報ミス、または会員の期限切れ。 メニュー『ファイル』➔『会員認証設定』を開き、ID・パスワードに余計な空白が含まれていないか再確認してください。
ストライドデータがDLできない データ未公開、または非開催日。 ストライド新聞は開催日前日の夕方以降に配信されます。公開日時および入力日付(YYYYMMDD形式)をご確認ください。
解凍エラーが発生する 7-Zipが指定パスに存在しない。 C:\Program Files\7-Zip\7z.exe に7-Zipがインストールされているか確認してください。
データベースがロックされている 他ツール(SQLite Viewer等)でDBを開いている。 他ツールを終了し、アプリを再起動してください。本システムはWALモードにより同時読み込み耐性が強化されています。