Amazon Relational Database Service

ではじめるPostgreSQL
オープンセミナー2014@広島
What is it?

今日、皆さんにお伝えしたいことは2つ
What is it?

RDS for PostgreSQLはすぐ始めれます
What is it?

ただしデータの扱いは代わりません
What is it?

つまりデータはこれからも大切な存在です
What is it?

今日はそんなDBのお話をします
あじぇんだ
1

自己紹介

2

RDS for PostgreSQLとは

3

RDS for PostgreSQLの使い方

4

データについて

5

まとめ
あじぇんだ
1

自己紹介

2

RDS for PostgreSQLとは

3

RDS for PostgreSQLの使い方

4

データについて

5

まとめ
自己紹介
名前:曽根

壮大(そね

たけとも)

年齢:29歳(三人の子供がいます)
職場:まほろば工房

所属:日本PostgreSQLユーザ会
技術的にはWeb系でLLとかRDB大好きです
自己紹介
名前:曽根

壮大(そね

たけとも)

年齢:29歳(三人の子供がいます)
職場:まほろば工房

所属:日本PostgreSQLユーザ会
PBXを作ったりVyattaの使ったりしてます
自己紹介
名前:曽根

壮大(そね

たけとも)

年齢:29歳(三人の子供がいます)
職場:まほろば工房

所属:日本PostgreSQLユーザ会
中国支部長やってます
あじぇんだ
1

自己紹介

2

RDS for PostgreSQLとは

3

RDS for PostgreSQLの使い方

4

データについて

5

まとめ
PostgreSQLとは

PostgreSQLとは
PostgreSQLとは

オープンソースなリレーショナルデータベース
PostgreSQLとは
特 徴
PostgreSQLとは
特 徴
高機能・高可用性
PostgreSQLとは
特 徴
高機能・高可用性
日本語ドキュメントが豊富
PostgreSQLとは
特 徴
高機能・高可用性
日本語ドキュメントが豊富

コミュニティが活発
PostgreSQLとは
ver.

リリース日

主な追加機能

8.4 2009-07-01

再帰クエリ, ウィンドウ関数, 列単位のアクセス制御, SQLと
関数の性能解析機能

9.0 2010-09-20

レプリケーション, 一括権限変更, 匿名プロシージャ, 64bit
Windows サポート, 移動平均, 列/条件トリガ, 一意性制約の
遅延, 排他制約

9.1 2011-09-12

同期レプリケーション, 外部テーブル, パッケージ管理,
UNLOGGEDテーブル, 更新可能なWITH句, 近傍検
索, SELinux権限制御

9.2 2012-09-10

インデックスオンリースキャン, カスケードレプリケーショ
ン, JSON型, 範囲型

9.3 2013-09-09

マテリアライズドビュー, 外部テーブルへの書き出し, イベン
トトリガ, データページ・チェックサム, LATERAL句
PostgreSQLとは

ビックデータ
PostgreSQLとは

データマイニング
PostgreSQLとは

データサイエンス
PostgreSQLとは

PostgreSQLは複数のアプローチを用意します
AWS&RDSとは

AWS&RDSとは
AWS&RDSとは
AWS
Amazon Web Servicesの略語です
AWS&RDSとは
AWS
つまりAmazonが提供するIaaSです
AWS&RDSとは
RDS
Relational Database Service
AWS&RDSとは
RDS
AWS上でRDBを提供するサービスです
RDS for PostgreSQLとは

RDSでPostgreSQLを構築します
RDS for PostgreSQLとは

百聞(100説明)は一見(1デモ)に如かず
あじぇんだ
1

自己紹介

2

RDS for PostgreSQLとは

3

RDS for PostgreSQLの使い方

4

データについて

5

まとめ
RDS for PostgreSQLの使い方

デモなぅ
あじぇんだ
1

自己紹介

2

RDS for PostgreSQLとは

3

RDS for PostgreSQLの使い方

4

データについて

5

まとめ
データについて

データの大切なこと
データについて
データを消したら元に戻せません
データについて
データを消したら元に戻せません

データの変更は大変です
データについて
データを消したら元に戻せません

データの変更は大変です
データの追加は可能です
データについて

つまりDB設計の新規作成は簡単です
データについて

しかしDB設計の変更は大変です
データについて

なぜか?
データについて

仕様変更の際には
データについて
データを消せない
データについて
データを消せない

データを変更できない
データについて
データを消せない

データを変更できない
データの追加で対応
データについて
データを消せない

