1分で分かる!データベースとは?
~ ことりん君、スマートフォンをガチャガチャ操作 ~
ん~不思議だなぁ~
ことりん君、こんにちは!今日はどうしたの?
ジャバード先生!ちょっとこれ見てよ!不思議なことが起きてるんだ!
不思議なこと??
昨日スマートフォンを新しくしたんだけど、1週間前に「きつねの本屋さん」に会員登録した情報が、ちゃんとWebサイトに残ってたんだ!ぼくたちがWebサイトに入力した情報ってスマートフォンの中に保存しているんじゃないの??
あぁなるほど!それはデータベースのおかげだね!
でーたべーす??
そう!データベースだよ!データベースは、ぼくたちが入力したデータをきちんと保管してくれる頑丈な箱のようなものだよ!入力した情報を箱に入れたり、データを確認したいときは箱から自由に取り出すことができるんだ!もちろん、一度箱に入れたデータの一部を変更したり、不要になったデータを箱から削除することもできるよ!
データベースは「データを保存する頑丈な箱」か…。あれ、でもスマートフォンのなかに、そのデータベースってやつが入ってるんじゃないの?
データベースはスマートフォンに入っていないよ!そのアプリにもよるけど多くの場合はDBサーバーってよばれるところで動いてるんだ!ぼくたちのスマートフォンからインターネットを経由してDBサーバーにつながってるイメージだね!
あ、そっか!スマートフォンの中にデータを保存しているんじゃなくて、スマートフォンの外側の「DBサーバー」ってところにデータが保存してあるから、スマートフォンが新しくなっても、その「箱」にデータが残っているから、会員情報を確認できたんだね!
そういうことだよ!ちなみに最近はAWSをはじめとするクラウドサービスの1機能であるデータベースを利用する事も増えているよ!
AWSっていうのは前に教えてあげたよね!
参考: AWS
あ、覚えてるよ!雲が「おいしい」お話だね!
そう!それそれ!世の中で動いているWebアプリケーションとかシステムのほとんどがデータベースを使用しているんだ!
データベースってとっても大事なものなんだね!
データベースとは?採用のためのデータベースの予備知識
データベースとは、データを管理するシステムです。データベースにデータを保存したり、必要な場合にデータベースからデータを取得することができます。構成にもよりますが、通常データベースは特定の1か所に集約して管理されます。
データベース自体は「大きな箱」のようなものです。実際に管理される対象は、データの性質や種類ごとに「小さな箱(これをテーブルといいます)」で分けられます。
ECサイトを例に見てみましょう。ECサイトには以下のような「小さな箱」が存在します。
- 会員情報
- 商品情報
- 店舗情報
- 購入履歴情報
- 売上情報
Webアプリケーションやシステムは、これらの「小さな箱」に対して、必要に応じてデータを「参照」「登録」「更新」「削除」しているのです。
また、データベースは「箱」のようなものですが、ただの箱ではありません。Webアプリケーションやシステムによっては、億単位のデータを管理する必要がありますが、そういった大量データでも高速かつ安全にデータを処理できる「魔法の箱」なのです。
データベースを使うエンジニア
ITエンジニア、とりわけアプリケーションの開発に携わるエンジニアにとって、データベースは必要不可欠なものです。技術が進歩し、データベースをクラウド上に作ることが多くなりつつありますが、それでもデータベース自体の仕様は以前から変わっていません。
今後も分野を問わず、ITエンジニアであればデータベースの素養は求められるでしょう。
また、大規模なシステムや高速性が求められるシステムの場合、データベースのスペシャリストであるデータベースエンジニア(またはDBA:データベースアドミニストレータ)が必要とされるケースが多いです。
採用する時に知っておくとよいこと
データベースにはいくつかの種類があります。基本的な部分はどのデータベースも共通なのですが、面倒なことに少しづつ仕様差が存在します。このあたりを理解せずに開発すると、思わぬバグを引き起こしてしまうこともあります。そのため、エンジニアを採用する場合は、どのデータベースの経験があるかを確認すると良いでしょう。
ご参考までに2021年6月のデータベースの人気ランキングを紹介しておきます。
- Oracle
- MySQL
- Microsoft SQL Server
- PostgreSQL
- MongoDB
ちなみに、1位のOracle、2位のMySQLは、現在Oracle社が管理・運営しているため、企業としてはOracle社とMicrosoft社の一騎打ちというイメージです。
求人のポイント
求人を作成する時は、下記の内容を求人に入れるとよいです。
1. システム(サービス)の詳細
※特にそのシステム(サービス)をなぜ作っているのかを熱量をもって記載する。
2. 開発環境
3. 現在のエンジニア組織の体制
4. 現行システムの課題と募集の背景
5. 求められる業務と期待値
6. エンジニアとしてのスキルアップ支援制度の有無と詳細
7. エンジニアチーム内での相互成長のための仕組み(勉強会やLT会など)の有無と詳細
8. 選考フロー
9. 待遇
10. キャリアパス
データベース関連の資格について
データベースに限ったことではありませんが、スキルを判断するために資格は有効です。ここではデータベース関連の資格をご紹介しておきます。
資格名 | 団体 |
データベーススペシャリスト試験 | IPA |
Oracle Master | Oracle |
OSS-DB | LPI-JAPAN |
データベースの種類と特徴
データベースに様々な種類があることは前述した通りですが、どのデータベースを選択するかは大まかな傾向があります。筆者の主観も入っていますが、ご参考までに紹介しておきます。
Oracle
価格が高いが高性能。業務システム、ミッションクリティカル(止まることが許されない)なシステムで使用されることが多い。
MySQL
オープンソースソフトであるため基本的に無料。商用ライセンスもあり。
Web業界はMySQLを採用するケースが多い。また、中規模以下のプロジェクトにおいても費用の面からMySQLが選択される事が多い。
Microsoft SQL Server
Microsoftの技術を中心に採用している企業も多い。たとえば、クラウドサービスであればAzure、プログラミング言語であればC#、OSであればWindowsなど。そのようなMicrosoft製品を中心に導入している企業は、データベースもMicrosoft SQL Serverを採用することが多い。
データベースの種類その2
データベースの種類については前述したとおりですが、別の分け方もあります。Oracle、MySQL、Microsoft SQL ServerはいずれもRDBMS(Relational DataBase Management System)と呼ばれるものです。これはExcelのような表でデータを管理するイメージのものです。
RDBMS以外では「NoSQL型」と呼ばれるものもあります。NoSQLの代表的なDBはAWSのDynamoDB
などです。柔軟性が求められるシステムでは、このようなNoSQL型データベースの採用が増えつつあります。