プログラミング未経験おじさんの備忘録

本ブログはプログラミング未経験者の拙い学習の記録です。

学習[44]日目

本日の学習内容

 

データベース設計に関しての基本フローと用語の理解 

データベース設計は主に下記の手順で進められます。

データベースで管理するエンティティの決定

          ↓
それぞれのデータの持つアトリビュートの決定

          ↓
エンティティ同士のリレーションの決定

          ↓
データを実際にデータベースのテーブルとして定義

 

上記に関する用語で新しく学習した用語一覧は下記になります。

●エンティティ

サービスの中で管理する必要のある情報や概念の事

アトリビュート

エンティティの属性の事

例えば、SNSなどのサービスではユーザーや投稿内容などの情報がエンティティにあたるものでユーザーの持つ名前や年齢等はアトリビュートになります。

●リレーション

エンティティとエンティティとの間に存在する関係性の事

例えば、SNSサービスにおけるエンティティであるユーザーと投稿内容に関しては関係性があると言えます。

 

他にもデータベース設計に際して理解するべき基本的な用語を列挙します。

●主キー primary_key
 テーブル内のレコードを判別するための識別子となるカラム
 例えば、idという名前のカラムが主キーにあたる場合が多い

●外部キー foreign_key
 異なるテーブルのレコードと関係性を持つ場合に必要なカラム
 他のテーブルのレコードを識別するために使用する

    railsにおける外部キー制約が付いているカラムの作成を行う場合には、

    基本的にreference型を使用する方が楽!

    ※使用しない場合にはforeign_key: trueで外部キー制約にならない

   その為、addで別に記述する必要性があるが、コードが多くなってしまう
 また、外部キー制約をつける場合、インデックスは自動で付与されるらしい(未確認)

●not null 制約 null: false
 テーブルの属性値にNULLが入ることを許さない制約

●一意性制約 unique
 一意性とはユニークで他とは違うという意味で、一意性制約を設定した
 カラムには同じ値を設定できなくなる

●インデックスの設定 add_index
 データベースの機能の一つで、テーブル内のデータ検索を高速化すること可能
 インデックスはカラムに対して設定することができ、設定したカラムでの
 検索が高速になる

 

明日は実際にデータベースを設計するためのユースケース図とER図に関して学んでいきたいと思います。

時間に余裕があれば実際に書いて設計も進めていければと思います。

 

最後までお読み頂き有難うございます。