IT用語

UML・HDL・XML・DDLの違いとは?初心者向けに「何を表す言語か」で画像多めで解説!

クマノくらげ

結論からいうと、この4つは「何を表すか」が違います。

UML:システムの設計を表す
HDL:電子回路を表す
XML:データの構造を表す
DDL:データベースの構造を表す

よくある勘違い:全部プログラミング言語なの?

UML、HDL、XML、DDLって、全部似たような名前でわけわからないんだけど。
これって全部プログラミング言語なの?

あぁ、全部Lで終わっているからごっちゃになっちゃったのかな。改めて整理してみようか。

全部がプログラミング言語というわけではないよ。
ざっくり言うと、こんな感じ。

用語何を表すもの?主な用途
UMLシステムの設計図を書くための表現ソフトウェア設計
HDL電子回路の動きを表す言語ハードウェア設計
XMLデータに意味を付けて書く形式データ交換・設定ファイル
DDLデータベースの構造を作る命令テーブル作成・変更

なるほど。
でも、まだピンとこないな。
全部「何かを書くもの」って感じはするけど。

そこがポイントだね。
たしかに全部「何かを表すために書くもの」なんだけど、表す対象が違うんだ。
つまり、4つを区別するコツは、「何を書くものか」ではなく、「何を表すものか」で見ることだね。

UMLとは?

まず、UMLから見ていこうか。
UMLは、ソフトウェアやシステムの設計図を書くための表現方法だよ。
正式には Unified Modeling Language というんだ。

設計図って、家の設計図みたいなもの?

かなり近い。
たとえば、アプリを作る前に、

  • どんな機能があるのか
  • ユーザーがどう操作するのか
  • クラス同士がどう関係するのか
  • 処理がどんな順番で進むのか

こういうものを図で整理するんだ。

つまり、UMLはプログラムそのものを書くというより、
「これから作るシステムの設計を見える化するもの」ってこと?

そうだね。
UMLは、システムの考え方や構造を図で説明するための道具だね。

たとえばUMLには、次のような図があるよ。

・ユースケース図:誰がどんな機能を使うかを表す図
・クラス図:データや部品同士の関係を表す図
・シーケンス図:処理の流れや順番を表す図

HDLとは?

HDLは、ハードウェアの動きを表すための言語だよ。
正式には Hardware Description Language という。

ハードウェアって、パソコンの中の部品とか?

そうだよ。
CPU、メモリ、電子回路、半導体みたいなものだね。

プログラムを書く言語とは違うの?

考え方は少し違う。
普通のプログラミング言語は、コンピュータに
「この順番で処理してね」
と命令を書くことが多い。

でもHDLは、
「この電子回路はこう動くよ」
「この信号が来たら、この出力になるよ」
というように、回路の構造や動作を表すんだ。

つまり、ソフトウェアではなく、電子回路を作るための言語なんだね!

そうそう。
代表的なHDLには、VHDL や Verilog があるよ。
HDLは、FPGAやICなどの電子回路を設計・検証するときに使われるんだ。

XMLとは?

XMLは、データに意味を付けて書くための形式だよ。
正式には Extensible Markup Language というね。

データに意味を付ける?

たとえば、ただこう書いてあったらどう?
くまのくらげ
ITブログ

これだけだと、何の情報か少し分かりにくいよね。

でもXMLだと、こんなふうに書ける。

<blog>
<name>くまのくらげ</name>
<category>ITブログ</category>
</blog>

ああ、name とか category って書いてあるから、
何のデータなのか分かりやすいね。

そう。
XMLは、データの意味や構造を分かりやすく表す形式なんだ。

じゃあXMLは、設計図でも電子回路でもデータベース命令でもなく、「データを整理して書く形式」なんだね。

そうだね。
XMLを使うことで、人間にもコンピュータにも、データの意味を伝えやすくするんだ。

DDLとは?

DDLは、データベースの構造を作ったり変更したりする命令だよ。
正式には Data Definition Language という。

データベースの構造?

たとえば、データベースに「ユーザー情報を入れる表」を作りたいとする。
そのときに、こんな命令を書く。

CREATE TABLE users (
id INT,
name VARCHAR(100),
email VARCHAR(100)
);

これは、ユーザー情報を入れるテーブルを作ってるんだね。

そう。
DDLは、SQLの中でも、データそのものを入れるというより、
データを入れるための箱やルールを作る命令なんだ。

データを入れる命令とは違うの?

違うね。
データを追加したり検索したりするのは、主にDMLという種類になる。

たとえば、こういうのはDML。
INSERT
SELECT
UPDATE
DELETE

一方でDDLはこんな感じのテーブルなどの構造を作る・変える・消す命令だね
CREATE
ALTER
DROP

UML、HDL、XML、DDLを例えるなら

4つをレストランで例えてみようか。

まず、
「お客さんが来て、注文して、料理を受け取る」
という流れを図にする。
これは UML に近い。

システム全体の流れや関係を図にするからUMLね。

そう。

次に、厨房の機械そのもの、たとえば
「このボタンを押したら、この装置が動く」
みたいな電子回路を設計する。
これは HDL に近い。

ハードウェア側の動きを表すからHDL。

そう。

次に、メニュー情報をこんな感じで整理する。

<menu>
<item>
<name>オムライス</name>
<price>900</price>
</item>
</menu>

これは XML。

データに意味を付けて書いてるからXMLね。

最後に、注文データを保存するために、
データベースに「注文テーブル」を作る。
これは DDL。

データを入れる箱を作る命令だからDDLか。

まとめ

整理すると、こういうこと?

  • UMLは、システムの設計図を書くもの
  • HDLは、電子回路の動きを表すもの
  • XMLは、データに意味を付けて書く形式
  • DDLは、データベースの構造を作る命令

完璧だよ!
かなりいい理解だね。

つまり、名前は似てるけど、見ている対象が違うんだね。
UMLはシステム、HDLはハードウェア、XMLはデータ、DDLはデータベース構造。

まさにそれ。
この4つは、全部「何かを表すためのもの」だけど、
何を表すのかがまったく違うと覚えると分かりやすいよ。

用語一言でいうと覚え方
UMLシステムの設計図アプリやシステムの流れを図にする
HDLハードウェアの設計言語電子回路の動きを書く
XMLデータを意味付きで書く形式タグでデータを整理する
DDLデータベース構造を作る命令テーブルという箱を作る

ポイントは、名前ではなく「何を対象にしているか」で区別することです。

  • UML:システム設計
  • HDL:ハードウェア設計
  • XML:データ表現
  • DDL:データベース定義
ABOUT ME
クマノくらげ
クマノくらげ
難しいIT用語やビジネス用語を、できるだけ身近な例えで解説するブログです。 「専門用語を見ると眠くなる人」でも読めるように、画像や会話形式を多めにしています。 AWS12冠達成済み。
記事URLをコピーしました