基本情報技術者 2017年 春期 午前(科目A) 問26
問題文
図のデータモデルを三つの表で実装する。このとき、“A社への売上50,000円を、2017年4月4日に現金勘定に計上した”ことを記録する“移動”表のa、bの適切な組合せはどれか。ここで、モデルの表記にはUMLを用いる。


選択肢
ア:
イ:
ウ:
エ:(正解)
🔒 解説は解答すると表示されます
会計データの移動表設計【午前解説】
正解の理由
取引番号0122の2行目に「208(売上)/貸方/50,000」があります。問題文で「A社への売上50,000円を2017-04-04に現金勘定に計上した」とあるため、売上(収益)を貸方(減少ではなく収益の認識は貸方)に記録し、対になる勘定は現金(資産)の増加を意味する借方に50,000を記録します。したがって移動表の空欄aには現金の勘定コード510、bには「借方」を入れる必要があります。よって正解は エ です。
解法ステップ
- 問題文から仕訳の内容を把握する(売上50,000円を現金で受領)。
- 会計取引表で該当取引番号(0122)の計上日・摘要を確認する。
- 移動表内で取引番号0122に関連する既存行を確認する(208/貸方/50,000)。
- 既存行とバランスを取るための対の勘定を決定する(現金=資産は借方で増加)。
- したがって a=510(現金コード)、b=借方 を選ぶ。
選択肢別の誤答解説
- ア(a=208、b=貸方)
誤り。既に0122には「208/貸方/50,000」があるため、同じ取引で同額を同科目・同向きで重複させても仕訳は成立しません。 - イ(a=208、b=借方)
誤り。208は売上(収益)であり、売上を借方に置くと仕訳の意味が逆になります。取引の説明(現金受領)と矛盾します。 - ウ(a=510、b=貸方)
誤り。510は現金ですが、現金の増加は借方で記録するため貸方に置くのは不適切です。 - エ(a=510、b=借方)
正解。現金(510)を借方に、売上(208)を貸方にすることで金額が相殺され、取引0122の仕訳が成立します。エ
よくある誤解
- 「売上を借方にする」と誤認する:売上(収益)は通常貸方に記録するため、向きを逆に覚えるミスが多いです。
- 勘定コードを見ずに科目名だけで判断する:表の勘定コードと科目の対応を確認せずコード値だけで埋めると誤答になります。
- 取引番号での対応を忘れる:同じ日付・摘要でも取引番号ごとに借方・貸方の組合せを照合する必要があります。
補足コラム
UMLで「移動」が「借方」「貸方」を一般化(サブタイプ化)している設計は、仕訳の性質(向き:借/貸)を列挙型のように扱う代わりに、移動行の属性を細分化するモデル化手法です。リレーショナル実装では「借/貸」は通常文字列や列挙(ENUM)で表現し、取引番号でグルーピングして借方合計と貸方合計が等しいことをアプリまたはDB制約で検証します。
FAQ
Q1:なぜ売上は貸方に記録するのですか?
A1:簿記の基本で、収益(売上)は純資産を増加させるため貸方に記録します。現金の増加は資産の増加であり借方に記録します。
A1:簿記の基本で、収益(売上)は純資産を増加させるため貸方に記録します。現金の増加は資産の増加であり借方に記録します。
Q2:移動表で同じ取引番号が複数行あるのはなぜですか?
A2:仕訳は複数勘定の組合せで構成されるため、1取引に対して借方・貸方で複数行に分かれて記録されます。DBでは取引番号で関連付けます。
A2:仕訳は複数勘定の組合せで構成されるため、1取引に対して借方・貸方で複数行に分かれて記録されます。DBでは取引番号で関連付けます。
Q3:DBで借方合計と貸方合計の一致を保証できますか?
A3:トリガーやチェック制約、アプリケーション側のトランザクション処理で厳密に検証するのが一般的です。単純な表レベルの制約だけでは難しい場合があります。
A3:トリガーやチェック制約、アプリケーション側のトランザクション処理で厳密に検証するのが一般的です。単純な表レベルの制約だけでは難しい場合があります。
関連キーワード: データモデリング、UML、勘定科目、仕訳、借方貸方、テーブル設計、正規化、会計データ、トランザクション管理

\ せっかくなら /
基本情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

