【Django】データベースを解説!モデル?レコード?《Day5》

Django


こんちゃー。ひろちょんです。

今までの記事では、入門~ビュー(View)に関してやってきましたが、ついにデータベースを扱っていく話に突入していきます。

つまりMVC(モデル・ビュー・コントローラー)のMの部分であるモデルについて触れていくということですなー。

内容がバックエンドっぽくなってくるので、お楽しみに(‘ω’)ノ

Djangoのバージョンは2.2.6です

スポンサードサーチ

出てくる用語を確認しよう!(データベース,モデル,レコード…)

データベース』と『モデル』といった言葉は何かと耳にしますかね…

今回はバックエンドで使われている用語たちを役割と共に解説していく回になります。

↓主に出てくる用語達はコチラ↓

  1. データベース
  2. テーブル
  3. レコード
  4. モデル
  5. モデルのインスタンス

これら6つの用語は大きく2つにわけることができます。

それが…

データベース側 データベース、テーブル、レコード
モデル側 モデル、モデルのインスタンス

なぜこの2つに分けられたかというと、簡単にいうと、それぞれ動いている場所が違うからです。

まずは上のデータ側の解説からしていきます!

データベース

データベースとはおそらく想像通りで、『データの塊』でも間違いではないです。

データベースとは?

ですが厳密にいうとデータベースとは、『データを保管することに特化したプログラム』のことを言います。

そのデータベースにも色々種類がありますが、Djangoにて対応しているのがコチラの3つになります。

  • MySQL
  • PostgreSQL
  • SQLite

↑コチラの名前も聞いたことはあるのではないでしょうか?

これらはデータベース言語の名前を示していたんです!

3つのデータベースにもそれぞれ特徴があるのですが、詳しい事はググってみてください(‘ω’)ノ

今回はその3つの中でもプログラムのサイズが小さく、今すぐ使うことできるSQLiteを使っていきます。

データベースの構造

データベースは『データベース』『テーブル』『レコード』で構成されていて、先ほど話したデータベースがすべてを覆っていて、その中にテーブル、その中にレコードが埋まっているイメージですね。

そしてデータベースは直接データを格納することができません。データベースとは『テーブル』をまとめて格納する場所になります。

テーブルとは?

テーブルとはデータを保存する際の形式を定義する場所になります。例えば乃木坂メンバーの名前、年齢、生年月日を保存する…など。

ですがこのテーブルがデータを保管しているわけではなく、『レコード』にてデータを保管しています。

レコードとは?

レコードとはテーブルが定義した形式に従って、データを保管する場所になります。

テーブルが定義した形式に従って』とは↓の2つの条件を満たしている事を言います。

  • テーブルが定義した以外のデータは格納することができない
  • テーブルが定義したデータを必ず格納しなければいけない

※厳密にいうと『必ず格納しなければいけない』は変更することができて、空白でもOKと設定すれば空白でも問題ないです。

これら3つの『データベース』『テーブル』『レコード』が組み合わさってデータベースを作っているんですね。

これらを分かりやすくした図がコチラ↓
Databasegaiyo

コチラはそれぞれで色分けしていて、『乃木坂というデータベース』に、『メンバーというテーブル』を作って、『飛鳥と日奈子のレコード』を保管しています。

スポンサードサーチ

モデル

次にモデルの解説へ入ります。

モデルとは?

モデルとはテーブルの内容をDjango側で受け渡しできるものを指します。

つまりデータベース内のテーブルを定義する役割がモデルという訳です。先ほどの図を使うと、『名前』『年齢』『生年月日』を定義する場所がモデルとなります。

モデルのインスタンス

テーブルをモデルで定義するなら、レコードもどこかと対応してそうですね!

実はレコードはモデルのインスタンスと対応しているのです。

データベースとモデルを使って何をしていくのか

この記事では紹介しませんが、この2つを使ってデータベースとやり取りしていきます。

データベースからレコードのデータを取り出す際に、またこの話が重要となってくるのでよく理解しておく必要がありますね~。

次回はManagerクラスのobjectsを使って、データベースからモデルへデータを渡す方法について解説していきたいと思います。
記事ができるまで少々お待ちを…

もっと自分で『Djangoを学んでいきたい!』という方は僕も使っている↓コチラの本がオススメです。


最後まで読んで頂きありがとうございました。

気づいたこと、記事の感想、この文章おかしい…などなどございましたら、お問い合わせページにてお問い合わせください。

ついでにTwitter(@heacet43)フォローとかこのサイト(https://heacet.com)をお気に入りにしてくれると嬉しいなぁ…笑