高校生からわかる🔰データベース(DB),SQLってなに?【前編】
はじめに
この記事の内容
この記事では,前提知識を可能な限り必要とせずに「データベース(DB)」と「SQL」とは何なのかについて概要を解説します。
想定読者は,これから高校の情報の授業でデータベースに触れる高校生や,情報の授業が高校で必修化されたことで焦っている大人たちです。データベースがどんなものなのかについてのなんとなくのイメージが湧くところまでを目標にしています。なので,厳密さよりも分かりやすさを優先しています。
自己紹介
はじめまして!エンジニアの遠藤和真です。
地方公立高校から東大に合格し,東大で修士号(工学)を取得しました。
新卒で就職したばかりですが,大学在学中からエンジニアとしてインターンをしていたり,研究でもシステム開発をしていたので,エンジニア歴は5~6年になります。
家庭教師など教育分野に携わることも多かったので,情報分野の教育は自分の興味の一つでもあり,このような記事を書いています。
データベースってなんなのよ
さて,早速ですがデータベースとはなんでしょうか。
Oracle Japanによれば,
データベースとは、構造化した情報またはデータの組織的な集合であり、通常はコンピューター・システムに電子的に格納されています。データベースは通常、データベース管理システム(DBMS)
で制御します。データとDBMS、およびそれらに関連するアプリケーションをまとめてデータベース・システムと呼びます。多くの場合は単にデータベースと呼んでいます。
となっています。
はい,難しいですね。訳が分かりません。
データベースとは,誤解を恐れずに言えば,「データを保存するとき,後(あと)で取り出しやすくする」ものだと思ってもらえればいいです。
図書館の大量の本がジャンル別でもなくすべて無造作に積み上げられていたら,探している本を見つけるのに時間がかかってしまいますよね。
逆に書架に並べていたらすこし探しやすい感じがします。
同じようにコンピュータにデータを保存する場合でも,あとで探しやすい(取り出しやすい)ほうがいいね,というのがデータベースです。
コンピュータにデータを保存する…?
「コンピュータにデータを保存する」と言われてもあまりピンと来ないかもしれませんね。
身近なところで言えば,たとえばInstagramの投稿やYouTubeの動画なんかも,データがコンピュータに保存されていて,データベースが使われています。
Instagramの投稿をしてもデータを保存したというイメージは無いかもしれませんが,あとから投稿を見ることができるのは,Instagram側でコンピュータに投稿のデータが保存されているからです。
同じようにメモ帳アプリに何かを書いてもコンピュータにデータを保存していますし,コンビニで買い物をしてもそのデータがコンビニ側のコンピュータに保存されています。
あとから探しやすい…?
なるほど。そうなるとたしかにデータをコンピュータに保存するという機会は(自分が意識していなくても)多くありそうです。
だけどあとから探す機会なんて多くないのでは…?と思いますよね。
実はこの「探す」という行為も気づかないうちに行われているんです。
例えばInstagramのプロフィールページに行くと,その人の投稿が一覧で見れますね。Instagramには膨大な量の投稿がある中で,その人の投稿だけを一瞬で探し出すというのは実はすごいことをしていて,これはデータベースの恩恵です。
同じようにInstagramのフィードも膨大な投稿の中から自分のフォローしている人の投稿だけをピックアップしていて,裏では「探す」という作業が行われています。
もっと言うと,実はユーザーデータも取り出しやすいようにデータベースに保存されているので,膨大なユーザーの中から自分のフォロワーだけを表示することが可能になるのです。
このように投稿一覧やフォロワー一覧のように,一覧するだけに見えるものも,実は裏では膨大なデータの中から探す(取り出す)という動作が行われていて,このためにデータベースに保存する必要があるのです。
イメージが湧きません
取り出しやすいように保存されているのは分かったけど,どんな感じで保存されているのかイメージが湧かないと思います。
取り出しやすいように保存する方法は様々あり,すなわち様々なデータベースの種類があるのですが,ここから先ははデータベースの中でも特に重要な「リレーショナルデータベース」というものに焦点を当ててお話していきます。
皆さんはMicrosoft ExcelやGoogleスプレッドシートなどを使ったことがあるでしょうか。縦と横にマス目が並んでいる表に情報を入力するというものです。
「リレーショナルデータベース」とは,難しそうに見えて実はExcelのような表にデータを保存するというものです。
Excelじゃだめなん?
たしかにExcelとリレーショナルデータベースは似ているんですが,それぞれ強みが違います。
Excelは一人または企業内で限りあるデータを管理する際は重宝するんですが,たとえばInstagramの全ユーザーをExcelで管理しようとするといくつか不都合が生じます。
一部を挙げると,
- データが多すぎて管理・検索が難しい
- フォロワー一覧などをだすのも難しい
- 同時に多くのユーザーがデータを編集・追加等をするのが難しい
- 鍵垢などのアクセス権をユーザーそれぞれに与えるのが難しい
などです。
リレーショナルデータベースは特に大規模なデータに対して複雑な処理をする場合においてもこれらの問題を解決し,大規模な場合でもデータを取り出しやすく管理することが可能になるのです。(そういうものだと思っておけばOKです)
また,リレーショナルデータベースのExcelとの重要な違いとして,ユーザーが直接操作するのではなくデータベース管理システム(DBMS) というものを使って操作するという特徴があります。直接操作できないと言われると使いづらくなりそうですが,DBMSのおかげで上述のようなリレーショナルデータベースの強みが実現され,フォロワー一覧を表示するなどの大変な処理が素早く行えているんです。(そういうものだと思ってください)
人間が直接データベースを操作せずDBMSに代わりにやってもらうわけですが,ということは人間はDBMSに指示を出すことになります。
DBMSに人間が指示を出す時に使われる言葉の一つが「SQL」です。
(【後編】へ続く)
Discussion