Database qpstudy-okuno

  • 6,752 views
Uploaded on

 

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
6,752
On Slideshare
0
From Embeds
0
Number of Embeds
13

Actions

Shares
Downloads
50
Comments
0
Likes
22

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

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