skillup

技術ブログ

Database

DBの基礎 テーブルとは

投稿日:

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

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

テーブルとは?

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

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

テーブルの構成要素

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

メモ

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

 

-Database
-

執筆者:


comment

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

関連記事

no image

論理設計のグレーノウハウ 列持ちテーブル、集計キー、多段ビュー

前回に引き続き論理設計のグレーノウハウについて。 Contents1 列持ちテーブル1.1 メリット1.1.1 シンプルな設計1.1.2 入出力のフォーマットと合わせやすい1.2 デメリット1.2.1 …

no image

複数GROUP BYでの注意

GROUP BYしたときに件数が増えるという現象があったので一応メモ。というか当たり前のことですが・・・ たとえば以下のようなテーブルがあったとします。 student id student_name …

no image

DBUtils活用

普段はJavaEEで開発を行っているのでデータベースへのアクセスはJPAを活用しています。 ただ、JavaEE環境だとglassfish経由でデータベースを動かしているので、glassfishを動かさ …

no image

netbeansのJPQL補助機能

JPAでは基本的に生のSQLではなく、JPQLを使って書きます。 SQLでもタイプミスにイライラさせられることは多いのですが、JPQLはもっとですね・・・爆 そこで使えるのがNetbeansの入力補助 …

no image

MySQL safe mode

MySQLに関してしっかりパスワードをチェックしていれば問題ありませんが、中にはrootパスワードをわすれた!なんてこともあるでしょう。 そんなときはsafe modeで実行することでrootのパスワ …