スマートフォンの連絡先を追加したり、友だちの電話番号を変更したり、古い連絡先を削除したり…。毎日やってることを言葉にすると、実はプログラムの世界で一番大事な操作ばかりなんだよ。この記事を読めば、アプリやWebサイトが「どうやってデータを管理してるのか」がわかっちゃいます。
- CRUDとは、データを「作る」「見る」「直す」「消す」の 4つの操作 のこと
- Twitterの投稿やスマートフォンの連絡先など、 毎日やってることばかり
- アプリやWebサイトはこの4つを組み合わせて、 すべてのデータ管理 をやってる
もうちょっと詳しく
CRUDという言葉は、データベースやWebアプリケーション、プログラミングの世界で「ぜったい出てくる」言葉なんだ。なぜかっていうと、どんなアプリを作るときでも、この4つの操作が必要だから。たとえば、友だちとメッセージをやり取りするアプリでも、ゲームのスコア管理でも、学校の成績管理システムでも、結局はこのCRUDを繰り返してるんだよ。だからプログラマーは「CRUDができる」ことを「プログラミングの基本ができる」と同じ意味で使うんだ。覚えておくといいよ。
CRUDは「ぜたい出てくる基本」。これがわかると、アプリの仕組みが見えてくる
⚠️ よくある勘違い
→ 違うんだ。実は君が毎日やってることばかり。難しく考えちゃダメ。
→ その通り。Twitterで投稿するのはCreate、つぶやきを見るのはRead。それだけ。
→ いやいや、君が使ってるすべてのアプリが、CRUDで動いてるんだよ。
→ 正解。「ユーザーが何をしてるか」を言い換えたら、CRUD操作になる。
[toc]
CRUDの「C」 — Create(作る)
新しいデータを世界に生み出す操作
Createというのは「新しいデータを作る」操作のことなんだ。つまり、今までなかったデータを、これからあるようにする、ってこと。例えば、スマートフォンの連絡先アプリで「新規追加」を押して、友だちの名前と電話番号を入力する。あるいはSNSで新しく投稿する。これはぜんぶCreateなんだよ。
大事なのはね、Createは「存在しなかったものを存在させる」という操作ってこと。データベース(つまり、データを保存しておく仕組み)の中に、新しいデータを追加するんだ。
Createの実例
身近な例で考えてみようか。君がInstagramで新しい写真を投稿するとき、何が起こってるかな。
- 写真ファイルを選ぶ
- キャプション(説明文)を書く
- 「投稿」ボタンを押す
この「投稿」ボタンを押した瞬間、Instagramのサーバー(つまり、インターネットの向こう側にあるコンピュータ)に、君の投稿データが「新しく作られて」保存されるんだ。次の日、友だちがそれを見ることができるのは、このCreateのおかげなんだよ。
また、ゲームだって同じ。新しくアカウントを作るのはCreate。新しくセーブデータを作るのもCreate。病院の患者管理システムでも、新しい患者さんのカルテを作るのはCreate。どんな場面でも「新しいデータを作る」というのがあるんだ。
なぜCreateが重要か
何も存在しないところから、データを作り出すっていう操作は、すごく大事なんだ。だから、Createのときには「そのデータは本当に必要?」「データとして問題がない?」みたいなチェックが入ることがある。例えば、SNSで投稿するときに「不適切な内容じゃないか」というフィルターがかかるのは、Createの過程で「このデータは大丈夫か」と確認してるからなんだよ。
CRUDの「R」 — Read(見る・読む)
保存されたデータを取り出して見る操作
Readというのは「データを見る」「データを読む」という操作のことなんだ。つまり、すでに存在しているデータを、取り出して表示する、ってこと。例えば、友だちのTwitterのプロフィールを見る。Googleで検索する。YouTubeで動画を再生する。ぜんぶReadなんだよ。
大事なのはね、Readは「データを見るだけ」で「データを変えない」ということ。本を読むのに、本の内容を変えたりしないでしょ。Readも同じなんだ。
Readの実例
君がLINEを開いて、友だちからのメッセージを読む。これはReadだ。スマートフォンの連絡先アプリで、保存されてる誰かの電話番号を確認する。これもReadだ。
学校の教科書を使った例で言うと、テストの成績管理システムがあるとしようか。先生が生徒の成績を「確認」するのはRead。生徒が自分の成績を「見る」のもRead。でも、点数を書き換えるのはUpdate(これはReadじゃなくてUpdateだね)。
Readは本当に大事な操作なんだ。だって、ほとんどのアプリやWebサイトは「データを見る」ために作られてるから。動画サイトも、SNSも、Webページも、メールも、ぜんぶ「保存されたデータを見る」という操作が一番多いんだよ。
Readだからこそ、情報は「今」を共有できる
Readは「見るだけ」だからこそ、複数の人が同時に同じデータを見ることができるんだ。例えば、YouTubeで同じ動画を、日本の人も、アメリカの人も、インドの人も、同時に見ることができるでしょ。これは、みんなが「Read」をしてるからなんだ。誰かが「見る」操作をしても、動画のデータは変わらないから、みんなで共有できるんだよ。
CRUDの「U」 — Update(直す・変える)
すでにあるデータを変える操作
Updateというのは「データを変える」「データを直す」という操作のことなんだ。つまり、すでに存在してるデータを、別のデータに変える、ってこと。例えば、スマートフォンの連絡先で、友だちの電話番号が変わったから更新する。Twitterで書いた投稿を編集する。ゲームで自分のアバター(キャラクター)の名前を変える。ぜんぶUpdateなんだよ。
大事なのはね、Updateは「すでに存在するデータ」を対象にするってこと。存在しないデータを「更新する」ことはできないんだ。
Updateの実例
身近な例で考えてみようか。君がGoogleのアカウント設定を開いて、自分の誕生日を変更したい。「誕生日:2010年4月15日」から「誕生日:2010年4月10日」に直す。これがUpdateだ。データとしては同じ「誕生日」なんだけど、内容が変わったんだね。
あるいは、Instagramで投稿した写真に付いてる「いいね」の数。毎日、この数字は増えたり、時には減ったりする。これは、システムが「いいね」の数データを、常にUpdateしてるんだ。
学校の例だと、成績管理システムで、ある生徒のテストの点数が間違ってた。80点を90点に直す。これはUpdateだね。
Updateは「変わる」ことを表してる
データが「変わった」っていうのは、実は Updateが起きたってことなんだ。スマートフォンのバッテリー残量が100%から99%に変わった。これもUpdateだ。ゲームで敵を倒して、自分のHPが100から85に変わった。これもUpdateだ。プロゲーマーのランキングの順位が変わった。これもUpdateだ。
つまり、「データが変わる」ってことは、すべてUpdateなんだよ。
CRUDの「D」 — Delete(消す)
不要になったデータを世界から消す操作
Deleteというのは「データを消す」という操作のことなんだ。つまり、もう要らなくなったデータを、完全に削除する、ってこと。例えば、スマートフォンの連絡先で、昔の友だちの連絡先を消す。Twitterで投稿を削除する。ゲームで古いセーブデータを消す。ぜんぶDeleteなんだよ。
大事なのはね、Deleteは「存在を完全になくす」という操作ってこと。Readと違って「見るだけ」じゃなくて、データそのものがなくなるんだ。
Deleteの実例
君が送ったメールの中に、変なメールがあって「削除」ボタンを押す。これがDeleteだ。スマートフォンに入ってる古い写真を「削除」する。これもDeleteだ。SNSで昔の投稿を「削除」する。これもDeleteだ。
学校の例だと、卒業生の情報が必要なくなった。削除する。これはDeleteだね。あるいは、患者さんが病院をやめた。そのカルテを削除する。これもDeleteだ(ただし、実際は「削除」じゃなくて「アーカイブ」することが多いけど、処理としては同じようなものだね)。
Deleteはやっぱり重要
Deleteはね、一度やったら戻せないことが多いから、結構大事な操作なんだ。だから、「本当に削除していい?」という確認画面が出ることが多いんだよ。ゴミ箱に移す前に「削除しますか?」って聞かれるでしょ。これはね、「もう一度確認してから消してね」という意思なんだ。
また、データベースの管理者(つまり、システムを作った人)は、Deleteについては特に気を付けるんだ。なぜなら、ユーザーが誤ってDeleteをやっちゃったら、大事なデータがなくなっちゃうから。だから「バックアップを取る」とか「一度削除したら、設定期間は復元できる」みたいな仕組みを作ったりするんだよ。
CRUDはデータの人生を表してる
生まれて、活躍して、変わって、終わる
CRUDの4つの操作をまとめて見ると、データの「人生」に見えるんだ。思い出してみようか。
- Create:データが生まれた
- Read:データが活躍する(みんなに見られる)
- Update:データが変わる(成長する?)
- Delete:データの人生が終わった
データを人間だと思えば、Create は「生まれる」、Read は「毎日活躍する」、Update は「歳を取ったり、変わったりする」、Delete は「寿命が来た」ってわけだね。
つまり、プログラマーがアプリを作るときに大事なのは「データをちゃんと育てる」ことなんだ。生まれたデータ(Create)を安全に保管して、読まれるようにしたり(Read)、変える必要があったら正しく変えて(Update)、いらなくなったら適切に消す(Delete)。この4つがちゃんと機能すれば、アプリは正常に動くんだよ。
CRUDができないと、アプリは成り立たない
実は、アプリやWebサイトがダメになる原因は、CRUDのどれかが壊れてるからなんだ。例えば、Twitterが動かなくなったのは「Readができなくなった」(ツイートが見えない)のかもしれないし、「Create がおかしい」(投稿ができない)のかもしれない。Gmailが調子悪いのは「Update できない」(メールが保存されない)のかもしれないし、「Delete がおかしい」(削除できない)のかもしれないんだ。
だからね、プログラマーが「何かおかしい」って思ったときの最初のステップは「CRUDのどれが壊れてるんだろう」と考えることなんだよ。
