ラベル DB の投稿を表示しています。 すべての投稿を表示
ラベル DB の投稿を表示しています。 すべての投稿を表示

2014/02/17

Stanform大学のDBコース、半分くらい終わりました

Stanford大学のオンラインコースを使って主にRDBを勉強しています。慣れてきたので、だいたいどういうものか紹介をしておきます。コースが修了できたら、また報告しますね。

DBコースを受講したわけ


最近まで、仕事では直接DBを触る機会が少なかったのですが、昨年の10月から海外勤務になり、業務内容が全面的にDBを扱う仕事に大きく変わったため、Stanford大学のオンラインコースを使って主にRDBを勉強しています。

元々は、何かオンラインのコースを取りたいなと思っていて、分野として候補がいくつかある中、丁度良いタイミングで始まったのがDBだったので、コレを選んだ次第です。

DBコースの内容


内容は以下の様な感じ。
  • Relational Database Overview
  • XML Data
  • JSON Data
  • Relational Algebra
  • SQL
  • Relational Design Theory
  • Querying XML
  • Unified Modeling Language
  • Indexes
  • Transactions
  • Constraints and Triggers
  • Views
  • Authorization
  • Recursion
  • Online Analytical Programming
  • NoSQL Systems
期待通り、SQLやテーブル設計などRDBの内容が中心ですが、XMLやJSONなども含まれています。

受講の仕方


基本的に開講と同時に全教材が開放されて、どこから進めても良い形式になっているようです。ただし、提出期限は上から順番になっているので、上からやった方が良いと思います。

各項目に対して進め方は各項目に対して以下を繰り返す感じです。
  • 講師の説明ビデオを聞く
  • 簡単な4択のクイズに答える(得点なし)
  • 基本問題
    • 選択問題(小得点)
    • 実際にクエリを書く問題(中得点)
  • チャレンジ問題
    • 実際にクエリを書く問題(高得点)

コースの修了について


基本的には回答を提出して自動採点する仕組みになっています。そして、回答を提出するたびに現在の修了状況が採点されます。基本問題をひと通り解けば、50%は完了し、コースは修了できるようです。もし良い成績を残したければ、チャレンジ問題にも挑戦した方が良いです。

教材が英語だけど大丈夫?


私の場合、今、日本人がいない職場にいて、英語で仕事しているので、英語のコースを受講する分は特に問題はありません。

ただし、まだ知識が浅い内容に対して、若干、早口で講義が行われると、ちょっとつらくなって何度も聞き直す必要があったりします。結局は、基本問題を解きながら、具体的な物を見つつ、教材を読み直して理解するという流れになりがちです^^; また、それでもよく分からない場合は、今回は日本語の教材がネット上に転がっているので、必要に応じてGoogleで調べながらやっています。

英語のヒアリングが苦手な人にはちょっときついかもしれません。

負荷について


内容や自分の知識レベルにもよるのでしょうが、コースを修了したい人は週3〜4時間、良い成績を残したい人は週7〜8時間くらいかけないとダメなようで、フルタイムの人なら同時期に1コースが限度だと思います。

進め方の工夫について


開講と同時に全教材と締め切りが公開されますので、それに合わせてプライベートの予定を含めて、スケジュールを組んでおくことをおすすめします。難しい問題で手こずる可能性がありますので、常に締め切りより1週間程度は前倒しで進めましょう。

また、チャレンジ問題は締め切りが後になっているので、ついつい後回しにしてしまいがちですが、スケジュールの余裕があるかぎりは、基本問題をやった後に、早めに手を付けた方が良いと思います。

--

ということで、今回は中間報告です。無事に修了できたら、再度ブログ上でレポートを書きますね。

2013/08/14

Mac OS X LionへPostgresSQLを導入する

これまで仕事でDBを扱うことはなかったのですが、最近、DBを使う仕事をやることになったので、あわててSQLを勉強中です。

今回は個人PCのMac OS X Lion(バージョン10.8.4)にPostgreSQLを導入しました。本エントリでは導入手順を紹介します。

(1) インストール


Mac OS Xにインストールする場合、GUIのインストーラを使うのが簡単そうです。以下でダウンロードできます。

http://www.postgresql.org/download/macosx/

Homebrewでインストールすることもできます。

> brew install postgresql

(2) データベースの初期化


データベースサーバのプロセスを起動する前にデータベースを初期化する必要があります。

まずデータベースの置き場所を用意しましょう。お試しであれば場所は好きなところで良いでしょう。

> su postgers
> mkdir -p ~/psql/data

(注意)データベースの置き場所はPsotgreSQLを起動するプロセスから書き込みできるパスが良いです。パーミッションの関係でデータベースに書き込みできないとプロセスが起動しない場合があります。データベースを起動するユーザでデータを配置するディレクトリを作成したほうが間違いが無いと思います。

次に先ほど作成したパスにデータベースを初期化します。

> initdb -D /usr/local/pgsql/data

以下の出力が出ればOKです。

Success. You can now start the database server using:
    postgres -D psql/data
or
    pg_ctl -D psql/data -l logfile start

(3) サーバプロセスの起動


出力にある通り、起動の仕方は2通りあるようです。後者の方はログファイルを作成してくれるので、後者の方が良いのではないかと思います。

> pg_ctl -D /usr/local/pgsql/data -l logfile start

起動プロセスをアカウント名でgrepしてみるとサーバプロセスが起動していることが分かります。

 > ps ax | grep postgres
  389   ??  Ss     0:00.00 postgres: checkpointer process  
  390   ??  Ss     0:00.00 postgres: writer process  
  391   ??  Ss     0:00.00 postgres: wal writer process  
  392   ??  Ss     0:00.00 postgres: autovacuum launcher process  
  393   ??  Ss     0:00.00 postgres: stats collector process

(4) サーバへのアクセス


psqlというPostgreSQLのターミナルにホスト名「localhost」を指定して接続してみます。

> psql -h localhost

以下が出力されればOKです。

WARNING: psql version 9.1, server version 9.2.
         Some psql features might not work.
Type "help" for help.
postgres=#