データベース入門入門データベース入門入門
奥野 幹也
@nippondanji
mikiya (dot) okuno (at) gmail (dot) com
@qpstudy 2013.07
ゼロからデータベースをはじめるあなたに。
免責事項
● 本プレゼンテーションにおいて示されている見解は、私自身
の見解であって、オラクル・コーポレーションの見解を必ず
しも反映したものではありません。ご了承ください。
自己紹介
● MySQL サポートエンジニア
– 2000 年にサン・マイクロシステムズ入社
● 主にハードウェアのサポートを担当
– 2007 年に MySQL KK へ転職
● 気付くとまたサン・マイクロシステムズに・・・
– 現在は日本オ...
自己紹介(つづき)
● ライフワーク
– 自由なソフトウェアの普及
● オープンソースではない
– GNU 大好き
● リチャード・ストールマン氏の教えに従って最近脱
Ubuntu しました。
– KDE 大好き
● ブログ
– 漢のコンピュー...
データベースの意義
データベースの必要性
● 大量のデータを安全かつ高速に処理する
– 必要なデータを検索する
– データを保全する
– 素早い応答を得る
● アプリケーションからデータを扱う処理の実装を排除するこ
とができる。
– 車輪の再発明の回避
– アプリ...
インデックス
インデックスは便利!
● 必要なデータだけをピンポイントでゲット!
– B+ 木なら探索の計算オーダーは最悪でも O(logbn)
– キャッシュにページが乗ってれば更に高速
● 範囲検索でも使える
● ソートでも使える
● 多種多様なインデッ...
トランザクション
トランザクションの至上命題
同時実行
制御
リカバリ
ACID
Atomicity
Isolation
Consistency
Durability
Atomicity (原始性)
● すべての操作は成功または失敗
– Commit
– Abort
● アプリケーションは中途半端な状態について考慮する必要
がない
– エラー処理は単にトランザクションをやり直すだけ
– リトライは必要
Consistency (一貫性)
● トランザクションの前後でデータベースの整合性が保たれ
ている。
● ある整合性のとれた状態 A においてトランザクションを実
行すると、別の整合性のとれた状態 A’ へと遷移する。
● 何をもって整合性が...
Isolation (独立性)
● あるトランザクションが他の実行中のトランザクションの実
行過程へ影響を及ぼさないこと。
● 同時実行制御の課題。
● 分離レベル
– Read Uncommitted
– Read Committed
– R...
Durability (永続性)
● 一度 Commit が成功すれば変更は失われない
● リカバリの話。
トランザクションは便利!
● アプリケーションの開発がとても楽に。
– データへの排他処理から開放される
– クラッシュしてもデータの整合性を気にする必要がない
● Commit/Abort のいずれかの状態
– 中途半端な状態について考える必...
インデックスや
トランザクションだけで
満足してませんか?
単なる
データの入れ物として
使っていませんか?
残された課題
データモデル
RDBMS 以前
● 利用されていたデータモデル
– 階層型
– ネットワーク型
● トランザクションやインデックスは利用可能
● クエリの記述が大変
– データの構造に依存したプログラム
優れたデータモデルが必要!
● データベース設計超重要
– クエリとデータベース設計はセットで考える
● ⇒クエリ 演算
● ⇒データベース データ
– オブジェクト指向のオブジェクトとメソッドのような関係
● クラスの設計超重要
「データベー...
RDBMS 登場!!
後半へつづく。
Q&A!!
ご静聴ありがとうございました。
Upcoming SlideShare
Loading in...5
×

Database qpstudy-okuno

6,992

Published on

0 Comments
22 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
6,992
On Slideshare
0
From Embeds
0
Number of Embeds
14
Actions
Shares
0
Downloads
55
Comments
0
Likes
22
Embeds 0
No embeds

No notes for slide

