コンピュータには大量のデータが入っていますね。あれはどうやって扱っているか考えたことあるか。コンピュータで大量のデータを扱うための仕組みがデータベースです。中でもリレーショナルデータベースというものが広く使われている。そのリレーショナルデータベースで重要なのがエンティティとテーブルです。このエンティティとテーブルはどういうもので、何が違うのか難しそうですね。これらがどういうもので何が違うのかを、データベースの基本的な考え方からプログラマでもあるライターのwoinaryと一緒に解説していきます。

ライター/woinary

某社で社内向け業務システムの開発、運用を30年近くやっていたシステム屋さん。現在はフリーランス。ガジェットやゲーム、ラノベが大好きなおっさんです。

実体と関係?コンピュータでデータを扱うデータベース

image by iStockphoto

日頃スマホやパソコンで様々なアプリ、サービスを使用していますよね。そこでは様々なデータを扱っています。例えば、SNSではハンドルネームや投稿内容、ショッピングサイトでは取引履歴や住所、氏名など。このようなデータをコンピュータで扱うための仕組みがデータベースです。直訳すると「データの基地」になります。

この中でも広く使われているのがリレーショナルデータベース(関係データベース)と呼ばれるものです。なんの関係かと言うとそれが「エンティティ」。ざっくり言えばエンティティとはデータのこと。この記事ではエンティティとテーブルの違いを中心にデータベースの基礎について解説していきます。

\次のページで「エンティティ:様々なものやデータ」を解説!/

エンティティ:様々なものやデータ

エンティティ(Entity)とは日本語では「実体」です。ただ、実体というと物理的なものを思い浮かべがち。ここでは「存在」と置き換えて考えます。なぜかというと、エンティティはものだけではないため。サービスや概念などのものでないものも含めてあらゆるものがエンティティと考えます。少し難しいので現実で考えてみましょう。

例えばショッピングサイトで買い物する場合を考えてみましょう。まず「商品」というものがありますよね。それを届けてもらうために住所や氏名といった「情報」が必要です。さらに決済するためにカードや〇〇ペイといった「サービス」を利用します。この商品や個人情報、決済サービスなどのすべてが「エンティティ」です。コンピュータで扱う様々なものはすべてエンティティになります。

テーブル:エンティティをコンピュータで扱いやすくしたもの

エンティティはコンピュータで扱うものすべてと説明しましたが、これは考え方なのでそのままではコンピュータで扱えませんコンピュータで扱える形に直す必要がありますよね。リレーショナルデータベースではそのために表を使います

世の中には様々な表がありますよね。カレンダーや時間割、時刻表、番組表などなど。周りを見回すといろいろな表であふれています。言葉や文章で説明するよりも表やグラフを使った方がわかりやすいですよね。コンピュータでもエンティティをコンピュータで扱うために表の形であつかいます。それが「テーブル」です。

実際にやってみよう!コンビニで考えるデータベース

image by iStockphoto

頭で考えていてもよくわからないですよね。ですので実例で考えてみましょう。ここではコンビニを例に考えてみます。コンビニとしましたがスーパーや酒屋・八百屋でも同じなので、分かりやすいように置き換えて考えてください。

店舗や商品?エンティティを考えてみよう

まずはエンティティとは何かを考えてみます。コンビニには店舗がありますよね。無人店舗もありますが通常は店員がいます。駐車場が用意されていることも多いでしょう。もちろん商品がないと始まりませんね。これらすべてがエンティティになります。といっても、これだと幅広すぎてかえって発散してしまいそう。ですので、客が商品を買うことを考えてみましょう。

まずはレシートを見てください。内容に細かい違いがありますが、以下のようなものが書いてあるかと思います。これらのデータはコンビニのコンピュータに入っているわけですよね。つまり、すべてエンティティということになります。

・店の情報(店名、住所、電話番号、他)
・買い物した日時
・レジ打ちした人の情報(レジの番号、レジ打ちした人の名前)
・購入品名、数
・価格
・合計金額
・消費税対象額、消費税額
・クーポンの情報
・支払い方法、金額
・クレジットカード情報(カードを使った場合、カード番号など)
・ポイントの情報(会員番号、発生ポイント、利用ポイントなど)

\次のページで「商品名や値段は?エンティティの内容を表す属性とは」を解説!/

商品名や値段は?エンティティの内容を表す属性とは

レシートを見ただけでもいろいろなエンティティがありますよね。そのエンティティには様々な情報がついてきます。例えば「店の情報」というエンティティには、店舗名や住所、電話番号などの情報がありますよね。これを「属性」と呼びます。ちょっと堅苦しい言葉ですね。

エンティティというものの内容を説明する情報が属性、と思ってください。例えば、コンビニなどでは購入客の性別や大体の年代といった情報をレジから入力していますよね。「客」というエンティティには「性別」、「年代」といった属性があるわけです。また売れた商品についての情報がすぐに本部に送信されます。「商品」エンティティに「商品名」、「価格」、「商品分類」といった属性があるわけです。これらのデータをもとに、コンビニではいつ、どこで、どんな人が、どの商品を買ったかという情報を大量に集め、様々な用途で活用しています。

商品名と価格を並べたもの?表とテーブル

レシートで一番重要なのは購入した商品の情報ですよね。例えば、商品名、単価、個数、商品ごとの合計額、全体の合計額が並んでいます。これは「購入した商品と金額」という表ですよね。

つまり、コンピュータに入っているデータである「購入した商品と金額」というエンティティに対して、実際にそれを表現したものがレシートに出力されている「購入した商品と金額」の表(テーブル)になります。そのテーブルは商品名、単価、個数、商品毎の合計額といった項目(カラム)からできているわけです。

