データベース設計

MySQL入門 世界で最も普及しているオープンソースRDBMS

MySQLは世界で最も利用されている、将来性の高いオープンソースのRDBMSである。

MySQLはシンプルで分かりやすいSQLであり、データベースのオラクル社が提供していることから多くの企業で使われている。

MySQLを習得する上ではMySQLに関する認定資格取得、そのための入門書による独習が適している。

MySQL入門

ITエンジニアを目指してRDBMSに関する学習していると、「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エンジニアを目指す方は、データベースの概念については常識かとは存じますが、初めての方のために今一度確認しておきましましょう。

コンピュータ上で検索や蓄積などをしやすく整理した情報の集まりをデータベースと称し、その操作や管理を可能にしたものを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つは理解しておきましょう。

分かりやすいように、ここではエクセルとの対比で解説してみたいと思います。

1.テーブル
データベースをExcelのブックだとすると、テーブルはシートに相当します。

2.カラム
エクセルシートの列に相当します。カラムごとに文字列、数値のように属性が定められています。

3.レコード
レコードはデータそのものを示す言葉ですが、カラムが列であるのに対し、レコードは行を意味する”ロウ”と同じ意味で使われる場合もあります。

4.フィールド
レコードを構成している1つの要素で、エクセルの「セル」に相当します。

以上を個人情報のデータベース(エクセルのブック)を例にして整理すると、レコードは氏名・生年月日・住所などで、カラムは氏名・生年月日・住所のこと、フィールドは氏名です。そして、これらの集合体がテーブル(エクセルのシート)です。

分からなくなったら、エクセルに置き換えて考えてみるとわかりやすいかと思います。

MySQLを開発で使用する

MySQLのインストール方法は?

MySQLはオープンソースのRDBMSだと説明しました。

MySQLは無償で、直接PCにダウンロードし、インストール後に利用できます。
Googleさんで、「mysqlインストール」で検索すると、多くのサイトがありますので、参考にしてみてください。

↓ こちらの「Progate」が説明しているサイトがわかりやすいかと思います。参考までに

MySQLの使い方は?

MySQLにはコマンドプロンプトからデータベースとMySQLを操作するためのプログラムが用意されています。

それらの使い方が詳しく載ったサイトをご紹介します。先ほどのサイトのコンテンツであり、馴染みやすいと思います。

【参照】:MySQLコマンドラインツールの利用

MySQLのDB作成方法は?

Webシステム開発で、MySQLを使用して、DBを作成する必要になった時には、以下のサイトを参考にしてみてください。

MySQLによるデータベースの作成と削除の方法などが解説されています。

【参照】:MySQLの使い方>データベースの作成

MySQLのテーブル作成方法は?

データベースを作成したら、次にテーブルを作成します。

ここではテーブルの作成・削除・テーブル一覧の表示・テーブル構造の変更までが解説されていますので、テーブル操作について一通り学べます。

【参照】:MySQLの使い方>データベースの作成

MySQLのコマンドは?

MySQL コマンドラインツールには、SQL文の実行以外に 「MySQL コマンド」と呼ばれる独自のコマンドが用意されています

「 MySQL コマンド」の一覧およびコマンド実行方法については以下のサイトで確認してみてください。

【参照】:MySQLコマンドの一覧とコマンドの実行

MySQLの学習法

入門書で学ぶ(おすすめの入門書)

MySQLなどのRDBMSの習得方法としては、スクールの利用が近道かもしれませんが、数十万円の費用が掛かること、オフラインスクールだと通学で拘束時間が長くなるといったデメリットがあります。

ITエンジニアとしてある程度のITスキルを有する方には、費用がほとんど掛からず、スキマ時間を利用して学ぶことができる入門書などによる独習方法がおすすめです。以下に、MySQL習得に向けた入門書を紹介します。

MySQL徹底入門 第4版 MySQL 8.0対応

この入門書は「入門」とはなっていますが、1から学ぶ人には向いていません。上で紹介した「ゼロからわかる SQL超入門」などでSQLの基本を身に付けた上で接すると、習熟が進みます。内容はかなり実務に即しており、SQLを実際に使う予定のエンジニア向けと考えてください。 

MySQL徹底入門 第4版 MySQL 8.0対応 [ yoku0825 ]

価格:4,180円
(2023/8/20 17:11時点)

MySQLエンジニアの将来

MySQLを身に付け、実務経験を積むことでデータベースエンジニアとなれるでしょう。
しかし、それはあくまでも通過点であり、その先を目標とすべきです。

データベースエンジニアのスキルを活かせるキャリアバスとして、

  • 「プロジェクトマネージャー」
  • 「データベースコンサルタント」
  • 「データサイエンティスト」

などがあります。

ぜひ、自身の将来像、将来目標を明確にした上でMySQLの習得に努めてみてください。

-データベース設計