close
プログラミング クラウド Microsoft Azure 情報処理資格 基本情報技術者 IT基礎 応用情報技術者 開発・設計方法 オブジェクト指向 内定者・新人研修 プログラミング基礎 アルゴリズム コンピュータ数学 内定者研修 新人研修 ヒューマンスキル プロジェクトマネジメント プレゼンテーション リーダーシップ 組織マネジメント ネゴシエーション ロジカルシンキング Java UI/UX HTTP JavaScript基礎 情報処理資格 ネットワークスペシャリスト ネットワーク インターネットルーティング応用 IPアドレス データベース応用 SQL応用 パフォーマンスチューニング データベース設計 ER図 概念設計(データベース) 論理設計(データベース) IT資格 Linux基礎 OS・システム基盤 セキュリティ TCP/IP OSI参照モデル データベースセキュリティ ファイアウォール 標的型攻撃 SQLインジェクション ネットワーク基本設計 CCNA Cisco プロジェクトマネジメント資格 情報処理資格プロジェクトマネージャ 情報処理安全確保支援士 人事給与 財務会計 管理会計 簿記 生産管理 在庫管理 ERP バランススコアカード 情報処理資格 ITアーキテクト 情報処理資格 ITストラテジスト 情報処理資格 ITサービスマネジメント 情報処理資格 システム監査 PMBOK® PMP® プロジェクト計画 WBS リスクコントロール ITIL ITサービスマネジメント 要求定義 要件定義 見積手法 ビジネスインダストリ 業種・業界知識 業務知識 提案力 ソフトウェアテスト基礎 情報処理資格 データベーススペシャリスト ハードウェア基礎 外部設計(基本設計) 内部設計(詳細設計) データベース基礎 SQL基礎 RDBMS 物理設計(データベース) C++ Ruby MVC基礎 Webアプリケーション開発 JavaEE Javaプログラミング応用 フレームワーク MVC応用 Spring フレームワーク ソフトウェアテスト応用 テスト手法 Junit スマートフォンアプリ開発 Androidアプリ開発 C# 基礎 C# 応用 負荷テスト Javaプログラミング基礎 ソフトウェアテスト コーチング メンタリング HTML/CSS サーバー構築 仮想化技術 KVS (NoSQL) アジャイル スクラム ファシリテーション C言語 ITパスポート JSTQB データサイエンス 単体テスト ユニットテスト キャリアアップ インターネットルーティング基礎 パケット解析 LAN構築 データベース データサイエンティスト トレンド 障害対応 インフラ監視 HTTP/2.0 コンピュータサイエンス VPN ネットワーク物理設計 データベース障害 JavaScript モダンJS (Modern JavaScript) 応用 MVS応用 バックアップ/リカバリ 分散処理 Hadoop Hive Python AI 深層学習(DeepLearning) CentOS Linux応用 Zabbix シェルスクリプト Infrastructure as Code Windowsサーバー基礎 内部設計 Docker DevOps Windowsサーバー応用 NginX chef Ainsible ロジカルライティング R テスト自動化 Jenkins Git 継続的インテグレーション (CI) バージョン管理 Vagrant 要求分析 Redmine 継続的インテグレーション(CI) 継続的デリバリー (CD) ヒューマンリソース管理 Web API マイクロサービス コミュニケーション 業務知識/業界知識 マーケティング 語学 AWS 法務 IoT ビジネスマナー OJT 業務効率化 表計算ソフト オフィスソフト コンプライアンス フロントエンド Subversion PHP 関数型プログラミング Laravel モダンJS (Modern JavaScript) 基礎 Android Studio 機械学習 iOSアプリ開発 ぷプログラミング React 次世代高度IT人材 共創 IPA Raspberry Pi Xamarin スクリプト言語 GoF CUI VBA 資格 ビジネス文書 jQuery 研修参加レポート マネジメント OSPF テーブル設計 アンガーマネジメント クリティカル・シンキング PDU 経営改善 Pマーク 問題解決技法 サイバー攻撃 エンジニア 参加してみた エンゲージメントマネジメント 労働関連法 新人育成 ネットワーク構築 情報セキュリティマネジメント デザインパターン リファクタリング マルチスレッドプログラミング ベンダーコントロール Modern JavaScript 冗長化 VLAN インフラエンジニア チームビルディング テストケース リーダブルコード セキュリティ入門 ネットワーク入門 Node.js npm gulp ビルドツール Python入門 冗長化入門 インフラ実機演習 プロジェクト管理 Active Directory ネットワーク管理 コンテナ 正規化理論 Haskell 品質管理 OpenStack シンギュラリティ DBA中級 プロトコル UX 基本設計 FinTech トラブルシューティング 並列処理 見える化 PMO ロジカルコミュニケーション Deep Learning インデックス設計 超上流工程 BGP Excel C-CENT Selenide プライベートクラウド アセンブラ コンピュータ基礎 工数見積 CCENT 法律知識 失敗から学ぶ プロジェクト失敗事例 PDCA プログラミング入門 非エンジニア向け 4Biz DNS セルフマネジメント 片付け術 サーバーダウン サーバー タイムマネジメント GO言語 プロダクトマネジメント プロダクトマネージャ LVS ロードバランサー 負荷分散 仮想通過 犯罪心理学 情報漏えい SEカレッジ導入事例 IT研修を聞いてみた 会社規模 (100~300名) IT研修制度を聞いてみた CentOS7 開発環境構築 数字力 財務 IT人材 UI Machine Learning Go言語 (golang) データマイニング 統計学 新人教育 やり直し数学 RDB つながる工場 モチベーション WebSocket WebWorker HTML5 CSS3 Bootstrap 微分・積分 システム設計 決断力 LAMP環境 トレ担 教育研修担当者向け ルーティング Linux入門 図解術 目標設定 試験対策 インタビュー技法 Vue.js ブロックチェーン 会社規模 (~50名) DHCP 仕掛け学 BSC 財務諸表 自己分析 RIP スタティックルート バッファオーバーフロー DoS攻撃 システム開発 会社規模 (~99名) Wireshark パケットキャプチャ 管理職研修 部下育成 ワークあり 文章力 情報システム部門向け プロジェクトリーダー プロジェクトマネージャ 塗り絵 リスク管理 法改定 会社の仕組み Chainer AI人材 会話術 会社規模 (~25名) テスト技法 組織規模 51名~99名 組織規模:~199名 [組織規模]199名まで 組織規模 199名まで 組織規模199名まで 会社規模199名まで 会社規模49名まで 会社規模99名まで アプリ開発 サーバサイドJava 営業知識 Cloud 栄養学 基本コマンド ウォーターフォールモデル ヘルスケア 論理設計 ニューラルネットワーク ハンズオン UML 顧客ヒアリング マウスで学ぶ Apache EC2 Lightsail M5Stack DevSecOps プロジェクト成果 画像認識 チャットポット コマンド レビュー 基本用語 自動構築 LPIC-1 サーバーサイドJavascript キャリア形成 ワークライフバランス インバスケット テック用語 GitHub Windows エディタ 教養 令和時代 RESTful API 物理設計 会社規模300名以上

