基礎知識

基礎知識 第4回「DB(Database)とは!?」

2019年6月16日

DB(データベース)は保存する場所なのは分かるけど、どうやって保存するのか分からない。

 

DBは実際の開発で、ユーザーや商品情報を保存する非常に大切なシステムです。

もしエンジニアに転職したら必ず使うので、しっかり理解する必要があります。

それでは、DBについて解説していきます。

Nanayaku

 

DB(Database)とは

データベースとは、データを扱いやすい形で入れておく箱のことです。

 

DBMS(DatabaseManagementSystem)とは

DBMSとは、DBを管理するシステムのことです。

DBMSを使わなくてもDBを管理することはできますが、様々な便利な機能があるため頻繁に使用されます。

DBを管理するシステムを自分で作ることもできますが、不具合が発生する可能性が高くなります。

例えば、アクセスカウンターの機能で、同時にアクセスされたとき、片方の値に反映されないことがあるなどです。(アクセス数が10の人が2人いる状態)

 

DBMSの種類

DBMSには、RDBMSNoSQLの2つの種類があります。

RDBMSは、SQLと言う操作システムを使用した表示形式のDBのことです。

RDBMSのDBは、MySQL、Amazon Aurora、SQLite、Oracle Databaseなどがあります。

 

NoSQLは、その名の通りSQLを使用しないDBのことです。

NoSQLのDBは、redis、mongoDBなどがあります。

 

RDBMSとNoSQLの違いをもっと詳しく知りたいという人は、こちらの記事で分かりやすく解説されているので、ぜひご覧ください。

NoSQLとは?RDBMSと比較しながら分かりやすく解説

Nanayaku

 

MySQLとは

MySQLとは、オープンソースのRDBMSで世界でもっとも使われているDBです。

オープンソースとは、設計図(コード)が公開され、自由に使えるという意味です。

 

起動までの簡単な流れを説明します。

https://dev.mysql.com/ からダウンロード、インストールができます。

次にローカルサーバー(Vagrantなど)を起動し、mysqlサーバーが起動しているか確認します。

 command
sudo service mysql status

そして、mysqlサーバーに接続します。

 command
mysql -u root

ターミナルの入力の左側が[~~~~]$ から mysql> に変われば、接続完了です。

 

MySQL内でユーザー情報、バージョンの確認をする操作は以下の通りです。

 command
ユーザー情報の確認方法
select user();
 
バージョンの確認
select version();

mysqlのクエリ(命令・操作)は;で閉じるルールなので、;を忘れないように注意が必要です。

 

データベースの全体像を分かりやすくするGUIツールがあるが、想定外の負荷がかかる可能性があるため、実務では推奨していません。

GUIツールとはCyberduck(ドットインストールローカル開発環境の構築#8)のようなものです。

 

mysqlの基本操作

データベースの作成

 command
create database テーブルの名前;

データベースの削除

 command
drop databace テーブルの名前;

操作対象のデータベースの確認

 command
select databace();

操作対象のデータベースの更新

 command
use データベース名;

 

テーブルについて

DBの中には、データを整理するためにテーブルという表が入っています。

縦(列)をフィールド/カラム、横(行)をレコードと言います。

↓ フィールド(カラム/列)↓

レコード(行)

ID name age
1 トム 25
2 ジュディ 24
3 ケン 18

 

レコードの操作

レコードとは、テーブルに入っているデータのことです。

このレコードの操作コマンドをいくつか紹介します。

データの追加

 command
insert into テーブル名(フィールド名) values(入れる値);

名前を「太郎」、パスワードを「11111」に設定

 

データの取得

 command
select 取ってくるフォーム名 from テーブル名 where 条件;

1行目が20歳以上のname、2行目が20歳以上のデータを全て取得(*は全てのデータを対象にする)

 

データの更新

 command
update テーブル名 set 値 where 変更するレコードの条件;

太郎のageを「25」に変更

 

データの削除

 command
delete from テーブル名 where 削除するレコードの条件;

太郎のデータを「削除」

 

データ型とは

データ型とは、コンピュータが何のデータか判断するための規約のことです。

データ型を指定する目的は、想定外の値が入るのを防ぎ、記録するデータ量を決めることで無駄なデータを減らすためです。

データ型について、いくつかの種類を紹介します。

number(数値)

  • int・・・整数(小数点以下は入りません)
  • float・・・浮動小数点数(小数点第7位まで)
  • double・・・floatより制度が高いもの(小数点第15位まで)

 

string(文字列)

  • char()・・・固定のデータ(商品コードなど)で使用、4桁なら()に4と入力
  • varchar()・・・可変のデータ(メールアドレスなど)で255バイトまで格納、文字数を制限する時にも使用
  • text・・・どのくらいの長さになるかわからないときに使用

 

date/time(時間・日付)

  • date・・・日付
  • time・・・時間
  • datetime ・・・日時(例:'2017-07-22 17:22:33')

 

true/false(真偽値)

  • true・・・数字の1で管理
  • false・・・数字の0で管理

※0とnillがfalse、空文字を含むそれ以外の値をtrueとなります。

 

データの重複

データを追加していくと重複する部分が出てきます。

重複してしまうと無駄なデータが記録され、運用上の管理が難しくなる。

そこで考えられたのが、カテゴリー毎にテーブルを切って、共通のカラムでテーブル同士をつなげる方法です。

この一意のカラムのことをPrimary key(id)と言います。

ドットインストールにPrimary keyの解説をしている動画があるので、こちらもご覧ください。

ドットインストールMySQL#09

 

最後に

なるほど、DBはデータを保存しておくための箱のことで、それを管理しやするシステムがDBMSなんですね。

 

そうだね。

開発で必ず使う技術のため、実際に操作しながら覚えていきましょう。

Nanayaku

 

よし、もっと勉強してエンジニアになるぞー!

 

今は情報が集めやすいので、独学でもエンジニアを目指せますが、プログラミングスクールに通うほうが良いです。

実際に私もプログラミングスクールに通ってエンジニアになりました。

興味がある方は、こちらの記事をご覧ください。

【不安解消】食肉工場の会社員がtech boostの無料説明会を受けた感想

Nanayaku

 

 

-基礎知識
-,

© 2021 Nanayaku blog Powered by AFFINGER5