データを変更できない
データの追加で対応
仕様変更の対応について
例 Webアンケート

択一回答
仕様変更の対応について
例 Webアンケート
仕様変更の対応について
例 Webアンケート

テーブル構造
仕様変更の対応について
例 Webアンケート
仕様変更の対応について
例 Webアンケート
ここに「択一回答」があるじゃろ?
( ^ω^) ←クライアント

⊃ 択一回答⊂
仕様変更の対応について
例 Webアンケート
これを
( ^ω^)

⊃) 択一回答 (⊂
仕様変更の対応について
例 Webアンケート
こうして…
( ^ω^)

≡⊃⊂≡
仕様変更の対応について
例 Webアンケート
こうじゃ…
( ^ω^)

⊃ 複数回答 ⊂
仕様変更の対応について
例 Webアンケート
仕様変更の対応について
例 Webアンケート

どのように対応するか
仕様変更の対応について
例 Webアンケート
対応 1
CSV区切りで入れる
仕様変更の対応について
例 Webアンケート
仕様変更の対応について
例 Webアンケート
問題点

検索が難しい
仕様変更の対応について
例 Webアンケート
問題点

検索が難しい
集計が難しい
仕様変更の対応について
例 Webアンケート
問題点

検索が難しい
集計が難しい
更新が難しい
仕様変更の対応について
例 Webアンケート
対応 2

選択肢の数だけカラムを増やす
仕様変更の対応について
例 Webアンケート
仕様変更の対応について
例 Webアンケート
問題点

項目追加の度に列が増える
仕様変更の対応について
例 Webアンケート
問題点

項目追加の度に列が増える
データの可読性の低下
仕様変更の対応について
例 Webアンケート
問題点

項目追加の度に列が増える
データの可読性の低下
データの整合性を担保するのが難しい
仕様変更の対応について
例 Webアンケート

アンチSQLパターン
仕様変更の対応について
仕様変更の対応について
SQLアンチパターンとは

DBに関する設計のアンチパターン
仕様変更の対応について
SQLアンチパターンとは

※ただしMySQLベース
仕様変更の対応について
SQLアンチパターンとは

ですが多くのRDBに共通します
仕様変更の対応について
SQLアンチパターン
仕様変更の対応について
SQLアンチパターン
例1) ジェイ・ウォーク
仕様変更の対応について
SQLアンチパターン
例1) ジェイ・ウォーク
例2)メタデータトリブル
データについて
データを消せない

データを変更できない
データの追加で対応
仕様変更の対応について
SQLアンチパターン
データが積み重なってしまうと
後から変更が難しい
データについて
どんなにきれいなコードでも

データが汚いとリファクタリングや運用が大変
仕様変更の対応について
例 Webアンケート
対応 3
正規化する
仕様変更の対応について
仕様変更の対応について

最初から正規化していえば両対応
仕様変更の対応について

集合でデータを表現する
仕様変更の対応について

変更に強くなる
仕様変更の対応について

PostgreSQLには別のアプローチがあります
仕様変更の対応について
例 Webアンケート
対応 4
配列型
仕様変更の対応について
仕様変更の対応について
例 Webアンケート
配列型
仕様変更の対応について
例 Webアンケート
配列型

INDEXが効く
仕様変更の対応について
例 Webアンケート
配列型

INDEXが効く
柔軟な検索
仕様変更の対応について
例 Webアンケート
配列型

INDEXが効く
柔軟な検索
任意の更新も出来る
仕様変更の対応について

銀の弾丸ではない
あじぇんだ
1

自己紹介

2

RDS for PostgreSQLとは

3

RDS for PostgreSQLの使い方

4

データについて

5

まとめ
まとめ

RDS

for

Postgresはすぐ出来る
まとめ

DB設計は大事
RDS for PostgreSQLの使い方
このデモの詳細はこちらにまとめてあります

AWSのPostgreSQL(RDS)を
使えるようになるまでの手順
http://soudai1025.blogspot.jp/2014/01/awspostgresqlrds.html
Postgresの使い方について
このデモの詳細はこちらにまとめてあります

Webアプリケーションを作るときに
知ってると嬉しいPostgreSQLの使い方
http://soudai1025.blogspot.jp/2013/12/webpostgresql.html
DBを極めるには

沢山の設計を見る
DBを極めるには

中国地方DB勉強会

http://dbstudychugoku.github.io/
まとめ

良い環境は良い素質を育てる
ご静聴ありがとうございました。

Osh2014