はじめてでも本質を理解できる! データベース超入門 研修コースに参加してみた

今回の研修参加レポートは↓です!

はじめてでも本質を理解できる!データベース超入門

内容そのものは、データベースがなぜ必要なのか、というところからスタートし、簡単なSQLでデータ操作するというものでした。
個人的には理解が誤っていたことにたくさん気付けて、新人研修やインターネットなどでサラッと学んだ人には、復習と深掘りができるので、とてもオススメだと思います!!

では、どんな内容だったのかレポートします!

 

想定する受講者

  • 何らかのプログラミング言語による開発の経験・知識があることが望ましい

 

受講目標

  • RDBMSの役割を理解し、データ操作の考え方を身につける

 

講師紹介

 

 

登壇されたのは 坂井 恵 さんで、最近は企業の情シス部門ではなく業務部門向けのIT支援を行ってらっしゃるとのことでした。

またコミュニティ活動もされていて、日本MySQLユーザ会の副代表を務め、ユーザ会のイベントを開催したり、サイト更新、他イベントでの講演など多岐に渡った活動をされています。
ご本人曰く、「なんでも屋」とのことでした。一見すると、たしかに。。

またご自身では触れていませんでしたが、書籍出版にも携わってらっしゃいます。

 

データベースとは

 

ここで参加されている方に、簡単に普段の業務を聞くと、開発に携わっていない方がわりといらっしゃいました

