(乳房)カップ部、あるいは(アンダーバスト位置の)ベルト部のいずれかを構成要素として持つ衣料がブラジャーと識別・定義される


 との仮説に私たちは一昨日至りました(参照 )。ここで、ブラジャー、カップ、ベルトをそれぞれエンティティとして捉えた場合、以下のような概念データモデルが描けるでしょう。


 ---    -----    ---
|カップ|->|ブラジャー|<-|ベルト|
 ---    -----    --ー
   0…2        0…1


 カーディナリティを説明しますと、


▼ブラジャー対カップ

 カーディナリティ→1対0…2

 ブラはカップ部品を持たないこともあり(カップレスブラ)、2つ持つこともある。


▼ブラジャー対ベルト

 カーディナリティ→1対0…1

 ブラはベルト部をもたないこともあり(ヌーブラ)、1つ持つこともある。


 カップ、ベルトともに在ったり無かったりですので、もし、ブラジャーテーブルを


 製品(ブラジャーマスタ)              
 ===========             
|製品コード      |            
|-----------|            
|発売年月日      |            
|カップ部品番号(FK)|      
|ベルト部品番号(FK)|      
|などなど…      |      
 ===========             
  


 と設計してしまった日には、ブラ対各パーツ(カップ部品番号、ベルト部品番号)のカーディナリティが1対1以上であることが保証できないため、必ずカップ部品番号、ベルト部品番号のどちらかのデータがNULLになる、という設計になってしまいます。あせる


 また、所謂”横に長いテーブル”になりイマイチです。そして、あのお方、データベース史を語る上で欠かせない大先生に叱責を受けるでしょう。あせるあせる


゚・*:.。..。.:*・゚゚・*:.。..。.:*・゚ 
 

 下着天使ゴランジェリー参照 )の一員として(←大嘘っあせる、でも好き)、もといデータベースエンジニア(DBAでありかつDA:DataAdministratorとして←希望汗)はるかが最も尊敬するデータベース技術者、C.J.Date先生は、その著書↓(この本だけは絶対買ってっ!!読まないとダメ)のなかで、


■□■□■□■□■□

データベース実践講義―エンジニアのためのリレーショナル理論 (THEORY/IN/PRACTICE)/C.J. デイト
¥3,360
Amazon.co.jp

■□■□■□■□■□


 NULLを許す概念データモデルを設計するエンジニアは大馬鹿者!

 NULL禁止!!


 に近い内容を述べられていると思います。
ま、確かにNULLを許すデータベースは、物理的にも、余分な論理ディスク領域を確保してそれが断片化してボトルネックになったりいたしますし、論理的にも「本当に正規化したんっ??」て疑問に思うような構成になっていたりします。


 しかし、現実のシステム開発/運用現場において、

・正規化していないテーブル

・NULL項目の多いテーブル

を、高パフォーマンス、高トランザクションが求められるOLTP、Web、インターネットで敢えてそのように設計する場合も多々あります。例えば、key-valueでのバークレーDBやdbmやlibhashや、RDBMSでは、MyISAMのMySQLなどを用いて、とにかく高速なデータ引当、更新を実装する場合などです。


 しかし、それは、「敢えて、冗長なテーブル設計を行っている」ってことを、エンジニアが自覚していて初めて価値があることで、物理的制約により、物理データベース設計段階で考えるべきこと。


 概念データモデリングの過程では、あくまでも美しいエンテイティ・リレーションシップをデザインできなければならない、だから、NULLを許してはならない、正規化しなければならないっ、ってはるかは初心者なりに考えている現在です。ラブラブ


゚・*:.。..。.:*・゚゚・*:.。..。.:*・゚ 

 

 カップ部品と、ベルト部品を別々のテーブルとして管理するのもイマイチです。それぞれの部品ごとに表が増えるという運用になり煩わしいです。で、カップ部品、ベルト部品などは全て部品表で管理します。


 では、ブラとパーツ(部品)の関連はどのように管理しましょう? ブラとパーツのカーディナリティは、




  -----      --
 |ブラジャー|<-->|部品|
  -----      --
      0…n  1…n
  

・≪部品からみた多重度≫

部品はブラジャーに全く使われていないか、最大nのブラジャーにて使用されている(0...n)。


・≪ブラジャーからみた多重度≫

ブラジャーは必ず一個以上の部品(カップ部 or ベルト部)から構成されている(1...n)。


 ということになります。このリレーションシップはn対n(many to many)の関係、所謂

多対多の不特定リレーションシップになってしまいますので、連関エンティティ「部品構成」を挿入します。


 -----    ----    --
|ブラジャー|->|部品構成|<-|部品|
 -----    ----    --
    1…n 1…n  0…n 1…n



゚・*:.。..。.:*・゚゚・*:.。..。.:*・゚ 


 ブラ部品表と製品表(ブラジャーテーブル)のエンティティモデルを設計したところで、明日に続きます。




■関連記事:

ブラジャー部品表(BOM)設計(1)

ブラジャー全部品洗い出し:ブラBOM設計(2)

ブラ部品名寄せ:ブラBOM設計(3)

領域を示す言葉を整理:ブラBOM設計(4)

素材は部品属性として管理する:ブラBOM設計(5)

ブラ部品リスト精査(洋裁用語):ブラBOM設計(6)

ブラ部品リスト精査(雌側止め具等):ブラBOM設計(7)

ブラの必須部品は実は存在しない:ブラBOM設計(8)

ブラジャーとは?ブラって何?:ブラBOM設計(9)


服飾事典にみるブラジャー(集約/分解)

下着の供養~私のかけら

F0025INの謎(解決篇):ブラDB設計技法(7)

乳バンド、乳押さえ等ブラの別名



レース集めと花

「ブラジャー☆データモデリング★ERD☆哲学」週間番組表★☆

共有メモリ

ブラジャー・データベース設計中っ