🤔

改めて人に聞かれると説明が微妙に難しいやつ[2] DBにおける"ダンプ"編

2023/02/01に公開

日頃サーバーサイドエンジニアとしてお仕事していると、「これダンプ取っといて〜」とか
自分が他のメンバーに言われることもあれば、自分から誰かに言うこともあるのですが

そもそも"ダンプ"ってなんやねん

という質問を仮に初学者にされたら、今の自分は明確に説明できない事に気が付きました。
そういう訳で今回はデータベース(以下 DB と表記します)におけるダンプの意味・出来ることについて書いていきます。

※ DBには様々種類がありますが、今回はMySQLを例に話を進めさせていただきます🙇
結論だけ知りたい方は ■ DBにおける"ダンプ"の意味 をお読みください。

これを読む前の前提知識

  • サーバーサイド技術の初歩的知識(CRUD操作の基本など)
  • DB関連の初歩的知識(MySQLコマンド, テーブル・カラム・レコードの概念など)

本記事の想定読者

  • サーバーサイド/DB初心者〜周辺知識がふわっとしている方
  • フロントエンドエンジニアだけどDB知識もちょっと欲しい方

本記事では取り扱わないこと

  • サーバーサイドアプリケーション技術の詳細
  • ダンプしたデータの使い方

本題

■ "ダンプ"の語源について

専門用語として考える前に、一旦「英単語」としてどんな意味なのかを見ていきましょう。
理解につながるヒントがあるかもしれません。

dump[1]

  1. informal stupid(投げ捨てる / くだらない[類義語: ダンピング]):
    例: He's so clever that he makes me feel really dump.
    (彼はとても賢いので、私は本当に**捨てられた(騙された)**気分になります。)
  1. (American informal) silly and annoying(馬鹿馬鹿しい):
    例: He had this dump idea.
    (彼はこのばかげた考えを持っていました。)

・・・今回はさほど期待していたような和訳は得られませんでしたが、1.の"投げ捨てる"が意味として近そうです。
投げ捨てる→投げる・・・🤔
何をどこに投げるのか・・・

■ DBにおける"ダンプ"の意味

困った時の公式リファレンス、と言う事で1次情報としてMySQL公式リファレンスを見ていきましょう。

4.5.4 mysqldump — データベースバックアッププログラム

mysqldump クライアントユーティリティは logical backups を実行し、元のデータベースオブジェクト定義およびテーブルデータを再現するために実行できる一連の SQL ステートメントを生成します。
別の SQL サーバーにバックアップまたは転送するために、1 つ以上の MySQL データベースをダンプします。
mysqldump コマンドは、CSV、その他の区切り文字で区切られたテキスト、または XML 形式でも出力を生成できます。

(https://dev.mysql.com/doc/refman/8.0/ja/mysqldump.html) より

↑のページにはダンプについて詳細な仕様説明が記載されているのですが、要するに

  • データベース上に記録された情報のバックアップデータを作成することができる
  • 作成したデータ(出力データ)は、様々な形式のファイルで取得可能
    • .sql, .csv, .xml

こんなところでしょうか。
他にもダンプの実行条件や実行時のオプションについて書かれていますが、とにかくこの文章から分かるのは、

<<データベースの内容をファイル化して保存出来る>>

ということです💡

具体的なダンプのやり方については上記リファレンスにも記載がありますし、
CUI[2]操作以外にも、お手元のDBクライアントツール[3]から操作可能です。

■ "ダンプ"する方法

💡 参照記事

MySQLコマンドによる方法が記載されていますが、
DBクライアントツールからでも同様の操作ができると思います。

※ 今回はダンプについての説明記事としますので、ダンプしたファイルの使い方などについては割愛させていただきます。

あとがき

最後までお読みいただきありがとうございました🙏

意外と手元に参考書籍が見当たらず、情報の出典元を探すのに少々苦戦しましたが、
最後に頼れるのはやっぱり公式リファレンスサイトですね。ありがたやありがたや。

Typo指摘, ここは正しく無いのでは?等のコメントを寄せていただけるととてもうれしいです😇
都度修正・追記を続けてブラッシュアップしたいと思います👍

それでは次のシリーズ記事でまたお会いしましょう!


脚注
  1. 出典: コウビルド エッセンシャル英英辞典, 翻訳はDeepL・Google翻訳より。類義語はGoogle検索結果より ↩︎

  2. Character User Interface(キャラクタ・ユーザ・インターフェース)を指します。いわゆる"黒い画面"でコマンドを直接打ち込むあの画面です ↩︎

  3. 具体的なクライアントツールとしては、"A5:SQL Mk-2", "DBeaver", "phpMyAdmin"などがあります。Windowsユーザーであれば"A5:SQL Mk-2"が個人的におすすめです(継続的に機能改善がなされています) ↩︎

Discussion