プロが教える店舗&オフィスのセキュリティ対策術

こんにちわ

特に資格取得が目的ではないのですが、実力的にテクニカルエンジニアのデータベース部門取得が可能なくらいまでのスキルを身に付けたいと考えております。

書籍などを探したのですが、「データペース」と言った広範囲での参考資料はあまり無いようです。

そこで、何らかのDBシステムに精通する事によりデータペースに関する知識とスキルを磨きたいと考えております。

そこで皆さんにお願いです。
上記目的を果たす為にお勧めのDBMS と書籍を教えて頂けないでしょうか?

ex. 「DBMS は MySQL、関連書籍は○○出版の×× がお勧めだよ!」

現在の環境は Windows NT4.0 WorkStation ですが、必要であれば他のOSの導入も検討しますのでよろしくお願い致します。

A 回答 (5件)

たとえばですが、オラクルRDBSを選んだとして、一番いい書籍は、「マニュアル」だと思います。


SQLのことももちろんかかれていますがほんの一部です。
他、すべてがかかれています。
実際にRDBSを使う場合にもダイレクトに理解しているかしていないか、マニュアルを活用できるかできないかですぐにわかります。
スキルを身につけたいのであれば、ソフトとマニュアルを購入して、実際に運用してみるのが一番の近道です。
    • good
    • 0
この回答へのお礼

早速の回答有り難うございました。

マニュアルでRDBMSに精通する事は当然必要な事と思います。

+αとしてデータベースの情報科学的な側面の情報を探しています。
簡単な例だと「正規化」とか....

また何か有りましたらよろしくお願い致します。

お礼日時:2002/10/07 13:21

正規化にこだわっておられるようですが、ポイントは、ユニークなキーをいくつ持つかですよ。


キーが少ないほど正規化されます。

これは、本で学んだことじゃなくて、やっていてわかったことです。

がんばってください。
    • good
    • 0
この回答へのお礼

回答有り難うございました。

特に「正規化」にこだわっている訳ではないのですが...

「正規化」ついでにひとつ。
例えばデータペース設計に関する参考書であれば、「いかにして正規化するか」が説明されています。
しかし、正規化すると検索パフォーマンスが落ちる弊害が有ります。
※SQL の SELECT文の実行が遅くなります。
ま・当然 INSERT/UPDATE/DELETE に関するパフォーマンスは良くなりますが。

そこで一つのテクニックとして、検索パフォーマンスを向上させる為にあえて正規化を崩す事も有ります。

こういった様な、実践的な事を吸収できる参考資料を探しています。

また何か有りましたら、よろしくお願い致します。

お礼日時:2002/10/17 17:19

>3.Windows OS でのクライアントサーバーシステム


>  開発 3年程
>4.イントラでのクライアントサーバシステム が
>  2年程

>3と4でDBMSに関わってきました。
>Oracle,SQL Server,MySQL

けっこう実務経験ありますね。
失礼ながら、もっと初心者の方かと想像していました。

ところでデータベースについてですが、開発作業をする際に、
 ・論理設計
 ・物理設計
の2段階の手順で設計を進めることは、既にご存じかと思います。
このうち、後者については個々のRDBMSに依存する割合が
高いので、オラクルマスターなど製品毎に個別のスキルが
必要でしょう。
しかし、前者については、基本的にはどのRDBMSでも共通
のスキルになるかと思われます。

資格として「データベーススペシャリスト」を目指す場合
は外しているかもしれませんが、私の知る限り最強のDB
設計手法を紹介します。
それは『T字形ER』です。

私の知る限りどんな業務にも当てはまりますし、たいてい
の基幹業務システムの開発において絶大な効果を発揮します。

ただし現場で役立つ理論なので、資格取得には向いていない
かもしれない、ということだけお断りしておきます。

参考URL:http://www.sdi-rad.com/index2.html
    • good
    • 0
この回答へのお礼

情報有り難うございました。

T字形ER は初耳でした。調査してみます。
データ中心アプローチの方法論は確かに解りやすいですよね。

有り難うございました。

お礼日時:2002/10/17 17:09

No.2の返答についてのコメントです。



私はあくまで現場第一主義の人間です。
書籍でちまちま調べるよりも、課題に真っ正面からぶち
当たって、自力で問題解決の手法を見つけているやり方
が一番実力がつくと、個人的な経験からも断言できます。

ただ、職場や業務によっては、DBのスキルを磨くほど
の仕事に出会えない可能性があることは理解できます。

そこでですが、sho_taさんのITスキルがわかりませんの
で、今の自分のITスキルについて、またどんな業務をして
きたかについて、簡単に説明していただけないでしょうか。

