MariaDB講座 / MariaDBとは?データベース・SQL・MySQLとの関係
MariaDBは、データを表に保存し、SQLで検索・更新するリレーショナルデータベース管理システムです。保存やアクセス制御を担当するサーバーと、命令を送るクライアントは、同じパソコンにあっても別のプログラムとして動きます。
データベースと管理システムを区別する
データベースは関連する情報を整理した集合です。DBMS(Database Management System)は、その保存、検索、権限、同時実行や復旧の仕組みを管理するソフトウェアです。MariaDB ServerはDBMSの一つで、一つのサーバー内に複数のデータベースを作れます。
リレーショナルデータベースでは、行と列を持つ表を使います。顧客の名前は顧客表に保存し、注文には顧客の識別子を記録すると、注文ごとに名前を複写する必要がありません。ただし、表を分けるだけで整合性が保証されるわけではなく、主キーや外部キーを含む設計が必要です。
表・行・列・主キーの意味
| 用語 | 商品管理の例 |
|---|---|
| データベース | shopcourse:実習用の表を入れる領域 |
| 表 | products:同じ構造を持つ商品の集合 |
| 列 | product_name、price、stockなど、値の種類 |
| 行 | 一つの商品について名前・価格・在庫を記録したもの |
| 主キー | product_id:各行を区別する識別子 |
列にはデータ型と制約を定めます。商品名には文字列、価格には目的に合った数値型を使います。同名の商品が複数あっても、主キーが違えば別の行です。「名前が同じだから同じ商品」とは決めつけません。大文字小文字の扱いで環境差を増やさないよう、この講座ではデータベース名と表名を小文字で統一します。
サーバーとクライアントの役割
サーバープロセスはデータを管理して要求を処理します。コマンドラインのmariadbは、接続してSQLを送り、返された結果を表示するクライアントです。GUIのデータベースツールも同じ立場です。クライアントだけをインストールしても、ローカルのサーバーは作成されません。
同じパソコンで学ぶ場合も、サービスとして動くサーバーと、端末で起動するクライアントを分けて確認します。サーバーが停止していてもクライアント自体は起動できますが、接続には失敗します。OSのログイン名、MariaDBのユーザー、データベース名も別の概念です。Ubuntuの管理者接続にはOSの身元を利用するsocket認証が使われる場合があります。
SQLで命令し、結果を受け取る
SQLはStructured Query Languageの略で、データ構造やデータ操作を記述する言語です。SELECTは読み取り、INSERTは行の追加、UPDATEは値の変更、DELETEは行の削除、CREATE TABLEは表の定義を行います。読み取るだけの命令と、保存内容を変える命令を区別してください。
接続後、クライアント内で次のSQLを実行します。この式は表を必要としません。セミコロンが文の終わり、ASは結果列の名前を示します。
SELECT 1 + 1 AS result, 'Learning MariaDB' AS message;
resultは2、messageはLearning MariaDBになります。これは計算結果であり、商品を保存したわけではありません。保存するには表を作り、INSERTなどで行を追加します。
MySQLとの関係と互換性の限界
MariaDBはMySQLを起源に持ちますが、別の製品として開発されています。基本SQLや接続方法に共通点があっても、すべてのバージョンの機能、認証、設定、データファイルが交換可能とは限りません。MySQL向けの手順を使うときは、実際のMariaDBのバージョンと機能別の公式説明を照合します。
データディレクトリをそのまま差し替えることは、単なるインストール操作ではありません。製品の移行にはバックアップ、互換性の確認と復元検証が必要です。この講座ではMariaDB ServerとMariaDBクライアントを基準に説明します。
実習環境と最初の到達点
WindowsへのインストールまたはUbuntuへのインストールを済ませ、コマンドライン接続で接続先を確認します。Windowsのパス例は12.3系、Ubuntuの手順は24.04 LTSの標準APTパッケージが対象です。両者のバージョンを無理にそろえる必要はありません。
端末のmariadb --versionはクライアント、接続後のSELECT VERSION()はサーバーのバージョンです。実際の値を記録し、公式配布元でサポートされる安定版を選びます。基本編はshopcourseとcourse_user、Dockerを使う応用編はmariadb:11.8とappops_lab、app_userを使います。shopcourseの権限はappops_labには及びません。
最初の目標は三つの商品を保存し、条件を付けて取り出すことです。Webアプリケーションや複数サーバーの設定を先に行う必要はありません。データベースの作成と商品表の実習で、保存場所と検索結果の違いを確かめられます。





