正しいデータを保つには

このスライドの目標

  • 1. 集計結果から「違和感」を見つけよう
  • 2. なぜ違和感が起きるのか(原因)を理解しよう
  • 3. 表を分けて整理する方法について知ろう

1. 集計結果から「違和感」を見つけよう

ピボットテーブルでクラス別の貸出件数を集計すると、 全体の傾向が一気に見えるようになりました。

でも、集計結果をよく見ると、 「あれ?おかしいかも」 と思うところが出てくることがあります。

集計って便利だけど…
結果が正しいかどうか、ちゃんと確認したほうがいいよね。

うん。別の集計をしてみたら、違いが分かるかも!

いいですね。ここでは、 2つの集計をして 「違和感」がないか確認してみましょう。

このスライドで行う集計

  • 集計①:書名ごとの貸出件数
  • 集計②:クラス+担任ごとの貸出件数

・集計①:書名ごとの貸出件数

まずは、書名ごとに 何回貸し出されているかを集計してみます。

ピボットテーブルで、行に「書名」、値に「貸出ID(件数)」を入れて、集計をしましょう。

書名ごとの貸出件数(ピボット結果)

あれ?
似た名前の本が、別々に集計されてる…?

「情報セキュリティ入門」と「情報セキュリティ入門」って、 同じ本なのに別の本みたいになってるね…。

こういうのを表記ゆれといいます。

スペースの有無や全角・半角が少し違うだけでも、 コンピュータは別のデータとして扱ってしまいます。


・集計②:クラス+担任ごとの貸出件数

次に、クラスと担任ごとに 貸出件数を集計してみます。

ピボットテーブルで、行に「クラス」、列に「担任」、 値に「貸出ID(件数)」を入れてみましょう。

クラス+担任ごとの貸出件数(ピボット結果)

ん?
複数のクラスの学生をもっている先生がいる⋯。

クラスって普通は担任は1人のはずだよね?
佐藤先生が1Aと2Bに生徒がいることになっている⋯。

これもよくある問題です。

クラスや担任の情報が、表のあちこちに何度も書かれていると、間違って入力したり、修正時にどこかを直し忘れることが起きます。

どのようにすれば、入力の表記ゆれやミス、修正のやり忘れなどを防げるのかを見ていきましょう。

2. なぜ違和感が起きるのか(原因)を理解しよう

ここまでの2つの集計で分かったのは、 同じ情報を何度も書くと、ズレやミスが起きるということです。

同じ情報を何度も書くと起こること

  • 表記ゆれが起こり、集計がズレる(同じ本・同じ人が別扱い)
  • 更新漏れが起こり、どれが正しいか分からなくなる
  • 検索・集計の結果が信じられなくなる

じゃあ、同じデータを何度も書かないようにするってことだよな?

その通りです。

これを実現するために、表を役割ごとに分けて、同じデータが複数登録できないように同じ情報は1か所にまとめて管理します。

それでは具体例を確認しながら表を分けて整理する方法を学びましょう。

3. 表を分けて整理する方法について知ろう

同じ情報を何度も書かないようにするためには、 役割ごとに表を分けて管理します。

この考え方を、 正規化(せいきか) といいます。

今回は、正規化の考え方だけを理解できればOKです。

ただし、いきなりすべての表を分けると、 少し難しく感じてしまいます。

表を分けるって言われても、 どこから分ければいいのか分からないな⋯。

そこで今回は、 書籍データだけに注目して考えてみましょう。

書籍データには、次のような情報が入っています。

  • 書籍ID
  • 書名
  • 分類(プログラミング、AI、情報セキュリティ など)

書籍データ

あれ?
分類って、同じ言葉が何度も出てきてるね。

そうですね。

分類も、何度も同じ内容が書かれている情報です。

何度も同じ内容が書かれていると、入力時の「表記ゆれ」や修正するときの「修正忘れ」などが発生する可能性があります。

そこで、書籍データを次のように分けます。

書籍データの分け方

  • 書籍表: 書籍ID・書名・分類ID
  • 分類表: 分類ID・分類名

分類を別の表にしたら、 同じ分類名は1回だけ書けばよくなるんだ!

その通りです。

分けることで、 データがバラバラになるのではなく、むしろ1つにまとまる のです。

でも、表を分けたら、 どうやって「どの本がどの分類か」分かるの?

いい質問ですね。

表を分けたあとは、 IDを使って表どうしをつなぎます。

たとえば、書籍表には 分類名を書く代わりに、 分類IDを書いておきます。

そして、分類IDの詳しい内容は 分類表にまとめておきます。

あっ!
番号を手がかりにして、 別の表を見に行く感じなんだね。

その通りです。

このとき、 表の中で元になるIDを 主キーと呼びます。主キーは、同じ値が2つ以上あってはいけません。

また、それを参照しているIDを 外部キー と呼びます。

でも、
表に分けた場合って、スプレッドシートではどうやって管理すればいいのかな?

シートが増えると、ちょっと大変そう。

たしかに。
どうやって、主キーと外部キーをつなげるんだろう?

いいところに気づきました。

スプレッドシートでも表を分けて管理することはできますが、表どうしの関係を自動で扱うのは得意ではありません。

そこで使われるのが、 表を使ってデータを管理する専用の仕組み、関係データベースです。

関係型データベースでは、表を分けたままでも、IDを使って正しくデータを結びつけて扱う ことができます。

関係データベースがどのように表を使うか学習しましょう。

情 報 こ と ば キ ー ワ ー ド

主キー

表の中で元になる項目のこと。他の表から参照される。

外部キー

他の表の主キーを参照するID。表どうしをつなぐために使う。

Well done!

次のステップに進みましょう!

次のステップに進む

← 前のステップにもどる