設計者の発言

業務システム開発とデータモデリングに関する語り

待機児童の状況を管理するためのデータモデル

わかりやすさのためにタイトルを待機児童の話っぽくしたが、医療福祉、老人福祉、介護福祉、障碍者福祉、生活保護といった広い業務分野をカバーするものだ。福祉事業者の許認可、利用待機住民の把握、適合施設への誘導、利用料の納付や支払といったさまざま…

システム設計に「ビジネス分析」は要らない

自社ビルを建てることになって、あなたは責任者として打ち合わせに参加した。そこで建築業者がこのように提案してきたらどうだろう。「より満足していただくために、御社のビジネスを分析させてください。ビルのデザインには御社のビジネスが反映されるもの…

マイナンバーの前に「予算管理の合理化・透明化」を

マイナンバーカードの問題が次から次に出てくるが、抜本的改革には艱難辛苦が付き物なので、個々の事案をいちいち気にしてもしょうがない。しかし全体として見れば、その進め方には「納税者の感情」への配慮が欠けていると言わざるを得ない。どういうことか…

「データモデリング合宿2023」のお知らせ

ノーコード・ローコード開発のような実装過程の合理化が進展することで、DB設計が業務システム開発プロジェクトのカギであることが再認識されています。ノーコードだろうがローコードだろうがOOPだろうが、DB設計に失敗すれば陰鬱なデスマーチが始まる。デー…

更新履歴と更新予約を「時限属性」で合理化する

マスター系テーブルの主キーにいちいち「適用開始日」や「履歴番号」が含まれているDB設計を見たことはないだろうか。品目マスターを例にすると主キーが{品目№}ではなく、{品目№+適用開始日}とか{品目№+履歴番号}のようになっていたりする。このよう…

「買占め」や「転売」を防止するためのデータモデル

行政や自治体のシステムを合理化する最大の目的は「住民の利便性向上」である。全国民が背番号管理される動きに対して世間では管理強化や個人情報の漏えいリスクが大きいといった批判に終始しがちだが、住民にとっての利便性向上や行政の透明化といった圧倒…

WEBサービスのためのデータモデル

WEBサービスのための汎用的なデータモデルを考えてみた。WEBサービスは事業にとっての特殊な商品カテゴリーに属するものではあるが、ソフトウエア分野として特殊ではない。専用の取引管理モジュールを伴うという特徴はあるものの、運用を支えるデータモデル…

野球のデータモデル:一球速報からペナントレースまで

WBCが楽しかったので、野球のペナントレースを表すデータモデルを考えてみた。まずは基礎となる球団や選手、およびそれらの年次成績(年次サマリ)の関係を見てほしい(図1)。 図1.基本情報のデータモデル 年次サマリには「セパ別年次サマリ」、「球団別…

所得税・住民税計算のためのデータモデル

固定資産管理と住民福祉管理に続いて、所得税と住民税の計算過程を合理化するために私なりに考えたデータモデルを紹介しよう。所得税は国税で、住民税は自治体税で市区町村とその所属都道府県に分配される。つまり、所得税の計算様式は自治体別に異なるわけ…

自治体の個別施策を取り込むためのデータモデル

日本では1700以上ある自治体が、個々に情報システムを開発・運用している。自治体あたりで平均すると年間2億円の開発・維持費がかかっているが、これは2008年に自治体システムを統合した韓国での5倍以上だ。この壮大な無駄を「ソフトウエア産業の振興になる…

デカいソフトウエアを構想できるようになろう

日本のIT技術者の給与レベルがあいかわらず低迷している。ヒューマンリソシアによる2020年の調査[1]では、給与レベルで18位、伸び率で20位だった。新型コロナ以降に世界的インフレが始まる以前の数字なので、現在ではもっと悪いだろう。この種の平均値から読…

選挙をDXするためのデータモデル

