こんにちは、ECF Techブログ
担当のMichiharu.Tです。
今回はプログラミングのお仕事に携わる上では欠かすことのできないデータベースについて、簡単な学習の始め方をご紹介したいと思っています。よろしくお願いします。
対象読者
- 事前に必要となる知識は特にありません。
- データベースを始めてみたい人向けのガイド記事になっています。
データベースとは
データベース(database)を直訳すると「data(情報)」の「base(基地)」という意味です。ITの世界では、コンピュータ内の 巨大な情報置き場 をデータベースと呼びます。さらには、そのデータベースを上手く管理してくれるプログラムが必要で、そのプログラムも含めて データベース管理システム(Database Management System) と呼びます。データベース管理システムは 「DBMS」 と略称できます。このDBMSを指して、データベースと呼ぶことも多いです。
データベースはなぜ必要なの?
情報技術が進化と共に、コンピュータは大量の情報を管理し、取り扱うようになりました。情報が多くなればなるほど、それを適切に管理するシステムを作ることが困難になります。そこで、大量のデータを適切かつ使いやすく、さらには安全性も考慮した専用のソフトウェアである「DBMS」が誕生し、広く使われるようになっていったのです。
私たちが普段利用しているショッピングサイトやフリマサイト、SNSなども、その裏側では沢山の情報をコンピュータが処理することで成り立っています。
下ではショッピングサイトでの買い物を例に、DBMSが利用されるイメージを見てみましょう。
下の図はショッピングサイトで、利用者が商品を検索する場合のイメージを表しています。先にいくつかの用語について確認します。 サーバー は、今回のショッピングサイトのような、インターネット上のサービスを提供するために動作している高性能のコンピュータです。図では下記の2つが存在します。
- APサーバー:アプリケーションサーバの略で、ショッピングサイトのシステムが動作しています。
- データベースサーバー:DBMSが動作しています。
図の 1. ~ 5. について説明します。
- 利用者がキーワードによる商品の検索を行う。
- キーワードがAPサーバーに送信される。
- APサーバーは、キーワードをデータベースサーバーに渡し、商品情報の取得を依頼する。
- データベースからキーワードに該当する商品の情報を取得し、APサーバーへ返される。
- APサーバーは、4.でもらった情報を利用者に提供する。
このように、利用者にサービスを提供する担当とデータを管理する担当に役割分担をすることで、ショッピングサイトのサービスが成り立っています。データの管理をDBMSに任せてしまうことで、本来のサービスを提供するプログラムの開発がとても楽になります。
リレーショナルデータベース
DBMSでの学習を始めるにあたって、まずはリレーショナルデータベース(Relational Database)についての基本を学習しましょう。
リレーショナルデータベースは下のような表構造でデータを保持するタイプのデータベースでRDBと省略されます(本記事でも、以降RDBと呼称します)。
表はテーブルとも呼ばれており、どちらもよく用いられる表現です。表の各行は「レコード」、各列は「カラム」とも呼ばれています。また、一般的に表には名前(表名)がつけられます。
また、下のように複数のテーブルに関係性を持たせることで複雑な関係にある大量のデータを保管しています。下の場合、 学生表の学部番号 と 学科表の学部番号 を関連づけて見ることで、「徳川家康さんは工学部に所属している」ことを表していることがわかります。
RDBのDBMSであるリレーショナルデータベース管理システム(RDBMSと省略されます)では、このような関係性を設定することができます。
SQL
SQL(Structured Query Language)は、データベースを操作するための言語です。DBMSが管理しているデータベースの中から表を取り出して表示したり、表の内容を変更したりするのに用います。
たとえば、
SELECT * FROM users;
と記述してDBMSに指示を与えると、「userという表からすべての行、すべての列の内容を取り出して表示して下さい」という意味になります。
データベース学習のスタートとして、主にこのSQLを用いた記述(以降、SQL文と呼称)を学習することがメインとなります。本連載も主にこのSQL文を学習する内容となっています。
これで基礎知識についてはいったん終了です。データベース入門記事の前置きとしてはかなり短いのですが、最低限の知識は学習できました。以降は「SQLite」と呼ばれるDBMSをインストールして、早速利用してみましょう。
SQLiteとは
SQLiteはRDBMSの1つで、次のような特徴があります。
- 軽量で導入がしやすく、インストールが簡単。その軽さからAndroidなどでも利用される。
- パブリックドメイン(著作権が放棄され、誰でも自由に使うことができる)ソフトウェアとして、提供されている。
このような特徴から、普段データベースを利用する機会の少ないプログラミングの学習者でも比較的簡単に始めることができます。
SQLiteのインストール
それではSQLiteのインストールを行なっていきましょう。下記はWindows 10環境での実行手順となります。
- SQLite公式サイト へ移動します。
- 「Download」をクリックします。
- 「Precompiled Binaries for Windows」欄の「sqlite-tools-win32-x86-3350500.zip」をクリックし、圧縮ファイルをダウンロードします。
- 圧縮ファイルを解凍します。解凍場所は特に問いません。下はデスクトップに解凍したフォルダの内容を表示したものです。sqliteというフォルダ内に3つのファイルが入っています。
- これでSQLite自体のインストールは完了です。
サンプルデータベースの構築
次に、練習用のサンプルデータベース構築を行います。本連載記事では次の5つの表をもつデータベースを題材に学習を進めていきます。パソコン関連商品販売のショッピングサイトのイメージだと考えてください。
ただし、表名と列名の定義に日本語を用いて定義することは一般的ではありませんので、各表名および列名は次のようにします。
それでは作業手順です。
- まずはじめに下記ファイル(sample.txt)をダウンロードしていただき、インストール時に作成されたsqliteフォルダに配置してください。ファイルへのリンク※右クリックするとダウンロードができます。
※コマンドとは、コンピュータに指示できる命令の事です。
- 次のように文字列を入力し、Enterキーを押します。
sqlite3 sample.db < sample.txt
- 下記のように特に何も表示されることなく、再びコマンドが入力できる状態に戻っていれば成功です。
これで、SQLを学習するための準備は完了です。
SQLite操作の基本
それでは次にSQLiteの基本操作です。コマンドプロンプトを開いたら、次のコマンドを入力しEnterキーを押します。
sqlite3 sample.db
SQLiteが起動します。コマンド入力部分が下図のように sqlite>
となっていればOKです。
次に下のSQL文を入力し、実行(Enterキーを押す)してみましょう。入力は、スペースも含めすべて半角を使います。
SELECT * FROM items;
正しく実行できると、次のように表示されます。
1|Desktop PC|100000|1 2|Note PC|85000|1 3|Tablet PC|50000|1 4|Mouse|1000|2 5|Keyboard|1200|2 6|USB Memory|800|2 7|LAN Cable|500|2 8|USB Cable|300|2 9|Mother Board|25000|3 10|LAN Card|3000|3 11|Inkjet Printer|9000|
もう少し表を見やすくしてみましょう。次のコマンドを実行してみましょう。
.mode column
実行後は特に何も表示されません。続けて再度下のSQL文を実行してみましょう。
SELECT * FROM items;
正しく実行できると、次のように表示されます。
iid name price cid
--- -------------- ------ ---
1 Desktop PC 100000 1
2 Note PC 85000 1
3 Tablet PC 50000 1
4 Mouse 1000 2
5 Keyboard 1200 2
6 USB Memory 800 2
7 LAN Cable 500 2
8 USB Cable 300 2
9 Mother Board 25000 3
10 LAN Card 3000 3
11 Inkjet Printer 9000
表示がきれいに整いました。 .mode column
はSQL文の実行結果表示を整えるコマンドです。最後に下を入力して、SQLiteを終了します。
.quit
SQLiteのコマンド入力状態( >sqlite
がついている )から、再びコマンドプロンプトの画面に戻ります(下図)。
基本的な操作は以上です。今後のSQL文トレーニングの流れは次のようになります。コマンドをおさらいします。
- SQLiteを起動
sqlite3 sample.db
- 表示モードの切り替え
.mode column
- SQL文の入力練習
(記事の中で紹介するSQL文の入力などを行なう)
- SQLiteの終了
.quit
おわりに
これでSQLの学習準備が整いました。というわけで本日は以上とさせていただきます。最後までご覧くださりありがとうございます。データベースの基本、およびSQL文の理解は、業務でプログラミングに関わる方には必須スキルと言っても過言ではありません。以降の連載では、SQLの文法とそのトレーニング教材(練習問題等)を随時提供予定です。引き続きよろしくお願いいたします。
合同会社イー・シー・エフでは、子ども向けプログラミングなどの教育講座を実施しています。プログラミング教室の案内や教育教材の情報、また関連するご相談・問い合わせにつきましては下記よりご確認ください。