性別は世の中にいくつあるのか

この表題だと、いわゆる"LGBT"が出てくるものですが、今回はそれとは若干離れて* 1関連はする。、「性別が世の中にいくつ存在するのか」というものを改めて考えてみましょう。

広告

「性別がいくつあるのか」が問題になるシチュエーション

これが問題になるのは、データベースが絡んだ場合というのが筆頭でしょう。
これは、性別はコードで保持することが当然ともいえる以上当然の帰結で、たとえば、

  • 「男・女」であれば2つ必要。
  • 「女・男・法人」であれば3つ必要。

このように、いくつかのパターンが考えうるからです。

ISO 5218

結論から言うとなのですが、ISOには ISO 5218 という性別コードに関する規定が設けられています。
国際規格かつ、以下のように合理的な答えでもあるので、少なくとも、ソフトウェア設計上は性別は「4つ」を基本と考えた方がよいのではないかと思います。

  • 0 = not known(不明)
  • 1 = male(男性)
  • 2 = female(女性)
  • 9 = not applicable(適用不能)

たとえば、あるアンケートにおいて

  • 0: 私が性別を答えなかった。
  • 1: 私が「男」と答えた場合。
  • 2: 私が「女」と答えた場合。
  • 9: そもそも私が法人として答えた場合。

こうなります。合理的でしょう?

これは、偶然か意図したのか、はたまた必然か、RDBMSの生みの親ともいうべき エドガー・F・コッド の提唱した「四値論理」と同じ考え方なんですよね。
(参考及び引用:130値論理(http://mickindex.sakura.ne.jp/database/db_130.html))

私の体重は、読者の皆さんには分かりません。私は人間ですから「体重」という属性を持つことは間違いありませんが、しかしそれは現時点では不明です。一方、テレビや自動車などの「性別」や「虫歯の本数」という属性も、同様に NULL ですが、しかしそれは、値が分からないからではありません。無生物について性別云々することが意味をなさないからです ―― このようなコッドの議論は、非常に明晰で説得的です。

余談

かつての私の派遣先で、「法人は常に男性とし、法人格が付いているかをチェックする」という運用を行っていた企業がありました。
当然ながら、性別を二値かつ必須として設計してしまった故の惨事です。性別を二値で設計するのはやめましょう。

さらなる余談

性別が二値というのは、もう一つ問題があります。
トランスジェンダーやXジェンダーの方、あるいは性別を提供すること自体にリスクを感じる方* 2これは決して素っ頓狂な話ではなく、特に女性・トランスジェンダーにとっては、性別を提供すること自体が大きなリスクたりうる。など、「性別を提供したくない」と考える人は少なからずいるわけです。
特に意味がないのに性別を二値かつ必須にしてしまうのは、そういった方を予め拒んでいるに等しいものです。

性別は変更可能とすべきか否や?

性別にまつわるもう一つの問題は、この表記上の課題でしょう。
――結論から言えば、日本では、また諸外国でも性別は変わりえます。よって、性別は変更可能とすべきというのが答えです。

まぁそれ以上にもっと単純な例として、「性別を間違えた」場合がありますからね。注意力がすっ飛んでる場合は結構間違えます。

四値論理はこの場合にも、一応の避難口* 3恒久的な避難口ではありえない。を提供してくれる意味でも好都合かもしれません。

注釈[+]

どうしようもない雑記を書いてる場所だよ

ソフトウェア開発メモの最新記事8件