データベースを作るときにはテーブル構成が一番肝心であることは別に私がいまさら言う話でもないかもしれません。
が、改めて実感したのでその話を書きます。
なぜ肝心かというと、ここをミスるとやりたい分析ができない。できなくはないがおそろしくめんどくさいクエリを用意したり中間テーブルを用意しないといけなくなるのだ、きっと。
そして、人間が見やすいと思う表形式と、コンピューターが処理しやすい表形式は全然違う。
例えば、電車とかバスの運賃表は
縦軸が乗車する駅、横軸が降車する駅(その逆でもよいが)
縦軸と横軸が交差するところに運賃が記載されている
といった表をよく?たまに?見ると思う。
新宿 代々木 原宿 渋谷 恵比寿
新宿 × 150
代々木 150 ×
原宿
渋谷
恵比寿
・・・
といった具合だ。
これは人間には見やすいが、コンピュータで処理する場合は
始点 終点 運賃
新宿 代々木 150
・・・
と表記した方がよさそうだ。
さらに、他の表と連結するためにはインデックスをつけたりとか
いろいろ工夫が必要そうなのである。
データ分析云々の前の前準備でいろんな気づきがあってうれしいようなしんどいような。。。
おかけで、エクセルで表を作ってPowerBIに取り込ませては、またテーブル削除して、エクセルで表を作り直して、、、
を何度も繰り返している。
ノーコードで簡単にデータ分析できるぜ。
がBIツールの謳い文句だと思うが、データベースの基本的な知識は必要だ。
今のところ、
- テーブルの理解
- リレーションの理解
は必要性を感じている。
テーブルの理解とは、どのようにテーブルを作ったら集計やデータ加工しやすいかとか、あとからデータ追加しやすいかとかを考えることでしょうか。正規化の考え方ができればよいのかもしれませんが簡単ではないですものね。
リレーションの理解とは、複数のテーブルのデータを紐づけて集計やらデータ解析やらをすると思うのですが、これがちゃんと紐づかないとえらい苦労します。テーブル間の紐づけがちゃんとできるかを考えることが大事ですね。
他にも進めていくといろいろ苦労が絶えなのだろうが、始めたばかりの現時点ではこのあたりの知識がなくて四苦八苦しているのである。
結局どうすればいいのか?
と問われると私も試行錯誤中なので最適解が分からないのですが、
マスターテーブルとデータテーブルは分けるとか
なるべく正規化したテーブル構成に近づけるとか
リレーションできるようなカラム(日付とかIDとか)を作っておくとか
そういったことをすればよいのかなぁとぼんやり思っております。
まだまだ続きそうだ。。。
おしまい。