「データベース」
このページを訪れているということは、一度くらい聞いたことがあると思います。
本記事では、ITエンジニアやデータサイエンティストの目線から、データベースとは何か、なぜ必要かについて解説していきます。
データベースをなぜ学ぶ必要があるのか
データベースとは「データの集まり」のことです。
たとえば下のようなものがデータベースです。
社員番号 | 名前 | 部署 |
---|---|---|
24 | 佐藤健 | 開発部 |
25 | 小林希美 | 経理部 |
26 | 渡辺俊幸 | 営業部 |
データベースには他にもいろいろな種類がありますが、それらは後で述べます。
なぜデータベースが必要かというと、ビッグデータと呼ばれるようにデータ量が多くなって、データを保存する専用の機械(サーバー)が必要になってきたからです。
最近では下図のように、計算を行うコンピュータと、データを保存するデータベースを分けるのが一般的です。(実際にはもっと複雑ですが、簡略化して描いています。)
アプリを作ったり、データ分析したりするときには、データベースから必要なデータだけを持ってきて、計算用のコンピュータで処理します。
このようにデータベースは計算と同じくらい重要なので、エンジニアやデータサイエンティストにとって、データベースを学ぶ必要があります。
次に、データベースとして最初に知っておいてほしい、データベースの種類について説明します。
データベースは大きく分けると、「リレーショナルデータベース(RDB)」「非リレーショナルデータベース(NoSQL)」となりますので、次からはそれぞれについて説明します。
リレーショナルデータベース(RDB)
リレーショナルデータベース(RDB: Relational Database)とは、複数の表を管理するデータベースです。
たとえば以下のように、社員のデータと部署のデータを管理するものがRDBです。
社員番号 | 名前 | 部署 |
---|---|---|
24 | 佐藤健 | 開発部 |
25 | 小林希美 | 経理部 |
26 | 渡辺俊幸 | 営業部 |
部署コード | 部署 | 部長 |
---|---|---|
D01 | 営業部 | 渡辺俊幸 |
D02 | 総務部 | 安藤公子 |
D03 | 経理部 | 藤原健二 |
このように構造化してデータを持っておくと、データを取り出したり結合したりすることが簡単にできるようになります。
データベースの種類としては最もよく使われるもので、RDBという言葉を知らなくても、表形式のデータは見たことがあると思います。
また、RDBを操作するためのコンピュータ言語を「SQL」と呼びます。
SQLを使うと必要なデータだけを抜き出したり、データを更新したりといった操作が可能になります。
データベースを学ぶ上でSQLは必須なので、ぜひ覚えておきましょう。
非リレーショナルデータベース(NoSQL)
リレーショナルデータベースではないものを、非リレーショナルデータベース(NoSQL)と呼びます。
SQLを使わないからNoSQLです。覚えやすいですね。
NoSQLと一括りにされていますが、こちらも様々な種類があります。
以下にNoSQLの一例として、「キーバリュー型」「ドキュメント型」をあげます。
NoSQLでは構造にとらわれない柔軟な形式がありますが、そのぶん専用の処理が必要となります。
データベースの分野では、まずRDBを学んで、必要に応じてNoSQLを使うといった流れなので、こういうものがあるくらいの認識で大丈夫です。
RDBとSQLの関係
先ほど、リレーショナルデータベースの節で、SQLについて簡単に触れました。
データベースではSQLは避けては通れないくらい大事なものですが、RDBとSQLの違いは何でしょうか。
一言であらわすと、RDBは「データベースのうちの1つ」、SQLは「RDBを操作するための言語」です。
つまり、料理にたとえると、RDBは食材そのもので、SQLは食材を処理するための包丁のような位置づけです。
包丁にもいろいろな種類があるように、SQLにも様々な種類があります。代表的なものとしては、以下があります。
- Oracle
- MySQL
- PostgreSQL
- BigQuery
- Redshift
多少の文法の違いはありますが、だいたいどれも同じなので、1つを使えるようになれば十分です。
まとめ
本記事ではデータベースの基本について解説しました。
データベースには大きく分けて「リレーショナルデータベース(RDB)」「非リレーショナルデータベース(NoSQL)」があり、まずはRDBを理解していきましょう。
RDBを操作するためのコンピュータ言語がSQLで、SQLの操作を理解することが、データベースの理解への第一歩になります。