タイトルには超入門とあるので、想定している受講者、何らかの開発経験がある、とは伝わらなかったのかも知れません。

さて、ここではそもそも、なぜデータベースは必要なのか、というお話です。
スライドの通り、データベース (このコースではDBMSを指しています) が無くてもよいことがあり、坂井さんから、例えば、自分が覚えておきたいことぐらいではデータベースは必要無いとも紹介されました。

確かに、本屋などではエクセル指南書がまだまだ売れており、DBMSまで必要ない業務は多そうです。

 

DBMSの目的

 

では、なぜデータベースが必要なのか。

例えば、

  • ファイルが壊れてしまったときのバックアップはどうするのか
  • 複数人数でデータを触るとき、上書き更新を防ぐにはどうするのか
  • 1万件の注文履歴から欲しいデータを出すときはどうするのか

こういったときに、これを実現する仕組みを自分で作るのは大変なので、データベースが必要になるとのことでした。

当たり前かも知れませんが、会社やビジネスが大きくなるにつれ、データベースは必要になるのですね。

 

データベースで必要な知識

 

データベースといっても幅が広く、amazonでも関連書籍は3000以上あります。。
このデータベースで知っておくべきことをまとめていただいたのがこの図です。

  • データ設計
  • SQL操作
  • データ保全

この3つが必要とのことで、こう区切られると見通しがとても良くなりますね。
この研修コースでは SQL操作 を扱います。

 

データ操作をするSQL

 

SQLと言っても、データを操作するだけでなく、データ保管場所の定義もします。

データを操作 (マニピュレーション) するので、  DML (Data Manipulation Language) と言い、データを定義 (ディフィニション) するので、  DDL  (Data Definition Language) と呼ばれます。

 

データを保管するテーブル

 

そのデータベースで扱うテーブルについて、エクセルとの違いを解説していただきました。

例えば、

  • セル結合とか出来ません
  • 数字が入るところに文字が入ってはダメ
  • 行を特定するためのキーが必要
  • よく使われる `id` はユニークであるのが ほぼ 必須
    • 例えば、 id=3 という行が2つあると、DELETE id=3 としたときに、意図せずその2つが消えてしまう
    • ほぼと言っているのは、組み合わせてキーにすることがあるからとのことです

わかりやすく違いを解説してもらえました。

比較を聞けば聞くほど、擬似的なDBMSとしてエクセルを使うケースが多いので、こういった制約がなく、なんと自由なのかと思ってしまいます。
(それだけにエクセル から 業務アプリ 移行が難しいのですね)

 

おまけ話 「行と列の覚え方」

坂井さんからおまけ話として、行と列をどうすると混同しなくなるのか、紹介していただきました。

  • という漢字をみると、横に書くイメージがあるので、行
  • という漢字を見ると、縦に書くものが多いので、列

たしかに、覚えられました!!

 

テーブルのデータには順序が無い

 

ここは個人的に理解が誤っていた点で、データベースでは表ではなく、 行がバラバラに保管されている というイメージが重要ということでした。

保管した順で出てくるように思われがちですが、自分で順序を指定しないと思ったとおりに出てこず、このため検索するのが大変でインデックス (索引) というものを指定して出しやすくしている、とのことでした。

 

ちなみに、今のRDBMSはここ5年で頭が良くなったので、インデックスを指定しなくても良くなっているそうです。(恩恵に預かっています!!)

 

テーブル in スキーマ

 

