設計者の発言

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

2021-01-01から1年間の記事一覧

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

開発基盤の切替におけるDB構造の移行容易性

業務システム向けの開発基盤というものは、DBの設計方針に対して中立的であるべきだ。扱われるDBの構造について強い制約を求めるようであってはいけない。与件としての「静的なデータ構造」に対して「データを登録・加工するための手段」を与えるものが開発…

ココログから引っ越し

ココログ@niftyからこちらに引っ越しました。2020年以降の記事を持ってきましたが、それ以前については「2020年以前の記事(cocolog)」のリンクから読めます。

オブジェクト指向開発もローコード開発も楽しい

データモデリングとローコード開発の組み合わせを推奨しているのだが、私としては「ノーコード開発」には食指が動かない。理由は明確で、複雑なDB構造を扱えないし、何よりも端正なコードを書く喜びを味わえないからだ。とはいえ、そもそもノーコード基盤は…

「新型コロナワクチン接種管理システム」のデータモデル公開

統一自治体システムを基礎として 10万円の一律給付が話題になった頃に「給付管理システム」のデータモデルとプロトタイプを公開したが、それに「ワクチン接種管理システム」の機能を組み込んだ(ダウンロードはこちら)。前回の「給付管理システム」は、日本…

IT技術者の分類名「WEB系」の奇妙さ

話している相手が料理人であることがわかったので「どんな分野の料理ですか」と尋ねたとしよう。「あ、自分は電気炊飯器系です」という答が返ってきたらどうだろう。和食、洋食、中華といった答を期待しているのに「電気炊飯器系」ではキョトンとするしかな…