とあるブログにて。
https://tjo.hatenablog.com/entry/2015/03/13/190000
この地上にDB(データベース)を持たないデータ分析部門は存在しないと思ってほぼ間違いないので、DBを触れることはデータ分析のプロたり得るための最低条件と言っても良いと思います。というか、DBを触れなければ自分でデータを持ってくることはできないし、HDFSや(例えば)AWS Redshiftみたいなのを使わないと回らないような超大規模データが相手だと前処理もできないということにもなり、マジで詰みますので。
SQLはそもそも書けないとその時点で詰むかも
SQLはそもそも書けないとその時点で詰むかも
、、、
SQLはそもそも書けないとその時点で詰むかも
という訳で、今回はデータベースについてのお話。耳慣れないとは思いますし、書くのは初めてなので、今回はざっくりした話しかしません。(できません。)
教育ブログでありながらエンジニアリングの話になって恐縮ですが、
ショッピングサイト
各種交通機関
なんかにも応用されている話なので今回の概要くらいは知っておいても損はないはず。
データベースって必要?
上にあげた例よもはるかに多くの媒体で屋台骨を支えているのが今回紹介するデータベース(DBとか略したりもする) 。ベース(base)は、楽器のbaseみたいですが、日本語だと「土台」ですかね。モノによっては若干定義が変わったりしますが、
「ある目的のために集めたデータを、一定の規則に従ってコンピュータ上に蓄積したもの」
という定義が結構しっくりきます。特に大切なのが、「ある目的のために」というのと、「一定の規則に」の2つですかね。順を追って書きます。まず、闇雲にデータを蓄積でなく、電話帳の友人、買い物履歴、などの目的ごとに蓄積することが大切です。その意味で目的というのが定義では大切。2つ目ですが、これも大切です。ある目的だけを蓄積する、ならば、ぶっちゃけエクセルで十分です。しかし、データ数が万を超えてくると、これがエクセルだと結構しんどい。特に、データを取り出すとき。(この取り出す云々はまたいつか)この検索のしやすさ(あと加工)なんかがデータ分析には大切でして、これが便利なのがデータベースです。その意味で、ここまでだとまだ漠然としてますが、「一定の規則に従って」入っているのがデータベースの特徴ですーってのを覚えておいてください。
データベース3セット
データベースの定義をだらだら書いたんですが、次は構造も知っていただければ嬉しいです。
というのも、データって漠然として持ってても意味がありません。私は家計簿つけてますが、支出を漫然と記録してても意味がなく、例えば分類(浪費、本代)して見ることで「あー、今月使いすぎたなー」とかわかるもの。これと同じで、データも、例え一定の規則に従って集めているだけでなく、これをうまーく取り出したりしないと何も見えないんですね。以前に時系列とか書いてみましたが、時系列にするのも立派な加工のの1つ。
この加工をするのに必要な仕事は、「データを管理すること」と「それを命令する言語」になります。それぞれ名前がありまして、「データベース管理システム」「SQL」と言います。
データベース管理システムは英語でdatabase management systemと言いまして、その名の通り管理が仕事。「あれ、アカウント違くね?」とかの不正を受けつけなかったりもします。他方、SQLというのはプログラミング言語の1つ。これはまた詳しく書きますが、「こういうデータ取り出してきて」みたいな命令をデータベースにしたり、逆に「このデータをこのデータベースに入れて」みたいなことをしたりは必要なプロセス。それを書くのがSQLと思ってください。
、、、ようやく冒頭のお話に戻れます。御察しの通り、データを取り出せなきゃ、分析も何もないのです。だからSQLは必要だよねーというお話でした。今回はデータベースの定義とその中身を3つ覚えてくだされば光栄至極であります。