ここも今までイマイチ理解できてなかったのですが、スキーマとはセキュリティ的に見せてよいテーブルとかをスキーマ毎に決めたりできるという役割とのことでした。

たしかにRDBMSごとではなく、テーブルごとに決められると煩雑になりませんね。

また、セキュリティの関連の話で、RDBMSによってユーザー認証も異なるそうで、MySQLはインストール後、いちいちユーザーを作らなくてはならないのに対して、PostgresSQL ではOSのログインユーザーがユーザーになるそうです。

 

実際に触ってみよう

ここからは実際に坂井さんに用意していただいたテーブル (講座はホントこの辺が楽です!!) と、MySQLを使って、SQLで操作していきます。

  • データの登録 INSERT
  • データの検索 (表示)  SELECT
  • データの更新 UPDATE
  • データの削除 DELETE

 

なお、データーベースにアクセスするには

  • コマンドラインから接続する
  • プログラムから接続する

この2つがあり、プログラムから接続することのほうが多いですが、今回はコマンドラインから接続します。

 

データ操作するときに考えること

 

演習しながら、SQLを書くときの順番を教えてもらいました。
また、その以前にやることとして2つ紹介いただききました。

 

  • テーブル操作をする前にどんなテーブルなのか、見ないと変な操作をすると意図しない結果になってしまう
  • 普通はテーブル定義書をみるけど、ない場合や更新がない時が多い。。 orz
  • なので、SQLで desc テーブル名 で出してくる

その他SQLで演習しているときに教えてもらったこと

  • マニュアル見よう!! ->  MySQL :: MySQL 5.6 リファレンスマニュアル
    日本語訳は Oracle が頑張ったので、とてもいい
  • UPDATE
    • 重要なのは where を指定しないと、全件上書きする。。   (TдT)
    • 誰もが通る道、とフォローいただきました。
    • たしかに、私も通ったことがあります。。
  • SELECT
    • * は研修ではよく使うけど、現場ではカラムを指定することが多い // SELECT * FROM USERS;
    • 甘えていました。。。
  • OR は結構パフォーマンス食うので in を使おう
  • 条件式
    • 完全一致 =
    • 大小 >
    • 不一致 <> // プログラミングと違うので注意
    • 部分一致 LIKE

ということで、一通りSQL演習をしていたのですが、残念ながら、一部の演習時間が予定より長引き、 集約とJOIN は解説だけで終わりました。残念。。

次回はペース配分を見直して実施されますので、期待です!

 

まとめ

このコースではDBMSがなぜ必要なのか、というところから掘り下げ、簡単なSQLを使って、データーベースを操作しました。

書籍などでサラッと理解していたところも多くあり、復習と深掘りにはとてもよい効果がありました。

あとは今回、講師も初登壇ということもあり、演習時間が予定よりオーバーし、一部演習できなかったパートもありましたが、次回は見直されることと思います!

そうなると、想定の受講者、何らかの開発に参加したことがある方には、とても学びの多いコースになると思います!

 

 


SEカレッジが気になった方はこちらからお気軽にお問合わせ下さい!

お問い合わせフォーム

SEカレッジの詳細をご覧になりたい方はこちら!!

SEカレッジ

特集・キャンペーン

よくある質問集

タグ一覧

