世紀末データベース
これ3回に渡る連続課題でデータモデリングの点数の100%を占めることになるんだが大丈夫なのか…?
1.対象の概要説明
世紀末スポーツアクションゲーム「北斗の拳」のデータベース。
2.主要なエンティティと関連の発見
- キャラクター
- 10人。
- 必殺技
- 1人のキャラクターが複数の必殺技を持つ。
- 究極奥義
- 1人のキャラクターが複数の究極奥義を持つ。
- 共通システム
- ステージ
- 8ステージ。キャラクターごとにステージが決まっているが、一部複数のキャラが同じステージを共有している。
4.スキーマ定義
- キャラクター(name, style, voice, stage)
- 必殺技(character, command, (condition, aura)*, name)
- 究極奥義(character, command, condition, name, aura)
- 共通システム(command, name)
- 共通システム利用可否(character, system, available)
- ステージ(name, bgm)
5.正規化
必殺技(character, command, (condition, aura)*, name)
1NF
必殺技(character, command, condition, name, aura)
部分従属character, command→nameが存在する
2NF
必殺技オーラ消費量(character, command, condition, aura)
必殺技名(character, command, name)
6.考察・疑問
conditionには地上・空中・ガード硬直中が入る。究極奥義は必ずこれらのうち1つなので問題ないが、必殺技では複数の状況で使えるものがある。よって多値属性とした。また、使う状況によって効果やオーラゲージの消費量が変わることがある(地上ニュートラル状態で出すと当身・地上ガード硬直中に出すとガードキャンセル)が、技名は変わらない(conditionに依存しない)ので部分従属を発見し、正規化した。
7.感想
正規化で予想以上に複雑なことになって驚いた。よく知っている題材にしてよかったと思う。