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には、VHDLVerilog があるよ。
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をコピーしました