ACCESSに関しては、主キーがなければ、利便性がよくありません。
しかし、実務においては、どうしても主キーを設定できない時があります。
その時は、どうにかして、主キーを作成しなければならない時があります。
そんな時にどうしますか?
目次
主キーを設定できないときはどうする?
こんにちは。伊川(@naonaoke)です。
主キーを設定できないときはどうする?
ブログ、動画の発信のきっかけは、オートルックアップクエリでした。
しかし、いつしか、そのスキルを競馬に生かし、競馬で勝ち組になりたいと思うようになりました。
いつも、勝ち組になりたいため、データベースを作成し、チューニングしていう生活の日々を送っています。
今回は、競馬ネタですが、ACCESSの初心者の方には、有益は内容となっていると思います。
以前にも主キーを設定できない時は、どうするのか?
同様の内容を作成していますが、今回は競馬に特化した内容です。
勉強には、遊び心も必要なのです。
このブログはこんな人にお勧め
- ACCESSや、データベースを勉強している人
- 競馬で、勝ち組になりたい人
- 競馬は、データで攻略できると思っている人
このブログを、読み終わるころには・・・・
データベースの考え方を一通り説明したつもりです。紹介する内容は、かっこいい方法ではありません。
しかし、一意のキーが必要であるということは、理解できたのではないでしょうか?
ACCESSの初心者は、主キーと、オートルックアップクエリを理解しましょう。
主キーの重要性
競馬には、レースIDというもがあります。
これは、18桁の数字の羅列です。
このレースIDの説明に関しては、割愛します。
詳しくは、下記の記事を参照してください。
このレースIDには、旧レースIDというものがもあり、6桁~8桁くらいでした。
しかし、JRAは、旧レースIDでは、今後の競馬データ管理は無理と思ったのでしょう。
だから、新レースIDという、現在のレースIDを作成しました。
このレースIDを考えた人は、本当に頭脳明晰だと思います。
単純な18桁の数字を、データベースの主キーにしたのです。
蛇足ですが、おそらくは、マイナンバーIDも、どのような不測の事態にも対応できるようになっているはずです。
断言しますが、これからの競馬は、Excelで管理するのは、限界です。
このレースIDに、たくさんのデータが紐づいています。
そのデータをクエリで攻略するのが、BIGデータならぬ、競馬データを攻略するカギになります。
競馬を攻略するには、
レースIDを必ずデータベースに設定しておく
レースIDが設定できなければ、一意のキーを用意する
今回は、レースIDが設定できなければ、一意のキーを用意するを重点的に説明します。
今回の題材となる馬券本
今回、なぜ、このブログについて発信のきっかけは、下記の書籍です。
なかなか、データベースチックな書籍です。
この書籍以前の、馬券本は、おそらくは、馬券生活者が、面白おかしく書いているもので、絶対に無理です。
後は、サイン読み、スピリチュアル的なものです。
嫌いでいはないですが、競馬では勝てない。
だからデータ分析が必要なのです。
しかし、データ分析の方法がわからない。
そんな時に、A-10班の馬券本に出会いました。
色々な問題があり、書籍を出版できない状態にあったようですが、久々の新刊発表を嬉しく思います。
この書籍は、信用できると思います。
しかし、この書籍をすべて記憶するのは無理です。
約200ページの書籍を500頭の出走馬と付け合わせするのは無理なのです。
あー、確認しておけばよったと思うのは、レース後です。
しかも自分が握りしめているのは、はずれ馬券です。
いつしか、書籍は、ホコリがつもり、我流の予想に走り、そして負けるという結果です。
この書籍が、データベースになっていれば、データ検索が可能になります。
この検索という言葉は、実社会では使いません。
照会するといいます。
つまり、今回の出走馬をデータベースに紹介して、どのような情報が、抽出できるのかを確認できれば、大穴を獲得できるかもしれません。
照会システム作成 作業手順 その1 主幹システムで、固有名詞を見つける
思うに、会社のシステムが、ExcelとACCESSだけということはほぼないと思います。
主幹システムが、吐き出した、CSVファイル等をExcel、ACCESSで解析、分析するはずです。
その主幹システムが、主キーも設定してくれたら言うことはありません。
競馬で言うならば、私の主幹システムは、Targetというアプリになります。
このTargetは、カンタンにお好みのデータを抽出できるというのが便利なのです。
その吐き出したものに関して、レースIDとは別に、
今回作成するデータベースと連携可能な主キーを造語で設定します。
照会システム作成 作業手順 その2 造語を作成する
競馬の場合は、この造語を作成するのは、意外とカンタンです。
固有名詞があるからです。
ディープインパクト
オグリキャップ
ルメール騎手
藤沢和雄調教師
もし、実務の場合で、造語を主キーに設定する場合は、固有名詞と何かを組み合わせて、主キーを設定することをお勧めします。
この方法のメリット⇒メンテナンスが楽
この方法のデメリット⇒かっこ悪い
最も、組み合わせなくても、複数の言葉を合わせて、検索、紹介することもできます。
なので、今回は、かっこ悪くても、早期データベースの作成ということを重視して、造語を選択しました。
照会システム作成 作業手順 その3 造語に対応したテーブルを作成する
図にあるように
種牡馬_1
騎手_1
調教師_1
この上記に関しては、絶対に一意のキーになっています。
この3つに対応したテーブルを作成します。
このテーブルから、クエリを作成します。
この上記に関しては、絶対に一意のキーになっています。
この3つに対応したテーブルを作成します。
後は、この3つに対応したクエリと、主幹システムに対応したテーブルをリレーションで結びます。
照会システム作成 作業手順 その4 別途、テーブルを作成する
今回の、もっとも重要な点は、造語で主キーを作成することなのですが、
造語によって作成されたクエリを、どうするか?
これも問題です。
クエリは、元となるテーブルのデータがなくなると、当然クエリのデータもなくなります。
この時の考え方が2つあります。
主幹システムから吐き出したデータに、主キーを設置して、更新クエリで、テーブルにデータを追加する
造語によって作成された、初回はクエリを基に新しいテーブルを作成し、以後は、追加クエリで、データを追加する
私は、後者、つまり、造語によって作成された、初回はクエリを基に新しいテーブルを作成し、以後は、追加クエリで、データを追加するを行っています。
理由は、その造語で作成したテーブルで、データ抽出を考えたときに、主幹システムのデータに依存していないほうが、競馬に関しては便利だからです。
しかし、完全に独立してはいけません。
今回の競馬に関しては言えば、造語で作成した新しいテーブルにも、レースIDを設定しなくてはなりません。
このレースIDを設定しておくことで、主幹システムのデータベースにも、リレーションを設定できるからです。
現時点での、競馬データが、レースIDを中心に設計されているので、すべての競馬データとリレーションを設定できるからです。
照会システム作成 作業手順 その5 凡走する馬も記載している
本書のいいところは、凡走している、種牡馬、騎手、調教師の記載もあるということです。
これも、記憶するのは不可能です。
競馬も投資と考えるなら、なるべく投資する資金は、少ないほうがいいですよね。
ここがポイント
データベースは設計が重要です。その設計方法を今回は照会しました。
枠組みが完成すれば、あとは、単純作業で、データを入力すればいいだけのことです。
難しくはありません。
その単純作業を繰り返すのも結構つらいのですが、競馬で儲けると思えば苦になりません。
まとめ
今回は、完全に競馬ネタです。
しかし、考え方は実務でも利用できると思います。
このデータベースの完成後は、サブチャネルで、結果を発表します。
ご興味のある方は、ぜひ、サブチャネルも登録お願いします。
今回も最後まで読んでいただきありがとうございました。
今回のサンプルファイルは、ありません
わからない事を延々と考えるのは、無駄です。
- なんで作動かないの?
- もうやだ!VBAなんか嫌い!
- ネットで調べても情報がない!
必ず作動するコードが、ここにあります。