[Quora] フロントエンジニアがデータベースに詳しいと得をする?

Quora回答シリーズです。

質問

フロントエンドのエンジニアはデータベースに詳しいと得をしますか?

https://qr.ae/pNP3Wv

まぁそもそも詳しくて損をすることなんて無いんですけどねw

回答

「フロント」が何を指すかにもよりますが、例えばWebサービスであればWebSQLIndexedDBスマホアプリであれば組み込み型のDB(SQLite)など、現在ではサーバのみならずクライアントでもデータベースを利用します。(WebSQLは廃案になっちゃいましたが)

blog.katsubemakito.net

そういった意味においては、KVSの扱い方、SQLの簡単な利用方法、そもそものデータベースの考え方などは「得」…というより現在では基礎教養の範囲になっているのではないかと思います。


さて少し視点を変えてみましょう。

横井軍平氏の「枯れた技術の水平思考」ではないですが、普段自分と関わりの無い技術を習得すると、それを自分が特異な分野に活かすことが可能になります。「データベース」には数十年の歴史がありますので、実装レベルで追っていくと様々な発見があります。

例えばデータベース上のデータを操作するSQLと呼ばれる言語は様々なところで活躍しています。

facebookではアプリ開発者がユーザー情報を操作する際にSQLをカスタマイズした「FQL」と呼ばれる言語をリリースしました。これは初見でシビレましたw en.wikipedia.org

SQLと同様に様々な知見が得られるのですが、例えば「インデックス」とは何か学べばデータを効率よく高速にさばく技術が身につき、クライアント内で多くのデータを扱う際に役立つかもしれません。

MySQLであれば「ストレージエンジン」毎の違いを学ぶだけでもワクワクすると思います。データの扱い方や保持の仕方によって最も最適な独立したソフトウェアを選択する方式は賛否ありますがそういう世界もあるのかと関心した記憶があります。ブラックホールなどは命名も含めて初見ではびっくりしました。

リレーショナルデータベースで行う設計方法「正規化」を理解すれば、一般的なプログラミング言語でもデータ構造をどう持つかコーディング時のヒントになるかもしれません。

まぁ騙されたと思ってまずはお手元のクライアント上で動くデータベースから触ってみられてはいかがでしょうか?