どうもこんにちは!
サバ缶(@tech_begin)です。
データベースについて学習していると必ずと言っていいほど目にする『CRUD(クラッド)』。
今回の記事では、この「CRUD」について図解を交えてご紹介していきます!
もし分かりにくい・間違っている箇所があれば、Twitterなどでご連絡いただけると嬉しいです🙇♂️
CRUDとは
CRUD(クラッド)は、データベースの操作処理で必要な機能の頭文字をとった言葉のことです。
- C: Create(生成)
- R: Read(読み取り)
- U: Update(更新)
- D: Delete(削除)
この4種類の操作は、データベースの基本操作(機能)としてあります。
SQLに置き換える
SQLとは、データベースを制御・操作するために使用する言語のことです。
(プログラミング言語とは少し異なるので注意しましょう)
このSQLをCRUDに置き換えると以下のようになります。
- C: Create(生成)
- INSERT
- R: Read(読み取り)
- SELECT
- U: Update(更新)
- UPDATE
- D: Delete(削除)
- DELETE
ユーザインタフェースに置き換える
CRUDは、データベースの操作だけでなくユーザインタフェースにも当てはまります。
一般的なシステムでは、非常に基本となる機能としてあるため、機能の整理の際にも役立てることが可能です。
例えばSNSサービスで例えると以下のような機能です。
- C: 新たなユーザを追加/生成できる
- R: 登録済みのユーザを検索/表示できる
- U: 登録済みのユーザを編集/更新できる★
- D: 登録済みのユーザを削除できる★
このような基本的な機能や操作を可能にしなければシステムとして不完全と言えます。
余談ですが「★」がついている機能については、登録している本人しか操作できないようにする必要があります。
「権限」の考慮なども必要ですね。
【補足】永続性
Wikipediaでは、CRUDを「ほとんど全てのコンピュータソフトウェアが持つ永続性の4つの基本機能のイニシャルを並べた用語」と定義しています。
この「永続性」について少し補足します(読み飛ばしても大丈夫です)。
永続性は、完全性を保証するためにある
ほとんどのソフトウェア、システムでは「データ完全性(データベース内のデータの正確性や妥当性)」が求められます。
銀行口座システムで例えてみましょう。
今日は給料日。完全性に欠けたシステムだと、知らない誰かに自分の給料が振り込まれる可能性も出てきます。
そんな完全性に欠けたシステムでは不安感を抱きますよね。従って「データ完全性」が求められます。
そのデータ完全性を保証するために「永続性」が求められます。
ほとんどのソフトウェアには完全性が求められている
その完全性を保証するために、永続性が求められる……ということです。
永続性の定義とは
永続性の定義にもいろいろありますが、ここでは「生成したデータを再利用できる状態にすること」と言えます。
記憶装置(リンク)にデータを保存しただけでは、永続性があるとは言えません。
そのデータを更新したり参照することができて初めて永続性があると言える、ということを表しています。
そりゃそうですよね。データだけ保存ができて何も見れないシステムなんか、使い物になりません。
まとめ
さて、今回のCRUDは以上です!
「具体的な機能やサービス」ということではなく、『データベースの基本的な考え方』であることを頭に置いておくと理解しやすいかもしれません。
参考になれば嬉しいです!
【おまけ】基本情報技術者試験の問題を見てみよう!
CRUDマトリクスの説明はどれか。
- ア:ある問題に対して起こり得る全ての条件と,各条件に対する動作の関係を表形式で表現したものである。
- イ:各機能が,どのエンティティに対して,どのような操作をするかを一覧化したものであり,操作の種類には生成,参照,更新及び削除がある。
- ウ:システムやソフトウェアを構成する機能(又はプロセス)と入出力データとの関係を記述したものであり,データの流れを明確にすることができる。
- エ:データをエンティティ,関連及び属性の三つの構成要素でモデル化したものであり,業務で扱うエンティティの相互関係を示すことができる。
正解:イ