Open1

軽量データベースの種類や用途・その歴史的背景やプログラミング言語ごとの文化的違い

anfangdanfangd

What is 軽量データベース

Webアプリケーション開発の現場に長らく身を置いているけれど、実装経験が長いのは PHP や Ruby などの LL系言語ばかりで Javaを使った開発は新人時代に数ヶ月実装経験ある以降は、上流で仕様を調整することばかりだったので細かいお作法などはあまり詳しくない。

自分が 2010年代中盤以降で実装の経験をした現場は、仮想環境をある程度柔軟に手配できたことやOSSを使ったアプリケーション開発がメインだったという経緯から、それ以外の現場で使われるような技術や文化的な制約については疎いという自覚がある。

そんな背景を持った自分が最近、 Spring Boot を使って何か作ろうといくつかの書籍を参考にプログラムを書いていたところ、開発時にDBアクセスまわりは H2 Database を使うのがお作法となっているようだと気づいた。

これまでの経験では、 Docker や Vagrant を使って OSS のDBを容易に開発環境に用意でき、そこと接続したテストを書くことが多かったけれど、なぜわざわざ、この H2 Database のような軽量データベースを使うのか、その位置付けやお作法、トレンドが何なのか掴みきれていない。

「JUnit 実践入門」を読んでいると、特に商用のライセンスが必要なDBとの接続に関するテストなどのケースにおいて、代替データベースとして H2 Database や SQLite のようなものが使われることはわかった。

そうなると、もしや LL系の言語でもそういったものがあって自分が知らないだけなのか?と、気になりだしてきた。

ということで、その辺の情報をまとめられるようなスクラップを作ってみました。