SQL関連記事
MySQL入門
ITエンジニアを目指して学習していると、「MySQL」という言葉を聞くことがあります。データベース関連だとは分かるものの、詳しくは分からない方が多いのではないでしょうか? ここではそんな方に向けて「MySQL入門編」として、「MySQL」に関する素朴な疑問にお答えする形で解説していきます。
MySQLは世界で最も使われているRDBMS
「MySQL」とは、世界中でもっとも多く利用されているRDBMS「リレーショナルデータベース管理システム」です。オープンソースで、商用利用以外であれば誰でも無償使用が認められており、初心者でも扱いやすい人気のRDBMSです。 またオープンソースにもかかわらず、DBMSとして必要かつ便利な機能がしっかりと備わり、大容量のデータベースでも扱えるため、多くの企業で利用されています。
MySQLの歴史
MySQLという名前の由来は、MySQLの主製作者ミカエル・ウィデニウスが、娘の名前「My」から取ったとされています。MySQLはC言語で書かれ、1995年に初期バージョンが「MySQL AB」社からリリースされました。 2008年にMySQL AB社はサン・マイクロ社に吸収され、さらに2010年にはオラクル社がサン・マイクロ社を買収しています。現在はオラクル社がMySQLの商用版を販売・サポートしています。
MySQLの特徴
MySQLの特徴としては、オープンソースである点以外にも次のような特徴があります。
▪さまざまなOS(LINUX、Windowsなど)に対応 ▪個人レベルから大組織まで柔軟に対応可能 ▪シンプルで開発しやすい ▪世界シェアではOracleに次いで2位 ▪Webサービスでの利用が多い ▪クラウド利用が増えている
MySQLを本格的に学ぶ予定がないエンジニアの方も、以上の特徴は押さえておきましょう。
そもそもデータベースとは
ITエンジニアを目指す方は、データベースの概念についてはよくご存じと思いますが、初めての方のために今1度確認しておきましましょう。 コンピュータ上で検索や蓄積などをしやすく整理した情報の集まりをデータベースと称し、その操作や管理を可能にしたものをDBMS(データベース管理システム)と呼んでいます。
DBMSの主な機能
DBMSには主に次のような機能が備わっています。もちろんMySQLにもこれらの機能が備わっていますので、確認しておきましょう。
1.データの管理機能 データベースに格納するデータの形式を定義し、データの追加・削除・更新・検索機能などの機能です。
2.トランザクション管理機能 1つの例を挙げてみましょう。銀行取引で、A口座にある預金の一部をB口座に移動するといった処理を考えると、いずれの処理も連動をしていないと不整合が生じます。 A口座は預金が減少したにもかかわらず、B口座の預金が増えていない現象が生じると、データベース上では矛盾が生じてしまいます。 トランザクション管理機能は、一連の処理を1つのものとしてデータベースに反映させ、データベース上に不整合が生じないようにコントロールする機能です。
3.同時実行制御機能 データベースでは同時に複数のユーザーがアクセスする場合が多くありますが、そのことでデータに不整合が生じてしまわないようにアクセス制御を行う機能を「同時実行制御機能」といいます。
4.セキュリティ管理機能 データベースに対するセキュリティをコントロールする機能です。たとえば、アクセス権限が付与されていないユーザーによる不正アクセスなどを防ぎます。
5.障害回復管理機能 コンピュータ障害などによってデータベースに不具合が生じた際に、データを不具合が発生する前の正常な状態に戻すための機能です。
SQLとは
MySQLのSQLも同義ですが、「SQL」とは、データベース(RDBMS)を操作する際に使われる言語で、プログラミング言語と似ています。「SQL」を利用するRDBMSには、MySQL以外にPostgreSQL・Oracle・SQLServerなどがあります。 SQLは国際標準化されており、さまざまなデータベースで同じように利用できます。一方SQLを利用しないDBMSは「NoSQL」と呼び、RDBMS以外のデータベースで、Hbase・MongoDB・Casandraなどの製品があります。
最低限知っておきたいデータベース用語
データベース(RDBMS)はWebアプリには欠かせないものですが、データベースに関して最低限押さえておきたい用語があります。直接データベース構築に関わらないエンジニアの方も、以下の4つは理解しておきましょう。 分かりやすいように、ここではExcelとの対比で解説します。
1.テーブル データベースをExcelのブックだとすると、テーブルはシートに相当します。
2.カラム Excelシートの列に相当します。カラムごとに文字列、数値のように属性が定められています。
3.レコード レコードはデータそのものを示す言葉ですが、カラムが列であるのに対し、レコードは行を意味する”ロウ”と同じ意味で使われる場合もあります。
4.フィールド レコードを構成している1つの要素で、Excelの”セル”に相当します。
以上を個人情報のデータベース(Excelのブック)を例にして整理すると、レコードは氏名・生年月日・住所などで、カラムは氏名・生年月日・住所のこと、フィールドは氏名(ex山田花子)です。そして、これらの集合体がテーブル(Excelのシート)です。
分からなくなったら、Excelに置き換えて考えてみるとよいでしょう。
MySQLに関するFAQ
MySQLとデータベース(RDBMS)の概要について分かったところで、MySQLに関する一般的な疑問に対して、FAQ形式で解説をしていきます。詳細は参考URLなどを示しておきますので、そちらを参照してみてください。
MySQLのインストール方法は?
MySQLはオープンソースのRDBMSだと説明しました。MySQLは無償で、直接PCにダウンロードし、インストール後に利用できます。 以下に具体的なダウンロード・インストール・サービス登録・コマンドによる起動など、MySQLを利用する上で参考になるドキュメントの参照方法などが詳しく載っていますので、ぜひ参照してみてください。
【参照】:MySQLインストール
MySQLの使い方は?
MySQLにはコマンドプロンプトからデータベースとMySQLを操作するためのプログラムが用意されています。それらの使い方が詳しく載ったサイトをご紹介します。先ほどのサイトのコンテンツであり、馴染みやすいと思います。
【参照】:MySQLコマンドラインツールの利用
MySQLのDB作成方法は?
MySQLに慣れてくると、自ら簡易的なDBを作成してみたくなるでしょう。以下のサイトでは、MySQLによるデータベースの作成と削除の方法などが解説されています。
【参照】:MySQLの使い方>データベースの作成
MySQLのテーブル作成方法は?
データベースを作成したら、次にテーブルを作成します。ここではテーブルの作成・削除・テーブル一覧の表示・テーブル構造の変更までが解説されていますので、テーブル操作について一通り学べるでしょう。
【参照】:MySQLの使い方>データベースの作成
MySQLのコマンドは?
MySQL コマンドラインツールには、SQL文の実行以外に 「MySQL コマンド」と呼ばれる独自のコマンドが用意されています。「 MySQL コマンド」の一覧およびコマンド実行方法については以下のサイトで確認してみてください。
【参照】:MySQLコマンドの一覧とコマンドの実行
MySQLの学習法と将来像
MySQLを学ぶには、目標を定める意味でも資格取得を目指すことをおすすめします。この資格取得を第1ゴールとして設定し、学習に励みましょう。ここでは、MySQLに関する認定資格試験と、入門書による独習について紹介します。
MySQLに関する資格に挑戦する
MySQLに関する認定資格はいくつかありますが、ここではMySQLのデータベースエンンジニアを目指す方や、データベース関連の資格取得を図りたい方向けの認定資格として、オラクル社の「MySQL 5.7 Database Administrator」をおすすめします。試験はオンラインでの受験も可能で、出題数75問、試験時間は120分、選択式試験です。合格ラインは58%で、座学だけでも合格が可能なレベルと考えてください。
詳しくは、MySQL 5.7 Database Administrator試験番号: 1Z0-888を参照してください。
入門書で学ぶ(おすすめの入門書)
MySQLなどのRDBMSの習得方法としては、スクールの利用が近道かもしれませんが、数十万円の費用が掛かること、オフラインスクールだと通学で拘束時間が長くなるといったデメリットがあります。 ITエンジニアとしてある程度のITスキルを有する方には、費用がほとんど掛からず、スキマ時間を利用して学ぶことができる入門書などによる独習方法がおすすめです。以下に、MySQL習得に向けた入門書を2冊紹介します。
ゼロからわかる SQL超入門 (かんたんIT基礎講座) (技術評論社) MySQLというよりは、SQLを初めて学ぶ人に向けた入門書です。RDB(リレーショナルデータベース)を扱うに際して、必要なSQLの基本を確実に理解できる内容や構成になっています。実習形式で練習問題を通して反復学習ができるので、独習書としておすすめです。
MySQL徹底入門 第4版 MySQL 8.0対応(翔泳社) この入門書は「入門」とはなっていますが、1から学ぶ人には向いていません。上で紹介した「ゼロからわかる SQL超入門」などでSQLの基本を身に付けた上で接すると、習熟が進みます。内容はかなり実務に即しており、SQLを実際に使う予定のエンジニア向けと考えてください。
MySQLエンジニアの将来
MySQLを身に付け、実務経験を積むことでデータベースエンジニアとなれるでしょう。しかし、それはあくまでも通過点であり、その先を目標とすべきです。
データベースエンジニアのスキルを活かせるキャリアバスとして、「プロジェクトマネージャー」「データベースコンサルタント」「データサイエンティスト」などがあります。ぜひ、自身の将来像、将来目標を明確にした上でMySQLの習得に努めてみてください。
編集部オススメコンテンツ
アンドエンジニアへの取材依頼、情報提供などはこちらから