抜本的に見直した自治体システムを趣味で開発しているのだが、住民税管理や固定資産管理や選挙管理といったモジュールが面白い形でまとまりつつある。選挙管理に関して気づいた現状の問題は以下のとおりで、これらがどのように手当てされるかを説明したい(…

基本のキ「簿記のデータモデル」を学ぼう

エンタープライズシステム(業務システム)は「仕訳入力システム」が発展したものだ。もともとは伝票形式で勘定科目を指定する形だったが、個々の業務に特化することでユーザは科目を意識しなくてよくなった。同時に、各業務に固有な管理項目を取り込むこと…

アラ還プログラマは何をプログラミングしているのか

筆者はアラ還の現役プログラマである。幸い視力を含めて健康なので、プログラミングに苦労を感じたことはない。さすがに20代の頃のような体力はないが、求められている情報処理課題に対するソリューションの構想力はその頃より桁違いに向上している(それだ…

データよりも「データ様式」が重要だ

「現代の経営においてデータの重要性が高まっている」といった言い方をよく耳にするようになった。たいていは、ビッグデータ分析とかデータ駆動経営といったバズワードの文脈なのだが、いつも残念な気持ちになる。それらが効果を上げるには「所与のデータ様…

業務システム開発の分業体制には弊害しかない

例によって業務システム(エンタープライズシステム)に関する話である。商品管理、受発注管理、売掛買掛管理、在庫管理といった活動を支えるソフトウエアに限った話だ。業務システム開発の世界でこれまで主流だった分業体制は、すでに過去の遺物であり旧弊…

そのデータモデルに「ソリューション」はあるか

職業がら多くのデータモデルを見る機会があるのだが、根本的な発想が間違っているために何のアドバイスもできないことがある。そういったケースではしばしば設計担当者が自分のスタイルに固執しているので、アドバイスなどそもそも余計なお世話だったりする…

アジャイルとマイクロサービスは最悪な組み合わせ

アジャイル手法とマイクロサービス(MSA)には妙な親和性があって、ほおっておくと簡単に結びつく。ユーザ企業にとっての顧客が直接利用するSoE系のソフトウエアであれば話は別だが、ユーザ企業のバックエンド業務を支える基幹システムの開発でこれらを導入す…

データモデリングのコツ:抜本的に考える

データモデリングの実践に必要な専門知識が3つある。文法知識(関数従属性を含む図法に関する知識)、業務知識(会計等を含めた適用分野に関する知識)、そして、さまざまなモデリング事例の知識だ。これらは一朝一夕には身につかないが、それこそが労働市…

「永続null」と「時限null」を区別しよう

テーブル設計において、null値を取り得る項目の扱いは慎重でなければいけない。nullが設定される可能性のある項目を使ってSelect文の選択条件や並び順の指定をすると、予期しない結果が返る怖れがあるからだ。 具体的には、ある文字項目がnullを取り得る場合…

自社サービスはOOP、業務システムはDOAで作ろう

前回記事で、一般的な業務システムの開発において、DDD(ドメイン駆動設計)が提唱する「ユビキタス言語」の実践は難しいと説明した。そもそもDDDを含むオブジェクト指向プログラミング(OOP)は、一般的な業務システムの開発には向いていない。とはいえ、企業…

日本語で「ユビキタス言語」を実現するために

2019年に当時の河野外相が「日本人名は外国語表記においても伝統的な姓-名の順がいい」と発言して以来、パスポート等の外国向けの公用文書ではその順で表記するようになった。今回のオリパラでも日本人選手達は姓-名の順で堂々と紹介されていた。西洋言語を…

職場にマイナンバー提出っておかしくない?

2016年にマイナンバー制度が施行されてから、正社員もバイト要員も職場にマイナンバーカードと身分証明書のコピーを提出することが求められるようになった。現状では事由次第で提出拒否が認められるようだが、それにしても残念なルールだ。住民がどの事業所…

ワクチン在庫管理で学ぶ「引き当て」と「在庫推移」

2021年3月から本格化したワクチン接種は当初は順調に進むかのように見えたが、7月に入って突然、一部の都道府県へのワクチン供給を削減する方針が示された。その根拠となったのが、都道府県別に算出された「余剰在庫」だった。ところが、その数値が実態とず…

2つの階層構造「自己参照型」と「部品表型」

「階層型」のデータ構造は業務システムでしばしば目にするものだが、苦手意識を持っている開発者が少なくない。その原因として「自己参照型」と「部品表型」とが区別できていない点を指摘できる。これらを確実に区別して、ややこしい階層構造を攻略しよう。 …

システム設計に関するアカデミックな学びの意義

システム開発会社で技術者向けにDB設計について教えることがある。関数従属性に関する演習をやってもらうとわかるのだが、中堅技術者でもほとんど手が動かないことがある。さまざまな案件で設計経験を重ねているはずなのに、そういった基礎的な学びに苦労し…

リレーションとリレーションシップの誤用に注意

RDBやデータモデリングに関する説明の中で「リレーションシップ」と言うべきところで「リレーション」と表現する誤用が目立つ。どうでもいいような違いに思われるかもしれないが、これらは明確に区別されるべきだ。そうでないと、RDBの用語の意味がわからな…

「概念データモデル」は役に立つのか

データモデルに「概念モデル」、「論理モデル」、「物理モデル」の3種類があることは広く理解されている。しかし、これらを律儀に作成・保守しているプロジェクトがどれだけあるだろう。ただでさえデータモデリングはないがしろにされがちなので、3種類の…

住民情報と統合された「戸籍」のデータモデル

自治体システムは日本に1基あればいい――そのように昔から主張しているのだが、統一自治体システムには「戸籍」も組み込みたい。戸籍に関する事務は、法務局の指導・管理のもとで自治体が担っているからだ。自治体の住民情報の基礎を成す「住民」や「世帯」…

プログラミング教育ではなくデータモデリング教育を

2020年から小学校での「プログラミング教育」が必修化された。プログラミングを通して論理的な問題解決能力を育成することを謳っている(文科省による手引き書)。しかし教員にとってはとっつきにくい内容で、多くの教育現場が途方に暮れている。けっきょく…