ume

データベースの必要性とデータベース設計について

前書き

私はプログラミング学習歴6〜7ヶ月の初心者です。基礎学習をある程度終えてポートフォリオを作成しようと思ったのですがデータベースを自ら設計したことがなくそもそもデータベースの知識なしでは良いアプリは作れないので初心者の私がデータベースの設計について学んだことを共有させていただきたいと思い記事に残します. またこれからデータベースを始めて学ぶ方が本記事で少しでもデータベースの概要を抑えられるように記事にしています。

目次

①そもそもデータベースとは.
②データベース設計とは、またなぜデータベース設計が大切なのか.
③データベースからデータを取得する際のデータベースの裏側の挙動について.

①そもそもデータベースとは

データベース=たくさんのデータの集まり。 役割としてはデータの保存と後から保存したデータを活用するためにデータベースが必要.
たくさんのデータの集まり?どのようにデータを活用するのか?
コンビニを例に挙げてみる.

データベースが「パン」「120円」というデータを覚えてくれているおかげでレジのスキャナーで商品のバーコードを読み取ると120円ですと画面に表示される. 上の画像の通りデータベースは例えばコーラ、150円や唐揚げ180円などのたくさんのデータを保存しており、後から簡単に保存したデータを取得し活用できる。

②データベース設計とは、またなぜデータベース設計が大切なのか.

データベース設計とは⇨どのような情報をどういった構造でデータベース化するのか設計することが必要です。このことを「データベース設計」(データモデリング)といいます。例えると家を建てる前の設計図に似ている。家の設計図を作る際ドアの大きさ、ドアを設置する角度等を事前に決めておかないと、設置してから「ドアが歪んでいる」、『ドアが大きすぎる、小さすぎる』など後から取り返しのつかない問題が発生するようにデータもどういった構造でどのようにデータベースという家に置くのかを事前に決めておくことで色んな問題を引き起こさないようにしている

③データベースからデータを取得する際のデータベースの裏側の挙動について.

例えばTwitterのようなアプリがあるとして全ユーザーを画面に表示したい時Userみたいなボタンをクリックするとこのように全ユーザーが表示される.
この時viewからデータベースに全ユーザーの情報を頂戴という指示が飛びデータベースはその全ユーザーの情報をviewに返してるので全ユーザーが画面に表示されているのですが。この時データベースはどのようにユーザーのほしいデータを取得しユーザーにデータを渡し表示しているのかの挙動を見ていく.
その際3つの概念を知る必要がある.
①外部スキーマ=今自分が見ている画面のこと=view.
②概念スキーマ=テーブルの種類とか決めることリレーショナルデータベースにするとか階層型にするとか決める.
③内部スキーマ=データベースのデータの型を決めるstring型にするとか数値型にするとか.