Click here to load reader
Upload
hiroyuki-ohnaka
View
351
Download
5
Embed Size (px)
DESCRIPTION
SQLアンチパターン読書会の発表スライドです。
Citation preview
ディプロマティック・イミュニティ(外交特権)
2014/10/26
大中浩行
Copyright 2014 Hiroyuki Ohnaka
目的:ベストプラクティスを採用する
• SubversionやGitなどのツールを用いて、ソース
コードのバージョン管理を行う。
• ユニットテストや機能テストを自動化し、実行
する。
• ドキュメント、仕様書、コードコメントを書き、
アプリケーションの要件や実装戦略を記録する。
Copyright 2014 Hiroyuki Ohnaka
アンチパターン:SQLを特別扱いする
「アプリケーション開発のルールは、データ
ベース開発には当てはまらない」
Copyright 2014 Hiroyuki Ohnaka
考えられる理由
• ソフトウェアエンジニアとDBAの役割の区別
• SQL言語とプログラミング言語の性質の違い
• ツールの普及の違い
• データベース管理者へのアクセス権の集中
Copyright 2014 Hiroyuki Ohnaka
アンチパターンの見つけ方
「『軽量な』エンジニアリングプロセス」
「データベース管理者はこのシステムを使わないだろう
から」
「データベースのテーブルや列が使われているかをどう
やって調べればいい?」
「2つのデータベーススキーマを一致させるには?」
Copyright 2014 Hiroyuki Ohnaka
アンチパターンを用いてもよい場合
その場限りのコード
Copyright 2014 Hiroyuki Ohnaka
解決策:包括的に品質問題に取り組む
• 文章化
• バージョン管理
• テスティング
Copyright 2014 Hiroyuki Ohnaka
文章化
• ER図
• テーブル、列、ビュー
• 関連(リレーションシップ)
• トリガー
• ストアドプロシージャ
• SQLセキュリティ
• データベースインフラストラクチャ
• オブジェクトリレーショナルマッピング(ORM)
Copyright 2014 Hiroyuki Ohnaka
バージョン管理
• データ定義スクリプト
• トリガーとプロシージャ
• ブートストラップデータ
• ER図とドキュメント
• データベース管理スクリプト
Copyright 2014 Hiroyuki Ohnaka
テスティング
•テーブル、列、ビュー
•制約
•トリガー
•ストアドプロシージャ
•ブートスタラップデータ
•クエリ
•オブジェクトリレーショナルマッピング(ORM)を使用したクラス
Copyright 2014 Hiroyuki Ohnaka
複数のブランチを扱う