- 更新日 2023.10.25
- カテゴリー インフラ構築
サーバ構築に欠かせないMySQLとは?サーバにおけるMySQLの役割・仕組み・基本を解説【2024年最新版】
・サーバにおけるMySQLの役割は?
・MySQLの仕組みは?
・MySQLを利用するにはどうすればいい?
企業・店舗のIT担当者であれば「MySQL(マイ・エスキューエル)」という言葉を耳にしたことがあるはず。しかし、MySQLがデータベースであることはなんとなくわかっても、なぜサーバ構築にMySQLが必要なのか?そもそもデータベースとはなにか?わからないという方も多いでしょう。
そこで本記事では、サーバ構築に欠かせないリレーショナルデータベースの役割・仕組みを含む、知っておきたいMySQLの基本をできる限り分かりやすく解説!近年注目の高まるデータベース「NoSQL」とはなにか?MySQLとの違いも紹介していきます。
※MySQLを活用したサーバ構築・アプリ開発に豊富な実績を持つシステム開発会社を探している方は、システム幹事にご相談ください。専任のアドバイザーが最適な開発会社をご紹介します。相談料などは一切かかりませんので、お気軽にお問い合わせください。
MySQLとは?
画像引用:MySQL
MySQLは、オープンソースのデータベース管理システム(DataBase Management System)です。2022年現在、Oracle社によって所有・管理されるMySQLは、GNU GPLライセンスと商用ライセンスの2種類がラインナップされ、以下のような特徴を持ちます。
※GNU:著作権の表示は禁止だが複製・改変・再配布・販売などは許されているライセンス
・オープンソースのGNU GPLライセンスは無償で利用可能
・拡張性に優れ、Webサイトから大規模Webアプリまで幅広く対応
・シンプルな操作性・軽快な動作
・Linux / UNIX / macOS / Windowsなどの幅広いOSで動作
・SSH / SSL接続によるセキュリティの高さ
柔軟性・機能性の高さに加え、無償で利用できるMySQLは、世界でもっとも利用されているデータベース管理システム(DBMS)のひとつです。たとえば、PHPと相性のいいMySQLは、WordPressやDrupalなどの人気CMSのデータベースとして利用されています。
ほかにも、YouTube、Twitter、Facebookなど大規模WebシステムのデータベースとしてMySQLが利用されています。その汎用性・信頼性の高さは折紙付き。
画像引用:DB-Engines
他国に比べると日本での普及率は今ひとつでしたが、近年になってPostgreSQLを逆転するなど活用が加速。世界的に見ても、Oracleと並ぶトップシェアを誇るデータベースとして知られています。
MySQLの基礎知識
それでは、MySQLはどのような仕組みで動作するのか?サーバ構築にMySQLがどのように関係してくるのか?詳細の解説に入る前に、大前提として知っておきたいMySQLの基礎知識を解説しておきましょう。
MySQLはWeb・業務システムのサーバ構築に必須のDBMS
複数のユーザー(クライアント)がひとつのアプリケーションを利用するWebシステム・業務システムでは、アプリケーションとデータベース管理システム(DBMS)を内包したサーバ構築が必須。ユーザーのリクエストを処理するアプリケーションは、それ単体でデータを保持できません。そのため、データの追加・修正・削除などを管理し、格納するためのデータベース管理システム(DBMS)が必要なのです。
Webシステム・クライアントサーバ業務システムと相性のいいMySQLは、サーバ構築の際にDBMSの候補として筆頭に挙げられる必須の存在だといってもいいでしょう。
Webシステムの仕組みについてより詳しく知りたい方は、以下の記事も参考にしてください。
関連記事:Webシステムの仕組みをわかりやすく解説!大規模Webシステムで採用されるWeb3層構造とは?
SQLで操作するリレーショナルデータベース(RDBMS)
DBMSには階層型、ネットワーク型とデータタイプに応じたいくつかの種類が存在します。MySQLは関係型とも呼ばれる「リレーショナルデータベース(Relational DtataBase Mangement System)」です。
下記に簡潔にDBMSの種類をまとめておきます。
階層型 |
あるデータから別のデータを派生していってツリー上に展開していくタイプ アクセス速度が速いメリットがある |
---|---|
ネットワーク型 |
階層型の特徴に加えて、データのつながりが網状になるよう展開するタイプ 階層型のデメリット(=データの重複)を避けられる |
リレーショナル型 |
行と列で表のように構成されるタイプ |
現在もっとも活用されるタイプのデータベースであるRDBMSは、以下のような特徴を持ちます。
・データに一貫性を持たせやすい表形式
・データ同士を関連させた複雑な処理(検索)が可能
MySQL自体は「C / C++」で書かれたプログラムです。しかし、MySQL Serverの起動・終了、データベースの設定・構築などの操作には「SQL(Structured Query Language)」というプログラミング言語を使うことが特徴。MySQLと同じRDBMSには他にも、PostgreSQL、Oracle、SQL Serverなどがあります。
MySQLの役割とサーバの関係
ただし、起動・終了・設定・データベース構築に「SQL」での命令が必要なことからもおわかりのように、MySQLはコンピューターにインストールしただけではプログラムとして動作しません。macOS / WindowsにMySQLをインストールし、コマンドプロンプト / ターミナルや専用ツールでデータベースを構築することはありますが、共有データベースとしてMySQLを利用するにはサーバが必要です。
※コマンドプロンプト/ターミナル:キーボードでのコマンド入力で、Windows設定やファイル管理を行えるツール
つまり、Webシステム・クライアントサーバ業務システムのサーバには、ユーザーのリクエストに応じてデータ管理の役割を持つDBMS(MySQL)が必要。MySQLを本来の共有データベースとして利用するには、データを加工するアプリケーションを含むサーバが必要という関係が成立します。
アプリケーション・APサーバ(アプリケーションサーバ)
一般的なWebシステムを例にすると、構築されたサーバは以下のレイヤー構造を持っています。
サーバのレイヤー |
利用されるソフトウェア・プログラミング言語 |
---|---|
Webサーバ |
Apache、Ngnixなど |
アプリケーション・APサーバ |
PHP / Perl / Python、Tomcat、Gunicornなど |
データベース |
MySQL、PostgreSQLなど |
サーバOS |
Linux(Red Hat / Ubuntu)、Windows Serverなど |
うしたWebアプリケーションで利用されるソフトウェアスタックを「LAMP(Linux、Apache、MySQL、PHP / Perl / Pythonの頭文字)」と呼びます。アプリケーションの動作に重要な役割を果たすのがWebサーバ・APサーバ・DBMSです。
Webサーバを経由してアプリケーション / APサーバに送られたユーザーのリクエストは、DBMSからデータを取得・追加・修正・加工・削除したのち、逆の経路でユーザーへ返されます。こうしたアプリを補助する役割を持つソフトウェアを「ミドルウェア」といい、DBMS / APサーバ / Webサーバはその代表です。
ミドルウェアについてより詳しく知りたい方は、以下の記事も参考にしてください。
関連記事:ミドルウェアとは?アプリ・システム開発との関係・仕組み・役割・具体例を解説!
MySQLの仕組み
リレーショナルデータベースであるMySQLの仕組みを理解していなければ、データベースは構築できません。SQL文によるデータベース構築方法まで理解する必要はありません。
しかしIT担当者であれば、リレーショナルデータベースであるMySQLの仕組みを理解しておくことが重要。以下から簡単にMySQLの仕組みを解説していきます。
データが格納されるテーブルの構造
そもそもデータベースとは、ある特定のルールに従って整理された情報(データ)の集まり。RDBMS(リレーショナルデータベース)であるMySQLは、データを表形式のルールに従って整理・格納していくタイプのリレーショナルDBMSです。このデータセットのことを「テーブル」と呼び、複数のテーブルを関連付けることによって、MySQLは複雑なデータ検索・加工を可能としているのです。
MySQLの基本となるテーブルの概念は、Excelの「シート」をイメージしてもらえば理解しやすいでしょう。
たとえば、テーブルに顧客情報というデータを格納するパターンで考えてみましょう。「氏名」「住所」「性別」「年齢」「メールアドレス」といった、顧客の個別データに紐づく属性は、Excelの列に相当する「カラム」で指定します。
一人ひとりの顧客情報は、Excelの行に相当する「レコード」にまとめられ、それぞれの個別データはExcelのセルに相当する「フィールド」に記録します。新規顧客のデータをデータベースに追加したい場合は、「レコード」を新規作成して「カラム」に相当するデータを「フィールド」に記録していくという流れです。
テーブルとテーブルの関係性
ただし、顧客情報テーブルで「購入履歴」を閲覧したいと考えた場合、特定の顧客が商品を購入するたびに、カラムを際限なく追加していかなければなりません。これではデータの取り扱いが複雑になってしまいます。リレーショナルデータベースでは、これをシンプルに解決するため、テーブルを分離させて関連付ける(リレーション)ことにより、お互いのデータを呼び出せる仕組みが採用されています。
たとえば購入履歴の場合、顧客情報テーブルとは別に在庫管理テーブルを作成し、個別在庫の購入者に「顧客ID」を記録します。それによって、それぞれのテーブルから必要なデータを呼び出せるようになるのです。
プライマリーキー / フォーリンキーとは
このようにテーブル同士をリレーションさせ、それぞれから必要なデータを呼び出したいときに使われるのが「プライマリーキー」および「フォーリンキー」です。
「主キー」ともいわれるプライマリーキーとは、テーブル内の特定レコードを検索・呼び出す際に使われるカラムのこと。そのレコードでしか使われていないユニークな値を使う場合が多く、顧客情報テーブルでいえば「顧客ID」が、在庫管理テーブルでいえば「商品ID」がプライマリーキーに該当します。
一方「外部キー」ともいわれるフォーリンキーとは、ある特定のテーブルに紐付いた外部テーブルの情報を呼び出す際に使われる、外部テーブルの特定カラムのこと。購買履歴を呼び出したい顧客管理テーブルにとっては、在庫管理テーブルの「購入者」がフォーリンキーに該当します。
こうしたデータベースのデザイン・設計は、SQLでプログラミングしていくことも可能です。しかし、データの関連性を確認しながら適切に設計していくにはGUIがあった方が便利。MySQL Workbenchを活用すれば、プライマリーキー / フォーリンキーをマウスで接続するだけで、簡単にリレーショナルデータベースをデザインできます。
画像引用:MySQL
アプリケーションとMySQLの接続
サーバに構築したMySQLは、最終的にアプリケーションで操作してデータを取得する必要があります。アプリ開発に利用したプログラミング言語、APサーバの有無などによって方法は異なりますが、基本的には以下の手順でMySQLにアプリケーションを接続します。
- アプリとMySQLの接続を確立
- カーソルの作成(データを抽出する仕組み)
- SQLを使ったデータの取得・更新
- トランザクションの設定(手順完了までの流れ)
- カーソルを閉じる
カーソルとは、データの現在位置と検索条件を保ったまま、複数の検索結果を1件ずつ処理する仕組み。トランザクションとは、相互に依存する関係の複数処理を1つの処理単位にして滞りなく処理することです。たとえば、Pythonで開発されたアプリであれば、パッケージに含まれている「mysqlclient」を利用することで、MySQLとの接続・操作が可能です。
MySQLへの接続・データベース構築の方法
サーバ構築に欠かせないMySQL(DBMS)ですが、システムDBMSとして機能させるためには、サーバにインストールしたうえでシステム開発の目的に最適化されたデータベースを構築しなければなりません。一般的には、システムの詳細設計が完了した時点で、アプリ開発とは別に、インフラエンジニアによってデータベースが構築されます。
MySQLデータベースを構築するには、OSに応じた適切なMySQLをサーバにインストールし、SQL文を使って各種設定を進めていくことになります。MySQLを操作できるSQLツールにはいくつかがありますが、標準の「MySQL Command Line Client」もしくは「MySQL Workbench」を使ってデータベース構築することが一般的です。
システム開発の詳細設計についてより詳しく知りたい方は、以下の記事も参考にしてください。
関連記事:システム開発の詳細設計とは?プロジェクトの位置付け・役割をわかりやすく解説!
MySQL Command Line Client
画像引用:MySQL Command Line Client
「MySQL Command Line Client」とは、MySQLと同時にインストールされる「データベース接続ツール」です。ツールの名称からもお分かりのように、コマンドラインでSQL文を打ち込み、各種設定・データベース構築する「CUI(Character User Interface)」ツールであることが特徴。たとえば、MySQL Command Line Clientを起動すると、以下のようなコマンドラインが表示されます。
画像引用:MySQL Command Line Clientl
続いて、MySQLインストール時に設定したユーザーネーム / パスワードを打ち込めば、MySQLへログインできます。パスワードは ダブルクウォート(“”)で囲みましょう。さもないとうまくログインできません。
MySQL Workbench
MySQLのデータベース接続ツールには、GUI(Graphical User Interface)で操作できるビジュアルツールもあります。むしろ、リレーショナルデータベースであるMySQLでは、ビジュアルツールが多用されることの方が多いといえるでしょう。代表的なものには、Oracleが用意する標準ツール「MySQL Workbench」が挙げられます。
画像引用:MySQL
「MySQL Workbench」は、GUIによるデータベースの設計・構築・編集・管理を可能にするビジュアルデータベース接続ツールです。Linux / Windows / macOSで利用でき、MySQLデータベースの状態をチェックできるダッシュボードも利用可能。
構築したデータベースのER図(テーブルの関連図)を生成できます。また、既存データベースからER図を作成したり、PostgreSQL / SQL Server / AccessなどのデータベースをMySQLにデータ移行も可能です。
編集する際、文字のエンコードはUTF-8にしましょう。それ以外のエンコードの場合、エラーとなって正常に動作しなくなる恐れもあります。
注目の高まる「NoSQL」とは?
ここまでで知っておきたいMySQLの基本を、リレーショナルデータベースの仕組みとともに解説してきました。現在でも圧倒的なシェアを誇るMySQLですが、近年話題になることの多くなった「NoSQLデータベース」が気になっている方も多いのではないでしょうか?
「NoSQL(Not only SQL)」とは、文字通り「SQLデータベース以外のDBMS」のこと。SQLで操作するリレーショナルデータベースと異なり、SQLだけではない方法でデータベースへのアクセスを実行することから「非リレーショナルデータベース」とも呼ばれます。
NoSQLとMySQL(RDBMS) の違い
DBMSへのアクセス方法・データタイプは異なるものの、RDBMSと比較した場合どのNoSQLも同じような特徴の違いが見られます。
リレーショナルデータベース (RDBMS)の特徴 |
非リレーショナルデータベース (NoSQL)の特徴 |
データに一貫性を持たせられる |
データ量が増大しても処理が高速 |
テーブル同士を関連させた 複雑な処理が得意 |
大容量のデータを扱える データベースを分散稼働可能など拡張性が高い |
データ量が増えると プログラムが複雑化する |
複雑な処理・検索などは苦手 |
データ量の増大・複雑化によって 処理速度が低下しやすい |
データの整合性を保ちにくい データ加工が苦手 |
NoSQLは、シンプルな作りにてデータベース構築することによって、高速処理ができています。RDBMSではテーブル間の整合性のためにトランザクションをしますが、NoSQLではトランザクションがありません。RDBMSは基本的に1機のサーバーで動作するように作られますが、NoSQLはサーバの数が増えても対応しやすいよう作られているのです。
NoSQLが向いているシステム
RDBMSと比較した場合のNoSQLの特徴から、以下のようなシステム・アプリ開発に利用されるデータベースには、NoSQLが適しているといえるでしょう。
・ビッグデータの処理
・画像・動画・音声などの非構造化データの扱い
・データ増大など将来的なスケーラビリティが求められる
具体的にはAI / 機械学習関連、IoT / 自動運転関連、ビッグデータを駆使した分析 / アナリティクス関連、高速な処理が求められる大規模ゲームなど、近年需要の拡大しているシステム・アプリ開発分野が挙げられます。
ただし、RDBMSとNoSQL、どちらかが優れているということではなく、システム・アプリに応じて向き・不向きがあることは覚えておくべきです。たとえば、データ構造が複雑になりがちな業務システムなどでは、RDBMSの優位性はまだまだ揺るぎないものだと考えられます。
MySQLサーバ構築まとめ
MySQLとはなにか?サーバ構築とどのような関係にあるのか?知りたい方に向け、本記事では、サーバ構築に欠かせないリレーショナルデータベースの役割・仕組みを含む、知っておきたいMySQLの基本をできる限り分かりやすく解説するとともに、近年注目の高まるデータベース「NoSQL」とはなにか?MySQLとの違いも紹介してきました。
サーバ構築を含むシステム・アプリ開発を検討する際に、DBMSの候補として真っ先に挙げられるのがMySQLです。Webサイトから大規模Webアプリまで、幅広く使えるMySQLの汎用性・柔軟性は非常に魅力的。
しかし、開発するシステム・アプリによっては、MySQLよりもNoSQLの方が適している場合も。固定概念にとらわれることなく、目的・ゴールを達成するために何が必要なのかを、念頭に置いておくことが重要です。
コンサルタントのご紹介
岩田
専任のコンサルタントが、
お客様の予算と目的を丁寧にヒアリング。
最適な会社をピックアップ・ご紹介させていただきます!
初心者の方でも安心してご相談いただけます。
※MySQLを活用したサーバ構築・アプリ開発に豊富な実績を持つシステム開発会社を探している方は、システム幹事にご相談ください。専任のアドバイザーが最適な開発会社をご紹介します。相談料などは一切かかりませんので、お気軽にお問い合わせください。
Q. MySQLとは何ですか?
MySQLとは、オープンソースのデータベース管理システムのことです。「拡張性に優れている」「Webサイトから大規模Webアプリまで幅広く対応している」等の特徴があります。
Q. サーバ構築に欠かせないMySQLのメリットは?
サーバ構築に欠かせないMySQLのメリットは「シンプルな操作性・軽快な動作」「拡張性に優れ、Webサイトから大規模Webアプリまで幅広く対応している」などです。詳細は記事内で紹介していますので、ぜひご覧ください。
この記事を書いた人
梓澤 昌敏
専門分野: 音楽・映像制作、オウンドメディア、ビジネス
音楽・映像制作の現場を経て、スタジオ構築側の業界へ。マネージャー・コンサルタントとして制作現場の構築に携わる一方、自社オウンドメディアの立ち上げを含むマーケティングも担当してきました。現在アメリカ在住。作曲を含む音楽制作も提供しています。
このライターの記事一覧