Enviar búsqueda
Cargar
Database smells
•
24 recomendaciones
•
4,921 vistas
Mikiya Okuno
Seguir
Entretenimiento y humor
Denunciar
Compartir
Denunciar
Compartir
1 de 32
Descargar ahora
Descargar para leer sin conexión
Recomendados
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)
Mikiya Okuno
あなたが知らない リレーショナルモデル
あなたが知らない リレーショナルモデル
Mikiya Okuno
なぜ、いまリレーショナルモデルなのか
なぜ、いまリレーショナルモデルなのか
Mikiya Okuno
MySQLアーキテクチャ図解講座
MySQLアーキテクチャ図解講座
Mikiya Okuno
データモデルについて知っておくべき7つのこと 〜NoSQLに手を出す前に〜
データモデルについて知っておくべき7つのこと 〜NoSQLに手を出す前に〜
Mikiya Okuno
RDBにおけるバリデーションをリレーショナルモデルから考える
RDBにおけるバリデーションをリレーショナルモデルから考える
Mikiya Okuno
20120830 DBリファクタリング読書会第三回
20120830 DBリファクタリング読書会第三回
都元ダイスケ Miyamoto
Database qpstudy-okuno
Database qpstudy-okuno
Mikiya Okuno
Recomendados
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)
Mikiya Okuno
あなたが知らない リレーショナルモデル
あなたが知らない リレーショナルモデル
Mikiya Okuno
なぜ、いまリレーショナルモデルなのか
なぜ、いまリレーショナルモデルなのか
Mikiya Okuno
MySQLアーキテクチャ図解講座
MySQLアーキテクチャ図解講座
Mikiya Okuno
データモデルについて知っておくべき7つのこと 〜NoSQLに手を出す前に〜
データモデルについて知っておくべき7つのこと 〜NoSQLに手を出す前に〜
Mikiya Okuno
RDBにおけるバリデーションをリレーショナルモデルから考える
RDBにおけるバリデーションをリレーショナルモデルから考える
Mikiya Okuno
20120830 DBリファクタリング読書会第三回
20120830 DBリファクタリング読書会第三回
都元ダイスケ Miyamoto
Database qpstudy-okuno
Database qpstudy-okuno
Mikiya Okuno
リレーショナルデータベースとの上手な付き合い方
リレーショナルデータベースとの上手な付き合い方
Mikiya Okuno
リレーショナルな正しいデータベース設計
リレーショナルな正しいデータベース設計
Mikiya Okuno
データベース設計徹底指南
データベース設計徹底指南
Mikiya Okuno
Rdbms qpstudy-okuno
Rdbms qpstudy-okuno
Mikiya Okuno
What's New in MySQL 5.7 Replication
What's New in MySQL 5.7 Replication
Mikiya Okuno
Analytics Environment
Analytics Environment
Yuu Kimy
第52回なんてかんたんなJavaEE
第52回なんてかんたんなJavaEE
civicpg
第51回NDS PostgreSQLのデータ型 #nds51
第51回NDS PostgreSQLのデータ型 #nds51
civicpg
ActiveRecord::Enumのススメ
ActiveRecord::Enumのススメ
豊明 尾古
Getting start with knockout.js
Getting start with knockout.js
Akio Ishida
今さら聞けないDiとspring
今さら聞けないDiとspring
土岐 孝平
人材発掘うっはうは
人材発掘うっはうは
Ken Ogura
Dark vol4 for_slideshare
Dark vol4 for_slideshare
ara_ta3
TypeScript 勉強会
TypeScript 勉強会
Masahiro Wakame
IT業界における伝統芸能の継承 #hachiojipm
IT業界における伝統芸能の継承 #hachiojipm
鉄次 尾形
Rxjavaとoptionalで関数型androidしよう
Rxjavaとoptionalで関数型androidしよう
Fumihiko Shiroyama
クライアントサイドjavascript簡単紹介
クライアントサイドjavascript簡単紹介
しくみ製作所
Pentaho ETL@DevLOVE関西
Pentaho ETL@DevLOVE関西
Hirokazu Tokuno
複合主キーの扱い方
複合主キーの扱い方
Makoto SAKAI
JavaScriptユーティリティライブラリの紹介
JavaScriptユーティリティライブラリの紹介
Yusuke Hirao
Data analytics with hadoop hive on multiple data centers
Data analytics with hadoop hive on multiple data centers
Hirotaka Niisato
PostgreSQLの実行計画を読み解こう(OSC2015 Spring/Tokyo)
PostgreSQLの実行計画を読み解こう(OSC2015 Spring/Tokyo)
Satoshi Yamada
Más contenido relacionado
La actualidad más candente
リレーショナルデータベースとの上手な付き合い方
リレーショナルデータベースとの上手な付き合い方
Mikiya Okuno
リレーショナルな正しいデータベース設計
リレーショナルな正しいデータベース設計
Mikiya Okuno
データベース設計徹底指南
データベース設計徹底指南
Mikiya Okuno
Rdbms qpstudy-okuno
Rdbms qpstudy-okuno
Mikiya Okuno
What's New in MySQL 5.7 Replication
What's New in MySQL 5.7 Replication
Mikiya Okuno
Analytics Environment
Analytics Environment
Yuu Kimy
第52回なんてかんたんなJavaEE
第52回なんてかんたんなJavaEE
civicpg
第51回NDS PostgreSQLのデータ型 #nds51
第51回NDS PostgreSQLのデータ型 #nds51
civicpg
ActiveRecord::Enumのススメ
ActiveRecord::Enumのススメ
豊明 尾古
Getting start with knockout.js
Getting start with knockout.js
Akio Ishida
今さら聞けないDiとspring
今さら聞けないDiとspring
土岐 孝平
人材発掘うっはうは
人材発掘うっはうは
Ken Ogura
Dark vol4 for_slideshare
Dark vol4 for_slideshare
ara_ta3
TypeScript 勉強会
TypeScript 勉強会
Masahiro Wakame
IT業界における伝統芸能の継承 #hachiojipm
IT業界における伝統芸能の継承 #hachiojipm
鉄次 尾形
Rxjavaとoptionalで関数型androidしよう
Rxjavaとoptionalで関数型androidしよう
Fumihiko Shiroyama
クライアントサイドjavascript簡単紹介
クライアントサイドjavascript簡単紹介
しくみ製作所
Pentaho ETL@DevLOVE関西
Pentaho ETL@DevLOVE関西
Hirokazu Tokuno
複合主キーの扱い方
複合主キーの扱い方
Makoto SAKAI
JavaScriptユーティリティライブラリの紹介
JavaScriptユーティリティライブラリの紹介
Yusuke Hirao
La actualidad más candente
(20)
リレーショナルデータベースとの上手な付き合い方
リレーショナルデータベースとの上手な付き合い方
リレーショナルな正しいデータベース設計
リレーショナルな正しいデータベース設計
データベース設計徹底指南
データベース設計徹底指南
Rdbms qpstudy-okuno
Rdbms qpstudy-okuno
What's New in MySQL 5.7 Replication
What's New in MySQL 5.7 Replication
Analytics Environment
Analytics Environment
第52回なんてかんたんなJavaEE
第52回なんてかんたんなJavaEE
第51回NDS PostgreSQLのデータ型 #nds51
第51回NDS PostgreSQLのデータ型 #nds51
ActiveRecord::Enumのススメ
ActiveRecord::Enumのススメ
Getting start with knockout.js
Getting start with knockout.js
今さら聞けないDiとspring
今さら聞けないDiとspring
人材発掘うっはうは
人材発掘うっはうは
Dark vol4 for_slideshare
Dark vol4 for_slideshare
TypeScript 勉強会
TypeScript 勉強会
IT業界における伝統芸能の継承 #hachiojipm
IT業界における伝統芸能の継承 #hachiojipm
Rxjavaとoptionalで関数型androidしよう
Rxjavaとoptionalで関数型androidしよう
クライアントサイドjavascript簡単紹介
クライアントサイドjavascript簡単紹介
Pentaho ETL@DevLOVE関西
Pentaho ETL@DevLOVE関西
複合主キーの扱い方
複合主キーの扱い方
JavaScriptユーティリティライブラリの紹介
JavaScriptユーティリティライブラリの紹介
Destacado
Data analytics with hadoop hive on multiple data centers
Data analytics with hadoop hive on multiple data centers
Hirotaka Niisato
PostgreSQLの実行計画を読み解こう(OSC2015 Spring/Tokyo)
PostgreSQLの実行計画を読み解こう(OSC2015 Spring/Tokyo)
Satoshi Yamada
【17-E-3】 オンライン機械学習で実現する大規模データ処理
【17-E-3】 オンライン機械学習で実現する大規模データ処理
Developers Summit
Cloudera Manager4.0とNameNode-HAセミナー資料
Cloudera Manager4.0とNameNode-HAセミナー資料
Cloudera Japan
Writing Yarn Applications Hadoop Summit 2012
Writing Yarn Applications Hadoop Summit 2012
Hortonworks
Lars George HBase Seminar with O'REILLY Oct.12 2012
Lars George HBase Seminar with O'REILLY Oct.12 2012
Cloudera Japan
Future of HCatalog - Hadoop Summit 2012
Future of HCatalog - Hadoop Summit 2012
Hortonworks
並列データベースシステムの概念と原理
並列データベースシステムの概念と原理
Makoto Yui
あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界
Yoshinori Nakanishi
Hadoop Summit 2012 - Hadoop and Vertica: The Data Analytics Platform at Twitter
Hadoop Summit 2012 - Hadoop and Vertica: The Data Analytics Platform at Twitter
Bill Graham
【SQLインジェクション対策】徳丸先生に怒られない、動的SQLの安全な組み立て方
【SQLインジェクション対策】徳丸先生に怒られない、動的SQLの安全な組み立て方
kwatch
SQLチューニング入門 入門編
SQLチューニング入門 入門編
Miki Shimogai
Datalogからsqlへの トランスレータを書いた話
Datalogからsqlへの トランスレータを書いた話
Yuki Takeichi
ならば(その弐)
ならば(その弐)
Tomoaki Hiramoto
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
Miki Shimogai
Destacado
(15)
Data analytics with hadoop hive on multiple data centers
Data analytics with hadoop hive on multiple data centers
PostgreSQLの実行計画を読み解こう(OSC2015 Spring/Tokyo)
PostgreSQLの実行計画を読み解こう(OSC2015 Spring/Tokyo)
【17-E-3】 オンライン機械学習で実現する大規模データ処理
【17-E-3】 オンライン機械学習で実現する大規模データ処理
Cloudera Manager4.0とNameNode-HAセミナー資料
Cloudera Manager4.0とNameNode-HAセミナー資料
Writing Yarn Applications Hadoop Summit 2012
Writing Yarn Applications Hadoop Summit 2012
Lars George HBase Seminar with O'REILLY Oct.12 2012
Lars George HBase Seminar with O'REILLY Oct.12 2012
Future of HCatalog - Hadoop Summit 2012
Future of HCatalog - Hadoop Summit 2012
並列データベースシステムの概念と原理
並列データベースシステムの概念と原理
あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界
Hadoop Summit 2012 - Hadoop and Vertica: The Data Analytics Platform at Twitter
Hadoop Summit 2012 - Hadoop and Vertica: The Data Analytics Platform at Twitter
【SQLインジェクション対策】徳丸先生に怒られない、動的SQLの安全な組み立て方
【SQLインジェクション対策】徳丸先生に怒られない、動的SQLの安全な組み立て方
SQLチューニング入門 入門編
SQLチューニング入門 入門編
Datalogからsqlへの トランスレータを書いた話
Datalogからsqlへの トランスレータを書いた話
ならば(その弐)
ならば(その弐)
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
Similar a Database smells
リレーショナルデータベースとの上手な付き合い方 long version
リレーショナルデータベースとの上手な付き合い方 long version
Mikiya Okuno
Jubatusの紹介@第6回さくさくテキストマイニング
Jubatusの紹介@第6回さくさくテキストマイニング
Yuya Unno
モジュールの凝集度・結合度・インタフェース
モジュールの凝集度・結合度・インタフェース
Hajime Yanagawa
opensource and accessibility (Dec2000) Part 2
opensource and accessibility (Dec2000) Part 2
Takuya Nishimoto
Amazon DynamoDB 初心者が理解した事
Amazon DynamoDB 初心者が理解した事
Hirokazu Tokuno
フレームワーク使おうぜ!
フレームワーク使おうぜ!
Takuya Sato
Intoroduction of Bad Data Handbook
Intoroduction of Bad Data Handbook
Atsushi Hayakawa
20121019-jenkins-akiko_pusu.pdf
20121019-jenkins-akiko_pusu.pdf
akiko_pusu
【Hpcstudy】みんな、ベンチマークどうやってるの?
【Hpcstudy】みんな、ベンチマークどうやってるの?
Seiichiro Ishida
Janog31 bof-pattern-sasaki-01
Janog31 bof-pattern-sasaki-01
Ken SASAKI
議論を描く技術「ファシリテーショングラフィック」
議論を描く技術「ファシリテーショングラフィック」
nishikawa_makoto7
Djangoのススメ
Djangoのススメ
Alisue Lambda
アジャイル開発を始めてみませんか?(思い出編)
アジャイル開発を始めてみませんか?(思い出編)
Miho Nagase
PFPファシグラ(2009/07/03)
PFPファシグラ(2009/07/03)
nishikawa_makoto7
DevOps Conference #1
DevOps Conference #1
Hiroshi Morotomi
TypeScriptをオススメする理由
TypeScriptをオススメする理由
Yusuke Naka
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
infinite_loop
オススメ書籍紹介
オススメ書籍紹介
Chihiro Naganuma
B 2-1 はじめての Windows Azure
B 2-1 はじめての Windows Azure
GoAzure
20120927 findjob4 dev_ops
20120927 findjob4 dev_ops
ume3_
Similar a Database smells
(20)
リレーショナルデータベースとの上手な付き合い方 long version
リレーショナルデータベースとの上手な付き合い方 long version
Jubatusの紹介@第6回さくさくテキストマイニング
Jubatusの紹介@第6回さくさくテキストマイニング
モジュールの凝集度・結合度・インタフェース
モジュールの凝集度・結合度・インタフェース
opensource and accessibility (Dec2000) Part 2
opensource and accessibility (Dec2000) Part 2
Amazon DynamoDB 初心者が理解した事
Amazon DynamoDB 初心者が理解した事
フレームワーク使おうぜ!
フレームワーク使おうぜ!
Intoroduction of Bad Data Handbook
Intoroduction of Bad Data Handbook
20121019-jenkins-akiko_pusu.pdf
20121019-jenkins-akiko_pusu.pdf
【Hpcstudy】みんな、ベンチマークどうやってるの?
【Hpcstudy】みんな、ベンチマークどうやってるの?
Janog31 bof-pattern-sasaki-01
Janog31 bof-pattern-sasaki-01
議論を描く技術「ファシリテーショングラフィック」
議論を描く技術「ファシリテーショングラフィック」
Djangoのススメ
Djangoのススメ
アジャイル開発を始めてみませんか?(思い出編)
アジャイル開発を始めてみませんか?(思い出編)
PFPファシグラ(2009/07/03)
PFPファシグラ(2009/07/03)
DevOps Conference #1
DevOps Conference #1
TypeScriptをオススメする理由
TypeScriptをオススメする理由
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
オススメ書籍紹介
オススメ書籍紹介
B 2-1 はじめての Windows Azure
B 2-1 はじめての Windows Azure
20120927 findjob4 dev_ops
20120927 findjob4 dev_ops
Más de Mikiya Okuno
MySQL Cluster 新機能解説 7.5 and beyond
MySQL Cluster 新機能解説 7.5 and beyond
Mikiya Okuno
MySQL 5.7 トラブルシューティング 性能解析入門編
MySQL 5.7 トラブルシューティング 性能解析入門編
Mikiya Okuno
私は如何にして詳解 MySQL 5.7を執筆するに至ったか
私は如何にして詳解 MySQL 5.7を執筆するに至ったか
Mikiya Okuno
What's New in MySQL 5.7 Security
What's New in MySQL 5.7 Security
Mikiya Okuno
とあるギークのキーボード遍歴
とあるギークのキーボード遍歴
Mikiya Okuno
What's New in MySQL 5.7 InnoDB
What's New in MySQL 5.7 InnoDB
Mikiya Okuno
What's New in MySQL 5.7 Optimizer @MySQL User Conference Tokyo 2015
What's New in MySQL 5.7 Optimizer @MySQL User Conference Tokyo 2015
Mikiya Okuno
MySQL Cluster 7.4で楽しむスケールアウト @DB Tech Showcase 2015/06
MySQL Cluster 7.4で楽しむスケールアウト @DB Tech Showcase 2015/06
Mikiya Okuno
人類は如何にして大切な データベースを守るべきか
人類は如何にして大切な データベースを守るべきか
Mikiya Okuno
MySQLトラブル解析入門
MySQLトラブル解析入門
Mikiya Okuno
Mysql toranomaki
Mysql toranomaki
Mikiya Okuno
カジュアルにMySQL Clusterを使ってみよう@MySQL Cluster Casual Talks 2013.09
カジュアルにMySQL Clusterを使ってみよう@MySQL Cluster Casual Talks 2013.09
Mikiya Okuno
MySQl 5.6新機能解説@第一回 中国地方DB勉強会
MySQl 5.6新機能解説@第一回 中国地方DB勉強会
Mikiya Okuno
MySQL 5.6新機能解説@dbtechshowcase2012
MySQL 5.6新機能解説@dbtechshowcase2012
Mikiya Okuno
MySQL日本語利用徹底入門
MySQL日本語利用徹底入門
Mikiya Okuno
Performance Schema @ MySQL Casual #2
Performance Schema @ MySQL Casual #2
Mikiya Okuno
Art of MySQL Replication.
Art of MySQL Replication.
Mikiya Okuno
Más de Mikiya Okuno
(17)
MySQL Cluster 新機能解説 7.5 and beyond
MySQL Cluster 新機能解説 7.5 and beyond
MySQL 5.7 トラブルシューティング 性能解析入門編
MySQL 5.7 トラブルシューティング 性能解析入門編
私は如何にして詳解 MySQL 5.7を執筆するに至ったか
私は如何にして詳解 MySQL 5.7を執筆するに至ったか
What's New in MySQL 5.7 Security
What's New in MySQL 5.7 Security
とあるギークのキーボード遍歴
とあるギークのキーボード遍歴
What's New in MySQL 5.7 InnoDB
What's New in MySQL 5.7 InnoDB
What's New in MySQL 5.7 Optimizer @MySQL User Conference Tokyo 2015
What's New in MySQL 5.7 Optimizer @MySQL User Conference Tokyo 2015
MySQL Cluster 7.4で楽しむスケールアウト @DB Tech Showcase 2015/06
MySQL Cluster 7.4で楽しむスケールアウト @DB Tech Showcase 2015/06
人類は如何にして大切な データベースを守るべきか
人類は如何にして大切な データベースを守るべきか
MySQLトラブル解析入門
MySQLトラブル解析入門
Mysql toranomaki
Mysql toranomaki
カジュアルにMySQL Clusterを使ってみよう@MySQL Cluster Casual Talks 2013.09
カジュアルにMySQL Clusterを使ってみよう@MySQL Cluster Casual Talks 2013.09
MySQl 5.6新機能解説@第一回 中国地方DB勉強会
MySQl 5.6新機能解説@第一回 中国地方DB勉強会
MySQL 5.6新機能解説@dbtechshowcase2012
MySQL 5.6新機能解説@dbtechshowcase2012
MySQL日本語利用徹底入門
MySQL日本語利用徹底入門
Performance Schema @ MySQL Casual #2
Performance Schema @ MySQL Casual #2
Art of MySQL Replication.
Art of MySQL Replication.
Database smells
1.
Database Smells データベースの不吉な臭い
@データベース・リファクタリング読書会 奥野 幹也 @nippondanji mikiya (dot) okuno (at) gmail (dot) com
2.
免責事項 ●
本プレゼンテーションにおいて示されている見解は、私自身 の見解であって、オラクル・コーポレーションの見解を必ず しも反映したものではありません。ご了承ください。
3.
自己紹介 ●
今日は個人として来ています。 – http://nippondanji.blogspot.com/ – Twitter: @nippondanji ● MySQL サポートエンジニア – 2000 年にサン・マイクロシステムズ入社 – 2007 年に MySQL KK へ転職 – 気付くとまたサン・マイクロシステムズに・・・ – 現在は日本オラクルに在席。 – サポート一筋 12 年 ● 日々のしごと – MySQL トラブルシューティング全般 – Q&A 回答 など
4.
私の日々の仕事は サポートです。
5.
困ったことがなければ 特に必要ない
6.
しかし世の中 そんなに甘くない
7.
トラブルは日常!!
8.
難問のラストリゾート・・・ それがサポート!!
9.
10.
11.
12.
サポートの日常 ●
そもそも既に困っているからサポートへ – お客様が既に臭いに気づき・・・ – 手に負えないからサポートへ!! – 既に手遅れな場合も ● よくあるパターン – 個性的なテーブルを目にすること幾多 – ややこしいクエリ – 膨大なスロークエリログ
13.
世界は 不吉な臭いで 充満している!
14.
世界は不吉な臭いで充満している!! ●
全員が気づいていないことは誰も気付けない – ベストでないプラクティスが慣習に – みんなそれが普通だと思っている ● 日本的なるもの – 盲目的な前例主義 – 変更を許さない官僚主義 – 面子 ● 間違いを指摘できない ● 指摘しても聴く耳を持たれない
15.
うまい空気を吸いたいです・・・
16.
腐海に入ってはならん・・・
by ババ様
17.
システム移行案件にて・・・ スキーマは既存システムのものを
そのまま使います!! 作りなおす意味あんのかよ・・・
18.
ロジックの実装はすべて PL/SQL なぜならアーキがそう決めたからです!
処理の大半はデータの整合性チェックだったり。 それって DB の制約でできるよね?
19.
お見積もりは テーブルひとつにつき○○万円です。
→ じゃあテーブル数を減らそう! http://sec.ipa.go.jp/std/ent01-c.html テーブル数が減れば良いってもんじゃ・・・
20.
悲劇を避けるために
21.
ほとんどの問題はテーブル設計に帰着する ●
ひと言で言うと、リレーショナルモデルを無視した設計に なっている場合は悲劇につながる。 – リレーショナルモデルを正しく使おう!! ● 知らない場合はまず勉強しよう!! – リレーショナルモデルを知らずに RDBMS を使うのは、オブ ジェクト指向を知らずに Java を書くようなもの。 HTML を知らずにウェブプログラムを書くようなもの。運転の仕 方を知らずにクルマを走らせるようなもの。超危険!! ● リレーショナルモデル – リレーションの演算 – 集合論理 ● データベース設計理論 – 正規化 – 直交性
22.
アンチパターンのストーリー Press Enter■ http://el.jibun.atmarkit.co.jp/pressenter/all_entrylist.html 第 1
回より引用 誰かが Java を教えている。地声なのか熱くなっているのか、講師の声はやたらと大き く、いつもより研修内容がよく聞こえていた。 唐突に、その言葉が響いた。 「オブジェクト指向など実業務では使い物にならない!」 私は思わず手を止めてしまい、壁を見つめた。 〜中略〜 「オブジェクト指向の本とかサイトとか見ると、さぞすごいもののように書かれているけ ど、ないからないから、そんなこと。 20 年選手のオレが言うんだから間違いない!」
23.
くれぐれも・・・ リレーショナルモデルなんて 実践では役に立たないなどと 思わないでください。
24.
RDBMS の落とし穴 ●
リレーショナルモデルに従わなくても強力だったりする – データに永続性がある – データをメモリ上にキャッシュできる – トランザクションがある – SQL によって柔軟な検索がおこなえる – インデックスにより高速な検索がおこなえる – バックアップやレプリケーションなどのツールが充実 – 超便利!! ● 単なるデータの入れ物として使っていませんか?
25.
リレーショナルモデルの利点 ●
開発・メンテの効率化 – Java に例えると・・・ ● 例)オブジェクト指向を知らなくても Java は便利だが・・・ – 豊富な API やパッケージ – 強力な開発環境 etc ● 待ち受けてるのは地獄 – 読みづらい、コードの重複がたくさん、バグだらけ – リレーショナルモデルに従うと ● アプリのコード量が減る ● データの整合性をデータベースで保証できる ● SELECT がストレートに ● パフォーマンスの向上 ● データベースの変更が容易に
26.
というわけでひっそりと連載しています http://gihyo.jp/magazine/wdpress/archive/2012/vol69
次回は正規化の お話です。
27.
まとめ!
28.
世界は不吉な臭いが充満している! ●
感覚が麻痺しているかも – 内輪の常識を疑う – 赤信号、みんなで渡れば怖くない? ● みんな揃って地獄行き!! – プログラムや運用でカバーする羽目になる ● コスト大!! ● 目を覚まそう!! – 改善した結果どうなるか – 挫けず勇気をもって改善を。
29.
危険を回避するために ●
リレーショナルモデルに従う。 – データベースの設計には必須の知識!! ● しかしまともに学習する機会はほとんどないかも。 ● 何はともあれリレーショナルモデルについての正しい理解 を。 – RDBMS の基本機能だけで満足しない。 – 正規化とはひと言でいうと重複を排除する作業 ● 正規化していないとひとつの意味のレコードが複数の場 所に出現してしまう ● すべてを同時に更新しないと更新異常に!! ● データベースをリファクタリングしよう!! – 世の中は危険な臭いで充満している!! – 勇気を持って改善を。
30.
腐海に踏み込んだあなたへ。 ●
ガスマスクをつけよう。 – 適切な防御で身を守ります。 – 無ければ即死? ● 毒ガスの正体を見極める。 – 多くのコードはデータの整合性確認に費やされる – 逆に言うと・・・ ● 整合性確認漏れに注意が必要 ● 整合性は更新処理で問題になる – 例)テンポラリテーブルを活用 ● 条件が複雑な場合にはスパゲティになりがち ● ひとつの SELECT で解決するのではなく、短いクエリに区 切る ● ストアドプロシージャのほうが上手に書ける場合も
31.
お勧め書籍 ●
データベース・リファクタリング以外にも – SQL and Relational Theory – The Art of SQL – SQL Antipatterns – 44 のアンチパターンに学ぶ DB システム
32.
ご静聴ありがとうございました。
Descargar ahora