$30 off During Our Annual Pro Sale. View Details »

データベース超入門(座学編)

NoMu
March 15, 2023

 データベース超入門(座学編)

NoMu

March 15, 2023
Tweet

More Decks by NoMu

Other Decks in Technology

Transcript

  1. Tech Dojo
    いまからでも遅くない!
    データベース超入門(座学編)
    2023年3月15日
    IBM Developer
    18時開始予定です!
    マイクをオフにして
    お待ちください。
    お待ちの間に、アンケートのご回答お願いいたします!
    QRコード or 以下のリンク
    https://app.sli.do/event/juSs1peqNAyypVibvTkJS1

    View Slide

  2. 2
    Customer Success, IBM Technology, Japan / © 2023 IBM Corporation
    李広樹(Lee Kwangsoo)
    千葉(大阪 鶴橋 生まれ&育ち)
    読書、プログラミング、ゲーム
    カスタマーサクセス
    EC、フィットネス、業務システム
    DB設計~アプリ開発
    AI / RPAを用いた業務自動化
    自己紹介
    名前
    生息地
    趣味
    経歴
    [email protected]
    https://www.linkedin.com/in/kwangsoo-lee

    View Slide

  3. 3
    Customer Success, IBM Technology, Japan / © 2023 IBM Corporation
    自己紹介
    村田 憲昭
    北海道北斗市
    スノーボード、登山、グルメ、猫
    カスタマーサクセス
    DX人材育成/教育(IT全般)
    データベースエンジニア
    某コンビニのエンジニア
    名前
    生息地
    趣味
    経歴
    [email protected]
    https://www.linkedin.com/in/noriaki-murata-nmz

    View Slide

  4. 4
    Customer Success, IBM Technology, Japan / © 2023 IBM Corporation
    免責事項
    本資料に含まれる情報は可能な限り正確を期しておりますが、
    記載された内容に関して、日本アイ・ビー・エム株式会社が
    何ら保証するものではありません。
    従って、本資料の情報の利用は使用者の責任において
    為されるものであり、資料の内容によって受けた
    如何なる被害に関しても一切の補償をするものではありません。

    View Slide

  5. 5
    Customer Success, IBM Technology, Japan / © 2023 IBM Corporation
    本Dojoのゴール
    データベースの基本的な概念がわかる
    ※本日の内容は超初学者向けです

    View Slide

  6. 6
    Customer Success, IBM Technology, Japan / © 2023 IBM Corporation
    ご案内
    本日開催
    開催日時:未定
    開催日時:未定

    View Slide

  7. 7
    Customer Success, IBM Technology, Japan / © 2023 IBM Corporation
    本日のアジェンダ
    1 .データベースとは
    2 .データベースの種類
    3 .SQLとは
    4 .データベース設計
    5 .データベース運用・管理

    View Slide

  8. 8
    Customer Success, IBM Technology, Japan / © 2023 IBM Corporation
    本日のアジェンダ
    1 .データベースとは
    2 .データベースの種類
    3 .SQLとは
    4 .データベース設計(「データベース設計編」対象)
    5 .データベース運用・管理(「データベース設計編」対象)

    View Slide

  9. 9
    Customer Success, IBM Technology, Japan / © 2023 IBM Corporation
    データベースとは、構造化した情報またはデータの組織的な集
    合であり、通常はコンピューター・システムに電子的に格納さ
    れています。
    https://www.oracle.com/jp/database/what-is-database/
    データベース(DB)とは要するに..
    情報をコンピューターに入れておき、
    ほしい情報をすぐに見つけられるようにしたもの。
    もっと簡単に言うと
    DBの種類 SQLとは
    DBとは
    データベースとは?

    View Slide

  10. 10
    Customer Success, IBM Technology, Japan / © 2023 IBM Corporation
    図書館で読みたい本を探す場合- データベースがない場合
    〇〇本は
    どこに..?
    〇〇の本を
    今日は読むぞ!
    データベースとは? DBの種類 SQLとは
    DBとは

    View Slide

  11. 11
    Customer Success, IBM Technology, Japan / © 2023 IBM Corporation
    〇〇の本を
    今日は読むぞ!
    蔵書データベース
    で検索だ。
    E列の3番棚に
    あるのね。
    図書館で読みたい本を探す場合- データベースがある場合
    データベースとは? DBの種類 SQLとは
    DBとは

    View Slide

  12. 12
    Customer Success, IBM Technology, Japan / © 2023 IBM Corporation
    結論:システムの裏側で、どこでも使われている。
    一般社会でデータベースはどこで使われているか?
    旅行の予約サイト
    ATMのシステム 券売機
    データベースとは? DBの種類 SQLとは
    DBとは

    View Slide

  13. 13
    Customer Success, IBM Technology, Japan / © 2023 IBM Corporation
    データベースとは?
    https://www.ibm.com/case-studies/jp-ja/
    一般社会でデータベースはどこで使われているか?
    DBの種類 SQLとは
    DBとは

    View Slide

  14. 14
    Customer Success, IBM Technology, Japan / © 2023 IBM Corporation
    データベースとは?
    某コンビニの売上分析基盤
    コンビニ各店舗 プライベートクラウド
    売上
    1日1回
    送信
    本部
    日々
    チェック
    データベース
    データ
    処理
    ・整形
    ・加工
    ・登録
    売上
    分析
    ・参照
    ・集計
    ・表示
    ・・・
    一般社会でデータベースはどこで使われているか?
    DBの種類 SQLとは
    DBとは

    View Slide

  15. 15
    Customer Success, IBM Technology, Japan / © 2023 IBM Corporation
    データベースを利用する場合は通常、
    有償 or 無償の専用のソフトウェアを使います。
    例)
    有償…IBM Db2 , Oracle Database , DynamoDBなど
    無償… MySQL , PostgreSQL , MongoDBなど
    データベースとは?(補足) DBの種類 SQLとは
    DBとは
    データベースのためのソフトウェアのことを
    DBMSと呼びます。

    View Slide

  16. 16
    Customer Success, IBM Technology, Japan / © 2023 IBM Corporation
    本日のアジェンダ
    1 .データベースとは
    2 .データベースの種類
    3 .SQLとは
    4 .データベース設計(「データベース設計編」対象)
    5 .データベース運用・管理(「データベース設計編」対象)

    View Slide

  17. 17
    Customer Success, IBM Technology, Japan / © 2023 IBM Corporation
    よく使われているデータベースは2種類。
    リレーショナルデータベース(RDB) 非リレーショナルデータベース(NoSQL)
    NoSQLはRDBのような表形式の
    データベースではなく、
    さまざまな形でデータを保管する
    データベースです。
    社員ID 社員名 部署 支店
    1 村田 営業 北海道支店
    2 小野 経理 東京支店
    3 藤平 法務 東京支店
    {
    ID: 1,
    社員名 : “荒巻”,
    所属 :
    [
    {部署名 : ”営業” , 経験年数 : 8},
    {部署名 : ”経理” , 経験年数 : 5}
    ]
    }
    社員ID 商品名 価格
    1 ホッチキス 200
    2 鉛筆 80
    2 のり 120
    RDBは表形式で保存されている
    データベースの事です。
    データベースの種類 DBの種類 SQLとは
    DBとは

    View Slide

  18. 18
    Customer Success, IBM Technology, Japan / © 2023 IBM Corporation
    NoSQLはRDBのような表形式の
    データベースではなく、
    さまざまな形でデータを保管する
    データベースです。
    データベースの種類
    もう少し詳しく
    見ていきます
    よく使われているデータベースは2種類。
    リレーショナルデータベース(RDB) 非リレーショナルデータベース(NoSQL)
    社員ID 社員名 部署 支店
    1 村田 営業 北海道支店
    2 小野 経理 東京支店
    3 藤平 法務 東京支店
    社員ID 商品名 価格
    1 ホッチキス 200
    2 鉛筆 80
    2 のり 120
    RDBは表形式で保存されている
    データベースの事です。
    DBの種類 SQLとは
    DBとは
    {
    ID: 1,
    社員名 : “荒巻”,
    所属 :
    [
    {部署名 : ”営業” , 経験年数 : 8},
    {部署名 : ”経理” , 経験年数 : 5}
    ]
    }

    View Slide

  19. 19
    Customer Success, IBM Technology, Japan / © 2023 IBM Corporation
    RDBをもう少し詳しく
    RDBはデータを表形式で保存しており、これを「テーブル」と呼びます。
    リレーショナルデータベースの「リレーショナル」はテーブル同士の関係性を意味しています。
    社員ID 社員名 部署 支店
    1 村田 営業 北海道支店
    2 小野 経理 東京支店
    3 藤平 法務 東京支店
    テーブル
    社員テーブル
    データベースの種類 DBの種類 SQLとは
    DBとは

    View Slide

  20. 20
    Customer Success, IBM Technology, Japan / © 2023 IBM Corporation
    RDBをもう少し詳しく
    RDBはデータを表形式で保存しており、これを「テーブル」と呼びます。
    リレーショナルデータベースの「リレーショナル」はテーブル同士の関係性を意味しています。
    社員ID 社員名 部署 支店
    1 村田 営業 北海道支店
    2 小野 経理 東京支店
    3 藤平 法務 東京支店
    テーブル
    社員ID 商品名 価格
    1 ホッチキス 200
    2 鉛筆 80
    2 のり 120
    社員テーブル
    注文テーブル
    データベースの種類 DBの種類 SQLとは
    DBとは

    View Slide

  21. 21
    Customer Success, IBM Technology, Japan / © 2023 IBM Corporation
    RDBをもう少し詳しく
    RDBはデータを表形式で保存しており、これを「テーブル」と呼びます。
    リレーショナルデータベースの「リレーショナル」はテーブル同士の関係性を意味しています。
    社員ID 社員名 部署 支店
    1 村田 営業 北海道支店
    2 小野 経理 東京支店
    3 藤平 法務 東京支店
    テーブル
    社員ID 商品名 価格
    1 ホッチキス 200
    2 鉛筆 80
    2 のり 120
    社員テーブル
    注文テーブル
    データベースの種類 DBの種類 SQLとは
    DBとは
    関連づける
    社員ID 社員名 部署 支店 商品名 価格
    1 村田 営業 北海道支店 ホッチキス 200
    2 小野 経理 東京支店 鉛筆 80
    2 小野 経理 東京支店 のり 120

    View Slide

  22. 22
    Customer Success, IBM Technology, Japan / © 2023 IBM Corporation
    リレーショナルデータベース、テーブルといった言葉が出てきたので、
    一旦図でイメージを整理しておきます。
    基本的には、一つのデータベースの中に複数のテーブルが入っています。
    データベース
    社員ID 社員名 部署 支店
    1 村田 営業 北海道支店
    2 小野 経理 東京支店
    3 藤平 法務 東京支店
    社員ID 商品名 価格
    1 ホッチキス 200
    2 鉛筆 80
    2 のり 120
    データベースの種類
    テーブル
    補足:データベースとテーブルの関係性
    DBの種類 SQLとは
    DBとは

    View Slide

  23. 23
    Customer Success, IBM Technology, Japan / © 2023 IBM Corporation
    本日のアジェンダ
    1 .データベースとは
    2 .データベースの種類
    3 .SQLとは
    4 .データベース設計(「データベース設計編」対象)
    5 .データベース運用・管理(「データベース設計編」対象)

    View Slide

  24. 24
    Customer Success, IBM Technology, Japan / © 2023 IBM Corporation
    正式名称:Structured Query Language
    直訳すると「構造化された問い合わせを行う言語」でして、
    データベースに対して命令や問い合わせをするための言語です。
    DB
    SQL
    結果
    SQLとは? DBの種類 SQLとは
    DBとは

    View Slide

  25. 25
    Customer Success, IBM Technology, Japan / © 2023 IBM Corporation
    SQLを使ってできること
    SQLを使うと、データベースに対して以下の操作ができます。
    1、テーブルの作成・変更・削除
    2、テーブルへの値の登録・取得・更新・削除
    SQLとは?
    社員ID 社員名 部署
    1 村田 営業
    2 小野 経理
    DBの種類 SQLとは
    DBとは

    View Slide

  26. 26
    Customer Success, IBM Technology, Japan / © 2023 IBM Corporation
    テーブルの作成・変更・削除
    SQLを用いることで、データベースに対してテーブルの作成・変更・削除
    の問い合わせを行うことが出来ます。
    CREATE TABLE..
    変更 削除
    作成
    社員ID 社員名 部署
    ALTER TABLE.. DROP TABLE..
    社員ID 社員名 部署
    社員ID 社員名 住所
    社員ID 社員名 部署
    SQLとは?
    「..」の部分は、SQLで本来書くべき内容の省略部分になります。
    DBの種類 SQLとは
    DBとは

    View Slide

  27. 27
    Customer Success, IBM Technology, Japan / © 2023 IBM Corporation
    データの登録・取得・更新・削除
    登録 取得 更新 削除
    社員ID 社員名 部署
    社員ID 社員名 部署
    1 村田 営業
    INSERT..
    社員ID 社員名 部署
    1 村田 営業
    社員ID 社員名 部署
    1 村田 営業
    社員ID 社員名 部署
    1 村田 経理
    社員ID 社員名 部署
    1 村田 営業
    社員ID 社員名 部署
    SELECT.. UPDATE.. DELETE..
    「..」の部分は、SQLで本来書くべき内容の省略部分になります。
    SQLを用いることで、データベースのテーブルに対して、
    値の登録・取得・更新・削除の問い合わせを行うことが出来ます。
    SQLとは? DBの種類 SQLとは
    DBとは
    1 村田 営業

    View Slide

  28. 28
    Customer Success, IBM Technology, Japan / © 2023 IBM Corporation
    社員ID 社員名 部署
    社員ID 社員名 部署
    1 村田 営業
    INSERT..
    社員ID 社員名 部署
    1 村田 営業
    社員ID 社員名 部署
    1 村田 経理
    社員ID 社員名 部署
    1 村田 営業
    社員ID 社員名 部署
    UPDATE.. DELETE..
    データの登録・取得・更新・削除
    登録 更新 削除
    「..」の部分は、SQLで本来書くべき内容の省略部分になります。
    2、SQLを用いることで、データベースのテーブルに対して、
    値の登録・取得・更新・削除の問い合わせを行うことが出来ます。
    SQLとは?
    もう少し詳しく
    見ていきます
    取得
    DBの種類 SQLとは
    DBとは
    社員ID 社員名 部署
    1 村田 営業
    SELECT..
    1 村田 営業

    View Slide

  29. 29
    Customer Success, IBM Technology, Japan / © 2023 IBM Corporation
    SELECT 基礎構文
    SELECT [取得したい列] FROM [対象のテーブル]
    具体的に、
    以下の社員テーブルから社員IDと社員名の列を取得したい場合で例えると..
    社員ID 社員名 部署
    1 村田 営業
    2 小野 経理
    社員テーブル SELECT 社員ID , 社員名 FROM 社員テーブル
    1 村田
    2 小野
    社員ID 社員名 部署
    1 村田 営業
    2 小野 経理
    SQLとは?
    社員テーブル
    DB
    書き方
    SELECT構文は、データベースのテーブルから、値を取得するコマンドです。
    DBの種類 SQLとは
    DBとは

    View Slide

  30. 30
    Customer Success, IBM Technology, Japan / © 2023 IBM Corporation
    SQLとは?
    SELECT 社員ID , 社員名 FROM 社員テーブル WHERE 社員ID = 1
    1 村田
    社員ID 社員名 部署
    1 村田 営業
    2 小野 経理
    ➀条件を絞ってデータを取得する方法
    社員テーブル
    DB
    SELECT 基礎構文+α
    SELECT [取得したい列] FROM [対象のテーブル] WHERE [取得条件]
    書き方(WHERE句)
    具体的に、
    先ほどのページで用いた社員テーブルから
    社員ID=1の社員ID、社員名の値だけを取得したい場合..
    DBの種類 SQLとは
    DBとは

    View Slide

  31. 31
    Customer Success, IBM Technology, Japan / © 2023 IBM Corporation
    SQLとは?
    2 小野
    1 村田
    ➁昇順・降順でデータを並び替えて取得する方法
    SELECT 基礎構文+α
    SQLの書き方(ORDER BY句)
    SELECT [取得したい列] FROM [対象のテーブル] ORDER BY [ソートする列名] [昇順or降順を指定]
    具体的に、
    先ほどのページで用いた社員テーブルから、
    社員ID、社員名列の値を社員IDの降順で値を取得したい場合..
    SELECT 社員ID , 社員名 FROM 社員テーブル ORDER BY 社員ID DESC
    社員ID 社員名 部署
    1 村田 営業
    2 小野 経理
    社員テーブル
    DB
    DBの種類 SQLとは
    DBとは

    View Slide

  32. 32
    Customer Success, IBM Technology, Japan / © 2023 IBM Corporation
    デモ
    SQLとは?
    https://paiza.io/en/projects/new?language=mysql
    DBの種類 SQLとは
    DBとは

    View Slide

  33. 33
    Customer Success, IBM Technology, Japan / © 2023 IBM Corporation
    売上No 商品名 数量 単価
    商品
    カテゴリ
    店舗No
    レジ
    担当者
    登録日
    1 ガム 1 100 菓子 5 村田 3/15
    2 電池 4 400 雑貨 5 李 3/15
    実例
    レジ
    SELECT 売上No, 商品名, 数量, … FROM sales WHERE 登録日 = 3/15
    Salesテーブル
    当日の売り上げデータとして抽出してクラウドに送信

    View Slide

  34. 34
    Customer Success, IBM Technology, Japan / © 2023 IBM Corporation
    本Dojoのゴール(ふりかえり)
    データベースの基本的な概念がわかる

    View Slide

  35. 35
    Customer Success, IBM Technology, Japan / © 2023 IBM Corporation
    まとめ
    1 .データベースとは
    2 .データベースの種類
    3 .SQLとは
    各データベース製品のドキュメントはぜひご覧ください!
    ◯Db2
    https://www.ibm.com/docs/ja/db2/11.5
    ◯MariaDB
    https://mariadb.org/
    ◯PostgreSQL
    https://www.postgresql.org/

    View Slide

  36. 36
    Customer Success, IBM Technology, Japan / © 2023 IBM Corporation
    QA & アンケート タイム
    https://app.sli.do/event/juSs1peqNAyypVibvTkJS1
    ご質問がありましたら、
    チャットもしくはマイクをONにして、ご質問ください。
    以下、アンケートのご回答をよろしくお願いいたします

    View Slide

  37. 37
    Customer Success, IBM Technology, Japan / © 2023 IBM Corporation
    いろいろTry&Errorしながら
    試してみてください。
    ありがとうございました

    View Slide

  38. 38
    Customer Success, IBM Technology, Japan / © 2023 IBM Corporation
    補足:テーブルに関する用語整理
    フィールド
    カラム
    ID 社員名 部署 支店 ID 社員名 部署 支店 ID 社員名 部署 支店
    レコード(ロウ)
    本Dojoでは、テーブルに関して話をする際、説明簡略化のために
    「列・行・値」と表現しましたが、
    一般的には以下のように表現いたします。

    View Slide