MENU
おすすめプログラミングスクール紹介用バナー
Webpia編集部
Webpiaはプログラミングとノーコードについて紹介するWebメディアです。主に10~30代向けに記事を執筆しております。

CRUDの意味を図や具体例を使って解説!【データベースやWebアプリ開発の基本】

当サイトはページの一部でPR活動を実施し、得られた収益で運営されています。広告費用や収益性を考慮したランキング付けは、一切行なっておりません。詳細は、サイトポリシーWebpiaでコンテンツが出来上がるまでを参照ください。

こんにちは!
今井(@ima_maru)です。

アプリ開発やシステム開発をするうえで非常に重要な「CRUD」という概念について解説します。

実はすごく簡単な単語なので、サクッと覚えていきましょう。

それでは解説に移ります。

もくじ

CRUDの意味とは?データベース・SQLにもある4つの機能のこと

CRUD(クラッド)とは、データに対する「作成」「読み取り」「更新」「削除」という4つの機能のことを指しています。(登録機能・参照機能・更新機能・削除機能とも)

CRUDが指す4つの機能
  1. C:データを作成する(Create)
  2. R:データを読み取る(Read)
  3. U:データを更新する(Update)
  4. D:データを削除する(Delete)

「Create」「Read」「Update」「Delete」の頭文字をとって「CRUD」(クラッド)というわけです。

4つそれぞれの機能を順にみていきましょう。

Create(作成する)

Createは、データの作成機能のことです。

この機能がなければデータは作成されることはなく、使い物になりません。

ブログでいえば記事の投稿、Twitterでいえばツイートの投稿を想像するとわかりやすいでしょう。

SQLでいう「INSERT」に当たります。

INSERT INTO user VALUES (1, 'imai', 'imai@example.com');

Read(読み取る)

Readは、データの読み取り機能のことです。

この機能がなければ、データを作成しても見ること・参照することが出来なくなってしまいます。

ブログでいえば記事の閲覧、Twitterでいえばツイートの閲覧のことですね。

SQLでいう「SELECT」に当たります。

SELECT name, email FROM user;

Update(更新する)

Updateは、データの更新機能のことです。

この機能がなければ、データは作った瞬間から削除されるまで変更が出来なくなります。

ブログでいえば記事の更新のことです。

Twitterはツイートの更新を許可していないので、ツイートに対するUpdateの機能はありません。(Twitterの投稿データのようにあえてUppdate機能をつけない場合もある)

SQLでいう「UPDATE」に当たります。

UPDATE user SET email='imai.engineer@example.com' WHERE name = '今井';

Delete(削除する)

Deleteは、データの削除機能のことです。

この機能がなければ、データの削除を行うことが出来ないので、データは何らかの形で残り続けることになります。(Updateもなければ、同じデータが一生残り続ける)

ブログでいえば記事の削除、Twitterでいえばツイートの削除のことですね。

SQLでいう「DELETE」に当たります。

DELETE FROM user WHERE name = '今井';

CRUD図とは?

CRUD図とは、機能とデータの対応表のようなもので、CRUD分析で使用される図のことです。

実際に見ていただいたほうが分かりやすいでしょう。

データAデータBデータC
機能1CRUR
機能2RR
機能3URU
機能4DUR
機能5CC
機能6DU
機能7D
CRUD図 例

このように、「どの機能が」「どのデータに対して」「CRUDのどの機能を有しているか」をまとめた図をCRUD図といいます。

CRUD図 (クラッド図)とは|「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

CRUD図は次に紹介するCRUD分析で使われます。

CRUD分析とは?なぜシステム設計において重要なのか?

CRUD分析とは、CRUD図などを用いて各データにCRUDの機能が正しく設定されているかを分析する作業です。

簡単に言えば、CRUD図を使ってデータに対してCRUDがしっかり用意されているかを確認することです。

例えば、以下のようなCRUD図があったとします。

データAデータBデータC
機能1CRUR
機能2RR
機能3URU
機能4DUR
機能5C
機能6U
機能7D
OKDがないCがない
CRUD図 例

この時、データAはCRUDの全機能揃っていることが分かりますが、データBは「Delete」が足りておらず、データCは「Create」が足りていないことが分かります。

このように、CRUD図を用いることで各データにCRUDが正しく設定されているのかが良くわかるでしょう。

この図の場合だとまだまだ簡単ですが、大規模システムの場合、もっともっとデータや機能が増えてきます。

そのため、CRUD図を使いCRUD分析を行うことは、データの取り扱いという点で非常に大きな役割を果たすのです。

CRUD分析 (クラッド分析)とは|「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

ほかにも、運用や保守の観点からCRUD分析を行う場合があります。

CRUD分析 – データベース研究室 (fulfillment-c.com)

CRUDの4つの機能は全て揃っていないといけないのか?

データ対して必ずしもCRUDの4つの機能「作成」「読み取り」「更新」「削除」がないといけないのでしょうか?

結論から言えば、「CRUDが全て揃っている必要はない」と言えます。

例えばTwitterの場合、ツイートは一度投稿するとツイート内容の変更はできません。

これはCRUDの中の「Update」ができないということになります。

つまりツイートというデータに対してはUpdateの機能を用意していないのです。

その理由としては、以下のようなことが考えられるでしょう。

  1. 大量のリツイートがあったツイートをスパムツイートに編集できる
  2. 後から情報を書き換えられるため、ツイートの信頼性がなくなる(ニュースなどで取り扱えない)
  3. 編集は高頻度で使用される可能性が高く、サーバーに負荷がかかる

このように、Updateの機能をなくすことは、データの信頼性やサーバー負荷などの観点から役立つ場合があります。

ほかにも、Deleteの機能をなくす例として「仮想通貨の取引データ」があります。

一度行われた取引を削除することは「データの改ざん」になりますからね

しかし、Deleteができないという点で、ブロックチェーンがEUのデータ保護法だとか何とかに引っかかってた気がします。(個人情報などを後から削除できないから?)

ミッシェル・フィンク「ブロックチェーンとEU におけるデータ保護」(pdf)

CreateとReadは必須のように思います。(反例があれば教えていただきたいです。)

  1. そもそもデータが作成されなければ何もできないので、Createについては必須
  2. Readがない場合はデータが読み取れないので、Readも必須そう(反例ありそう、暗号とか?)

まとめると、CRUDはデータに対する基本的な機能ではありますが、全てを揃っていなくても良い場合があるということです。

この記事のまとめ

最後にこの記事の内容をまとめて終わりとします。

この記事のまとめ
  1. CRUDの意味とは?データに対する以下の4つの機能のこと
    • Create(作成する)
    • Read(読み取る)
    • Update(更新する)
    • Delete(削除する)
  2. CRUD図とは?
    • 機能とデータの対応表のようなもの
    • CRUD分析で使用される図
  3. CRUD分析とは?
    • CRUD図などを用いて各データにCRUDの機能が正しく設定されているかを分析する作業
    • システム設計において、データの取り扱いという点で大きく貢献する
  4. CRUDの4つの機能は全て揃っていないといけないのか?
    • CRUDが全て揃っている必要はない
    • あえてUpdateやDeleteを付けない場合もある

以上「CRUDの意味を図や具体例を使って解説!【データベースやWebアプリ開発の基本】」でした!

最後までご覧いただきありがとうございます。

よかったらシェアしてね!
もくじ