ITやシステムに詳しくなる上でデータベースに関する知識は欠かせません。
来年からシステム担当になるんだけどデータベースって何?っていう人のためにどこから始めたらいいかアドバイスを書いてみたいと思います。
あくまで勉強法についてですので、実際のデータベースのビルドや環境構築については割愛しています。
まずはデータベースが何のために存在するかを理解する
データベースの教科書を手に取ると一意制約だとかデータ方だとか内部結合だとか小難しい話から始められることも少なくありません。
しかしデータベースの存在意義といのはそういったことからはわからないのです。
まずはアプリケーションにどのように繋がるかを学ぶところから始めることで、何のためにDBがあるのかを知り、より深い学習につなげていけると考えています。
しかもそれは本の数十分で終わることです。
まずはデータのテーブルの作成、データの挿入、データの検索、データの更新をさくっとやってみましょう。
顧客マスタを作ってみる
データベースの蓄積しているデータはいろんなものがあります。ECサイトのログだったり、工場の出荷であったり、SNSのアカウント情報だったり、いろんなデータを蓄積しています。
その中でも顧客情報がわかりやすいと思うので仮に顧客データをイメージして進行していきます。
今回はSQL Serverを想定してSQLを書きますが、基本的なCRUDだけなのでどのデータベースでもそこまで変わりはないかと思います。
create table customer_master
(
id int,
name varchar(10)
)
これで顧客データの入るテーブルの完成です。
このようなデータの入る一つの塊の単位をテーブルと言います。
上の例ではidが顧客ごとのID、nameが名前に相当します。
データを入れてみる
insert into customer_master values(0, 'suzuki')
次はデータを入れてみましょう。
このままデータを持っているだけでは数字を書き込んだエクセルと一緒です。
このまま次のステップに進みます。
データを取得してみる
select id, name from customer_master
データを取得してみます。
いちいちデータを見るためだけに上のようなプログラム、正確にはSQLを書く必要があります。これだけだとエクセルの方が便利に思えてくるかもしれません。
しかしこのSQLはプログラムとつながります。エクセルではプログラムには繋がりません。
例えばあなたがAmazonにログインして自分の住所などを確かめるときにも、このSQLがデータベースまでデータを取りに行って、それをプログラムが画面に表示するところまで持ってきます。
その意識を持ちながら上のSQLを実行してみてください。
ここがデータの最初の出口になります。
データを書き換えてみる
update customer_master set name = 'sato' where id = 0
上のSQLを入力することで顧客IDが0番の鈴木さんが佐藤さんに変わりました。
顧客情報の住所変更をするときや、みなさんがAmazonのカートの中身を変更するときにも同様のSQLが実行されているはずです。
こうやってシステムはデータを更新していきます。
アプリケーションを作成してみる
データベースを初心者が理解するためにはアプリを一つ作ってみることをお勧めします。
一意制約やデータ型はその過程で身に付けるか、一度簡単なアプリを作り終えてからでも大丈夫です。
むしろその方が多少のつまづきがあるものの、何のためにデータベースの存在が必要なのかより深く理解できると思います。
データベースはまったく知らない人にとって何のために存在しているのかわかりません。
それを理解するためにはSQLやDBの本自体を手にとってしまうのではなく、DBの上に必ず存在するはずのアプリケーションとの関係から辿ってみましょう。
またデータベースとアプリケーションの関係を一通りイメージできるようになったら、次はこちらの本がわかりやすくておすすめです。