Database qpstudy-okuno

  1. 1. データベース入門入門データベース入門入門 奥野 幹也 @nippondanji mikiya (dot) okuno (at) gmail (dot) com @qpstudy 2013.07 ゼロからデータベースをはじめるあなたに。
  2. 2. 免責事項 ● 本プレゼンテーションにおいて示されている見解は、私自身 の見解であって、オラクル・コーポレーションの見解を必ず しも反映したものではありません。ご了承ください。
  3. 3. 自己紹介 ● MySQL サポートエンジニア – 2000 年にサン・マイクロシステムズ入社 ● 主にハードウェアのサポートを担当 – 2007 年に MySQL KK へ転職 ● 気付くとまたサン・マイクロシステムズに・・・ – 現在は日本オラクルに在席。 – サポート一筋 13 年 ● 日々のしごと – MySQL トラブルシューティング全般 – Q&A 回答 など
  4. 4. 自己紹介(つづき) ● ライフワーク – 自由なソフトウェアの普及 ● オープンソースではない – GNU 大好き ● リチャード・ストールマン氏の教えに従って最近脱 Ubuntu しました。 – KDE 大好き ● ブログ – 漢のコンピュータ道 – http://nippondanji.blogspot.com/
  5. 5. データベースの意義
  6. 6. データベースの必要性 ● 大量のデータを安全かつ高速に処理する – 必要なデータを検索する – データを保全する – 素早い応答を得る ● アプリケーションからデータを扱う処理の実装を排除するこ とができる。 – 車輪の再発明の回避 – アプリケーションのロジックに集中 – 開発効率の向上 すごく 便利です。
  7. 7. インデックス
  8. 8. インデックスは便利! ● 必要なデータだけをピンポイントでゲット! – B+ 木なら探索の計算オーダーは最悪でも O(logbn) – キャッシュにページが乗ってれば更に高速 ● 範囲検索でも使える ● ソートでも使える ● 多種多様なインデックス – B+ 木 – ハッシュ – 全文検索 – 空間インデックス 大量のデータでも どんと来い!
  9. 9. トランザクション
  10. 10. トランザクションの至上命題 同時実行 制御 リカバリ
  11. 11. ACID Atomicity Isolation Consistency Durability
  12. 12. Atomicity (原始性) ● すべての操作は成功または失敗 – Commit – Abort ● アプリケーションは中途半端な状態について考慮する必要 がない – エラー処理は単にトランザクションをやり直すだけ – リトライは必要
  13. 13. Consistency (一貫性) ● トランザクションの前後でデータベースの整合性が保たれ ている。 ● ある整合性のとれた状態 A においてトランザクションを実 行すると、別の整合性のとれた状態 A’ へと遷移する。 ● 何をもって整合性がとれているとするかはアプリケーション 次第 A Trx A’ Consistent!Consistent! Consistent!
  14. 14. Isolation (独立性) ● あるトランザクションが他の実行中のトランザクションの実 行過程へ影響を及ぼさないこと。 ● 同時実行制御の課題。 ● 分離レベル – Read Uncommitted – Read Committed – Repeatable Read – Serializable
  15. 15. Durability (永続性) ● 一度 Commit が成功すれば変更は失われない ● リカバリの話。
  16. 16. トランザクションは便利! ● アプリケーションの開発がとても楽に。 – データへの排他処理から開放される – クラッシュしてもデータの整合性を気にする必要がない ● Commit/Abort のいずれかの状態 – 中途半端な状態について考える必要がない ● 成功してなければリトライ 全部自分で実装しますか?
  17. 17. インデックスや トランザクションだけで 満足してませんか?
  18. 18. 単なる データの入れ物として 使っていませんか?
  19. 19. 残された課題 データモデル
  20. 20. RDBMS 以前 ● 利用されていたデータモデル – 階層型 – ネットワーク型 ● トランザクションやインデックスは利用可能 ● クエリの記述が大変 – データの構造に依存したプログラム
  21. 21. 優れたデータモデルが必要! ● データベース設計超重要 – クエリとデータベース設計はセットで考える ● ⇒クエリ 演算 ● ⇒データベース データ – オブジェクト指向のオブジェクトとメソッドのような関係 ● クラスの設計超重要 「データベース=単なる入れ物」 からの脱却
  22. 22. RDBMS 登場!! 後半へつづく。
  23. 23. Q&A!! ご静聴ありがとうございました。
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×