今日はなにの日。

気になったこと勉強になったことのメモ。

今日は、学生でデータベースを勉強したい人向けの日。

目次

とある日

下記のツイートが流れてきました。

確かにデータベースは重要だと思いますし、やってて楽しいです。

ただ、いざデータベースを学ぶとなると学生だと限界があります。

なので、少し前まで(2021年まで)専門学生だった自分の体験談であったり実際にやれることを紹介しようと思います。

自分の学校にはデータベース好きな人がいなかったので学生や若い人でデータベースが好きな人が触れると嬉しいです。

データベースは楽しいです。ぜひ。

この記事を読む前に、下記資料(以下、元の資料と呼ぶ)をご一読することを推奨しております。

如何にデータベースが重要でなぜ私達が学ぶのか / Reasons for learning a database - Speaker Deck

学生の限界

まず、学生でいたころのデータベースの学習についてお話します。

データベースを学ぶには学生のうちだとかなり限界があります。

理由としては、データベースがエンドユーザーから遠い位置で動くからです。

実際に動いているデータベースのテーブル構造を見たいと思っても見れません、見れたらセキュリティ上よろしくないです。 (見れたとしても公式が出しているサンプルのデータベースとか。)

上記の理由や普段データベースを意識しないで生活できるため、データベースが好きな人や興味を持つ人が少ない所以だと思ってます。

今学生でデータベースが好きだけどどう学べばいいのかわからない人やデータベースが儲かる話に興味を持った人たちの助けになればと思います。

学生できるデータベースの学習方法

前提として、学生の範囲内で関われる方法を定義してます。

例えば、インターンで実際にデータベースを触れる環境にありますや、自宅でデータベースサーバ運用してますみたいな人にはあまり参考にならないと思います。

そういった人はその環境でデータベースを実際に触るのが一番良いと思います。

ただ、そういった人はごく一部だと思います。

それ以外の人に向けて自分がやったことややったほうがいいことを踏まえて紹介します。

書籍を読む

まず、元の資料でもあったように体系的に学べるのでおすすめです。

三段階に分けて紹介します。

一応元の資料にはない書籍を紹介します。

初級編は、SQLやデータベースってなにって人向けです。

中級編は、より深くデータベースを知りたい人、設計や実装の注意点を学びたい方向けです。

上級編は、データベースの内部について知りたい人や原理が知りたい人向けです。

中には現在読んているものもありますが、自分のおすすめを列挙しています。

自分はデータベース知識は専門学校で学んだので初級編あたりはあまり参考にならないかもしれません。

資格を受験

ちょうどいい題材を用意してくれています。

データベースを学べるし、資格を取得できるので一石二鳥です。

SQLや設計についてIPAの資格試験は良い題材です。

自分は設計が好きだったのでデータベーススペシャリストの試験は楽しかったです。

あと、自分はOracleMySQLよりで学んできたのそれ以外についてはあまりわからないのでご了承ください。

コミュニティーセミナーへの参加

各データベースでコミュニティーセミナーがあります。

↓でキーワードをもとに探してみると良いです。

connpass - エンジニアをつなぐIT勉強会支援プラットフォーム

そこに参加すれば実際に働いている人の話が聞けるのでかなりいいです。

公式のセミナーは製品公式のページに行かないとわからないので、そういった場合はツイッターをフォローすると良いです。

他にもSlackのワークスペースもあるので探してみるとよいです。

下記自分が知ってるやつを上げておきます。

日本PostgreSQLユーザ会 | 日本PostgreSQLユーザ会

日本MySQLユーザ会

MySQL Slack

Oracleイベント | Oracle 日本

コンテストへの参加

ISUCONCTFなどは貴重な他者のデータベースを触れる環境にあるので参加してデータベースの設計などを見ることができます。

コミュニティーセミナーへの参加はどちらかというと視聴者として知識をインプットすることを目的としますが、

コンテストの参加は主に知識をアウトプットすることが目的です。

調べると数は少ないですが、データベースに触れるコンテストやイベントなどあったりします。

他にもSQLを学びたい場合はプログラミングサイトに問題があったりします。

やっておいたほうがいいこと

今までデータベースを学ぶ題材をご紹介してきましたが、最後にデータベースを学ぶ上でやっておいたほうがいいことをご紹介します。

幅広いITの知識

データベースは単体で存在して活用することめったにありません。(データベース単体で意義をなすものを自分は知らないです)

なにからデータを受信して保存しますし、SQLを通してなにかしらデータを送信します。

ですので、データベースを操作するプログラミングの知識であったりデータを表示するフロントサイドの知識、データベースを立てるインフラの知識などを持っておいたほうがよいです。

検証環境構築

やはり手を動かすことがデータベースを学ぶ上で大切なので持っておきましょう。

ローカルマシーンにそのままお好きなデータベースを構築しても良いですが、Dockerを使ってやると更に便利です。

もしくは、VirtualBoxとか。

いろんなデータベースを触る&知る

RDBMSOracleMySQLPostgreSQL以外にもデータベースはたくさんあります。

NoSQLだと、MongoDBやDynamoDBなどあります。

最近だとNewSQLとかも出てきました。

わかりやすいところだとAWSだと8つタイプが分かれてます。

AWS が提供するクラウドデータベース | AWS

仕事をすると、聞いたことないデータベース製品に合うことがあるかもしれません。

その際に、事前知識があると対応がしやすかったり、適切なデータベースを選択してアプリケーションを実装する手助けになると思います。

おまけ:就職について

学生が本記事の対象なのでデータベースを仕事にしたという人向けに自分が使った就活で会社を探す方法について最後共有します。

(ちなみに、自分は全滅でした)

簡単な会社の探し方として、使いたい製品のパートナーを結んでいるところを探してください。

パートナーだと専用のサービスが使えたり、社内にナレッジが豊富だったり、単純に製品を使った仕事が多いです。

これはデータベース以外にも使えるテクニックだと思いますが。

例えば、MySQLを使った仕事をしたい場合はMySQLのパートナー一覧から会社を探したり。

MySQL :: MySQL パートナー エコシステム

あとは、資格数とかを参考にして資格取得数ランキングから会社を探したりすると自分のやりたいことを実現できる可能性が高いです。

パートナー企業別オラクル認定資格(Oracle Applications)取得数 | オラクル認定資格制度 | Oracle University

学生のうちだとデータベースに携わるのはかなり難しかったです。

もちろん、学校の課題でデータベースを構築してサービスを作ることはありました。

仕事をすると、データベースはそこら中にあるので設計を見たりスロークエリーを見たりなどできますが学生だと厳しいです。

ですが、学生でもできることは多いです。

さらに、データベースは重要で、「データベースの死はサービスの死」という言葉があるように軽い気持ちで触れるものではありません。

↓こんな事も起きたりします。

SELECT文で本番環境を落としたお話 - Qiita

ですので、学生のうちから正しい設計や正しいクエリなど基礎を勉強することをおすすめします。

もちろんしたいことがあるのであれば検証して試してみるのも一興です。

自分も触ったことのない機能とかやってたりします。

もっと具体的に知りたい方は、このブログの他のカテゴリーをご覧になることをおすすめします。

記事の中で参考になるサイトなど紹介していたりするのでそれを見たりするのも良いかと思います。

データベース カテゴリーの記事一覧 - 今日はなにの日。

MySQL カテゴリーの記事一覧 - 今日はなにの日。