第6回 バーコードには何のデータが入っているの?
--あらゆるものに背番号をふる-- (2002/2/26 発信)
「ねえ、それじゃ次の質問。
バーコードはデータなの?」
--な、なんだい、その質問? 悪いけどぜんぜん意味が分からない。
「だからさあ、なんて言ったらいいのか・・セブンイレブンとかで、買いに来るお客さんの歳だとか男女の区別までデータとしてとってる、っていうじゃない。」
--たしかにセブン・イレブンは客層の性別と年齢階層のデータをとっているよ。
「そのデータって、バーコードの中に入っているの?」
--おいおい、ちょっと待てよ。かりに君がセブン・イレブンでチョコレートかなんか買ったとするだろ、ね? 考えてもみなよ。チョコレートの包装紙にはバーコードが工場で印刷されているわけだ。そのチョコが、どうして君というこれこれの年齢の女性に買われる、って事前に分かるんだい? そんなの分かる訳ないだろう。
「そっかあ。だとしたら、あのバーコードには何が入っているの。」
--バーコードには製品の背番号が入っているのさ。
「この製品は何番目に作りました、とかっていう番号? そういえばパソコンの後ろ側とかにもついているわ。」
--いや、そうじゃない。それはシリアル番号といって、製品ごとに一個一個違う番号だ。そういう番号をバーコードに刻んでいるものもたしかにあるけど、それは例外さ。
ふつうコンビニに売っているような商品のバーコードは、その商品の種類を示す番号なんだ。同じ種類のチョコならどれも同じバーコードがついている。だからチョコの包み紙に印刷できるんだ。一個一個みんな違っていたら印刷できないだろ。
「じゃあチョコの商品名とか、値段とかが入っているの?」
--名前じゃなくて、コード番号さ。数字そのものだ。ふつう13桁の数字になっている。バーコードの下をよく見ると、小さく数字が印字されているだろ? その数字がそれさ。
「数字なんてあったかしら。ちょっと待って、バッグにチョコが入っているから確かめてみる・・。あ、ほんとだ。数字があるわね。たしかに13桁並んでる。今まで気がつかなかったわ。」
--それでわかったでしょ? コンビニのレジはその番号を読みとって、商品名や値段をレシートに印刷できるんだ。
「でも、どうして名前や値段そのものを打ち込まないの? その方がわかりやすいじゃない。」
--値段は安売りとかまとめ買いの値引きとかがあるから、メーカーの希望小売価格と実売価格は一致しないことが多い。だからメーカーが印刷しても意味ないんだよね。値段は売る店が決めるから。
「わかったわ。でもどうして商品の名前じゃないの?」
--名前はね、まず長すぎる。「ハーゲンダッツ・アイスクリーム・チョコレート味」なんて調子で、軽く20文字とか30文字になっちゃうだろ。バーコードは目立たない程度のスペースにおさまる必要がある。
それよりももっと大事なことは、名前だけだと、同じ名前がダブる可能性があるんだ。たとえばカセットテープなんていろんな会社が出してるだろ? 「カセットテープ74分」なんて名前だけじゃ、どこの製品だかわからなくなっちまう。当然値段も分からなくなる。
「そうするとあのバーコードは同じ種類のカセットテープでも会社ごとに違うわけ?」
--左様です。細かく言うと、あの13桁は、まず最初の2桁が国番号をあらわしている。日本ならば49。日本の会社の製品は必ず49からはじまっている。
「どれどれ・・あ、ほんと。」
--次の7桁が会社コード。そして最後の4桁が会社ごとの製品コードになっている。
「それで全部おさまるの?」
--4桁あれば0001から9999まで約1万種類の製品を持てる。ふつうの会社だったらまず間違いなくおさまる。こうすれば、どの会社の製品をとってみてもバーコードがダブって重なることはあり得ない。
「ちょっと待って。そしたら、最初の質問に戻るみたいだけれど、バーコードって何のためにあるの?」
--レジでバーコードを読みとって、コード番号から商品名と値段を知るためさ。
「だってその商品名と値段はバーコードには入っていないんでしょう? 矛盾してない?」
--商品名と値段は、レジのマスタの中に記憶されている。
「なによそのマスターって。」
--マスターじゃなくて、マスタ。ITの世界ではマスタと短くいう。
「英語にしたら同じMasterなんでしょ? 何わけわかんないこと言って気取っているのよ!」
--どうもすんまへん。
マスタというのは、台帳のことだ。辞書といってもいいかな。辞書の中には、まず製品のコード番号があって、それに続いて製品名とか、販売価格などのデータが入っている。つまりデータベースさ。データが決められた形式で集まってコンピュータ内に格納されているものだからね。
「コンピュータじゃなくてレジじゃない。」
--バーコード付きのPOSレジってのは、あれは実はコンピュータなんだ。パソコンと見てくれはずいぶん違うけれどね。
「ふうん。」
--そしてそのレジの中で、コード番号からマスタの辞書を検索して、商品名や値段を知る。辞書で綴りから意味を見つけるみたいにね。これを商品ごとにくり返す。最後に合計を計算してレシートを打つんだ。こういうひとまとまりのデータのやりとりのことをトランザクションという。
「でも、お客さんが、知らないバーコードのついてる商品をもって来たらどうするの? レジって世界中の商品を知ってるの?」
--店で売っているってことは、その前に必ず仕入れて売値を決めている訳だろ? そのときに店のマスタに、商品メニューとして登録するのさ。
「ということは、バーコードって、商品メニューからの選択肢なのね。」
--まさにご明察! だから、バーコードはたしかにデータなんだ。メニューからの選択肢はデータの最小要素だって説明したとおりに、ね。
メニューから一つの種類の商品を間違えなく選び出すためには、名前ではやってられない。名前は長くて、あいまいで、おまけに重複する可能性がある。レジでいちいちキーボードから商品名を入力していたらどれほどあほくさく時間がかかるかわかるだろう? そんなことを避けるために、規格化された数字の並びを背番号として使う。背番号は絶対にユニークじゃなければいけない。
「ユニークって、特徴があるってこと?」
--いや、ごめん、ITの世界でユニークという言葉は、一つ一つ別々で重複がないことを意味する。その背番号をつかって、マスタという台帳に名前だとか仕入れ価格だとか売値だとかさまざまなデータを登録しておく。こうすれば、お客さんがもってきた商品の背番号さえ入力すればすぐに売値が分かる。
しかし、背番号は無味乾燥で店員がとても覚えていられるものじゃない。だから、バーコードを印刷して、レーザー読取り機で一瞬のうちに入力してしまうという方法が普及したんだ。
「国民総背番号制みたいなものね。」
--まさにそのとおり。もし国民のデータを効率よく集中管理したかったら、名前でなんかとても管理できない。同姓同名は山のようにいるからね。だから背番号をつけようと言う当然の発想になる。
「アメリカなんか、社会保険番号ってのがあって、それが一種の背番号の役をしているのよね。」
--そうらしいね。
「でも日本でやられたらいやだなあ。だって、あっちとちがって、お役所の権力が強いでしょ? 好き勝手なことをやられちゃいそう。」
--それはね、でもITの使い方の問題だからね。役人に管理されたくないからデータ処理が不便なままにしておこう、ってのは、暴走族が来たら困るから川に橋を架けない、というのと一緒だと思うよ。
だいいち、役所だけじゃなく、病院でも銀行でも、いやそれこそビデオ屋さんでも、とにかく顧客データを管理したいわけだろう? そのときに、国民共通の背番号があるとすっごく便利になる。
それに、結局今だって、運転免許証の番号とか、パスポート番号とか、それに準じる背番号はいくらでもあるんだ。IT屋のぼくとしては、国民背番号に反対する理由は何もないと思う。
「でも、それでも、いやだな、私は。」
(c) 2002, Tomoichi Sato
(この話の登場人物はすべて架空のものです)