シェアする

PostgreSQLで学ぶデータベース技術[schooザックリ受講録]

gravure_138_mikarika

この記事は、schooの授業、PostgreSQLで学ぶデータベース技術の内容をさかなEXが大切だと感じた箇所のみにギュギュっと要約した内容になっています。

動画で受講すると、もっと分かり易いので気になった方は是非ご自身でSchooに登録してみて下さい。登録は以下から。(アフィではないですよ笑)

オンライン動画で学ぶ、NPO法人 日本PostgreSQLユーザ会 理事 喜田 紘介先生による授業。こんな方におすすめの授業です!システム開発に欠かせないデータベース技術の基本を学びたい方

後、最近油っこいキャプチャ画像が続いていたのでブログに清涼感をもたらすために、フリー素材アイドルMIKA☆RIKAさんの素材をお借りしました笑

受講動機

SQLの書き方ではなく、データベースの動作原理やチューニングの方法について学びたかったので受講しました。SQL文の書き方だけなら、他の書籍やオンライントレーニングで十分なのですが、深い部分まで語ってくれる講義は非常に貴重な印象。

講座基本情報

今どきのフレームワークやCMSを使うと、データベースを知らずともシステムが出来てしまいます。しかし、データベースを正しく理解することこそ、最高のパフォーマンスを得て、最良のプログラムを書くために絶対必要な、システム開発の中核なのです。
この授業ではオープンソースのリレーショナルデータベース管理システム(RDBMS)であるPostgreSQLの初歩的な使い方、操作方法を通して、データベース学習で必ずおさえておくべきポイントを易しく解説します。

【授業の構成】

自己紹介
授業で学ぶことと目次
システムの中核を担うデータベース
プログラムとデータの分離しよう
リレーショナルデータベースの機能
RDBMSが得意な処理、苦手な処理
RDBでデータを高速に返却しよう
SQL:RDBを操作する共通言語
RDBが得意な処理
トランザクションを理解しよう
トランザクションとは何かを学ぼう
確定したデータを維持しよう
どのデータを最新とみなすかを学ぼう
PostgreSQLを選択する理由
大量のトラフィックをさばくwebサービスの場合
NoSQLと比較
複雑なSQLを賢く実行する業務システム
大量データを一括で読み込む分析システム
まとめ

目次

システムの中核を担うデータベース

Screenshot_20161111-102114.png

プログラムとデータの分離

->データに関するところを全てDBに任せてしまおうという思想。
Screenshot_20161111-102139.png

RDBMSでデータを”高速に返す” “維持する” “守る”

Screenshot_20161111-101905.png

DBの役割

  1. 結果を高速に返却する

  2. 同時実行の実現

  3. データを適切に維持

  4. 確定されたデータを守る

  5. 不正アクセスの禁止

Screenshot_20161111-102330.png

->変数、配列などプログラミングの中で処理を行うのは結構大変

Screenshot_20161111-102759.png

リレーショナルデータベースの機能

  1. 結果を高速に返却する
    ->最も良い方法で変更してくれる

  2. データを適切に維持
    ->誤った値が入っていないかチェック

  3. 確定されたデータを守る
    ->バックアップを保存する

RDBMSが得意な処理、苦手な処理

DBが本当に得意なこと、苦手なことを理解する必要がある。

RDBでデータを高速に返却する

  1. SQLをまずは提供する。(Javaの言語からSQLを呼び出すこともできる)
Screenshot_20161111-103503.png

2.頂いたSQLに対して、素早く賢く高速に結果を返却する
->全体のデータ量/インデックス/JOINの順番などを勝手に理解して最適な方法を採用してくれる

SQL:RDBを操作する共通言語

SQLは集合を操作している言語
Screenshot_20161111-103722.png

Screenshot_20161111-104102.png

RDBが得意な処理 = SQLで書ける処理

  • 集合に対して関数を使う
  • ほかの集合を条件にする
Screenshot_20161111-104111.png

Screenshot_20161111-104412.png

トランザクションを理解する

現実の処理をコンピュータで正しく扱う考え方

Screenshot_20161111-104828.png

流れを定義
例)口座残高を減らす処理と増やす処理が両方成功したときに初めて成功とみなす。
片方だけが成功するパターンを消す。

量を定義
例)飴玉の事例
Screenshot_20161111-105205.png

Screenshot_20161111-105742.png

①確定したデータを維持する
-BEGIN と COMMITでトランザクションを開始

②どのデータを最新と見なすか
-トランザクション中は、外から見ても更新されていない
みんなが同じものを見ている訳ではない

③割り込みをブロックする
COMMITまで完了すれば、割り込みが可能になる

PostgreSQLを選択する理由

Screenshot_20161111-110107.png

Screenshot_20161111-110125.png

まとめ

Screenshot_20161111-114144.png

バージョン7.6から処理速度が爆速になったらしい。

PosgreSQLを頑張って習得しよう

ゴリゴリSQLを書けないと、データ分析のデの字もできないのでより精進せねば….
ワタシポスグレチョットデキルTシャツ欲しいなあ。

PostgreSQLで学ぶデータベース技術[schooザックリ受講録]
今回の記事は役に立ちましたか?
気に入ってくれた人は、トクチエのFacebookページをいいねして最新記事を今後もチェック!
スポンサーリンク

シェアする

フォローする

スポンサーリンク