参加してみた研修参加レポートLinux基礎Java基本情報技術者セキュリティプログラミングオブジェクト指向プロジェクトマネジメントネットワークPythonAIプログラミング基礎SQL基礎ヒューマンスキル資格コミュニケーションLinux入門IoTデータベース仮想化技術テーブル設計アルゴリズムプログラミング入門エンジニアJavaScriptソフトウェアテストSQL応用マネジメントC# 基礎パケット解析ビジネスマナービジネス文書コンテナjQueryシェルスクリプトLinux応用ファイアウォールPMBOK®LAN構築データサイエンス問題解決技法工数見積障害対応プレゼンテーションデータベース基礎デザインパターンRDBMS教育研修担当者向けDockerER図ヘルスケアAWSWindowsサーバー基礎テック用語サーバー構築DNS簿記ネットワーク入門サーバサイドJava情報処理資格IT研修制度を聞いてみたプロジェクトマネージャ要求定義ロジカルライティングSEカレッジ導入事例テスト自動化PマークVLAN財務Javaプログラミング基礎トレンドアンガーマネジメントRaspberry PiプロトコルIT基礎品質管理応用情報技術者新人研修単体テストロジカルコミュニケーションデータベース設計ExcelインフラエンジニアアジャイルベンダーコントロールコーチングCloudプロジェクト管理機械学習GoFJavaプログラミング応用C# 応用データサイエンティスト試験対策ロジカルシンキングリファクタリングマルチスレッドプログラミング営業知識インフラ実機演習UICCNAネットワーク構築TCP/IP図解術テストケースLVSITパスポート見える化決断力法律知識Modern JavaScriptHTML5RDBActive DirectoryWBSパフォーマンスチューニングCSS3CentOS7データベースセキュリティフレームワークPython入門Git物理設計(データベース)セルフマネジメントコマンドZabbixITILルーティングSQLインジェクション新人育成スクラム管理職研修情報漏えいインデックス設計非エンジニア向けHTML/CSSJavaScript基礎CentOSクラウドLAMP環境OSPFVPNセキュリティ入門関数型プログラミングデータベース障害統計学Deep LearningPDCA微分・積分片付け術ソフトウェアテスト基礎Vue.jsUI/UX犯罪心理学正規化理論サイバー攻撃Webアプリケーション開発JavaEEDHCPロードバランサー経営改善基本コマンドBGPエンゲージメントマネジメントシステム開発ネットワーク管理会社規模99名までプロジェクト失敗事例サーバーサイドJavascriptUMLウォーターフォールモデルWindowsOS・システム基盤M5Stackプロダクトマネジメントトラブルシューティング顧客ヒアリング業務効率化DBA中級Windowsサーバー応用リスク管理DevSecOpsマーケティングプロダクトマネージャクリティカル・シンキングマウスで学ぶバージョン管理ブロックチェーンデータベース応用開発環境構築論理設計Junitプロジェクト計画サーバー法改定UXCisco情報セキュリティマネジメント内定者研修令和時代要件定義次世代高度IT人材冗長化LPIC-1PHP会社の仕組み自己分析GO言語OJTインターネットルーティング応用情報システム部門向け会社規模49名までビジネスインダストリインタビュー技法仮想通過IPAインターネットルーティング基礎キャリア形成IT人材MVC基礎IPアドレスレビューテスト手法ITサービスマネジメントワークライフバランスCCENT表計算ソフト基本用語HTTP論理設計(データベース)Machine Learningリーダーシップ塗り絵HTTP/2.0OSI参照モデル栄養学会社規模199名までPMO失敗から学ぶWeb API財務諸表ChainerFinTechBootstrapコンピュータ基礎物理設計シンギュラリティモチベーション労働関連法Wireshark業務知識/業界知識ソフトウェアテスト応用RIP冗長化入門LaravelAI人材継続的インテグレーション (CI)Node.js会社規模300名以上プロジェクトリーダーWebSocketC-CENTエディタパケットキャプチャ新人教育チームビルディングスタティックルートモダンJS (Modern JavaScript) 基礎概念設計(データベース)会話術並列処理PMP®システム設計サーバーダウンnpmインフラ監視WebWorkerSelenidechefコンピュータ数学教養Haskellスクリプト言語やり直し数学Infrastructure as Codeプロジェクト成果インバスケットバッファオーバーフローテスト技法PDUApache継続的インテグレーション(CI)自動構築gulpフロントエンドニューラルネットワークプライベートクラウドアプリ開発超上流工程画像認識目標設定4BizリーダブルコードDoS攻撃IT資格Go言語 (golang)EC2ネゴシエーションタイムマネジメントビルドツール数字力基本設計財務会計ハンズオンアセンブラRESTful API文章力OpenStackつながる工場内部設計見積手法チャットポットGitHub負荷分散共創データマイニングリスクコントロールMicrosoft AzureLightsail

過去の記事