skillup

技術ブログ

Database

DBの基礎 テーブルとは

投稿日:

CSSを学習したあとはデータベースの学習などを。

参考図書:「達人に学ぶDB設計指南書」基本的にはこれを読んでいきます。が、現状よくわからないところは飛ばしていきます・・・

テーブルとは?

まずは基本的なところから行きます。

  • プロジェクトの概念を論理的に表現したもの
  • 共通属性をもったレコードの集合体
  • テーブル名はすべて英語の名詞(複数形)で書くことができる。もしできなければどこかが間違っている。

テーブルの構成要素

  • 全ての属性をカラムとして表現できる
  • 主キー(一意に識別できる)を必ず持つ。通常番号や半角英数字の記号(固定長文字列)が入ることが一般的.
  • 複数列の組み合わせで作られる複合キーというものも存在することあり。例:会社ID+社員ID。
  • 通常は外部レコードと接続する外部キーが必要になることが多い。互いに関連している(参照整合性制約)。
  • 外部キーは人間の親子関係のようなもの。互いに関連しているので一方を削除する場合は互いを削除する必要がある。削除順は子→親としなければいけない(合わせて削除する行為をカスケードという。)
  • キーには通常番号や半角英数字などの固定長文字列が入ることが一般的。
  • 外部キーには参照整合性以外にもNOT NULL制約、一意制約、CHECK制約(値の範囲を決める)などが入ることがある。

メモ

  • まずプロジェクトの概念図→そこから論理モデル→物理モデルへと落とす。この物理モデルを実体化したものがテーブル
  • 全ての属性をカラムとして持たせる
  • テーブル間同士が1:1、1:Nになるかいなかをしっかり把握

 

-Database
-

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

no image

JPAでの多対多のリレーション

以前、このエントリーでJPAのリレーションについて説明しました。 今回は多対多について説明します。 Contents1 テーブル構成2 ソース2.1 CDのエンティティ2.2 Artistのエンティテ …

no image

transactionが切れた場合のロックの復旧方法

transactionをスタートしたまま、commitせずにプログラムを途中で止めた場合の処理について。 不用意にプログラムを止めないようにしましょう。 Contents1 ロックのメカニズム1.1 …

no image

リレーションを含んだテーブルでの副問い合わせ

本日はSQLネタです。 下記のようなテーブル構成があったときとします。 注文ヘッダと注文詳細は(1:N)とします。 ここで、product_id=5を含んだ注文ヘッダーレコードを取り出したいとします。 …

no image

cakePHPでのマイグレーション

開発を続けているとデータベースのカラムの構造が変更するってことはしょっちゅうですが、管理がいい加減だとメンバー間でテーブルの構造が変わっていたり、本番と開発で違ってくるなどのトラブルが続出します。 そ …

no image

外部結合 応用編2

引き続き結合についてです。 Contents1 1対Nの結合に関して2 完全外部結合3 差集合(class_aだけに存在するものとclass_bだけに存在するもの)3.1 class_aのみ3.2 c …

アーカイブ