それを読んだ上で、可能な範囲で助言したいと思います。
(一応、Oracleだけで8年間の実務経験があるので、
 専門家といたします)

この回答への補足

たびたび回答頂き有り難うございます。

ちょっと先ほどのお礼の文章が適切で無かったようです。
もし気分を害されているのであれば申し訳ありませんでした。

私のスキルは下記です。
1.光学製品開発用測定機のOS開発 が 3年程
2.OA機器のファームウェアの開発 が 2年程
3.Windows OS でのクライアントサーバーシステム開発 3年程
4.イントラでのクライアントサーバシステム が2年程

1と2に関しては制御系でしたので、今回の話題には直接関係ありません。

3と4でDBMSに関わってきました。
Oracle,SQL Server,MySQL


で本題に戻ります
今回私が目指しているのは、DBMS に精通する事では有りません。
あくまでも「データベース」と言う広範囲にわたる視野での再学習です。

例えば下記の様な事です。

・正規化の手順
これはちょっと調べれば、書籍なりネットで見つかります。でもそれは辞書的な意味がほとんどですよね。
私が知りたいのは
「どのような段階を踏んでクライアントの要求を分析し、結果として正規化されたテーブルが設計されるか。」
「何を根拠にリレーションを定義するか。」
と言う事です。
いわゆる「方法論」ですね。これは Oracle の取説には掲載されてはいないでしょう。
多分皆さん経験的な情報に基づきテーブルを設計されている事と思います。

後は....「インデックスの実装方法」とか。
これも「Oracleでインデックスを定義する方法」ではなく、
「何を根拠にどのフィールドに実装するか。」
「インデックスによる効果と弊害は?」
と言った所です。


cse_ri2 さんの意見を否定する訳では有りませんが、

>課題に真っ正面からぶち
>当たって、自力で問題解決の手法を見つけているやり方

これは本当に問題を解決されてきたのでしょうか?
いわゆる「逃げ」で切り抜けて来ただけでは?
※多くの技術者にありがちだと思います。悪く取らないでください。この私もその一人 ^^;)

資格に例えて言うなら「オラクルマスター」ではなく「データベーススペシャリスト(テクニカル・エンジニア)」なのです。

技術に例えるなら、「オラクルの使い方」ではなく「データベース設計の方法論」なのです。

と言う事で、またまた長文に成ってしまいました。
もしよろしければ、ご意見をお聞かせください。

補足日時:2002/10/10 18:01
    • good
    • 0

私からの助言ですが、データベースのスキルを本気で身に


つけようとするならば、机上の100の勉強より10の実務経験
の方がよほど身に付きます。

質問者の方が学生さんか社会人かわかりませんが、何でも
いいですから実際にDBを構築し、実際にDBの管理をし
てみるのが一番です。

会社でAccessやExcelで管理していたデータをDBに移す
とか、学生だったら実験用のデータをDBで管理する等です。

そうやって自分で実際にDBを操作してみれば、わからない
ことが山のように出てきます。
それらの疑問を書籍やインターネットの検索で一つずつ解決し、
あるいは既存の情報を探してもわからなければ、マニュアル
を片手に、あれこれDBをいじってみたらよいでしょう。

繰り返しますが、本で得た知識など所詮は付け焼き刃にすぎません。
現場で体得した技術が、本当の生きた知識です。
    • good
    • 0
この回答へのお礼

回答有り難うございました。

>机上の100の勉強より10の実務経験の方がよほど身に付きます。
確かにおっしゃる通りです。
が・しかし、技術者として実務を行っていっても業務上関わる事が無いカテゴリーがあったりします。
※網羅的に接する事が無いと言う事です。

cse_ri2 さんのイメージでは本屋さんとかで良く売ってる「××入門」レベルのイメージだと思います。
確かにそういったレベルの書籍では「かじったていど」の知識しか身に付きません。

しかし、世の中には非常に良い書籍もたくさん有るのです。
※プロの技術者が読んでも難解なレベル

その辺も考慮して、質問で「DBスペシャリストレベルの知識」と言う単語を混ぜておいたのですが....

例えば業務で Windows ベースのイントラを管理しているとします。
この場合、ネットワークの知識がそれほど深くなくとも管理できてしまうのですよね。
ただし、その場合ネットワークの知識が有る訳ではなく、あくまでも「Windowsの操作方法を知っている」レベルに成ってしまうのですが....
それよりも Linux なんかを自分のパソコンに入れていじってた方がよっぽどネットワークのお勉強になります。

こんな感じの事をデータベースでもやりたいんですよね。

なんか長文に成ってしまいましたね。

お礼日時:2002/10/10 15:07

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!