Help us understand the problem. What is going on with this article?

【新人向け】これだけは知っておいて欲しい基礎知識 DB編

More than 1 year has passed since last update.

Opening

色々抜け漏れがあったり説明不足だったりするので、時間が確保できたら修正します。

今回はDBに関する内容についてまとめてみました。
良記事へのリンクを集めたつもりですが、一度読んだだけでは理解できない箇所が多いと思うので、今後どのような知識を身に着けていけば良いかの参考にしてもらえれると幸いです。

Appendices

そのうち書き足していくつもりです。

Body

DBMS

(Relational) Data Base Management System について
まずはさらっとDBMSとその種類について勉強しましょう。
リンク先はDBMSの基礎知識というタイトルだけあって、基本的な内容が分かり易くまとまっています。
NoSQLについては、MySQLやPostgreSQLなどのRDBMSでも似たようなことが出来るようになっているので、概要だけ学んで、製品については必要になったときに触れば良いと思います。

SQL

深いぞ…
申し訳程度にリンク貼っておきますが、今回は構文については深く説明しません。
ただ、Case式やFrom句の副問い合わせなんかを覚えると出来ることが広がるので、興味があればググってみると良いと思います。
(SQLゴリゴリ書くと嫌な顔されることもあるのでその点は注意が必要です。)
RDBMS毎にサポートしている機能や構文について、機会があればまとめたいと思います。

排他制御

データの整合性を保つために
トランザクション分離レベルについて分かり易く説明している記事って意外と見つからないものですね。
時間があれば図を書いて説明してみたいと思います。

パフォーマンスチューニング

SQLのパフォーマンスチューニングについて
ヒント句は基本的には使用せず、使うにしてもデメリットまで理解した上での利用が望ましいと思います。
詳しくは「実行計画」等でググりましょう。

データベース設計

データベースの設計をする場合は書籍を読んで体系的な知識を身に着けるべきだと思いますが、まずはとっかかりとして下記の記事が参考になると思います。

GUIツール

自分はVSCodeの拡張で済ませてしまうことが多いですが、GUIツールを入れておくとクエリを書くのも結果を見るのも楽なので利用しているDBMSの純正GUIツールくらいは入れておきましょう。
DataGrip使ってみたい…

ドライバ

アプリケーションからDBを利用するためのドライバについて
ODBCを活用するとExcelのSheetをTableに見立ててSQLで操作したりできるので、知っておくと変なことができますʕ◔ϖ◔ʔ

ORM

Object-relational mappingについて
個人的にはあまり良い感情を持っていませんが、オブジェクト指向で組むなら利用すべきだと思っています。(オブジェクト指向を意識していなくても、生SQLの結果をマッピングさせたりは便利ですが)
SQLを学ばなくて良いというのはよくある誤解で、ORMを使うとどういう嬉しいことがあるのか開発メンバー全員が理解していないと、使っていても辛いだけということが多いと思います。
(ORMを使ったほうが良いかどうかについては、作るシステムの要件によって大きく左右されると思うので…)
特にエンタープライズ系の複雑な業務ロジックでは、生SQLゴリゴリ書いた方が幸せだったんじゃないかなぁと思うことが多いです。

その他

おススメの本とか記事とか

Closing

以上です。

tomPlain
SIerで働く日曜プログラマー() SQLが好き。最近になって世の中の多くの人はSQLが好きではないことに気付いたʕ◔ϖ◔ʔ
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした