??xml version="1.0" encoding="utf-8" standalone="yes"?>精品久久久久久久久久久久包黑料,一区二区三区四区五区精品,中文一区在线http://www.aygfsteel.com/oracle/category/42225.html1100111010001110 1001010010001010zh-cnSat, 17 Oct 2009 15:41:14 GMTSat, 17 Oct 2009 15:41:14 GMT60数据库范式实?/title><link>http://www.aygfsteel.com/oracle/archive/2009/10/17/298711.html</link><dc:creator>逍遥晨空</dc:creator><author>逍遥晨空</author><pubDate>Sat, 17 Oct 2009 14:45:00 GMT</pubDate><guid>http://www.aygfsteel.com/oracle/archive/2009/10/17/298711.html</guid><wfw:comment>http://www.aygfsteel.com/oracle/comments/298711.html</wfw:comment><comments>http://www.aygfsteel.com/oracle/archive/2009/10/17/298711.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/oracle/comments/commentRss/298711.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/oracle/services/trackbacks/298711.html</trackback:ping><description><![CDATA[<font color="#000000"><strong>W一范式<br /> </strong>定义Q如果关pR 中所有属性的值域都是单纯域,那么关系模式R是第一范式?br /> 那么W合W一模式的特点就?br /> 1)有主关键?br /> 2)主键不能为空Q?br /> 3)主键不能重复,<br /> 4)字段不可以再?br /> 例如Q?br /> <strong>StudyNo | </strong>Name | Sex | Contact<br /> 20040901    john       Male    Email:kkkk@ee.net,phone:222456<br /> 20040901    mary       famale email:kkk@fff.net phone:123455<br /> 以上的表׃W合Q第一范式Q主键重?实际中数据库不允讔R复的)Q而且Contact字段可以再分<br /> 所以变更ؓ正确的是<br /> <strong>StudyNo | </strong>Name | Sex |    Email       |    Phone<br /> 20040901       john       Male    </font><a href="mailto:kkkk@ee.net"><font color="#000000">kkkk@ee.net</font></a><font color="#000000">   222456<br /> 20040902     mary       famale </font><a href="mailto:kkk@fff.net"><font color="#000000">kkk@fff.net</font></a><font color="#000000"> 123455<br /> <br /> <strong>W二范式Q?/strong><br /> 定义Q如果关pL式R是第一范式的,而且关系中每一个非d性不部分依赖于主键,UR是第二范式的?br /> 所以第二范式的主要d是<br /> 满W一范式的前提下Q消除部分函C赖?br /> <strong>StudyNo | </strong>Name | Sex |       Email       |    Phone | <strong>ClassNo</strong>   | ClassAddress<br /> 01                john        Male    </font><a href="mailto:kkkk@ee.net"><font color="#000000">kkkk@ee.net</font></a><font color="#000000">     222456    200401          A?<br /> 02                   mary    famale </font><a href="mailto:kkk@fff.net"><font color="#000000">kkk@fff.net</font></a><font color="#000000">    123455       200402          A?<br /> q个表完全满于W一范式,<br /> 主键由StudyNo和ClassNol成Q这h能定位到指定?br /> 但是,ClassAddress部分依赖于关键字(ClassNo-〉ClassAddress),<br /> 所以要变ؓ两个?br /> 表一<br /> <strong>StudyNo | </strong>Name | Sex |    Email       |    Phone | <em>ClassNo</em> <br />    01          john       Male    </font><a href="mailto:kkkk@ee.net"><font color="#000000">kkkk@ee.net</font></a><font color="#000000">   222456 200401    <br />    02           mary       famale </font><a href="mailto:kkk@fff.net"><font color="#000000">kkk@fff.net</font></a><font color="#000000"> 123455    200402    <br /> 表二<br /> <strong>ClassNo</strong>   | ClassAddress<br /> 200401    A?<br /> 200402    A?<br /> <br /> <br /> <font size="4"><strong>W三范式Q?/strong></font><br /> <font size="4">满W二范式的前提下Q消除传递依赖?/font><br /> ?<br /> <strong>StudyNo | </strong>Name | Sex |    Email       |    bounsLevel | bouns<br /> 20040901    john       Male    </font><a href="mailto:kkkk@ee.net"><font color="#000000">kkkk@ee.net</font></a><font color="#000000"> 优秀                    $1000<br /> 20040902     mary       famale </font><a href="mailto:kkk@fff.net"><font color="#000000">kkk@fff.net</font></a><font color="#000000">    ?nbsp;                       $600<br /> q个完全满了第二范?但是bounsLevel和bouns存在传递依?br /> 更改为:<br /> <strong>StudyNo | </strong>Name | Sex |    Email       |    <em>bouunsNo</em><br /> 20040901    john       Male    </font><a href="mailto:kkkk@ee.net"><font color="#000000">kkkk@ee.net</font></a><font color="#000000">    1<br /> 20040902     mary       famale </font><a href="mailto:kkk@fff.net"><font color="#000000">kkk@fff.net</font></a><font color="#000000">      2<br /> <strong>bounsNo</strong> | bounsLevel | bouns<br /> 1                优秀             $1000<br /> 2                   ?               $600<br /> q里我比较喜Ƣ用bounsNo作ؓ主键Q?br /> Z两个原因<br /> 1Q不要用字符作ؓ主键。可能有Q如果我的等U一开始就用数值就代替呢?<br /> 2Q但是如果等U名U更改了Q不?1Q? Q?或优、良Q这样就可以方便更改Q所以我一般优先用与业务无关的字D作为关键字?br /> <br /> 一般满_三个范式可以避免数据冗余?br /> <br /> <strong>W四范式Q?/strong><br /> 主要dQ满第三范式的前提下,消除多g?br /> product | <strong>agent</strong> |  <strong>factory</strong><br /> Car          A1        F1<br /> Bus           A1       F2<br /> Car            A2       F2<br /> 在这里,Car的定位,必须?agent ?Factory才能得到Q所以主键由agent和factoryl成Q?可以通过 product依赖了agent和factory两个属?br /> 所以正的?br /> ?                                ?Q?br /> product | agent          factory   | product<br /> Car          A1                F1          Car<br /> Bus          A1                F2          Car<br /> Car          A2                F2          Bus<br /> <br /> <strong>W五范式Q?/strong><br /> <strong>定义:</strong> 如果关系模式R中的每一个连接依? 都是由R的候选键所蕴含, UR是第五范式的<br /> 看到定义Q就知道是要消除q接依赖,q且必须保证数据完整<br /> 例子<br /> <strong>A</strong> | <strong>B</strong>   | <strong>C</strong><br /> a1    b1 c1<br /> a2    b1 c2<br /> a1    b2 c1<br /> a2    b2 c2<br /> 如果要定位到特定行,必须三个属性都为关键字?br /> 所以关p要变ؓ 三个关系Q分别是A 和B,B和C QC和A<br /> 如下Q?br /> ?                   ?                ?<br /> A | B             B | C         C | A<br /> a1    b1          b1    c1       c1    a1          <br /> a1    b2          b1    c2       c1    a2<br /> </font> <img src ="http://www.aygfsteel.com/oracle/aggbug/298711.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/oracle/" target="_blank">逍遥晨空</a> 2009-10-17 22:45 <a href="http://www.aygfsteel.com/oracle/archive/2009/10/17/298711.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>数据库范?/title><link>http://www.aygfsteel.com/oracle/archive/2009/10/17/298710.html</link><dc:creator>逍遥晨空</dc:creator><author>逍遥晨空</author><pubDate>Sat, 17 Oct 2009 14:42:00 GMT</pubDate><guid>http://www.aygfsteel.com/oracle/archive/2009/10/17/298710.html</guid><wfw:comment>http://www.aygfsteel.com/oracle/comments/298710.html</wfw:comment><comments>http://www.aygfsteel.com/oracle/archive/2009/10/17/298710.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/oracle/comments/commentRss/298710.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/oracle/services/trackbacks/298710.html</trackback:ping><description><![CDATA[数据库范式是数据库设计中必不可少的知识,没有对范式的理解Q就无法设计出高效率、优雅的数据库。甚臌计出错误的数据库。而想要理解ƈ掌握范式却ƈ不是?么容易。教U书中一般以关系代数的方法来解释数据库范式。这样做虽然能够十分准确的表达数据库范式Q但比较抽象Q不太直观,不便于理解,更难以记忆?br />       <br /> <strong>一、基概念</strong><br /> <ul> <li><font color="#0000ff">实体Q?/font>现实世界中客观存在ƈ可以被区别的事物。比?#8220;一个学?#8221;?#8220;一本书”?#8220;一门课”{等。值得的是q里所说的“事物”不仅仅是看得见摸得着?#8220;东西”Q它也可以是虚拟的,不如?#8220;老师与学校的关系”? <li><font color="#0000ff">属性:</font>教科书上解释为:“实体所h的某一Ҏ?#8221;Q由此可见,属性一开始是个逻辑概念Q比如说Q?#8220;性别”?#8220;?#8221;的一个属性。在关系数据库中Q属性又是个物理概念Q属性可以看作是“表的一?#8221;? <li><font color="#0000ff">元组</font>Q表中的一行就是一个元l? <li><font color="#0000ff">分量Q?/font>元组的某个属性倹{在一个关pL据库中,它是一个操作原子,卛_pL据库在做M操作的时候,属性是“不可分的”。否则就不是关系数据库了? <li><font color="#0000ff">码:</font>表中可以唯一定一个元l的某个属性(或?font color="#0000ff">属性组</font>Q,如果q样的码有不止一个,那么大家都叫<font color="#0000ff">候选码Q?/font>我们从候选码中挑一个出来做老大Q它叫<font color="#0000ff">ȝ?/font> <li><font color="#0000ff">全码Q?/font>如果一个码包含了所有的属性,q个码就是全码? <li><font color="#0000ff">d性:</font>一个属性只要在M一个候选码中出现过Q这个属性就是主属性? <li><font color="#0000ff">非主属性:</font>与上面相反,没有在Q何候选码中出现过Q这个属性就是非d性? <li><font color="#0000ff">外码Q?/font>一个属性(或属性组Q,它不是码Q但是它别的表的码,它就是外码?</li> </ul> <ol></ol> <br /> <strong>二?个范?/strong><br /> 好了Q上面已l介l了我们掌握范式所需要的全部基础概念Q下面我们就来讲范式。首先要明白Q范式的包含关系。一个数据库设计如果W合W二范式Q一定也W合W一范式。如果符合第三范式,一定也W合W二范式…<br /> <br /> <br /> <font color="#0000ff">W一范式Q?/font><font color="#0000ff">1NF</font><font color="#0000ff">Q:属性不可分?/font><br /> 在前面我们已l介l了<font color="#0000ff">属性?/font>的概念,我们_它是“不可分的”。而第一范式要求属性也不可分。那么它和属性g可分有什么区别呢Q给一个例子: <table cellspacing="2" cellpadding="2" align="center" border="1"> <tbody> <tr> <td width="95">name</td> <td width="197" colspan="2">tel</td> <td width="69">age</td> </tr> <tr> <td width="95">大宝</td> <td width="197" colspan="2">13612345678</td> <td width="69">22</td> </tr> <tr> <td width="95">明</td> <td width="98">13988776655</td> <td width="98">010Q?234567</td> <td width="69">21</td> </tr> </tbody> </table> PsQ这个表中,属性?#8220;?#8221;了? <table cellspacing="2" cellpadding="2" align="center" border="1"> <tbody> <tr> <td width="95" rowspan="2">name</td> <td width="197" colspan="2">tel</td> <td width="69" rowspan="2">age</td> </tr> <tr> <td width="98">手机</td> <td width="98">座机</td> </tr> <tr> <td width="95">大宝</td> <td width="98">13612345678</td> <td width="98">021Q?876543</td> <td width="69">22</td> </tr> <tr> <td width="95">明</td> <td width="98">13988776655</td> <td width="98">010Q?234567</td> <td width="69">21</td> </tr> </tbody> </table> PsQ这个表中,属?“?#8221;了?br /> q两U情况都不满第一范式。不满W一范式的数据库Q不是关pL据库Q所以,我们在Q何关pL据库理pȝ中,做不L“?#8221;来?br /> <br /> <br /> <br /> <font color="#0000ff">W二范式Q?/font><font color="#0000ff">2NF</font><font color="#0000ff">Q?/font>Q符?NFQƈ且,<font color="#0000ff">非主属性完全依赖于码?/font><br /> 听v来好像很秘Q其实真的没什么?br /> 一 个候选码中的d性也可能是好几个。如果一个主属性,它不能单独做Z个候选码Q那么它也不能确定Q何一个非d性。给一个反例:我们考虑一个小学的教务 理pȝQ学生上课指定一个老师Q一本教材,一个教室,一个时_大家都上译֎吧,没有问题。那么数据库怎么设计Q(学生上课表) <table cellspacing="2" cellpadding="2" width="541" align="center" border="1"> <tbody> <tr> <td width="54"><font color="#0000ff">学生</font></td> <td width="113"><font color="#0000ff">评</font></td> <td width="43">老师</td> <td width="91">老师职称</td> <td width="101">教材</td> <td width="49">教室</td> <td width="91">上课旉</td> </tr> <tr> <td width="54">明</td> <td width="113">一q语文Q上Q?/td> <td width="43">大宝</td> <td width="91">副教?/td> <td width="101">《小学语??/td> <td width="49">101</td> <td width="91">14Q?0</td> </tr> </tbody> </table> 一个学生上一门课Q一定在特定某个教室。所以有Q学生,评Q->教室<br /> 一个学生上一门课Q一定是特定某个老师教。所以有Q学生,评Q->老师<br /> 一个学生上一门课Q他老师的职U可以确定。所以有Q学生,评Q->老师职称<br /> 一个学生上一门课Q一定是特定某个教材。所以有Q学生,评Q->教材<br /> 一个学生上一门课Q一定在特定旉。所以有Q学生,评Q->上课旉<br /> 因此Q学生,评Q是一个码?br /> 然而,一个课E,一定指定了某个教材Q一q语文肯定用的是《小学语?》,那么有评Q?gt;教材。(学生Q课E)是个码,评却决定了教材Q这叫做不完全依赖Q或者说部分依赖。出现这L情况Q就不满第二范式!<br /> 有什么不好吗Q你可以xQ?br /> 1、校长要新增加一门课E叫“微积?#8221;Q教材是《大学数学》,怎么办?学生q没选课Q而学生又是主属性,d性不能空Q课E怎么记录呢,教材记到哪呢? ……郁闷了吧?<font color="#0000ff">(</font><font color="#0000ff">插入异常</font><font color="#0000ff">)</font><br /> 2、下学期没学生学一q语文Q上Q了Q学一q语文Q下Q去了,那么表中不存在一q语文Q上Q,也就没了《小学语?》。这时候,校长问:一q语文Q上Q用的什么教材啊Q?#8230;…郁闷了吧?<font color="#0000ff">(</font><font color="#0000ff">删除异常</font><font color="#0000ff">)</font><br /> 3、校长说Q一q语文Q上Q换教材Q换成《大学语文》。有10000个学生选了q么课,改动好大啊!改篏M……郁闷了吧Q?font color="#0000ff">Q修改异常)</font><br /> 那应该怎么解决呢?投媄分解Q将一个表分解成两个或若干个表 <table cellspacing="2" cellpadding="2" width="500" align="center" border="1"> <tbody> <tr> <td width="74"><font color="#0000ff">学生</font></td> <td width="133"><font color="#0000ff">评</font></td> <td width="53">老师</td> <td width="73">老师职称</td> <td width="54">教室</td> <td width="113">上课旉</td> </tr> <tr> <td width="74">明</td> <td width="133">一q语文Q上Q?/td> <td width="53">大宝</td> <td width="73">副教?/td> <td width="54">101</td> <td width="113">14Q?0</td> </tr> </tbody> </table> 学生上课表新 <table cellspacing="2" cellpadding="2" width="319" align="center" border="1"> <tbody> <tr> <td width="160"><font color="#0000ff">评</font></td> <td width="160">教材</td> </tr> <tr> <td width="160">一q语文Q上Q?/td> <td width="160">《小学语??/td> </tr> </tbody> </table> 评的表  <font color="#0000ff">W三范式Q?/font><font color="#0000ff">3NF</font><font color="#0000ff">Q:</font>W合2NFQƈ且,<font color="#0000ff">消除传递依?/font><br /> 上面?#8220;学生上课表新”W合2NFQ可以这样验证:两个d性单独用,不用定其它四个非主属性的M一个。但是它有传递依赖!<br /> 在哪呢?问题出?#8220;老师”?#8220;老师职称”q里。一个老师一定能定一个老师职称?br /> 有什么问题吗Q想惻I<br /> 1、老师升了,变教授了Q要Ҏ据库Q表中有N条,改了N?#8230;…<font color="#0000ff">Q修改异常)</font><br /> 2、没人选这个老师的课了,老师的职UC没了记录……<font color="#0000ff">Q删除异常)</font><br /> 3、新来一个老师Q还没分配教什么课Q他的职U记到哪Q?#8230;…<font color="#0000ff">Q插入异常)</font><br /> 那应该怎么解决呢?和上面一P投媄分解Q? <table cellspacing="2" cellpadding="2" width="428" align="center" border="1"> <tbody> <tr> <td width="74"><font color="#0000ff">学生</font></td> <td width="133"><font color="#0000ff">评</font></td> <td width="53">老师</td> <td width="54">教室</td> <td width="113">上课旉</td> </tr> <tr> <td width="74">明</td> <td width="133">一q语文Q上Q?/td> <td width="53">大宝</td> <td width="54">101</td> <td width="113">14Q?0</td> </tr> </tbody> </table> <table cellspacing="2" cellpadding="2" width="251" align="center" border="1"> <tbody> <tr> <td width="106"><font color="#0000ff">老师</font></td> <td width="144">老师职称</td> </tr> <tr> <td width="106">大宝</td> <td width="144">副教?/td> </tr> </tbody> </table> <br /> <br /> <font color="#0000ff">BC</font><font color="#0000ff">范式Q?/font><font color="#0000ff">BCNF</font><font color="#0000ff">Q:</font>W合3NFQƈ且,<font color="#0000ff">d性不依赖于主属?/font><br /> 若关pL式属于第一范式Q且每个属性都不传递依赖于键码Q则R属于BC范式?<br /> <br /> 通常<br /> BC范式的条件有多种{h的表qͼ每个非^凡依赖的左边必须包含键码Q每个决定因素必d含键码?<br /> <br /> BC范式既检查非d性,又检查主属性。当只检查非d性时Q就成了W三范式。满BC范式的关p都必然满W三范式?<br /> q可以这么说Q?font color="#0000ff">若一个关p达CW三范式Qƈ且它只有一个候选码Q或者它的每个候选码都是单属性,则该关系自然辑ֈ</font><font color="#0000ff">BC</font><font color="#0000ff">范式?/font><br /> <br /> 一般,一个数据库设计W合3NF或BCNF可以了。在BC范式以上q有W四范式、第五范式?br /> <br /> <font color="#0000ff">W四范式Q?/font>要求把同一表内的多对多关系删除?br /> <br /> <font color="#0000ff">W五范式Q?/font>从最l结构重新徏立原始结构?br /> <img src ="http://www.aygfsteel.com/oracle/aggbug/298710.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/oracle/" target="_blank">逍遥晨空</a> 2009-10-17 22:42 <a href="http://www.aygfsteel.com/oracle/archive/2009/10/17/298710.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <a href="http://www.aygfsteel.com/" title="狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频">狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频</a> </div> </footer> վ֩ģ壺 <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">˻</a>| <a href="http://" target="_blank">Ž</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ᶫ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">˫</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">żҿ</a>| <a href="http://" target="_blank">ԭ</a>| <a href="http://" target="_blank">Т</a>| <a href="http://" target="_blank">Ʊ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ѭ</a>| <a href="http://" target="_blank">ˮ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ƽȪ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">կ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ϰˮ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>