データベースは、Webサイトやアプリケーション、業務システムなど、さまざまなところに組み込まれています。エンジニアにとってデータベースは避けて通れない知識の1つと言えるのではないでしょうか。ここでは、そんなデータベースを扱ううえで重要な2つの概念簡単に紹介します。
データモデリング
そもそも、なぜ「データベース」が必要なのでしょう。IT産業において、データは企業活動の根幹とも言える重要なものです。しかし、ただデータを持っているだけでは価値を生み出すことはできません。正確なデータを、必要な人が、必要なときに、必要な単位で取り出すことができてはじめて活用できるのです。つまり、つねに整理され、最新化されたデータの置き場(データベース)があれば、蓄積したデータをさまざまな用途に活用できると言い換えることができます。
信頼性が高く、将来的な変化にも強いデータベースを設計するためには、ある一定のルールと制約が必要です。そのルールや制約に従ってデータを整理したり調節したりしながら構造化していくことを「データモデリング」と言います。システム開発の段階においては、次の2つが重要になります。
- 論理データモデリング:データ構造を整理(正規化)し、安定化を図る
- 物理データモデリング:データの保守性や安全性などを考慮しながら、論理データベースを「動くデータベース」に調節する
データモデリングを行う際は、単に要件を満たすデータ構造を設計するだけでなく、蓄積したデータを活用できるようにする必要があるということです。
SQLとNoSQL
私たちが普段使っているデータベースの多くはRDB(リレーショナルデータベース)というモデルに基づいています。また、RDBを管理するシステムはRDBMS(リレーショナルデータベース管理システム)と呼ばれ、MySQLやPostgreSQLがこれにあたります。RDBでは、同じ属性項目を持ったデータの集まりを表(テーブル)形式で扱い、SQLというデータベース言語を利用して、テーブルに行を格納/削除したり、列を更新したりします。このとき記述するSQLの命令文は「クエリ」と呼ばれます。SQLには標準規格があるほか、RDBMSによっても違いがあります。最近では直接クエリを書かずにO/Rマッパーと呼ばれる機能を用いることも多いですが、クエリを確認する機会は何かと多いので、SQLの知識は有用です。クエリの中でもよく使われるのが、データの取り出しを行うSELECT文です。SELECT文を使いこなせるようになると、テーブル操作がぐっと広がります。
一方、分散コンピューティングやクラウドの台頭などにより、NoSQLという新たな概念のデータベースも登場しました。一般的なRDBMSで設計ができるシステムの場合は適さない場合が多いので、使用するシステムによって使い分ける必要があります。
本書『データベース速攻入門』は、『Software Design』のデータベース関連記事をまとめた書籍です。RDBMSに依らないデータモデリングの方法について、ER図を使いながら丁寧に解説しています。また、SELECT文をはじめとするテーブル操作を行うためのSQL文の書き方はもちろん、データ抽出・分析を行う50題の演習問題により、SQLを書く力や実際に分析を行う力も身につけることができるでしょう。さらに、アプリケーション開発者が押さえておきたいMySQLの5つの特徴やAWSで提供されているRDBMSサービス「Amazon RDS」とNoSQLサービス「Amazon DynamoDB」の使い分けポイントまで紹介しています。いざというときに役立つ、確かな知識が満載の1冊です。