名簿を友だちに送ってよいか
文化祭の係が、全員の名前とメールアドレスと電話番号を、表計算にまとめました。「他のクラスにも共有しよう」と誰かが言います。
個人の情報は、一度広がると取り消せません。決まりを知り、必要ならデータを匿名にして使えば、使いながら守れます。
このレッスンのゴール
メモ
個人情報を守る決まりを使って、データを匿名にすることができる。
キーワード
| ことば | いみ | れい |
|---|---|---|
| 個人情報 | 生きている特定の人についての情報 | メールアドレス |
| 利用目的 | そのデータを何に使うかの説明 | |
| 同意 | 本人が、使い方を知って認めること | |
| 匿名化 | 誰のデータか分からない形にすること | |
| マスキング | データの一部を、伏せ字などで隠すこと | ta*** |
学生が入力するセルは、このプレビューでは空白です。
個人情報とは何か
個人情報は、特定の人だと分かる情報です。名前、メールアドレス、電話番号、顔写真が当てはまります。
1つでは分からなくても、組み合わせると特定できることがあります。学校名と学年と誕生日が分かれば、クラスの中の1人に絞れます。
例: 個人情報になるものとならないもの
| 情報 | 個人情報か | わけ |
|---|---|---|
| 名前 | なる | 人を直接指す |
| メールアドレス | なる | 1人の人に届く |
| 好きな色だけ | ふつうはならない | 誰か分からない |
| 学校と学年と誕生日 | 組み合わせでなる | 1人に絞れる |
学生が入力するセルは、このプレビューでは空白です。
データベースの中の個人情報を探す
ラボの customers の表には、お店の顧客のデータが入っています。すべて架空の人で、アドレスも実在しません。
最初の1行は準備です。次に、どの列が個人情報にあたるかを、列の一覧から見つけましょう。
ラボの短い名前(準備)
alias sql='mariadb -h db -u student -pstudent shop -t -e'ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
顧客の表の列を一覧にする
sql "SHOW COLUMNS FROM customers"ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
元のデータを3行だけ見る
sql "SELECT first_name, last_name, email FROM customers ORDER BY id LIMIT 3"ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
個人情報を扱う5つの原則
守るための考え方は、どこの国でも似ています。自分たちの言葉で5つにまとめます。
目的を決めて伝える。必要な分だけ集める。安全にしまう。必要がなくなったら消す。本人が見たいと言えば見せ、直したり消したりも頼めるようにする。
例: 文化祭の名簿に当てはめる
| 原則 | 名簿での例 |
|---|---|
| 目的を伝える | 「当日の連絡のために使います」と書く |
| 必要な分だけ | 連絡に必要なメールだけ集める |
| 安全にしまう | パスワードをかけ、共有する人を絞る |
| 必要なくなったら消す | 文化祭が終わったら消す |
| 本人の頼みに応える | 本人が頼めば、見せて消す |
学生が入力するセルは、このプレビューでは空白です。
匿名化は、消す、隠す、まるめる
分析には、本当の名前は要らないことが多いです。名前は消し、メールの一部は隠します。
年齢は17歳でなく「10代」のようにまるめます。人がちがう番号に置きかえれば、同じ人の記録だけは追えます。
メールの前半を隠して見る
sql "SELECT first_name, CONCAT(LEFT(email, 2), '***') AS masked FROM customers ORDER BY id LIMIT 3"ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
試す: 文字を隠す
# メールアドレスの前半を隠します。
email = "[email protected]"
parts = email.split("@")
masked = parts[0][:2] + "***@" + parts[1]
print(masked)
# 電話番号は、まん中だけを隠します。
phone = "090-1234-5678"
pieces = phone.split("-")
print(pieces[0] + "-****-" + pieces[2])
# 自分のメールアドレスの形に変えて、試しましょう。
よくある間違い
注意
名前の列さえ消せば、匿名になると考えがちです。残った年齢、学校、地域の組み合わせから、人が分かることがあります。匿名にするときは、名前を消したうえで、年齢などもまるめ、1人に絞れないかを確かめます。
さらに挑戦: 誰かが特定できるか
匿名にしたあとの表を、友だちに見せてみましょう。学年と地域と年代だけで、誰のことか当てられるでしょうか。
当てられるなら、まるめ方が足りません。年代を広げたり、地域を大きな単位にしたりして、もう一度試します。