0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

SQLとは何か ― DBMS・ドライバ・Javaの関係を整理する

0
Last updated at Posted at 2026-07-05

SQLとは誰に何をする言語か

SQLはDBMSに命令する言語である。
具体的には、DBMSに「何がほしいか」だけを伝える言語である。

DB・DBMS・SQLの関係

DBは情報を格納するものであり、DBMSはそれを管理するソフトウェアである。
SQLは、DBから情報を得るために命令を出す言語である。

Javaの中でSQLはどんな形で存在するか

Javaの中では、SQLはただの文字列として存在する。
Javaはその意味を理解せず、ドライバが用意した通路を通じてMySQLに渡すだけである。

そのSQLを実際に実行するのは誰か

それはDBMSである。
Javaがドライバの設置した通路を通じてSQLを送り、MySQL側で実行する。

ドライバはどんな役割を持っているか

Javaは、ドライバが設置した通路を通じて、SQLをMySQLに送る。
もしドライバがなければ、SQLを送ろうとしてもMySQLはそれを受け取れない。
なぜなら、DBMSというものはそれぞれ違うネットワークプロトコルを持っているからだ。
ドライバは、そのプロトコルをJavaから通信できるようにしてくれる。

私はどのように理解に至ったか(推論の過程)

最初、私は命令型言語と宣言型言語の違いが分からなかった。

命令型言語は、生まれたばかりの赤ん坊のようなものである。
一から十まで私が指示してやらなければ、その命令を処理できない。

一方、宣言型言語は、受け取った命令をどう処理すればよいかを、すでに知っている。
だから「どうやって(how)」ではなく、「何が(what)ほしいか」だけを要求すればよい。

はじめ、私はSQLをJavaやPythonのようなプログラミング言語だと思っていた。
しかしSQLとは、DBMS(DataBase Management System)に命令を出すための言語である。
したがって、両者は同じ系統の言語ではない、という結論に至った。

ドライバとJPAを分けられなかった話

はじめ私は、ドライバがJavaからのSQL変換から、DBMSへの伝達まで、
すべてを処理してくれるものだと思っていた。

しかし、ドライバがしてくれるのは、DBMSと通信するための「通信経路を設置すること」だけである。
Javaの言語をSQLに変換してくれるのは、JPAというものの役割であった。

この二つを分離したとたん、壊れていた論理回路が再び動き始めた。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?