ゲームで考えてみよう!エンティティとテーブルの違い

image by iStockphoto

実例に当てはめてみてエンティティとテーブルの違いが少しわかってきたでしょうか。続いて、同じコンピュータでもゲームの世界を例にして考えてみます。最近は3Dのゲームもすごいですよね。本物のような車や飛行機、船が出てくるゲームもあります。メタバースも話題ですよね。このような3Dゲームをもとにエンティティとテーブルを考えてみます。

エンティティ:ラフスケッチや設定、キャラデザイン

ゲームの登場人物にはいろいろな設定がありますよね。どんな外観でどういう性格なのか、細かく決まっています。その登場人物一人一人の設定がエンティティです。その登場人物たちの外観もまた一つのエンティティになります。エンティティにはさらに別のエンティティが含まれるわけです。このようなエンティティとエンティティの関係がリレーショナル(関係、関連)になります。リレーショナルデータベースとはエンティティとリレーショナルでデータを扱う仕組みです。

例えば、ゲーム内の登場人物は以下のようなエンティティを持つことができます。これらをもとにラフスケッチやキャラデザインといったイラストや、各種設定の文章などをつくるわけですね。いわば登場人物の設計図になります。

・登場人物エンティティ
 ・種族エンティティ→属性:種族、性別、年齢、寿命など
 ・外観エンティティ→属性:身長、肌や髪の色、形など
 ・背景エンティティ→属性:その人物の立場や役割などの設定など

\次のページで「テーブル:3Dデータや実際の動画のキャラ」を解説!/

テーブル:3Dデータや実際の動画のキャラ

キャラデザインやラフスケッチ、設定資料などはゲーム内の登場人物をつくるための重要な資料です。しかし設定だけではゲームの中で動き回る登場人物にはなりませんよね。設計図をもとに実際のデータをつくる必要があります。例えば、3Dゲームなら登場人物の3Dデータが必要ですよね。また、その3Dデータにその人物らしい動きをつける必要もあります。

このように設計図を実際にコンピュータで扱うものに置き換える必要がありますデータベースの場合はテーブルが該当します。

設計図の段階のモデル、モデルを実現した実装

建物を建てたり、製品を組み立てるには設計図が必要です。その設計図をもとに実際のものを作ります。コンピュータの世界でプログラムをつくる場合も、設計図のようなものをつくります。その時はまだ実際のコンピュータで扱うような細かい部分は決めません。最低限必要なものだけの設計図をつくります。この設計図が「モデル」です。

エンティティや属性もモデルの一部。現実のものをいきなりコンピュータであつかう形にするのではなく、一旦、必要最低限のものだけに絞り、それからコンピュータであつかうものをつくり出します。データの場合はエンティティや属性というモデルをまずつくってから、テーブルというデータに直すわけです。その直す作業を「実装」と呼びます。

エンティティは考え方、テーブルはそれを実現したもの

コンピュータの中で様々なデータを扱うときに使うのがデータベースです。その中でも代表的なものがリレーショナルデータベース多くのアプリやサービスで使われています。現実の世界にものをデータベースに当てはめる場合、いきなりはできません。まずは現実のものからプログラムで必要なものだけに削ぎ落とした設計図のようなものが必要です。そこで使うのがエンティティというもの。現実の何かの特徴だけを取り出したものと考えるとわかりやすいかも。

そのエンティティは直接コンピュータではあつかえないので、あつかえるものに直す必要があります。リレーショナルデータベースではそれがテーブル(表)です。現実世界で表をよく見ます。表になっていると人間にもわかりやすいですよね。コンピュータにとっても表はわかりやすいのです。

" /> エンティティとテーブルの違いとは?モデルと実装?データベースの基本からプログラマーが分かりやすくわかりやすく解説 – Study-Z
IT・プログラミング雑学

エンティティとテーブルの違いとは?モデルと実装?データベースの基本からプログラマーが分かりやすくわかりやすく解説

コンピュータには大量のデータが入っていますね。あれはどうやって扱っているか考えたことあるか。コンピュータで大量のデータを扱うための仕組みがデータベースです。中でもリレーショナルデータベースというものが広く使われている。そのリレーショナルデータベースで重要なのがエンティティとテーブルです。このエンティティとテーブルはどういうもので、何が違うのか難しそうですね。これらがどういうもので何が違うのかを、データベースの基本的な考え方からプログラマでもあるライターのwoinaryと一緒に解説していきます。

ライター/woinary

某社で社内向け業務システムの開発、運用を30年近くやっていたシステム屋さん。現在はフリーランス。ガジェットやゲーム、ラノベが大好きなおっさんです。

実体と関係?コンピュータでデータを扱うデータベース

image by iStockphoto

日頃スマホやパソコンで様々なアプリ、サービスを使用していますよね。そこでは様々なデータを扱っています。例えば、SNSではハンドルネームや投稿内容、ショッピングサイトでは取引履歴や住所、氏名など。このようなデータをコンピュータで扱うための仕組みがデータベースです。直訳すると「データの基地」になります。

この中でも広く使われているのがリレーショナルデータベース(関係データベース)と呼ばれるものです。なんの関係かと言うとそれが「エンティティ」。ざっくり言えばエンティティとはデータのこと。この記事ではエンティティとテーブルの違いを中心にデータベースの基礎について解説していきます。

\次のページで「エンティティ:様々なものやデータ」を解説!/

次のページを読む
1 2 3 4
Share: