データベース(DB)ってなんだ?
データベースとは一体なんでしょうか?データを保存するってエクセルと違うの?
こういうサービス使ったことあるよね?
- 履修登録
- 出席管理
- Amazon
- LINE
- Netflix
これ、全部データベースで動いてます。
Instagramって何を保存してる?
- ユーザー名
- 投稿
- 画像
- いいね
- フォロー関係
- コメント
など
実はInstagramは、写真アプリ”じゃなくて、巨大な“関係の管理システム 。
Excelとの違い
表=DBではない!
Excel =「人間が見るための表」
データベース = 「システムが扱うための整理された情報」
■Excel
| 名前 | 注文 | 来店日 |
|---|---|---|
| 田中 | カフェラテ | 5/1 |
| 田中 | チーズケーキ | 5/3 |
こんな感じで同じ人が何回も出てくる。
■データベース(DB)
- 顧客テーブル
| 顧客ID | 名前 |
|---|---|
| 1 | 田中 |
- 注文テーブル
| 注文ID | 顧客ID | 商品 |
|---|---|---|
| 100 | 1 | カフェラテ |
| 101 | 1 | チーズケーキ |
“田中さん”って文字を何回も書かずに、IDでつないでる。
もしInstagramをExcel 1枚で管理したら?
| ユーザー名 | 投稿画像 | コメント | いいねした人 |
|---|---|---|---|
| 田中 | cat.jpg | かわいい | 佐藤 |
| 田中 | cat.jpg | かわいい | 鈴木 |
| 田中 | cat.jpg | 最高 | 高橋 |
これ、何がヤバい?
- 同じデータが増えまくる
- 修正が大変
- 間違いが起きる
- 重い
- 管理できない
田中さんが
「tanaka123」に変更。
すると全部直す必要がある。
もし1個だけ修正漏れしたら?
| ユーザー名 | 投稿画像 | コメント | いいねした人 |
|---|---|---|---|
| tanaka123 | cat.jpg | かわいい | 佐藤 |
| tanaka123 | cat.jpg | かわいい | 鈴木 |
| 田中 | cat.jpg | 最高 | 高橋 |
つまり、同じ情報を何回も書きたくない
●ユーザーテーブル
| user_id | 名前 |
|---|---|
| 1 | 田中 |
| 2 | 佐藤 |
| 3 | 鈴木 |
| 4 | 高橋 |
●投稿テーブル
| post_id | user_id | image |
|---|---|---|
| 100 | 1 | cat.jpg |
●コメントテーブル
| comment_id | post_id | user_id | コメント |
|---|---|---|---|
| 500 | 100 | 2 | かわいい |
| 501 | 100 | 4 | 最高 |
●いいねテーブル
| like_id | post_id | user_id |
|---|---|---|
| 700 | 100 | 2 |
| 701 | 100 | 3 |
例えば企業では、
顧客数100人ならExcelでもいける
1万人になると壊れる
100万人になると破綻する
例えば、Amazonで住所変更
「Amazonで住所変更したら、全部の商品履歴に反映される」
「もしExcel管理だったら、過去の注文全部直すの?」
データベースは、“関係”を保存している
誰が
何を
いつ
どこで
どうした
を“つなげて”保存している。
だから、
Amazonのおすすめ
Netflixのレコメンド
LINEの友達関係
クレカ不正検知
ができる。
Excelはメモ帳
データベースは、壊れない倉庫