データ分析と連動して「SQL」という言葉を聞いたことがあるかもしれません。プログラミングだから難しそうと感じる人もいそうですが、実際は基本的な文法を身につけることはそんなに難しいことではありません。
むしろ、勉強量に対して得られる成果が大きいスキルだと思います。
今では、エンジニアに限らずどの職種でもデータ分析スキルが求められており、IT化が進むにつれてますます重要なスキルになります。
本記事では、データベースって何?SQLって何?と思っている非エンジニアの方に向けて簡潔に解説していきます。出来るだけ専門用語は控えて、最低限必要な知識だけを取り上げています。
ぜひ最後まで読んでみてください。
目次
データベースとは何か?
データベースとは、Webサービスなどで扱う情報・データを管理する場所のことです。
Wikipediaでは下記のように定義されています。
データベース(英: database, DB)とは、検索や蓄積が容易にできるよう整理された情報の集まり。 通常はコンピュータによって実現されたものを指す。
Wikipedia
テキストだけで読むと難しく感じるかもしれませんが、私たちの身近にもデータベースは存在します。例えば、家計簿は自分や家族のお金に関する情報が集積されています。いつ・どれくらいのお金を使ったのか見つけやすく整理されており、立派なデータベースだと言えます。
電話帳や辞書もデータベースです。電話帳には名前や電話番号が整理されて記載されており、辞書には言葉の定義が整理されて記載されています。
このように、一定のルールに沿って整理された情報の集まりはデータベースと言えます。
データベースの役割
一方で、メモ帳はデータベースとは言えません。データは一箇所に集まっていますが、それらが整理されておらず必要な時にすぐに取り出したり、他人に情報を共有することができないからです。
膨大なデータを扱いやすく管理し、共有・編集・抽出しやすくすることがデータベースの役割です。
特にインターネットサービスではデータが資産になります。蓄積されたデータからどのような顧客が購入に繋がっているかを分析できれば、販売ターゲットを絞って売上向上に繋げることができます。
よって、データをどのように整理し管理していくのかは非常に重要であり、非エンジニアであっても知っておくべきなのです。
データベースの種類
データベースは過去様々な種類が存在してきましたが、現在、最も広く用いられているのがリレーショナルデータベース(略称:RDB)と呼ばれるものです。
リレーショナルデータベースとは、Excelの表のような形式でデータを保存していくデータベースの種類です。
例えば、ECサイトを例に取ると、データベースの中にユーザー情報や商品情報が表形式で整理されて保存されていきます。
リレーショナルデータベース管理システム(通称RDBMS)とは
リレーショナルデータベース(RDB)はあくまで考え方のことです。実際に私たちがデータベースを使用しようと思うと、社会実装されたリレーショナルデータベースを管理する専用ソフトウェアを使うことになります。これを、リレーショナルデータベース管理システム(通称RDBMS)と言います。
代表的なRDBMSに、Oracle、MySQL、PostgreSQLなどがあります。聞いたことがある方もいるかもしれませんね。
そして後述しますが、このRDBMSにアクセスしてデータを作成したり、削除したり、検索したり、抽出したりするためにSQLを使用します。
SQLとは何か?
SQL(エスキューエル)は、データベース(RDBMS)の操作を行うためのデータベース言語です。RDB専用に作られたプログラムであるという点がポイントです。
SQLは国際標準化されているため、先ほどあげたようなOracle、MySQL、PostgreSQLなど、どのソフトウェアであってもSQLで操作が可能です。
SQLを使えば、データベースに対して以下のような操作をすることができます。
- データの作成
- データの削除
- データの検索
- データの更新
プログラミング言語との違い
SQLは正確にはプログラミング言語ではありません。データベースを操作することに特化したデータベース言語と呼ばれるものです。
プログラミング言語は有名どころだと、C言語、Ruby、Java、Pythonなどがあります。プログラミング言語はコンピュータに対して指示をするための言語で、WebサービスやWebシステムを開発するために使用されることが多いです。
条件分岐や繰り返し処理など、複雑な処理を定義できます。
一方で、SQLはデータベースに対してしか指示を出すことができません。
プログラミング言語で記述したコードの中に、SQLのコードを埋め込むことでデータベースにアクセスすることができます。
非エンジニアが使うのはデータの検索(取得)のみ
SQLを使えばデータベースに対してデータの作成、削除、更新、検索などができます。とは言え、非エンジニアが行うのは基本的にはデータの検索(取得)のみです。
間違ってデータの作成や削除が行われると大変なので、権限が与えられることは少ないです。また、非エンジニアはデータ分析をするためにSQLを使うので、データの検索ができれば十分です。
また、データの作成や削除をする場合でも、直接プログラムを書いて命令を行うのではなく、プログラミング言語で書かれたプログラムの中にSQLが埋め込まれているのが一般的です。例えば、私たちがSNSで投稿をすると、投稿データを作成するSQLプログラムが動いてデータが作成されるといった具合です。
SQLを使った具体例
よりイメージを持つために、簡単にSQLプログラムを使ってデータを検索してみます。
データを検索するために使うのは「SELECT文」と呼ばれるプログラムです。今後、データ検索にはSELECT文を使うことになるため覚えておきましょう。
今回は、下記データベースにおける「users情報の年齢が30歳を超える人のデータ」を検索することをゴールとします。
基本構文は下記です。
SELECT データ検索する列を指定(列名1, 列名2, 列名3, ...)
FROM データを検索する表を指定
WHERE 検索条件を指定
それぞれの意味は下記のようになります。
SELECT・・・どの列のデータを検索するかを指定(→ 今回は全ての列を検索したい)
FROM・・・どの表のデータを検索するかを指定(→ 今回はusersの表から検索したい)
WHERE・・・どのような条件で行を検索するかを指定(→ 今回は30歳以上を検索したい)
今回の検索条件を踏まえた、最終的なSQLプログラムは下記になります。
SELECT *
FROM users
WHERE age >= 30
このSQLプログラムを実行すると、30歳以上のユーザーをデータベースから検索することができます。
非エンジニアがSQLを習得するメリット
すでにお話ししてきましたが、非エンジニアがSQLを習得する最大のメリットはデータ分析ができることです。エクセル管理には限界があるため、ほとんどのWebサービスやシステムはデータベースを使ってデータ管理をしています。
豊富なデータを保有しているにも関わらず、それらを使いこなせないのは機会損失が大きすぎます。データを自由自在に扱うことができれば、定量データを元に新しいアイデアの着想に繋がったり、正確な意思決定ができます。
結果、ビジネスの成果に繋がるでしょう。
実際にSQLを勉強をしてみると、基本的なプログラムであればそこまで難しくないことが分かると思います。プログラミングだから難しそうと一括りにして毛嫌いをせず、ぜひこの機会にチャレンジしてみてください。
内容のまとめ
- データベースとは、Webサービスなどで扱う情報・データを管理する場所のこと
- 身近にある辞書、電話帳、家計簿、銀行通帳のような一定のルールに沿って整理された情報はデータベースと言える
- データベースの役割は、膨大なデータを扱いやすく管理し、共有・編集・抽出しやすくすること
- 現在、最も広く用いられているデータベースがリレーショナルデータベース(RDB)であり、Excelの表のような形式でデータを管理することができる
- リレーショナルデータベースを実用化したソフトウェアのことをリレーショナルデータベース管理システム(RDBMS)と言い、代表的なRDBMSにはOracle、MySQL、PostgreSQLなどがある
- SQL(エスキューエル)は、データベース(RDBMS)の操作を行うためのデータベース言語であり、データの作成・削除・検索・更新などができる
- プログラミング言語はWebサービス開発などに用いられ、コンピュータに対して指示出しをするのに対して、SQLはデータベース言語と呼ばれ、データベースに対してしか指示出しかできない
- 非エンジニアが使うのはSQLにおけるデータ検索の機能のみであることが多い