讑օ³¾pÀL¨¡å¼R<UåQŒF>âˆ?NFåQŒå¦‚果对于Rçš„æ¯ä¸ªå‡½æ•îC¾èµ–X→YåQŒè‹¥Yä¸å±žäºŽXåQŒåˆ™Xå¿…å«æœ‰å€™é€‰ç åQŒé‚£ä¹ˆR∈BCNFã€?br />
è‹¥R∈BCNF æ¯ä¸€ä¸ªå†³å®šå±žæ€§é›†åQˆå› ç´ ï¼‰éƒ½åŒ…å«ï¼ˆå€™é€‰ï¼‰ç ?br /> Rä¸çš„æ‰€æœ‰å±žæ€§ï¼ˆä¸»ï¼Œéžä¸»å±žæ€§ï¼‰éƒ½å®Œå…¨å‡½æ•îC¾èµ–于ç ?br /> Râˆ?NFåQˆè¯æ˜Žï¼‰ è‹¥Râˆ?NF  则  Rä¸ä¸€å®šâˆˆBCNF 在关¾pÀL¨¡å¼STJåQˆSåQŒTåQŒJåQ‰ä¸åQŒS表示å¦ç”ŸåQŒT表示教师åQŒJ表示评¡¨‹ã€?br /> æ¯ä¸€æ•™å¸ˆåªæ•™ä¸€é—¨è¯¾ã€‚æ¯é—¨è¯¾ç”Þp‹¥òq²æ•™å¸ˆæ•™åQŒæŸä¸€å¦ç”Ÿé€‰å®šæŸé—¨è¯¾ï¼Œž®Þq¡®å®šäº†ä¸€ä¸ªå›ºå®šçš„æ•™å¸ˆã€‚æŸä¸ªå¦ç”Ÿé€‰ä¿®æŸä¸ªæ•™å¸ˆçš„课ž®Þq¡®å®šäº†æ‰€é€‰è¯¾çš„å¿U?åQšÂ?         (SåQŒJ)→TåQ?SåQŒT)→JåQŒT→J |
一‹‚?span lang="EN-US">m阶的Bæ ‘æ»¡‘³ä¸‹åˆ—æ¡ä»?/span>
�/span>
(1) æ¯ä¸ª¾l“点臛_¤šæœ?span lang="EN-US">m‹‚µåæ ‘ã€?o:p>
(2) é™¤æ ¹¾l“点外,其它æ¯ä¸ªåˆ†æ”¯è‡›_°‘有m/2‹‚µåæ ‘ã€?o:p>
(3) æ ¹ç»“ç‚¹è‡³ž®‘æœ‰ä¸¤æ£µåæ ‘(除éžBæ ‘åªæœ‰ä¸€ä¸ªç»“ç‚?ã€?o:p>
(4) 所有嶾l“点在åŒä¸€å±‚上ã€?span lang="EN-US">Bæ ‘çš„å¶ç»“点å¯ä»¥çœ‹æˆä¸€¿U外部结点,ä¸åŒ…å«ä“Q何信æ¯ã€?o:p>
(5)
æœ?span lang="EN-US">j个å©åçš„éžå¶¾l“点æ°å¥½æœ‰j-1个关键ç åQŒå…³é”®ç 按递增‹Æ¡åºæŽ’列。结点ä¸åŒ…å«çš„ä¿¡æ¯äØ“
�/span>
(p0,k1,p1,k2,p2,
�/span>
,kj-1,pj-1)
å…¶ä¸åQ?span lang="EN-US">ki为关键ç åQŒä¸”满èƒöki<ki+1åQ›pi为指å‘åæ ‘æ ¹¾l“点的指针,òq¶ä¸”piæ‰€æŒ‡çš„åæ ‘䏿‰€æœ‰å…³é”®ç k都满‘³ki<k<ki+1ã€?o:p>
å®žé™…ä¸Šï¼Œå¦‚æžœä¸€ä¸ªç»“ç‚¹ä¸æœ?span lang="EN-US">j个关键ç åQŒåˆ™˜q˜åº”包括j个指å‘相应记录的指针åQŒä‹Éæ¯ä¸ª¾l“点既是索引的烦引å—åQŒåˆæ˜¯åŸºæœ¬çƒ¦å¼•å—(èƒ½ç›´æŽ¥ç»™å‡ø™®°å½•å˜æ”‘Öœ°å€çš„烦引å—)ã€?o:p>
1. Bæ ‘çš„å®šä¹‰:
  1970òqß_¼ŒR.Bayerå’ŒE.mccreightæå‡ºäº†ä¸€¿Ué€‚ç”¨äºŽå¤–æŸ¥æ‰¾çš„æ ‘åQŒå®ƒæ˜¯ä¸€¿Uåã^è¡¡çš„å¤šå‰æ ‘,¿UîCØ“Bæ ‘ï¼Œå…¶å®šä¹‰å¦‚ä¸‹ï¼š
  一‹‚µm阶的Bæ ‘æ»¡‘³ä¸‹åˆ—æ¡ä»Óž¼š
  â‘?æ ‘ä¸æ¯ä¸ª¾l“点臛_¤šæœ‰m个å©åï¼›
  â‘?é™¤æ ¹¾l“点和å¶å结点外åQŒå…¶å®ƒæ¯ä¸ªç»“点至ž®‘有m/2个å©åï¼›
  â‘?è‹¥æ ¹¾l“ç‚¹ä¸æ˜¯å¶å¾l“点åQŒåˆ™è‡›_°‘æœ?个å©åï¼›
  â‘?所有å¶å结炚wƒ½å‡ºçŽ°åœ¨åŒä¸€å±‚,å¶å¾l“点ä¸åŒ…å«ä“Q何关键å—ä¿¡æ¯åQ?br />  â‘?有k个å©åçš„éžç»ˆç«¯ç»“ç‚ÒŽ°å¥½åŒ…嫿œ‰k-1个关键å—ã€?br />  在Bæ ‘ä¸åQŒæ¯ä¸ªç»“点ä¸å…³é”®å—从ž®åˆ°å¤§æŽ’列,òq¶ä¸”当该¾l“点的å©å是éžå¶å结ç‚ÒŽ—¶åQŒè¯¥k-1ä¸ªå…³é”®å—æ£å¥½æ˜¯k个å©å包å«çš„关键å—的值域的分划ã€?br />Â Â å› äØ“å¶å¾l“点ä¸åŒ…å«å…³é”®å—åQŒæ‰€ä»¥å¯ä»¥æŠŠå¶å¾l“点看æˆåœ¨æ ‘里实际上òq¶ä¸å˜åœ¨å¤–部¾l“点åQŒæŒ‡å‘这些外部结点的指针为空åQŒå¶å结点的数目æ£å¥½½{‰äºŽæ ‘䏿‰€åŒ…å«çš„关键嗿€ÖM¸ªæ•°åŠ 1ã€?br />  Bæ ‘ä¸çš„一个包å«n个关键å—åQŒn+1个指针的¾l“点的一般åÅžå¼äØ“åQ?åQˆn,P0,K1,P1,K2,P2,â€?Kn,PnåQ?br />  其ä¸åQŒKi为关键å—åQŒK1<K2<â€?lt;Kn, Pi 是指å‘包括Ki到Ki+1之间的关键å—çš„åæ ‘的指针ã€?br />
2. Bæ ‘çš„æŸ¥æ‰¾:
  在Bæ ‘ä¸æŸ¥æ‰¾¾l™å®šå…³é”®å—çš„æ–ÒŽ³•æ˜¯ï¼Œé¦–å…ˆæŠŠæ ¹¾l“ç‚¹å–æ¥åQŒåœ¨æ ¹ç»“ç‚ÒŽ‰€åŒ…å«çš„关键å—K1,â€?kj查找¾l™å®šçš„关键å—åQˆå¯ç”¨é¡ºåºæŸ¥æ‰¾æˆ–二分查找法)åQŒè‹¥æ‰‘Öˆ°½{‰äºŽ¾l™å®šå€¼çš„关键å—,则查找æˆåŠŸï¼›å¦åˆ™åQŒä¸€å®šå¯ä»¥ç¡®å®šè¦æŸ¥çš„关键å—在æŸä¸ªKi或Ki+1之间åQŒäºŽæ˜¯å–Pi所指的¾l“点¾l§ç®‹æŸ¥æ‰¾åQŒç›´åˆ°æ‰¾åˆŽÍ¼Œæˆ–指针Pi为空时查扑֤±è´¥ã€?br />
   查找½Ž—法演示
  性能分æžåQ?br />
  设Bæ ‘åŒ…å«N个关键å—åQŒå› æ¤æœ‰N+1个å¶å结点,å¶å都在½W¬Iå±‚ã€‚å› ä¸ºæ ¹è‡›_°‘有两个å©åï¼Œå› æ¤½W¬äºŒå±‚至ž®‘有两个¾l“ç‚¹ã€‚é™¤æ ¹å’Œå¶å外,其它¾l“点臛_°‘有┌m/2â”个å©ååQŒå› æ¤åœ¨½W¬ä¸‰å±‚至ž®‘有2*┌m/2â”个¾l“点åQŒåœ¨½W¬å››å±‚至ž®‘有2*┌m/2â”?个结点,åQŽï¼ŽåQŽï¼Œåœ¨ç¬¬I层至ž®‘有2*┌m/2â”I-1 个结点,于是有:
  N+1 â‰?2*┌m/2â”I-1
  å»I¼š I â‰?log┌m/2â”? )
  ˜q™ä¸ªå…¬å¼ä¿è¯äº†Bæ ‘çš„æŸ¥æ‰¾æ•ˆçŽ‡æ˜¯ç›¸å½“é«˜çš„ã€?
3. Bæ ‘çš„æ’å…¥:
  当在å¶å¾l“点处于½W¬L+1层的Bæ ‘ä¸æ’入关键嗿—¶åQŒè¢«æ’å…¥çš„å…³é”®å—æ€ÀL˜¯˜q›å…¥½W¬L层的¾l“点ã€?br />  若在一个包å«j<m-1个关键å—çš„ç»“ç‚¹ä¸æ’入一个新的关键å—åQŒåˆ™æŠŠæ–°çš„关键å—直接æ’入该结点å³å¯ï¼›ä½†è‹¥æŠŠä¸€ä¸ªæ–°çš„关键嗿’入到包å«m-1åQˆm为Bæ ‘çš„é˜Óž¼‰ä¸ªå…³é”®å—的结点ä¸åQŒåˆ™ž®†å¼•èµïL»“点的分裂。在˜q™ç§æƒ…å†µä¸‹ï¼Œè¦æŠŠ˜q™ä¸ª¾l“点分裂ä¸ÞZ¸¤ä¸ªï¼Œòq¶æŠŠä¸é—´çš„ä¸€ä¸ªå…³é”®å—æ‹¿å‡ºæ¥æ’到该¾l“点的åŒäº²ç»“点ä¸åŽ»ï¼ŒåŒäº²¾l“点也å¯èƒ½æ˜¯æ»¡çš„åQŒå°±éœ€è¦å†åˆ†è£‚ã€å†å¾€ä¸Šæ’åQŒä»Žè€Œå¯èƒ½å¯¼è‡´Bæ ‘å¯èƒ½æœç€æ ¹çš„æ–¹å‘生长ã€?br />  æ’å…¥½Ž—法演示
4. Bæ ‘çš„åˆ é™¤:
  当从Bæ ‘ä¸åˆ 除一个关键å—Kiæ—Óž¼Œæ€Èš„åˆ†äØ“ä»¥ä¸‹ä¸¤ç§æƒ…况åQ?br />Â Â å¦‚æžœè¯¥å…³é”®å—æ‰€åœ¨çš„¾l“ç‚¹ä¸æ˜¯æœ€ä¸‹å±‚çš„éžå¶å¾l“点åQŒåˆ™å…ˆéœ€è¦æŠŠæ¤å…³é”®å—与它在Bæ ‘ä¸åŽç‘ôå¯ÒŽ¢ä½ç½®åQŒå³ä»¥æŒ‡é’ˆPiæ‰€æŒ‡åæ ‘ä¸çš„æœ€ž®å…³é”®å—Y代替KiåQŒç„¶åŽåœ¨ç›¸åº”的结点ä¸åˆ 除Yã€?br />Â Â å¦‚æžœè¯¥å…³é”®å—æ‰€åœ¨çš„¾l“点æ£å¥½æ˜¯æœ€ä¸‹å±‚çš„éžå¶å¾l“点åQŒè¿™¿U情况下åQŒä¼šæœ‰ä»¥ä¸‹ä¸¤¿Uå¯èƒ½ï¼š
  â‘?若该关键å—Ki所在结点ä¸çš„关键å—个数ä¸å°äºŽâ”Œm/2â”,则å¯ä»¥ç›´æŽ¥ä»Žè¯¥ç»“点ä¸åˆ 除该关键å—和相应指针å³å¯ã€?Â
  â‘?若该关键å—Ki所在结点ä¸çš„关键å—个数ž®äºŽâ”Œm/2â”,则直接从¾l“点ä¸åˆ 除关键å—会导致椾l“ç‚¹ä¸æ‰€å«å…³é”®å—个数ž®äºŽâ”Œm/2â”?1 。这¿U情况下åQŒéœ€è€ƒå¯Ÿè¯¥ç»“点在Bæ ‘ä¸çš„左或å³å…„弟¾l“点åQŒä»Žå…„弟¾l“点ä¸ç§»è‹¥å¹²ä¸ªå…³é”®å—到该¾l“ç‚¹ä¸æ¥åQˆè¿™ä¹Ÿæ¶‰åŠå®ƒä»¬çš„åŒäº²¾l“点ä¸çš„一个关键å—è¦ä½œç›¸åº”å˜åŒ–åQ‰ï¼Œä½¿ä¸¤ä¸ªç»“ç‚¹ä¸æ‰€å«å…³é”®å—个数基本相åŒåQ›ä½†å¦‚果其兄弟结点的关键å—个æ•îC¹Ÿå¾ˆå°‘åQŒåˆšå¥½ç‰äºŽâ”Œm/2â”?1 åQŒè¿™¿U移动则ä¸èƒ½˜q›è¡ŒåQŒè¿™¿U情形下åQŒéœ€è¦æŠŠåˆ 除了关键å—Ki的结ç‚V€å®ƒçš„兄弟结点åŠå®ƒä»¬åŒäº²¾l“点ä¸çš„一个关键å—åˆåƈä¸ÞZ¸€ä¸ªç»“ç‚V€?br /> Â