18
DB設計でこだわりたい 三つの要素 Takahiro YAMADA @yamadamn 2015/02/21

DB設計でこだわりたい三つの要素

Embed Size (px)

Citation preview

Page 1: DB設計でこだわりたい三つの要素

DB設計でこだわりたい 三つの要素

Takahiro YAMADA @yamadamn 2015/02/21

Page 2: DB設計でこだわりたい三つの要素

自己紹介

●本日のレガシー枠 o昔、DB屋さん (~5年前)

o今、ミドルウェア製品の構築・サポート

▪ Oracle ACE (Middleware & SOA) ● DB資格

oデータベーススペシャリスト

oベンダー系 Oracle, DB2, SQL Server

▪ただしバージョンは相当レガシー

Page 3: DB設計でこだわりたい三つの要素

アジェンダ

一. ネーミング

二. データ型の使い分け

三. 制約の使いどころ

Page 4: DB設計でこだわりたい三つの要素

ネーミング

Page 5: DB設計でこだわりたい三つの要素

ネーミング

●ネーミングの流派

●ネーミングの対象

種類 さらに細かい流派

英語 大文字、小文字

ローマ字 ヘボン式、日本式

日本語 全角、半角

対象 考慮する要素

テーブル(エンティティ)テーブルID接頭辞、接尾辞

カラム 主要語、修飾語、区分語その他オブジェクト 制約、インデックス etc.

Page 6: DB設計でこだわりたい三つの要素

ネーミング

●ネーミングの重要性

o様々な機会に参照

o意味や概念を推測・認識する手がかり

●整合性・一貫性の維持

o一貫したネーミング種類

o正式名称と略称の対応

o他システム連携時は、ビューなどで化粧直し

Page 7: DB設計でこだわりたい三つの要素

ネーミング

●一意性の確保

o類義語・同義語の回避

o同音語にも注意

●避けたほうがよいネーミング例

o~情報

o~管理

Page 8: DB設計でこだわりたい三つの要素

データ型の使い分け

Page 9: DB設計でこだわりたい三つの要素

データ型の使い分け

●データ型の種類

種類 具体的なDB型

数値 INT, FLOAT, DECIMAL

文字CHAR, VARCHARNCHAR, NVARCHARCLOB, NCLOB

日付 DATE, TIME, TIMESTAMP

バイナリ BLOB

その他真理値型、配列型、XML型、ユーザー定義型 etc.

Page 10: DB設計でこだわりたい三つの要素

データ型の使い分け

●利用するデータ型の絞り込み

oシンプルさの維持

●ネーミングとデータ型の対応付けポリシー

oフラグ、区分

o ID、コード、番号

o日付、年月、開始・終了

 

Page 11: DB設計でこだわりたい三つの要素

データ型の使い分け

●桁数の考慮

oきりのよい数字

o容量見積もりとの関係

oバイト数と文字数

Page 12: DB設計でこだわりたい三つの要素

制約の使いどころ

Page 13: DB設計でこだわりたい三つの要素

制約の使いどころ

●制約の種類種類 DBでの設定 説明

主キー制約 PRIMARY KEYテーブルに一つのみ一意であり、NULLを許可しない

NOT NULL制約 NOT NULL NULLを許可しない

一意制約 UNIQUE 一意で重複を許可しない

チェック制約 CHECK 条件に一致するデータのみ許可

参照整合性制約(外部キー)

FOREIGN KEY / REFERENCES テーブル間の整合性を維持

デフォルト制約(デフォルト値) DEFAULT 値を指定しない場合の初期値

Page 14: DB設計でこだわりたい三つの要素

制約の使いどころ

●主キー制約

o自然キーと人工キー(代替キー)

o単一キーと複合キー

● NOT NULL制約

o空文字の扱い

o 3値論理やNULLの混乱防止

Page 15: DB設計でこだわりたい三つの要素

制約の使いどころ

●一意制約

o DBMSによる違いに注意

●チェック制約

oビジネスルールは実装しない

oデータ型の補助程度に利用はあり

Page 16: DB設計でこだわりたい三つの要素

制約の使いどころ

●参照整合性制約(外部キー)

o OLTPでは付加することを考慮

o単体(自動化)テストとの兼ね合い

oカスケード更新・削除には頼らない

●デフォルト制約(デフォルト値)

o基本的には頼らない

o手動データ入力や、カラム追加時の互換性維持

Page 17: DB設計でこだわりたい三つの要素

まとめ

●ネーミング

o名は体を表す

o一貫性を保つ

●制約、データ型

oルールやポリシーを定める

o理由も含め明文化しておく

Page 18: DB設計でこだわりたい三つの要素

DB設計でこだわりたい 三つの要素

Takahiro YAMADA @yamadamn 2015/02/21

ご清聴いただき、ありがとうございました