会社のサーバーでORCLEを使用しています。
WORD、EXCEL等しか使ったことのない私にORACLEを勉強するよう指示を受けました。個人のPCで勉強したいのですが、どのようにしたらよいのか教えて頂けないでしょうか。
特に、
1. 個人のメインPCでORACLEの勉強は可能か?
(サーバーじゃないとダメなど。Windows Vista・XPなら可など。個人のメインPCでは非常に重たくなるため避けるなど。)
2.お勧めの教科書やテキストは何か?
3. お勧めのアプリケーションは何か?(Editionで可など。)
また、どのようなアドバイスでも構いませんので、情報をお願いします。
たとえば、
『10日でおぼえるOracle データベース 10g 入門教室』はどうとか。
『Bronze Oracle Database 10g(DBA10g)編』は、『同【SQL基礎I】編』をマスターしてから、とか、その逆とか。これらは、個人PCでは勉強できないとか、アプリのないpcは無理とか。実は、アプリは付属。とか。
何卒、よろしくお願いいたします。
『例えば10g使うなら10g用の物を読む。』
『ORACLEはレジストリ汚しがひどいので、9i入れた、DB作った->やっぱり10gだった、って時に、9iをアンインストールすればいいかっていうと大間違いで、手作業であっちゃこっちゃ触らなければいけない羽目に陥ります。』
という点。危うく、いきなり混乱するところでした。
本日、こちらのシステムを作っている会社さんに確認しましたところ、10gとのことでしたので、
10g Expressをインストールしてみます。
『クライアントのインストールくらい管理者さんにやってもらっちゃだめですか?っていうか、マニュアルある気がします。CDもね。』こちらの件、私の会社のPCに導入しても良いのか確認してみます。(アカウントにお金がかかる云々言われるかもしれません。)
また、仮想デスクトップを使って、普段は操作をしていると言われたのですが…。
他社システムを解析する目的はないのですが、他社システムですので、触るのが恐ろしくなりました。
なお、このシステムを導入するのに、丸1日~2日ぐらいかかると言われていますため、簡単にシステムを導入するのは、難しそうです。
いろいろと教えていただきまして、ありがとうございます。
↑と基本的には同意見。
で、さらにそもそもの話で、
要するに、あなた以外のメインの担当がいて、現在「会社にあるアプリのDBがからデータを引っ張る事」がうまく回っている状態で「ORACLEを勉強しとけ」と言われたのなら、今後業務に携わる上での「ORACLEの基礎知識」を要求されているわけなので、他の方が回答しているようにExpress Editionと『10日でおぼえるOracle データベース 10g 入門教室』などの本またはWebサイトで学習するのがいいと思います。
ただ、そうでない場合、「会社にあるアプリのDBがからデータを引っ張る事」をあなたがメインで担当するのはかなり危険だと思います。
社内管理者や社外のサポート担当がいるのであれば、ますその人に「ある程度安全にデータが触れるような環境」を用意してもらう必要がありますし、そうでないならやろうとしていること自体無謀としか思えません。
というか、私自身そういうソフトサポートしてるのですが、勝手にそういうことやられると正直かなり迷惑ですし。
●社内に、システム管理部門は、恐らくあるのですが、私はその一員ではありません。
●会社にあるアプリは、社内に管理者がいるかは、不明です。
情報ネットワークさんの業務支援システム(アプリというのか、パッケージというのか、シ ステムというのか…。)ですので、もしかしたら社内にはいないかもしれません。
●ソフトサポートが何を指しているのか分からないのですが、その業務支援システムでは、サポートを受けています。
データの集計、追加、更新、削除に関してはある程度操作できるレベルになると思いますが、
ローカルで学習するのであれば、テーブルの作成・削除、バックアップ、リストアといった
処理を実習してみた方がよいでしょう。
これによって、データの管理方法とその重要性に関しても、理解することができると思います。
蛇足ですが、最終的に実運用DBにアクセスする際には、操作範囲を含めて管理者に確認を取っておいた
方が良いかと思います。
特にデータの更新は、そのデータの影響範囲がどこまであるかを理解せずに修正を行うと、データとして
破綻する可能性もありますし、変更によってプロシージャが稼働する場合、予想しない影響もあり得ます。
目的をお聞きする限り、データベースそのものの管理や開発ではなさそうなので、SQLをマスターすればよさそうです。
ですから、「ORACLE SQL入門 Oracle hand books 」はバッチリですが、
…これ、9iですよ?(しかもORACLE7の改題改訂版…)
SQLの本としては全然かまいませんが、例えば10g使うなら10g用の物を読むに越したことはありません。
ORACLEのHPは結構親切です。トピックスなんかも豊富。
でも、HP自体が読みづらい
http://education.oracle.com/pls/web_prod-plq-dad/db_pages.getpag...
そして簡単な講座ならネット上にもごろごろ転がっていたり。
http://jibun.atmarkit.co.jp/lskill01/rensai/bronzesql01/bronzesq...
…ですが、そもそも、目的は「会社にあるアプリのDBがORACLEで、そこからデータを引っ張る事」ですよね?
はたしてMOTONORIさんのPC単体にORACLEを導入し、勉強目的のDBを構築するのが良い方法なのでしょうか?
それよりは、どうせクラアイントをセットアップして、既存のDBのデータ見るのですから、
そちらに集中した方が早い&効率がいいのでは?
あと、下手にバージョンの違うORACLEは導入しない方がいいです。
ORACLEはレジストリ汚しがひどいので、9i入れた、DB作った->やっぱり10gだった、って時に、9iをアンインストールすればいいかっていうと大間違いで、手作業であっちゃこっちゃ触らなければいけない羽目に陥ります。
(それでも最近はのはまだマシです…8iのインストールがうまくいかず、システムから5回も入れなおした事もありました)
まずは、会社のシステム管理者にORACLEのバージョンを確認。これ最重要。(別に10g->9iに接続とかも可能ですけど)
そして、ORACLEの(サーバーでもいいけど)クライアントをセットアップ。
この「ORACLEのインストール」もまだのようですが、SQLでデータを触るのが目的なら、そこに力入れなくてもいいんじゃ…
クライアントのインストールくらい管理者さんにやってもらっちゃだめですか?っていうか、マニュアルある気がします。CDもね。
あと把握しなければいけないのってSQLを叩くためのデータの構造ですよね?
更にデータの内容を把握するためにはアプリ側の動きも知らなければいけない。
SEさんなら仕様を要求…となりますが、SEさんではないようなので、
アプリ(画面や帳票)を見て、ORACLEでデータを見て、と直接見比べるのが一番簡単。
会社のアプリが動く端末=ORACLEのクライアントが入っているのではないでしょうか。
SQLの勉強っても、いきなりテーブル作ったりUPDATEなんぞしないと思うので、SELECT叩くくらいなら既存のクライアントからでダメでしょうかね。
iSQL使ってもいいし、なんだったらDOSの画面からSQLPLUSでもいいし。
でも、いずれにせよDBにアクセスするサービスの設定やパスワードやユーザ名が必要。
やっぱりこれもシステム管理者に問い合わせなきゃいけないですよね。
更に一番気になったのが
>登録されているデータに誤りがあった場合、一括変換等できるようにする
アプリからではなく、DBを直接触るという事は、それを想定した造りでない限り(ガッチガチに外部キーで固めるとか)チェック機能が働きません。
例えば、電話番号を一括変換した時に、間違った変換をしてX-XXX-XX XXX…なんてなっちゃった。
UPDATEで一気に一括変換したから、どれがおかしいのかもうわからない。
画面から入力するときはXX-XXXXX-XXXXと自動で変換&おかしければチェックしてくれるけど、
手動で変なデータにしちゃったら、もう画面に表示もしてくれなくなっちゃった…
リアルタイムで運用しているDBにバックアップを戻せる訳もない…
…なんて事になりかねません。
こうした取り返しのきかない事にならないよう、テーブルの仕様&何を触ってよいのかを知っておく必要があります。
テーブルを直接触ってよいものか、はたまたビューで管理しているのか、権限はどうなっているのか、項目と項目の関連は…
目的であるDBを操作するために知っておかなければならない事が沢山あるかと思います。
まさか、そういった部分をブラックボックスのまま触らせよう…なんて事はないと思いますが…
他社システムを解析する目的とかでないかぎり、社内で入手できるはずです。
結局、どれだけSQLの構文を学ぼうとも、データの構造が知らなければ使えませんからね。
もし、ものすごくフリーに情報が入手できるなら、DBのバックアップや構築用のSQLをもらっちゃって、
自分の端末にプチサイズでDBを作っちゃう、というのが理想ではないでしょうか。
まあ、SQLだけだと結局「練習」するためには膨大なデータを自分で作らなくてはならなくて…なんて
直接実データを使った方が何倍も楽で効率が良い事になりますが;