More Related Content
PDF
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル) PDF
PDF
PDF
PDF
データモデルについて知っておくべき7つのこと 〜NoSQLに手を出す前に〜 PDF
RDBにおけるバリデーションをリレーショナルモデルから考える PDF
20120830 DBリファクタリング読書会第三回 PDF
What's hot
PDF
PDF
PDF
PDF
PDF
What's New in MySQL 5.7 Replication PPTX
PPTX
PPTX
第51回NDS PostgreSQLのデータ型 #nds51 PDF
PDF
Getting start with knockout.js PDF
ODP
PDF
PDF
PDF
IT業界における伝統芸能の継承 #hachiojipm PDF
PDF
PDF
PDF
JavaScriptユーティリティライブラリの紹介 Viewers also liked
ODP
Data analytics with hadoop hive on multiple data centers PDF
PostgreSQLの実行計画を読み解こう(OSC2015 Spring/Tokyo) PDF
【17-E-3】 オンライン機械学習で実現する大規模データ処理 PDF
Cloudera Manager4.0とNameNode-HAセミナー資料 PPTX
Writing Yarn Applications Hadoop Summit 2012 PDF
Lars George HBase Seminar with O'REILLY Oct.12 2012 PPTX
Future of HCatalog - Hadoop Summit 2012 PDF
PDF
KEY
Hadoop Summit 2012 - Hadoop and Vertica: The Data Analytics Platform at Twitter PDF
【SQLインジェクション対策】徳丸先生に怒られない、動的SQLの安全な組み立て方 PPTX
PDF
Datalogからsqlへの トランスレータを書いた話 PPTX
PPTX
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~ Similar to Database smells
PDF
リレーショナルデータベースとの上手な付き合い方 long version PPTX
PDF
TAM 新人ディレクター システムスキルアップ プログラム 第6回 「データベース」 PPT
今年こそ始めたい!SQL超入門 セミナー資料 2024年5月22日 富士通クラウドミートアップ PDF
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版) PPT
今年こそ始めたい!SQL超入門 MIRACLE Linux Meetup版 0620 PDF
PDF
PDF
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 PDF
PPTX
PPTX
企業等に蓄積されたデータを分析するための処理機能の提案 PPTX
PDF
Bind Peek をもっと使おうぜ!(柴田 歩) - JPOUG Advent Calendar 2014(Day 5) - PDF
PDF
DBP-009_クラウドで実現するスケーラブルなデータ ウェアハウス Azure SQL Data Warehouse 解説 PDF
PDF
PDF
PDF
More from Mikiya Okuno
PDF
サポート一筋24+年のエンジニア、サポートのイロハは E4500に教わった。 Sun Microsystems 勉強会〜1994年頃から2000年頃の思い... PDF
MySQL Cluster 新機能解説 7.5 and beyond PDF
MySQL 5.7 トラブルシューティング 性能解析入門編 PDF
私は如何にして詳解 MySQL 5.7を執筆するに至ったか PDF
What's New in MySQL 5.7 Security PDF
PDF
What's New in MySQL 5.7 InnoDB PDF
What's New in MySQL 5.7 Optimizer @MySQL User Conference Tokyo 2015 PDF
MySQL Cluster 7.4で楽しむスケールアウト @DB Tech Showcase 2015/06 PDF
PDF
PDF
PDF
カジュアルにMySQL Clusterを使ってみよう@MySQL Cluster Casual Talks 2013.09 ODP
MySQl 5.6新機能解説@第一回 中国地方DB勉強会 PDF
MySQL 5.6新機能解説@dbtechshowcase2012 PDF
ODP
Performance Schema @ MySQL Casual #2 Database smells
- 1.
- 2.
免責事項
● 本プレゼンテーションにおいて示されている見解は、私自身
の見解であって、オラクル・コーポレーションの見解を必ず
しも反映したものではありません。ご了承ください。
- 3.
自己紹介
● 今日は個人として来ています。
– http://nippondanji.blogspot.com/
– Twitter: @nippondanji
● MySQL サポートエンジニア
– 2000 年にサン・マイクロシステムズ入社
– 2007 年に MySQL KK へ転職
– 気付くとまたサン・マイクロシステムズに・・・
– 現在は日本オラクルに在席。
– サポート一筋 12 年
● 日々のしごと
– MySQL トラブルシューティング全般
– Q&A 回答
など
- 4.
- 5.
- 6.
- 7.
- 8.
- 12.
サポートの日常
● そもそも既に困っているからサポートへ
– お客様が既に臭いに気づき・・・
– 手に負えないからサポートへ!!
– 既に手遅れな場合も
● よくあるパターン
– 個性的なテーブルを目にすること幾多
– ややこしいクエリ
– 膨大なスロークエリログ
- 13.
- 14.
世界は不吉な臭いで充満している!!
● 全員が気づいていないことは誰も気付けない
– ベストでないプラクティスが慣習に
– みんなそれが普通だと思っている
● 日本的なるもの
– 盲目的な前例主義
– 変更を許さない官僚主義
– 面子
● 間違いを指摘できない
● 指摘しても聴く耳を持たれない
- 15.
- 16.
- 17.
- 18.
- 19.
お見積もりは
テーブルひとつにつき○○万円です。
→ じゃあテーブル数を減らそう!
http://sec.ipa.go.jp/std/ent01-c.html
テーブル数が減れば良いってもんじゃ・・・
- 20.
- 21.
ほとんどの問題はテーブル設計に帰着する
● ひと言で言うと、リレーショナルモデルを無視した設計に
なっている場合は悲劇につながる。
– リレーショナルモデルを正しく使おう!!
● 知らない場合はまず勉強しよう!!
– リレーショナルモデルを知らずに RDBMS を使うのは、オブ
ジェクト指向を知らずに Java を書くようなもの。 HTML
を知らずにウェブプログラムを書くようなもの。運転の仕
方を知らずにクルマを走らせるようなもの。超危険!!
● リレーショナルモデル
– リレーションの演算
– 集合論理
● データベース設計理論
– 正規化
– 直交性
- 22.
- 23.
- 24.
RDBMS の落とし穴
● リレーショナルモデルに従わなくても強力だったりする
– データに永続性がある
– データをメモリ上にキャッシュできる
– トランザクションがある
– SQL によって柔軟な検索がおこなえる
– インデックスにより高速な検索がおこなえる
– バックアップやレプリケーションなどのツールが充実
– 超便利!!
● 単なるデータの入れ物として使っていませんか?
- 25.
リレーショナルモデルの利点
● 開発・メンテの効率化
– Java に例えると・・・
● 例)オブジェクト指向を知らなくても Java は便利だが・・・
– 豊富な API やパッケージ
– 強力な開発環境
etc
● 待ち受けてるのは地獄
– 読みづらい、コードの重複がたくさん、バグだらけ
– リレーショナルモデルに従うと
● アプリのコード量が減る
● データの整合性をデータベースで保証できる
● SELECT がストレートに
● パフォーマンスの向上
● データベースの変更が容易に
- 26.
- 27.
- 28.
世界は不吉な臭いが充満している!
● 感覚が麻痺しているかも
– 内輪の常識を疑う
– 赤信号、みんなで渡れば怖くない?
● みんな揃って地獄行き!!
– プログラムや運用でカバーする羽目になる
● コスト大!!
● 目を覚まそう!!
– 改善した結果どうなるか
– 挫けず勇気をもって改善を。
- 29.
危険を回避するために
● リレーショナルモデルに従う。
– データベースの設計には必須の知識!!
● しかしまともに学習する機会はほとんどないかも。
● 何はともあれリレーショナルモデルについての正しい理解
を。
– RDBMS の基本機能だけで満足しない。
– 正規化とはひと言でいうと重複を排除する作業
● 正規化していないとひとつの意味のレコードが複数の場
所に出現してしまう
● すべてを同時に更新しないと更新異常に!!
● データベースをリファクタリングしよう!!
– 世の中は危険な臭いで充満している!!
– 勇気を持って改善を。
- 30.
腐海に踏み込んだあなたへ。
● ガスマスクをつけよう。
– 適切な防御で身を守ります。
– 無ければ即死?
● 毒ガスの正体を見極める。
– 多くのコードはデータの整合性確認に費やされる
– 逆に言うと・・・
● 整合性確認漏れに注意が必要
● 整合性は更新処理で問題になる
– 例)テンポラリテーブルを活用
● 条件が複雑な場合にはスパゲティになりがち
● ひとつの SELECT で解決するのではなく、短いクエリに区
切る
● ストアドプロシージャのほうが上手に書ける場合も
- 31.
お勧め書籍
● データベース・リファクタリング以外にも
– SQL and Relational Theory
– The Art of SQL
– SQL Antipatterns
– 44 のアンチパターンに学ぶ DB システム
- 32.