2019-05-28に投稿

ER図を作るのにオントロジーエディタを使ってみた

DBを再設計する必要がありまして。
ちょうどいいER図作成ツールないかなーと思ってxmindとか使い始めてみたのですが、あまりしっくりとこなかったので以前使っていたツール(オントロジーエディタ)に戻ってみました。

オントロジーって何?

オントロジー(英: ontology)は、哲学用語で存在論のこと。
ここでは学術的な説明は要約しかしませんので、オントロジの構成要素←このあたりを読んでいただくと情報系の方は「あぁ!」って納得していただけるかもしれません。

概念

プログラミング言語でいうところのクラスに相当するものです。

is-a 関係

上位概念と下位概念を結ぶリンクです。基本的に継承関係です。

part-of(p/o)、attribute-of(a/o)

概念(クラス)が持つプロパティやメンバーと捉えていただくとよいかもしれません。

クラス制約

多くのプログラミング言語には型が存在します。

では作ってみましょう

image

一例として「野球リーグ管理システム」のDB設計をするためにいくつか必要な情報を列挙してみます。

野球リーグ

  • 野球リーグはたくさんのチームを持っています(p/o)。
  • 野球リーグにはシーズンという属性があります(a/o)。

チーム

  • チームにはたくさんの選手がいます。(p/o)
  • (書いていませんが監督やマネージャーがいるかもしれません...)

試合

  • 試合にはチームの勝敗がそれぞれあります。
  • 試合には得点があります。(a/o)
  • 勝ったチームには勝ち投手がいます。(選手のクラス制約があります。)

選手

  • 選手は人間です。(is-a)
  • 人間にIDはありません(笑)。システム的にIDを振ります。

シーズン

  • シーズンとは時間を区切った期間です。(図のis-aは誤植です。)

おわりに

このような学術的なツールを使って書くこともできますよ、という話でした。学問って改めて振り返るとこういう形で使われているんだーという学びがありますね。

参考リンク

オントロジーエディタ「法造」

ツイッターでシェア
みんなに共有、忘れないようにメモ

ckoshien

個人開発5年目。普段はフロントエンドエンジニア。 ReactJS/NextJS/NodeJS/ReactNative/Java

Crieitは誰でも投稿できるサービスです。 是非記事の投稿をお願いします。どんな軽い内容でも投稿できます。

また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!

有料記事を販売できるようになりました!

こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください。
ボードとは?

コメント