??xml version="1.0" encoding="utf-8" standalone="yes"?>欧美日韩精品久久久免费观看,亚洲国产成人久久精品影视,久久精品国产99国产精品澳门http://www.shnenglu.com/urgentmind/category/436.html勇往直前Q专注于技?..zh-cnThu, 22 May 2008 05:22:51 GMTThu, 22 May 2008 05:22:51 GMT60计算机图形学---DDA法http://www.shnenglu.com/urgentmind/articles/13404.htmlTanZekTanZekFri, 06 Oct 2006 22:42:00 GMThttp://www.shnenglu.com/urgentmind/articles/13404.htmlhttp://www.shnenglu.com/urgentmind/comments/13404.htmlhttp://www.shnenglu.com/urgentmind/articles/13404.html#Feedback0http://www.shnenglu.com/urgentmind/comments/commentRss/13404.htmlhttp://www.shnenglu.com/urgentmind/services/trackbacks/13404.htmlDDA直线的生成算法:
[初版]
 1 POINT A = { 100 , 100 } , B = { 200 , 200 } ;
 2 void  dda_line(HDC &  hdc)
 3 {
 4       double  length;
 5       double  dx,dy;
 6       double  x,y;
 7       char  a[ 20 ];
 8
 9       if (abs(B.x - A.x)  >=  abs(B.y - A.y))
10           length = abs(B.x - A.x);
11       else
12           length = abs(B.y - A.y);
13      
14      dx = ((B.x - A.x) / length);
15      dy = ((B.y - A.y) / length);
16
17      x = A.x + 0.5 ;
18      y = A.y + 0.5 ;
19      sprintf(a, " A(%d,%d) " , int (x), int (y));
20      TextOut(hdc, int (x), int (y),a, 10 );
21       int  i = 1 ;
22       while (i  <=  length)
23       {
24           SetPixel(hdc, int (x), int (y),RGB( 0 , 0 , 0 ));
25           x = x + dx;
26           y = y + dy;
27           i ++ ;
28      }

29     sprintf(a, " B(%d,%d) " , int (x), int (y));
30     TextOut(hdc, int (x), int (y),a, 10 );
31      return ;
32 }

33

看书上出来的一DDDA法。实践出来了Q拿上来记忆~~
[修改版]
 1 void  dda_line(HDC &  hdc, POINT A, POINT B,  int  color)
 2 {
 3       double  length;
 4       double  dx,dy;
 5       double  x,y;
 6       if (abs(B.x - A.x)  >=  abs(B.y - A.y))
 7           length = abs(B.x - A.x);
 8       else
 9           length = abs(B.y - A.y);
10     
11      dx = ((B.x - A.x) / length);
12      dy = ((B.y - A.y) / length);
13
14      x = A.x + 0.5 ;
15      y = A.y + 0.5 ;
16       int  i = 1 ;
17       while (i  <=  length)
18       {
19           SetPixel(hdc, int (x), int (y), color);
20           x = x + dx;
21           y = y + dy;
22           i ++ ;
23      }

24      return ;
25 }

26

Zɽ法更适用于各U编E方法,加入A和B的点参数Q更加入颜色值color。在我的实际应用中,color被用来清除上一条画U结果的?

TanZek 2006-10-07 06:42 发表评论
]]>
计算机图形学---Bresenhamȝ法http://www.shnenglu.com/urgentmind/articles/13403.htmlTanZekTanZekFri, 06 Oct 2006 22:40:00 GMThttp://www.shnenglu.com/urgentmind/articles/13403.htmlhttp://www.shnenglu.com/urgentmind/comments/13403.htmlhttp://www.shnenglu.com/urgentmind/articles/13403.html#Feedback0http://www.shnenglu.com/urgentmind/comments/commentRss/13403.htmlhttp://www.shnenglu.com/urgentmind/services/trackbacks/13403.htmlBresenhamȝ法?br />[初版]

 1 void  Bresenham_line(HDC &  hdc)
 2 {
 3       char  a[ 20 ];
 4       double  dx,dy;
 5      dx = abs(B.x - A.x); dy = abs(B.y - A.y);
 6       int  tx = (B.x - A.x) >= 0   ?   1 - 1 ;
 7       int  ty = (B.y - A.y) >= 0   ?   1 - 1 ;
 8       int  tag = 0 ;
 9       if (dx  <  dy)
10       {
11           tag = 1 ;
12            double  temp = A.x;  // x1,y1互换
13           A.x = A.y;
14           A.y = temp;
15           temp = B.x;  // x2,y2互换
16           B.x = B.y;
17           B.y = temp;
18           temp = dx;  // dx,dy互换
19           dx = dy;
20           dy = temp;
21           temp = tx;  // tx,ty互换
22           tx = ty;
23           ty = temp;
24      }

25       int  curx = A.x;
26       int  cury = A.y;
27       if (tag)
28       {
29           SetPixel(hdc,cury, 600 - curx,RGB( 0 , 0 , 0 ));
30           sprintf(a, " A(%d,%d) " ,cury,curx);
31           TextOut(hdc,cury, 600 - curx,a,strlen(a));
32      }

33       else
34       {
35           SetPixel(hdc,curx, 600 - cury,RGB( 0 , 0 , 0 ));
36           sprintf(a, " A(%d,%d) " ,curx,cury);
37           TextOut(hdc,curx, 600 - cury,a,strlen(a));
38      }

39       double  d = 2 * dy - dx;
40       while (cury <= B.y  &&  curx <= B.x)
41      {
42           if (d >= 0 )
43           {
44               d = d + 2 * (dy - dx);
45               cury += ty;
46          }

47           else
48               d = d + 2 * dy;
49               curx += tx;
50           if (tag)
51               SetPixel(hdc,cury, 600 - curx,RGB( 0 , 0 , 0 ));
52           else
53               SetPixel(hdc,curx, 600 - cury,RGB( 0 , 0 , 0 ));
54     }

55      if (tag)
56      {
57         SetPixel(hdc,cury, 600 - curx,RGB( 0 , 0 , 0 ));
58         sprintf(a, " B(%d,%d) " ,cury,curx);
59         TextOut(hdc,cury, 600 - curx,a,strlen(a));
60     }

61      else
62      {
63         SetPixel(hdc,curx, 600 - cury,RGB( 0 , 0 , 0 ));
64         sprintf(a, " B(%d,%d) " ,curx,cury);
65         TextOut(hdc,curx, 600 - cury,a,strlen(a));
66     }

67 }


TanZek 2006-10-07 06:40 发表评论
]]>
操作pȝ实验(Operating System Experiment)http://www.shnenglu.com/urgentmind/articles/7866.htmlTanZekTanZekTue, 30 May 2006 05:46:00 GMThttp://www.shnenglu.com/urgentmind/articles/7866.htmlhttp://www.shnenglu.com/urgentmind/comments/7866.htmlhttp://www.shnenglu.com/urgentmind/articles/7866.html#Feedback2http://www.shnenglu.com/urgentmind/comments/commentRss/7866.htmlhttp://www.shnenglu.com/urgentmind/services/trackbacks/7866.htmlFollowing The Source Code:
 1 #include <queue>
 2 #include <iostream>
 3 #include <cstdlib>
 4 
 5 
 6 /*
 7 --------+ |Ready Queue 1| --------+ to CPU
 8    __________________|
 9   +
10 --------+ |Ready Queue 2| --------+ to CPU
11    __________________|
12   +
13 --------+ |Ready Queue 3| --------+ to CPU
14    __________________|
15   +
16 ---------+ |Ready Queue 4| --------+ to CPU
17   +__________________|
18 以上加号E执行流?br />19 */
20 
21 int time[4]={1,2,3,4};  //各个队列的时间片 
22 char *str[4]={"first","second","third","fourth"};
23 queue<int> Rqueue[4];   //各个优先U队列定义?/span>
24 
25 int execu(int n)   
26 //n是指哪一个队列?br />27 //proc假设Z个进E?/span>
28 {
29     int proc;   //代表一个进E?/span>
30     while(!Rqueue[n-1].empty())
31     {
32         proc=Rqueue[n-1].front(); //取队首进E进行调度?/span>
33         proc = proc - time[n-1]; //旉片轮转,执行调度后得到的q程 
34         cout<< proc <<" in the "<<str[n-1]<<" queue"<<endl;               
35         if( proc >=0 )   //假设q程旉片用完,但还没有执行完?/span>
36         {
37           if(n-1<3)Rqueue[n].push(proc); //其压入下一个低优先U的队列 
38           else
39             Rqueue[n-1].push(proc); //如果是最后一个队列,则压入本w?/span>
40         }
41         Rqueue[n-1].pop();       //q行下一ơ队列调?/span>
42     }
43     return 0;  //q回Q代表该队列的所有进E均已调度过 
44 }
45 
46 int schedule(int& proc) //最初执行一个程序,创徏一个进E,调度法开始?/span>
47 {
48     Rqueue[0].push(proc);   //进E压入第一个队列?/span>
49     for(int i=1; i<=4; i++)
50     execu(i);    
51     //当execu()q回Ӟ意味着上一优先U队列里的进E均已调度完Q进行下一个队列的调度 
52 }
53 
54 
55 int main(int argc, char* argv[])
56 {
57 /*
58     for(int i=0; i<100; i++)
59     {
60         int n=int(rand())%4;    
61         Rqueue[n].push(int(rand())%3);
62     }
63 */
64     int proc=15;        //新进E?/span>
65     schedule(proc); 
66     system("PAUSE");
67     return 0;
68 }
69 

以上即ؓ我的实验成果Q经~译q行后,证明是正的?br />如果中间q有不正的Q请不吝指教?br />谢谢Q?br />

TanZek 2006-05-30 13:46 发表评论
]]>
[转]《数据库原理》练习题及答?/title><link>http://www.shnenglu.com/urgentmind/articles/7747.html</link><dc:creator>TanZek</dc:creator><author>TanZek</author><pubDate>Sat, 27 May 2006 15:47:00 GMT</pubDate><guid>http://www.shnenglu.com/urgentmind/articles/7747.html</guid><wfw:comment>http://www.shnenglu.com/urgentmind/comments/7747.html</wfw:comment><comments>http://www.shnenglu.com/urgentmind/articles/7747.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/urgentmind/comments/commentRss/7747.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/urgentmind/services/trackbacks/7747.html</trackback:ping><description><![CDATA[ <p class="main">W一部分Q选择?<br />    一、单w择?<br />    1QDBS是采用了数据库技术的计算机系l。DBS是一个集合体Q包含数据库、计机g、Y件和 <br />    A.pȝ分析?B.E序员 C.数据库管理员 D.操作?<br />    2Q模型是对现实世界的抽象Q在数据库技术中Q用模型的概忉|q数据库的结构与语义Q对现实世界q行抽象。表C实体类型及实体间联pȝ模型UCؓ <br />    A.数据模型 B.实体模型 C.逻辑模型 D.物理模型 <br />    3Q关pL型概念中Q不含有多余属性的键UCؓ <br />    A.候选键 B.寚w C.内键 D.主键 <br />    4Q设R、SZ个关p,R的元Cؓ4QS的元Cؓ5Q则与R <img src="http://51zk.csai.cn/sjkyl/images/lxt1.jpg" height="36" width="52" />S{h的操作是 <br />    AQ?<6(R×S) B.σ3<2(R×SQ C.σ3>6(R×S) D.σ7<2(R×S) <br />    5Q分布式数据库存储概念中Q数据分配是指数据在计算机网l各场地上的分配{略Q一般有四种Q分别是集中式、分割式、全复制式和 <br />    A. L方式 B.混合式 C.间隔方式 D.主题方式 <br />    6Q数据库pȝ中,cL指具有相同的消息Q用相同的ҎQ具有相同的变量名和 <br />    A. 变量?B. 特征 C. 定义 D. cd <br />    7Q随着计算机应用领域的扩大Q第一代、第二代DBS不能适应处理大量?<br />    A.格式化数?B.|络数据 C.非格式数?D.量数据 <br /><img src="http://51zk.csai.cn/sjkyl/images//lxt2.jpg" height="489" width="484" /><br />    9Q数据库q发控制概念中,使用X锁的规则称?<br />    A.PS协议 B.PX协议 C.PSC协议 D.两段锁协议 <br />    10.在数据库操作q程中事务处理是一个操作序列,必须h以下性质Q原子性、一致性、隔L和 <br />    A.׃n?B.l承?C.持久?D.装?<br />    11Q面向对像模型概念中Q类可以有嵌套结构。系l中所有的cȝ成一个有根的 <br />    A.有向无环?B.有向有环图 C.无向有环?D.无向无环?<br />    12Q在教学理pȝ中,有教师关pTQTQ,NAMEQ,学生关系SQSQ,NAMEQ,学生成W关系S(SQ,NU)。其中TQ表C教师工PSQ表C学生学P则T和N存在联系?<br />    A. 1Q? B. 1QN C. MQN D. 无联p?<br />    13Q一个数据库一般不是由独立的对象组成的Q对象的聚集形式的数学意义是 <br />    A. W卡积 B. 选择 C. 投媄 D. 联接 <br />    14Q对象标识是指针一U的概念是一个强有力的数据操U原语言Q是集合、元l和递归{复合对象操U늚基础Q标识是 <br />    A.L?B. 可以改变?C.不唯一?D.不能改变?<br />    15Q数据库pȝ中除了可用层ơ模型和关系模型表示实体cd及实体间联系的数据模型以外,q有 <br />    A. E-R 模型 B. 信息模型 C.|络模型 D.物理模型 </p> <p class="main">  W二部分Q非选择?<br />    二、填I题 <br />    16. 数据库系l中Q存?___________ 的数据库Q称为数据字典(DDQ?<br />    17Q关pL可分ؓ元组关系演算和域关系演算Q而在元组演算中,元组关系演算表达式的一般Ş式ؓ_______________?<br />    18QDB是与一个特定组l各应用有关的全部数据的集合,通常׃大部分组成:一部分是应用数据的集合Q称为______________ Q它是数据库的主题;另一部分是关于各U数据结构的描述Q称为描q数据库Q由DDpȝ理?<br />    19Q在关系模型中,关系中每一个属性值都是____________?<br />    20QSQL-SELECT语句完整的句法中QFROM子句是强制性的QFROM子句的作用是_________?<br />    21Q设关系模式R是第一范式Q且每个属性都不传递依赖于R的候选键Q则UR是_______ 的模式?<br />    22Q数据库设计q程中,常常从一些可选方案中选取一U数据库l构Q需要有选择的原则,UCؓ评h准则Q评价准则可分成 __________ 两类?<br />    23Q分布式数据理pȝ是分布式数据库系l中的_______ 负责理分布环境下,逻辑集成数据的存取,一致性、有效性和完备性?<br />    24Q对象关pL据库概念中承性可以发生在cd一U或 ______________ 一U?<br /><br />    25Q客P服务器体pȝ构的关键在于 ___________ 的分布,能减计机pȝ的各U瓶颈问题?<br />    三、简{题 <br />    26Q什么是多g赖中的数据依赖?举例说明?<br />    27Q数据库pȝ生存期是什么? <br />    28Qؓ什么说需求分析是数据库系l开发中最困难的Q务之一Q?<br />    29Q简qORDBS的中文含义?<br />    30Q数据库的三U模式和两映象体系l构中,模式Q内模式映象存在于概和内部之间Q用于定义概忉|式和内模式间的对应性。其主要作用是什么? <br />    31Q简q逻辑数据的独立性?<br />    32Q数据库是一个共享资源,在多用户׃npȝ中,q发操作的含义是什么? <br />    33Q没有关pR和S如下Q写出R÷S计算l果?<br /><img src="http://51zk.csai.cn/sjkyl/images/lxt3.jpg" height="170" width="355" /></p> <p> <span id="omrcfbn" class="main">34Q设有描q学校情늚U关系?<br />    UQSQ,SDQMNQCNQGQ?<br />    其中QSQ属性表C学生学PSD表示学生所在系名,MN表示pM任,CN表示评名,G表示成W。一个系有若q名学生Q一个学生只属于一个系Q一个系? 有一名系MQQ一个学生可选多门课Q每个学生选每门课有一个成l。试写出U关系中的函数依赖Qƈl每个函C赖一个简短说明?<br />    35Q什么是数据库的q发控制Q?<br /><br />    四、设计题 <br />    36Q设数据库中有基本表Q?<br />    教师Q工P姓名Q性别Q职Uͼ工龄Q基本工资,补脓Q?<br />    LSQL语句写出工龄?0q以上(包括20q_基本工资低于1500元的教师的所有信息?<br />    37Q在教学理pȝ中,含有二个关系Q?<br />    学生Q学P姓名Q性别Q出生日期,pdQ?<br />    成WQ学P评名,成WQ?<br />    若查询每个学生的选修评数、Ll、^均成l,写出实现上述要求的SQL语句?<br />    38. Z数据库中的成l表Q?<br />    成WQ学P评名,成WQ?<br />    用SQL语句写出往成W表中插入一个元l(20010101Q管理信息系l,80Q?<br />    39Q基于数据库中的学生表、成l表、Q课表Q?<br />    学生Q学P姓名Q性别Q出生日期,pdQ?<br />    成WQ学P评名,成WQ?<br />    任课Q课E名QQ课教师名Q?<br />    用SQL语言中的CREATE语句创徏一个含有学受姓名、性别、系名、课E名、成l、Q课教师名的学生成l视图?<br />    40Q基于数据库中的成W表: <br />    成WQ学P评名,成WQ?<br />    用SQL语句写出只选修一门的学生的学受课E名、成l?<br />    五、综合题 <br /><br />    41Q下面是医院l织的结构图 <br />    要求完成以下工作Q?<br />    Q?Q画出医院组l的E-R图; <br />    Q?Q查询所有外U病区和内科病区的所有医生姓名; <br />    Q?Q查询内U病区患胃病的病人的姓名?<br /><img src="http://51zk.csai.cn/sjkyl/images/lxt4.jpg" height="95" width="576" /><br /><strong><br /></strong></span> </p> <p class="main" align="left"> Traceback: http://51zk.csai.cn/sjkyl/NO00001.htm<br /></p> <img src ="http://www.shnenglu.com/urgentmind/aggbug/7747.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/urgentmind/" target="_blank">TanZek</a> 2006-05-27 23:47 <a href="http://www.shnenglu.com/urgentmind/articles/7747.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转]数据库学习笔?/title><link>http://www.shnenglu.com/urgentmind/articles/7721.html</link><dc:creator>TanZek</dc:creator><author>TanZek</author><pubDate>Sat, 27 May 2006 02:22:00 GMT</pubDate><guid>http://www.shnenglu.com/urgentmind/articles/7721.html</guid><wfw:comment>http://www.shnenglu.com/urgentmind/comments/7721.html</wfw:comment><comments>http://www.shnenglu.com/urgentmind/articles/7721.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/urgentmind/comments/commentRss/7721.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/urgentmind/services/trackbacks/7721.html</trackback:ping><description><![CDATA[Trackback: http://51zk.csai.cn/sjkyl<br /><br /><p class="样式1" align="center">W一?数据库概?</p><p></p><p class="main">  本章属于基础知识Q主要是对一些概늚理解和记忆。没有难点,相对的重点在于ER模型的设计和关系模型的掌握?</p><p class="main"><strong>一、数据管理技术的发展阶段( 识记 ) </strong></p><p class="main">数据理技术共l历了三个阶D: 人工理阶段 ?文gpȝ阶段 ?数据库阶D?Q?</p><p class="main">1、h工管理阶D늚特点Q?</p><p class="main">  <span id="kypwufe" class="main">(1)数据不保存在机器? </span></p><p class="main">  <span id="fnfqxke" class="main">(2)没有专用软gҎ据进行管? </span></p><p class="main">  (3)只有E序的概念,没有文g的概c?</p><p class="main">2、文件系l阶D늚特点与缺P</p><p class="main">  <span id="utxktcg" class="main">(1)数据可长期保存在盘上? </span>   </p><p class="main">  <span id="hkhcacy" class="main">(2)数据的逻辑l构与物理结构有了区? </span></p><p class="main">  <span id="gqyinmh" class="main">(3)文gl织呈现多样? </span></p><p class="main">  (4)数据不再属于某个特定E序Q可以重复用?</p><p class="main">其缺hQ?</p><p class="main">  <span id="bexpjms" class="main">数据冗余? </span></p><p class="main">  <span id="ismwuis" class="main">数据不一致? </span></p><p class="main">  数据联系?</p><p class="main">3、数据库阶段的特?</p><p class="main">  <span id="cxytytn" class="main">采用复杂的数据模型表C数据结? </span></p><p class="main">  <span id="uaqaqmk" class="main">有较高的数据独立?数据l构分成用户的逻辑l构、整体逻辑l构和物理结构三U? </span></p><p class="main">  <span id="xpblqpr" class="main">数据库系lؓ用户提供方便的用h口,可以使用查询语言、终端命令或E序方式操作数据库? </span></p><p class="main">  <span id="pvakasy" class="main">pȝ提供了四个方面的数据控制功能Q数据库的恢复、ƈ发控制、数据完整性和数据安全性? </span></p><p class="main">  Ҏ据的操作不一定以记录为单位,q可以数据项为单位?</p><p class="main">数据库技术中的四个名?DB、DBMS、DBS、数据库技术。其概念是不同的Q要分清?</p><p class="main"><strong>  DB </strong>Q数据库QDatabase),DB是统一理的相x据的集合?</p><p class="main"><strong>  DBMS </strong>Q? 数据库管理系l(Database Management System)QDBMS是位于用户与操作pȝ之间的一层数据管理YӞ为用h应用E序提供讉KDB的方法,包括DB的徏立、查询、更新及各种数据? 制。DBMSLZ某种数据模型Q可以分为层ơ型、网状型、关pd、面向对象型DBMS?</p><p class="main"><strong>  DBS </strong>Q数据库pȝQDatabase System),DBS是实现有l织地、动态地存储大量兌数据Q方便多用户讉K的计机软g、硬件和数据资源l成的系l,即采用了数据库技术的计算机系l?</p><p class="main"><strong>数据库技?</strong>Q是一门研I数据库l构、存储、管理和使用的Y件学U?</p><p class="main"><strong>二、数据描q的术语( 领会 ) </strong></p><p class="main">1、数据描q的三个领域Q现实世界、信息世界和机器世界?</p><p class="main">  信息世界中的几个概念Q?实体 (卛_观存在可以相互区别的事物)?实体?(同类实体的集?、属?实体的特??实体标识W?(唯一标识实体的属??)?</p><p class="main">  机器世界中的四个概念Q?字段、记录、文件、键 (关键??</p><p class="main">2、数据描q的两种形式Q?物理描述 ?逻辑描述 。前者是指数据在存储讑֤上的存取方式Q后者是指程序员或用户以用以操作的数据Ş式?</p><p class="main">3、物理描q用到的术语有:位、字节、字、块、桶、卷 </p><p class="main">4、数据联pȝ描述Q?</p><p class="main">  <strong>1Q?联系 </strong>Q如果实体集E1中的每个实体最多只能和实体集E2中的一个实体有联系Q反之亦Ӟ好么实体集E1对E2的联pȝ为“一对一联系”,Cؓ?Q?”?</p><p class="main">  <strong>1QN联系 </strong>Q如果实体集E1中每个实体与实体集E2中Q意个Q零个或多个Q实体有联系Q而E2中每个实体至多和E1中的一个实体有联系Q那么E1对E2的联pL“一对多联系”,Cؓ?QN”?</p><p class="main"><strong>  MQN联系 </strong>Q如果实体集E1中每个实体与实体集E2中Q意个Q零个或多个Q实体有联系Q反之亦Ӟ那么E1对E2的联pL“多对多联系”,Cؓ“MQN”?</p><p class="main"><strong>三、数据模?</strong></p><p class="main">1?<strong>数据模型 </strong>的概? 领会 )Q?</p><p class="main">  表示实体cd及实体类型间联系的模型称为“数据模型”。它可分ZU类型: 概念数据模型 ?l构数据模型 ?</p><p class="main">2?<strong>概念数据模型( </strong>单应?) Q?</p><p class="main">  它是独立于计机pȝ的模型,完全不涉及信息在pȝ中的表示Q只是用来描q某个特定组l所兛_的信息结构?<em>( 应当掌握教材?.1Q设计简单的ER模型 ) </em></p><p class="main">3?<strong>l构数据模型 </strong>Q?/p><p class="main">  它是直接面向数据库的逻辑l构Q是现实世界的第二层抽象。这cL型涉及到计算机系l和数据库管理系l,所以称为“结构数据模型”。结构数据模型应包含Q数据结构、数据操作、数据完整性约束三部分。它主要有: 层次 ?|状 ?关系 三种模型?</p><p class="main"><strong>  层次模型( </strong>识记 <strong>) </strong>Q用树型l构表示实体间联pȝ数据模型 </p><p class="main"><strong>  |状模型 </strong>( 识记 )Q用有向囄构表C实体类型及实体间联pȝ数据模型?</p><p class="main"><strong>  关系模型( </strong>领会 )Q是pq个关系模式l成的集合,其主要特征是用二l表格结构表辑֮体集Q用外鍵表示实体间联pR?</p><p class="main"><strong>4、面向对象模?识记):</strong></p><p class="main">  通过对象和类的概忉|建立的数据库模型Q是面向对象技术与数据库技术结合的产物Q本节了解一下即可?</p><p class="main"><strong>四、数据库的体pȝ? 领会 ) </strong></p><p class="main">1、三U结构模式:数据库的体系l构分ؓ三Q内部、概和外部Q?</p><p><span id="qiytvci" class="main"><strong>  外部U?</strong>Q单个用h能看到的数据Ҏ,U外模式? </span></p><p><span id="iwjeyqh" class="main"><strong>  概念U?</strong>Q涉及到所有用L数据定义Q是全局的数据视?U“概忉|式”?/span></p><p>    <span id="tkesmag" class="main"><strong>内部U?</strong>Q最接近于物理存储,涉及到实际数据存储的l构Q称“内模式”?</span></p><p class="main">2、两U映象: </p><p><span id="qcwysku" class="main"><strong>  模式/内模式映?</strong>Q用于定义概忉|式和内模式之间的对应性。一般在内模式中描述? </span></p><p><span id="qijigqs" class="main"><strong>   外模?模式映象 </strong>Q用于定义外模式和概忉|式间的对应性。一般在外模式中描述? </span></p><p class="main">3.两数据独立性: </p><span id="mwqaqxk" class="main"><strong>  物理数据独立?</strong>Q修改内模式时尽量不影响概念模式及外模式Q则辑ֈ物理数据独立性? </span><span id="hbgmzja" class="main"><strong>   逻辑数据独立?</strong>Q修Ҏ忉|式时量不媄响外模式和应用程序? </span><p class="main">4.用户及用L面:q里插一句,数据库模式可以理解ؓ数据库结构?</p><p class="main"><strong>五、数据库理pȝ( DBMS 领会 ) </strong></p><p class="main">1、DBMS的主要功能: <br />   Q?Q数据库的定义功?<br />   Q?Q数据库的操U功?<br />   Q?Q数据库的保护功?<br />   Q?Q数据库的存储管?<br />   Q?Q数据库的维护功?<br />   Q?Q数据字?</p><p class="main">2、DBMS的组成: </p><p class="main">  ׃大部分组成:查询处理器和存储理器,前者包括DDL~译器、DML~译器、嵌入型DML预编译器、查询运行核心程序。后者包括授权和完整性管理器Q事务管理器、文件管理器Q缓冲区理器?</p><p class="main"><strong>六、数据库pȝ(DBS 领会 ) </strong></p><p class="main">  DBS由四部分l成Q数据库、硬件、Y件、数据库理员?</p><p class="main">  DBS的全局l构及DBS的效益,了解一下?<br /></p><p class="main"><br /></p><p class="样式2" align="center"><b>W二?关系模型</b></p><p></p><p class="main">  本章为次重点章,我们l常使用的数据库均采用关pL型,本章主要介绍了关pL型的关系q算理论Q主要在于对关系演算q算的理解,为后面章节的SQL作准备?</p><p class="main"><strong>一、关pL型的基本概念( </strong>识记 <strong>) </strong></p><p class="main">1、关pL型的基本术语Q?</p><p class="main">  用二l表?l构表示实体集、外键表C实体间联系的数据模型称?关系模型 ?</p><p class="main">  基本术语有: 字段(属?、字D?属性?、记?元组)、二l表?元组集合、关pL实例)?在这里,括号中的表述为关pL型中的术语。它与表g术语可以一一对应。还有,关系中属性个数称为元敎ͼ元组个数为基数?</p><p class="main">  ?Q由一个或几个属性组成?注意键不一定是唯一的一个属??</p><p><span id="aoihqxo" class="main">    键 Q在关系中能唯一标识元组的属性集UCؓ关系模式的超键?注意Q超键也是一个属性集Q不一定只是一个属? </span></p><p><span id="jiuaumz" class="main">    候选键 Q不含有多余属性的键UCؓ候选键? </span></p><p><span id="kghrtwn" class="main">    主键 Q用户选作元组标识的一个候选键Z键? </span></p><p><span id="phbwbev" class="main">    外键 Q某个关pȝ主键相应的属性在另一关系中出玎ͼ此时该主键在是另一关系的外键,如有两个关系S和SC,其中S#是关pS的主键,相应的属性S#在关pSC中也出现Q此时S#是关系SC的外键?<br /></span></p><p class="main">2、关pL式、关pd模式和存储模?</p><p><span id="soihqxk" class="main">  关系模式 Q关pL式实际上是记录cd。它包括Q模式名Q属性名Q值域名以及模式的主键。关pL式仅是对数据Ҏ的描述?(q通常在数据库中表Cؓ一个数据表的结? </span></p><p><span id="oyzywhy" class="main">  关系子模?Q就是用h用到那部分数据的描述? </span></p><p><span id="idtzadj" class="main">  存储模式 Q关pd储时的基本组l方式是文gQ元l是文g中的记录? </span></p><p class="main">3、关pL型的三类完整性规?</p><p><span id="cukjwom" class="main">  实体完整性规?Q要求关pMl成主键的属性上不能有空倹{? </span></p><p><span id="tspdisn" class="main">  参照完整性规?Q要求不引用不存在的实体? </span></p><p><span id="gjzudnl" class="main">  用户定义完整性规?Q由具体应用环境军_Q系l提供定义和验这cd整性的机制? </span></p><p class="main">4、关pL型的形式定义Q数据结构、数据操作和完整性规则?</p><p class="main"><strong>二、关pM数运?单应? </strong></p><p class="main"><strong>1、关pM数的五个基本操作Qƈ、差、笛卡尔U、投影和选择?</strong></p><p class="main">  q?(?Q两个关p需有相同的关系模式Qƈ的对象是元组Q由两个关系所有元l构成?</p><p class="main">  ?(-)Q同P两个关系有相同的模式QR和S的差是由属于R但不属于S的元l构成的集合?</p><p class="main">  投媄( σ)Q对关系q行垂直分割Q消L些列Qƈ重新安排列的序?</p><p class="main">  选择 (π)Q根据某些条件关pM水^分割Q即选择W合条g的元l?</p><p class="main"><strong>2、关pM数的四个l合操作Q交、联接、自然联接和除法 </strong></p><p class="main">  ?(?QR和S的交是由既属于R又属于S的元l构成的集合?</p><p class="main">  联接 包括θ联接和F联接Q是选择R×S中满iθ(r+j)或F条g的元l构成的集合Q特别注?{D?(θ为等号???</p><p class="main">  自然联接 (R|X|S)Q在R×S中,选择R和S公共属性值均相等的元l,q去掉R×S中重复的公共属性列。如果两个关pL有公共属性,则自然联接就转化为笛卡尔U?</p><p class="main">   除法 (÷)Q首先除法的l果中元Cؓ两个元数的差Q以?.6ZQ我们可以直接用观察法来得到l果Q把S看作一个块Q拿到R中去和相同属性集中的元组作比 较,如果有相同的块,且除L块后留下的相应元l均相同Q那么可以得C条元l,所有这些元l的集合是除法的结果?</p><p class="main"><em>  对于上述的五个基本操作和l合操作Q应当从实际q算斚wq行理解和运用,对其形式定义可不必深I。注意课本上的例子?</em></p><p class="main"><strong>3、关pM数表辑ּ及应?</strong></p><p class="main">  在关pM数表辑ּ中,复合了上qC个基本操作,在给出相应的表格(关系)中,应该能够Ҏl出的关pM数表辑ּ计算关系|也要能根据相应查询要求列出关p表辑ּ?</p><p class="main">在列关系表达式时Q通常有以下Ş式: </p><p class="样式2" align="center">π...(σ...(R×S))或者π...(σ...(R|X|S)) </p><p class="main">  首先把查询涉及到的关pd来,执行W卡积或自然联接操作得C张大的表|然后对大表格执行水^分割(选择)和垂直分?投媄)操作。但是注意当查询涉及到否定或全部值时Q就不能用上qŞ式,而要用到差或除法操作?</p><p class="main"><strong>三、关pL? </strong>领会 <strong>) </strong></p><p class="main">  关系演算分ؓ元组关系演算或域关系演算Q前者以元组为变量,后者以域ؓ变量?</p><p class="main">  元组演算表达式的一般Ş式ؓQ{t|P(t)}Q其含义为:q是一个元l集合,其中的每个元lt(t是元l变?满公式P所规定的条件。所以在书写演算表达式时Q应该注重理解公式P如何表达?</p><p class="main">  域演表辑ּ的一般Ş式ؓQ{t1...tk|P(t1...,tk)},其含义ؓQ这是一个域集合Q其中每个域变量的取值关pL_式P所规定的条件。也是注意公式P的表达?</p><p class="main"><em>  以上两类演算需要一定的L数学基础Q如果不能很深刻的掌握,问题也不大,主要应看懂表辑ּ卛_Q对于给定的表达式和l定的关p,应当能计表辑ּ的结?得到一个关p? </em></p><p class="main"><strong>四、查询优?</strong></p><p class="main">  查询优化的目的就是ؓ了系l在执行时既省时间又能提高效率,在关pM数运中Q通常是先q行W卡积或联接运,再进行选择和投影,恰当地安排选择、投影和联接的顺序,可实现查询优化?</p><p><span id="ogwchsy" class="main"> 优化的策略主要有以下几点Q? </span></p><p><span id="iaqwfek" class="main">  (1)在关pM数表辑ּ中尽可能早地执行选择操作(早选择). </span></p><p><span id="uefpyio" class="main">  (2)把笛卡尔U和随后的选择操作合ƈ成F联接q算(F联接) </span></p><p><span id="ctymkrm" class="main">  (3)同时计算一q串的选择和投影操?同时? </span></p><p><span id="kjdnaoj" class="main">  (4)保留同一子表辑ּ的结? </span></p><p><span id="bayxoce" class="main">  (5)适当对关pL件进行预处理 </span></p><p><span id="upqlbiz" class="main">  (6)计算表达式之前先估计一下怎么计算合算? </span></p><p class="main"><em>  以上几点需要理解。根据表辑ּ优化的算法步骤对l定表达式进行优化?</em></p><br /><p class="样式2" align="center"><b>W三?关系数据库SQL语言</b></p><p></p><p class="main">  本章为重点章Q应熟悉和掌握SQL的数据定义、数据查询、数据更新的句法及其应用Q特别是数据查询的应用。结合上机操作进行理解和掌握?</p><p class="main"><strong>一、SQL概述?</strong></p><p class="main"><strong>1、SQL发展历程( 识记 ) </strong></p><p class="main">   SQL?970q美国IBM研究中心的E.F.Codd发表论文?974qBoyce和Chamberlin把SQUARE语言改ؓSEQUEL? aQ到现在q在不断完善和发展之中,SQL(l构式查询语a)虽然名ؓ查询Q但实际上具有定义、查询、更新和控制{多U功能?</p><p class="main"><strong>2、SQL数据库的体系l构( 领会 ) </strong></p><p class="main">  SQL数据库的体系l构也是三l构 Q但术语与传l关pL型术语不同,在SQL中,关系模式UCؓ" 基本?"Q存储模式称? 存储文g "Q子模式UCؓ" 视图 "Q元l称" ?"Q属性称" ?"?</p><p class="main">SQL数据库体pȝl构要点如下Q?</p><p><span id="aklkxec" class="main">  (1)一个SQL数据库是表的汇集? </span></p><p><span id="colkecm" class="main">  (2)一个SQL表由行集构成Q行是列的序列,每列对应一个数据项? </span></p><p><span id="dvwgbik" class="main">  (3)表或者是基本表,或者是视图。基本表是实际存储在数据库中的表Q视囄是由若干基本表或其他视图构成的表的定义? </span></p><p><span id="cqkywku" class="main">  (4)一个基本表可以跨一个或多个存储文gQ一个存储文件也可存放一个或多个基本表。存储文件与物理文g对应? </span></p><p><span id="onkymhj" class="main">  (5)用户可以用SQL语句对表q行操作Q包括视囑֒基本表? </span></p><p><span id="yefecbl" class="main">  (6)SQL的用户可以是应用E序Q也可以是终端用戗? </span></p><p class="main"><strong>3、SQL的组? 识记 ) </strong></p><p class="main">SQL由四部分l成Q?</p><p><span id="vrsnbio" class="main">   (1)数据定义QSQL DDL。定义SQL模式Q基本表、视囑֒索引? </span></p><p><span id="ispghrb" class="main">  (2)数据操纵QSQL DML。包括数据查询和数据更新(增、删、改)? </span></p><p><span id="mwtwkgi" class="main">  (3)数据控制Q包括对基本表和视图的授权、完整性规则的描述Q事务控制等? </span></p><p><span id="gqjpjqs" class="main">  (4)嵌入式SQL的用规定? </span></p><p class="main"><strong>二、SQL的数据定? </strong>单应?<strong>) </strong></p><p class="main"><strong>1、SQL模式的创建和撤消Q?</strong></p><p class="main">  SQL 模式的创?可简单理解ؓ建立一个数据库Q定义一个存储空_其句法是Q?</p><p class="样式2" align="center">CREAT SCHEMA <模式?gt; AUTHORIZATION <用户?gt;</p><p class="main">  撤消SQL模式的句法ؓQ?</p><p class="样式2" align="center">DROP SCHEMA <模式?gt; [ CASCADE | RESTRICT ] </p><p class="main">  Ҏ号中的选项参数CASCADE表示q锁方式Q执行时模式下所有基本表、视图、烦引等元素全部撤消。RESTRICT表示U束式,执行时必dSQL模式中没有Q何下属元素时方可撤消模式?</p><p class="main">2、SQL提供的基本数据类?</p><p><span id="uzwcmpk" class="main">   数值型Q包?integer、smallint、real、double precision 、float(n),numeric(pQd)</span></p><p><span id="jmrbvcm" class="main">  字符串型Qchar(n)、varchar(n)Q前者是定长Q后者ؓ变长? </span></p><p><span id="umyxdrm" class="main">   位串型:bit(n),bit varying(n)Q同上? </span></p><p><span id="tugfzcx" class="main">  旉型:date、time?</span></p><p class="main">3、基本表的创建、修改和撤消 </p><ul><li><span id="nmjivce" class="main">基本表的创徏Q?可理解ؓ建立表结? <br /> CREAT TABLE SQL 模式?基本表名 <br /> (列名Q类型, <br /> …?<br /> 完整性约?..) <br /> 完整性约束包括主键子?PRIMARY KEY)、检查子?CHECK)和外键子?Foreign KEY). </span></li><li><span id="xfvznwi" class="main">基本表结构的修改 <br /> ALTER TABLE 基本表名 ADD/ DROP (增加/删除) 列名 cd?增加时写? <br /> 删除时有子句 [CASCADE|RESTRICT]Q前者ؓq锁删除Q后者ؓU束删除Q即没有Ҏ列的M引用时才能删除? </span></li><li id="xxhtfda" class="main">基本表的撤消 <br /> DROP TABLE 基本表名 [CASCADE|RESTRICT] </li></ul><p class="main">4、视囄创徏和撤?</p><ul><li><span id="qqeqxvs" class="main">创徏Q?CREAT VIEW 视图?列名? AS SELECT 查询语句 </span></li><li id="xadltjg" class="main">撤消Q?DROP VIEW 视图?</li></ul><p class="main">5、烦引的创徏和撤?</p><ul><li><span id="txlalbu" class="main">创徏Q?CREAT [UNIQUE] INDEX 索引?ON 基本表名(列名?[ASC|DESC]) </span></li><li id="hoczhmj" class="main">撤消Q?DROP INDEX 索引?</li></ul><p class="main">  ȝQ凡创徏都用 CREAT ,删除都用 DROP ,改变?alter ,再跟cd和名字,附加子句很容易了?</p><p class="main"><strong>三、SQL的数据查? </strong>l合应用 <strong>) </strong></p><p class="main">q一D|本章的重点内容,应该熟练掌握。首先了解基本句法: </p><p class="main">1?SELECT -FROM- WHERE 句型 </p><ul><li id="yupmxck" class="main">SELECT 列名?逗号隔开) FROM 基本表或视图序列 WHERE 条g表达?</li></ul><p class="main">  在这里,重点要掌握条件表辑ּ中各U运符的应用,?Q?gt;,<,<>{算术比较运符、逻辑q算W?AND、OR、NOT 、集合成员资D符Q?INQNOT IN Q以及嵌套的 SELECT 语句的用法要特别注意理解?<em>针对课本的例题和译֐习题q行掌握?</em></p><p class="main">  在查询时Q?SELECT 语句可以有多U写法,?联接查询、嵌套查询和使用存在量词的嵌套查?{。最好都掌握Q但是v码应能写ZU正的查询语句?</p><p class="main">2. SELECT 语句完整的句法: </p><ul><li id="oniquos" class="main">SELECT 列名?逗号隔开) <br /> FROM 基本表或视图序列 <br /> [ WHERE 条g表达式] (此ؓ和条件子? <br /> [GROUP BY 列名序列] (分组子句) <br /> [HAVING l条件表辑ּ] (l条件子? <br /> [ORDER BY列名[ASC|DESC]..] (排序子句) </li></ul><p class="main">q段关于完整句法的内容能够理解也问题不大了?</p><p class="main">3?SELECT 语句中的限定 </p><p class="main"><em>  q一D内容主要是?SELECT 语句q一步用进行的深入学习Q领会下列各U限定的使用目的和方法?</em></p><ul><li><span id="zewipyo" class="main">要求输出表格中不出现重复元组Q则?SELECT 后加一DISTINCT </span></li><li><span id="swdlmnk" class="main">SELECT 子句中允许出现加减乘除及列名Q常数的术表达? </span></li><li><span id="ydvsdtq" class="main">WHERE 子句中可以用BETWEEN...AND...来限定一个值的范围 </span></li><li><span id="bsvsexf" class="main">同一个基本表?SELECT 语句中多ơ引用时可用AS来增加别? </span></li><li><span id="tongysl" class="main">WHERE 子句中字W串匚w用LIKE和两个通配W,%和下划线_. </span></li><li><span id="ssvdtug" class="main">查询l果的结构完全一致时可将两个查询q行q?UNION)?INTERSECT)?EXCPT)操作 </span></li><li><span id="npfnuzw" class="main">查询I值操作不是用='null',而是?IS NULL来测试? </span></li><li><span id="wgfcktq" class="main">集合成员资格比较?IN/NOT IN Q集合成员算术比较用元组θSOME/ALL </span></li><li><span id="qkrsotm" class="main">可以用子查询l果取名(表名(列名序列))来作为导使用 </span></li><li id="xuqrhff" class="main">基本表的自然联接操作是用 NATURAL INNER JOIN来实现的?/li></ul><p class="main"><strong>四、SQL的数据更? </strong>单应?<strong>) </strong></p><p class="main">单应用就是掌握基本的句型q能套用在一些简单的查询要求上?</p><p class="main">1、数据插入: </p><p class="main">INSERT INTO 基本表名(列名? <br /> valueS (元组? </p><p class="main">?<br /> INSERT INTO 基本表名(列名? <br /> SELECT 查询语句 </p><p class="main">其中元组值可以连l插入。用查询语句可以按要求插入所需数据?</p><p class="main">2、数据删除: </p><p class="main">DELETE FROM 基本表名 [ WHERE 条g表达式] </p><p class="main">3、数据修改: </p><p class="main">UPDATE 基本表名 <br /> SET 列名=D辑ּ,[列名=D辑ּ...] <br /> [ WHERE 条g表达式] </p><p class="main">4、对视图的更斎ͼ </p><p class="main">我们知道Q对视图的查询是和基本表相同的,但是更新操作则受C列三条规则的限制Q?领会一? </p><ul><li><span id="yuxjjka" class="main">如果视图是从多个基本表用联接操作导出的Q则不允许更新? </span></li><li><span id="cehtmrk" class="main">如果导出的视图用了分组和聚合操作,也不允许更新? </span></li><li id="kxaxauc" class="main">如果视图是从单个基本表用选择和投影操作导出的Qƈ且包括了基本表的主键或某个候选键Q则可以执行操作?q就相当于在基本表上操作)?</li></ul><br /><p class="main"><em>   q一节的关于增删改的操作要和前面关于数据库模式、表的增删改操作q行Ҏ学习Q以加深理解。不要忘C机实?</em>?<br /></p><p class="main"><br /></p><p class="样式2" align="center"><b>W四?关系数据库的模式设计</b></p><p></p><p class="main">   本章的理论性较强,学习时有无从下手的感觉,在学习时应多加思考,从概念出发去理解理论Q前后的理论有较强的联系Q因此要逐个理解Q但对于理论的证明等内容则不必深IӞ本章重点是函C赖,无损联接、保持依赖和范式的概c?</p><p class="main"><strong>一、关pL式的设计问题( </strong>识记 <strong>) </strong></p><p class="main">  关系数据?是以关系模型为基的数据库Q它利用关系来描q现实世界。一个关pL可以用来描述一个实体及其属?Q也可以用来描述实体间的联系。关pd质上是一张二l表 Q表?行称为元l?Q列UCؓ属??</p><p class="main">  关系模式是用来定义关pȝQ这里的关系模式我们可以单地理解Z个表的结构,一个关pL据库包含一l关p,也就是包含一l二l表Q这些二l表l构体的集合构成数据库的模?也可以理解ؓ数据库的l构)?</p><p class="main">  关系数据?设计理论包括三个斚w内容Q?数据依赖 、范?、模式设计方法。核心内Ҏ数据依赖?</p><p class="main">  泛关pL?Q把现实问题的所有属性组成一个关pL式R(U)Q这个关pL式就UCؓ泛关pL式?</p><p class="main">  数据库模?Q把泛关pL式用一l关pL式的集合ρ来表C时Q这个ρ就是数据库模式?</p><p class="main">下面我们ȝ一下关pL式的相关内容????的排?</p><p class="main">  泛关pL式→数据库模式→关系数据库→表结构→关系模式实例(?→记?行、列.) </p><p class="main">  关系模式的存储异? 数据冗余 、更 新异??插入异常和删除异?</p><p class="main"><strong>二、函C?FD) </strong></p><p class="main"><strong>  1、函C赖的定义 </strong>( 领会 )Q设有关pL式R(A1QA2Q?..An)或简CؓR(U)QXQY是U的子集,r是R的Q一具体关系Q如果对r的Q意两个元lt1,t2,由t1 [X]=t2[X]Dt1[Y]=t2[Y]Q则UX函数军_YQ或Y函数依赖于XQ记为X→Y。X→Y为模式R的一个函C赖?</p><p class="main"><em>  q个定义可以q样理解 </em>Q有一张设计好的二l表QXQY是表的某些列(可以是一列,也可以是多列)Q若在表中的Wt1行,和第t2行上的X值相{,那么必有t1行和t2行上的Yg相等Q这是说Y函数依赖于X?</p><p class="main"><strong>2、函C赖的逻辑蕴涵 </strong>( 识记 ) </p><p class="main">  设F是关pL式R的一个函C赖集QX,Y是R的属性子集,如果从F中的函数依赖能够推出X→YQ则UF逻辑蕴涵X→YQ记为F|=X→Y. </p><p class="main">  而函C赖的闭包F + 是指被F逻辑蕴涵的函C赖的全体构成的集合?</p><p class="main"><strong>3、键和FD的关p?</strong>( 领会 ) </p><p class="main">  键是唯一标识实体的属性集。对于键和函C赖的关系Q有两个条gQ设关系模式R(A1,A2...An)QF是R上的函数依赖集,X是R的一个子集, </p><p><span id="zbatfzh" class="main">   (1)X→A1A2...An∈F + (它的意思是X能够军_唯一的一个元l? </span></p><p><span id="qitqefc" class="main">  (2)不存在X的真子集YQ得Y也能军_唯一的一个元l,则X是R的一个候选键?它的意思是X能决定唯一的一个元l但又没有多余的属性集) </span></p><p class="main">  包含在Q何一个候选键中的属性称Z属?Q不包含在Q何键中的属性ؓ非主属?非键属?Q注意主属性应当包含在候选键中?</p><p class="main"><strong>4、函C?FD)的推理规?</strong>( 单应?) </p><p class="main">  前面我们丄例子中是以实际经验来定一个函C赖的逻辑蕴涵Q但是我们需要一个推理规则才能完全确定F或F+的所有函C赖?</p><p class="main">  设有关系模式R(U)QXQYQZQW均是U的子集,F是R上只涉及到U中属性的函数依赖集,推理规则如下Q?</p><ul><li><span id="ivlqrpe" class="main">自反?Q如果Y <img src="http://www.ezikao.com/xjzl/sub/sjkylpsr/note4/UI.GIF" height="17" width="12" />X <img src="http://www.ezikao.com/xjzl/sub/sjkylpsr/note4/UI.GIF" height="17" width="12" />U,则X→Y在R上成立? </span></li><li><span id="fnqgydw" class="main">增广?Q如果X→Y为F所蕴涵QZ <img src="http://www.ezikao.com/xjzl/sub/sjkylpsr/note4/UI.GIF" height="17" width="12" />UQ则XZ→YZ在R上成立?XZ表示X∪ZQ下? </span></li><li><span id="vnmbche" class="main">传递律 Q如果X→Y和Y→Z在R上成立,则X→Z在R上成立?<br /><br /></span></li><li><span id="yqxfqko" class="main">合ƈ?Q如果X→Y和X→Z成立Q那么X→YZ成立? </span></li><li><span id="kcfnkem" class="main">伪传递律 Q如果X→Y和WY→Z成立Q那么WX→Z成立? </span></li><li id="hhkhztu" class="main">分解?Q如果X→Y和Z <img src="http://www.ezikao.com/xjzl/sub/sjkylpsr/note4/UI.GIF" height="17" width="12" />Y成立Q那么X→Z成立?</li></ul><p class="main"><strong>5、函C赖推理规则的完备?</strong>( 识记 ) </p><p class="main">  函数依赖推理规则pȝ(自反律、增q律和传递律)是完备的。由推理规则的完备性可得到两个重要l论Q?</p><ul><li><span id="ezroauy" class="main">属性集X + 中的每个属性AQ都有X→A被F逻辑蕴涵Q即X + 是所有由F逻辑蕴含X→A的属性A的集合? </span></li><li id="zvyrypm" class="main">F + 是所有利用Amstrong推理规则从F导出的函C赖的集合 </li></ul><p class="main"><strong>6、函C赖集的等价和覆盖 </strong>( 识记) </p><p class="main">  在关pL式R(U)上的两个函数依赖集F和GQ如?满F + =G + Q则UF和G?{h 的,UF和G{h也称F 覆盖 G或G覆盖F?</p><p class="main">每个函数依赖集F都可以被一?右部只有单属性的函数依赖?G所覆盖?</p><ul><li><span id="rgqygax" class="main">如果函数依赖集合F满Q? </span></li><li><span id="gsrokpm" class="main">(1)F中每一个函C赖的右部都是单属性; </span></li><li><span id="sespicz" class="main">(2)F中的M函数依赖X→AQ其F-{X→A}是不{h的; </span></li><li><span id="jknootu" class="main">(3)F中的M函数依赖X→AQZ为X的子集?F-{X→A})∪{Z→A}与F不等仗? </span></li><li id="czcbjoa" class="main">则称F为最函C赖集合?</li></ul><p class="main">如果函数依赖集F和G{hQƈ且G是最集Q那么称G是F的一?最覆??</p><p class="main"><em>q一Dƈ不要求掌握最集的求法,但是应当通过其求法理解最集的概?</em>?</p><p class="main"><strong>三、关pL式的分解Ҏ?</strong></p><p class="main">1?<strong>模式分解中存在的问题 </strong>Q? 识记 ) </p><p class="main">  模式分解 是一个泛关系模式 R分解?数据库模式?Q以ρ代替R的过E。它不仅仅是属性集合的分解Q它是对关系模式上的函数依赖集、以及关pL式的当前值分解的具体表现?</p><p class="main">  分解一个模式有很多ҎQ但是有的分解会出现失去函数依赖、或出现插入、删除异常等情况Q而有的分解则不出现相关问题?</p><p class="main">  衡量一个分解的标准有三U: 分解h无损联接 Q?分解要保持函C?Q分?既要保持依赖Q又要具有无损联??</p><p class="main">那么什么是无损联接?什么又是保持依? </p><p class="main">2?<strong>无损联接的定义和性质 </strong>( 识记 ) </p><p class="main">   设R是一关系模式Q分解成ρ={R1,R2Q?..,Rk}QF是R上的一个函C赖集。无损联接就是指R中每一个满F的关pr(也就是一个关pd ?都有r=π R1 (r)|X|π R2 (r)...|X|π R3 (r)Q即r为它在Ri上的投媄的自然联接?</p><p class="main"><em>  最单的理解Q?</em>也就是说Q分解后的关p?自然q接?完全{于 分解前的 关系Q则q个分解相对于F是无损联接分解?</p><p class="main">  设R的分解ؓρ={R1,R2},F为R所满的函C赖集Q则分解ρh无损联接性的 充分必要条g 是: </p><ul><li><span id="yuqcjsl" class="main">R1∩R2?R1-R2) </span></li><li id="elvdyoa" class="main">R1∩R2?R2-R1) </li></ul><p class="main">  也就是说Q分解后的两个模式的交能军_q两个模式的差集Q即R1、R2的公共属性能够函数决定R1或R2中的其他属?Q这L分解必定是无损联接分解 ?</p><p class="main">3?<strong>保持函数依赖的分?</strong>( 识记 ) </p><p class="main">  在分解过E中Q要求模式分解的无损联接是必要的Q只有无损联接分解才能保证Q何一个关p能由它的那些投p行自然联接得到恢复?</p><p class="main">  同时Q分解关pL式时q应保证关系模式的函C赖集在分解后仍在数据库模式中保持不变Q这是保持函数依赖的问题。也是所有分解出的模式所满的函C赖的全体应当{h于原模式的函C赖集。只有这h能确保整个数据库中数据的语义完整性不受破坏?</p><p class="main"><strong>四、关pL式的范式( </strong>领会 <strong>) </strong></p><p class="main">1?NF?NF?NF、BCNF的定义: </p><ul><li><span id="jwhtabc" class="main">1NFQ第一范式 ?<br /> 卛_pL式中的属性的 值域 ?每一个?都是 不可再分?的倹{如果某个数据库模式都是W一范式的,则称该数据库模式是属于第一范式的数据库模式?/span></li><li><span id="ynfgdif" class="main">2NFQ第二范??<br /> 如果关系模式R?W一范式 Qƈ且R中每一?非主属?完全函数依赖?R的某个候选键Q则UCؓ W二范式模式 ?<br /><br /> 在这里要先了解“非d性”、“完全函C赖”、“候选键”这三个名词的含义?<br /> 候选键 是指可以唯一军_关系模式R中某元组g不含有多余属性的属性集?<br /> 非主属?也就是非键属性,指关pL式R中不包含在Q何徏中的属性?<br /> 设有函数依赖W→AQ若存在X <img src="http://51zk.csai.cn/sjkyl/NO00044_%5B.gif" height="17" width="12" />WQ有X→A成立Q那么称W→A是局部依赖,否则qW→A?完全函数依赖 ?<br /><em><br /></em>在分析是否ؓW?范式Ӟ?<em>首先定 </em>候选键 Q然后把关系模式中的非主属性与键的依赖关系q行考察Q是否都为完全函C赖,如是Q则此关pL式ؓ2NF。如果数据库模式中每个关pL式都?NF的,则此数据库模式属?NF的数据库模式?<em><br /></em><br /></span></li><li><span id="fryzvwq" class="main">3NFQ第三范??<br /> 如果关系模式R?W二范式 Q且 ??非主属???传递依?于R?候选键 Q则UR为第三范式的模式?<br /><br /> q里首先要了?传递依?的含义: 在关pL式中Q如果Y→XQX→AQ且X不决定Y和A不属于XQ那么Y→A是传递依赖?<br /><br /> 注意的是Q这里要求非d性都不传递依赖于候选键?<br /><br /></span></li><li><span id="heweywh" class="main">BCNF Q这个范式和W三范式有联p,它是3NF的改qŞ式。若关系模式R?W一范式 Q且 每个属???传递依赖于R的候选键。这U关pL式就是BCNF模式?</span></li></ul><p><span id="ueemmrd" class="main">U观四种范式Q可以发现它们之间存在如下关p: </span></p><p align="center"><img src="http://51zk.csai.cn/sjkyl/images/NO00044_001.GIF" height="186" width="290" /></p><p class="main">5?<strong>分解成BCNF模式集的法( </strong>识记 <strong>) </strong></p><p class="main">  对于M关系模式Q可扑ֈ一个分解达?NFQ且h无损联接和保持函C赖性。而对于BCNF分解Q则可以保证无损联接但不一定能保证保持函数依赖集?</p><ul><span id="ctlqjda" class="main"> 无损联接分解成BCNF模式集的法Q? </span><li><span id="pykahmc" class="main">(1)|初值?{R}; </span></li><li><span id="sjfhsib" class="main">(2)如果ρ中所有关pL式都是BCNFQ则?4); </span></li><li><span id="nryzkej" class="main">(3)如果ρ中有一个关pL式S不是BCNFQ则S中必能找C个函C赖集X→A有X不是S的键Q且A不属于XQ设S 1 =XAQS 2 =S-AQ用分解S 1 ,S 2 代替SQ{(2)Q? </span></li><li id="vlslsib" class="main">(4)分解l束。输出ρ?</li></ul><p class="main">  在这个过E中Q?<em>重点在于(3)?</em>Q判断哪个关pM是BCNFQƈ扑ֈX和A。这里,S的判断用BCNF的定义,而X不是S的键则依靠分析?</p><p class="main">6?<strong>分解?NF模式? </strong>识记 <strong>) </strong></p><ul><span id="dxaiina" class="main"> 法Q? </span><li><span id="bokwsbu" class="main">(1)如果R中的某些属性在F的所有依赖的左边和右辚w不出玎ͼ那么q些属性可以从R中分出去Q单独构成一个关pL式? </span></li><li><span id="nkoadxh" class="main">(2)如果F中有一个依赖X→A有XA→RQ则ρ={R}Q{(4) </span></li><li><span id="tehepqn" class="main">(3)对于F中每一个X→AQ构成一个关pL式XAQ如果F有有X→A 1 QX→A 2 ...X→A n ,则可以用模式XA 1 A 2 ...A n 代替n个模式XA 1 ,XA 2 ...XA n ; </span></li><li id="ldtmanf" class="main">(4)w分解l束Q输入ρ?</li></ul><p class="main">  q个q程?<em>重点是这一?</em>“对于F中每一个X→AQ构成一个关pL式XA”,q我们的分解十分容易,然后依据合ƈ?合ƈ律:如果X→Y和X→Z成立Q那么X→YZ成立)有x式合q即得到所需3NF模式?</p><p class="main">7?<strong>模式设计Ҏ的原? </strong>识记 <strong>) </strong></p><p class="main">  关系模式R相对于函C赖集F分解成数据库模式ρ={R 1 ,R 2 ...R k }Q一般具有下?四项Ҏ?Q?</p><ul><li><span id="weiuymu" class="main">ρ中每个关pL式R i 上应h某种 范式性质 (3NF或BCNF) </span></li><li><span id="vasplfe" class="main">无损联接 性? </span></li><li><span id="irkhsxq" class="main">保持函数依赖 集? </span></li><li id="nlsehqi" class="main">最?Q即ρ中模式个数应最且模式中属性L应最?</li></ul><p class="main">一个好的模式设计方法应W合下列三条原则Q?</p><ul><li><span id="iowihxm" class="main">表达? </span></li><li><span id="gilxauu" class="main">分离? </span></li><li id="tkwmpqn" class="main">最冗余?</li></ul><p class="main">8、多g赖。简单了解一下?/p><br /><p class="样式2" align="center"><b>W五?数据库设?/b></p><p></p><p class="main">  与上一章不同,本章的实用性较强,详细讲述了数据库应用pȝ设计的全q程?重点 是概念设计中 ER模型的设计方法, 逻辑设计?ER模型向关pL型的转换Ҏ ?</p><p class="main"><strong>一、数据库设计概述( </strong>识记 <strong>) </strong></p><p class="main">1?软g生存?Q是指从软g的规划、研制、实现、投入运行后的维护、直到它被新的Y件所取代而停止用的整个期间。它包括六个阶段Q? 规需讄试运l?) </p><ul><li><span id="ogjnfov" class="main">(1)规划阶段 </span></li><li><span id="rykdzpi" class="main">(2)需求分析阶D? </span></li><li><span id="aogorhz" class="main">(3)设计阶段 </span></li><li><span id="ipxjuvo" class="main">(4)E序~制阶段 </span></li><li><span id="fiabxgc" class="main">(5)调试阶段 </span></li><li id="fbfnuos" class="main">(6)q行l护阶段 </li></ul><p class="main">2、数据库pȝ生存?</p><p class="main">  数据库应用系l的开发也是一Y件工E,UCؓ数据库工E,数据库应用系l也有生存期的概念,通常包括七个阶段Q?</p><ul><li><span id="fbexeju" class="main">(1)规划阶段 </span></li><li><span id="plemmvd" class="main">(2)需求分析阶D? </span></li><li><span id="ahowwmi" class="main">(3)概念设计阶段 </span></li><li><span id="dgklhqj" class="main">(4)逻辑设计阶段 </span></li><li><span id="arczgwd" class="main">(5)物理设计阶段 </span></li><li><span id="juckkax" class="main">(6)实现阶段 </span></li><li id="itwplme" class="main">(7)q行l护阶段 </li></ul><p class="main">3、数据库设计Ҏ?</p><p class="main">  一个好的数据库设计Ҏ应该能在合理的期限内Q以合理的工作量产生一个有实用价值的数据库结构?</p><p class="main">  数据库及其应用系l的设计分ؓ以下几个阶段Q规划、需求分析、概念设计、逻辑设计、物理设计?</p><p class="main"><strong>二、规? </strong>识记 <strong>) </strong></p><p class="main">  数据设计中的规划阶段的主要Q务是q行建立数据库的必要性及可性性分析,定数据库系l在l织中和l织中和信息pȝ中的CQ以及各个数据库之间的联pR?</p><p class="main"><strong>三、需求分? </strong>识记 <strong>) </strong></p><p class="main">  需求分析阶D应对系l的整个应用情况作全面的、详l的调查、确定用L目标Q收集支持系lȝ设计目标的基数据和对q些数据的要求,定用户需求,q把q些要求写成用户和数据库设计者都能够接受的文?</p><p class="main">  定用户需求可以通过对不同层ơ的企业理人员q行个h讉K得到。还应了解系l将来要发生的变化,充分考虑pȝ的可能的扩充和变动,使系l设计更W合未来发展方向?</p><p class="main">  需求分析的步骤大致分ؓ三步Q即 需求信息的攉、分析整理和评审?</p><p class="main">  数据字典Q是对系l中数据的详描qͼ它提供对数据库数据描q的集中理。它包含以下几个部分Q数据项、数据结构、数据流、数据存储和加工q程?</p><p class="main"><strong>四、概念设? </strong>识记 <strong>) </strong></p><p class="main">1?概念模型 Q可以看成是现实世界到机器世界的一个过渡的中间层次。在设计数据库系l时Q要把现实世界的事物通过认识和抽象{换ؓ信息世界的概忉|型,再把概念模型转换为机器世界的数据模型?</p><p class="main">2?概念设计的主要步?Q分三步完成Q?1)q行 数据抽象 Q设计局部概忉|式;(2)局部概忉|?l合 成全局概念模式Q?3) 评审 ?</p><p class="main">3?数据抽象 Q数据抽象的两种形式Q聚集和概括Q?</p><p class="main">  聚集 Q其数学意义是W卡积的概念,通过聚集QŞ成对象之间的一个联pd象。如有一些对?"老师Q课E?班,上课旉"Q通过聚集可以得到一个联pd?评?。聚集表C的?is_part_of"的关pR?</p><p class="main">  概括 Q是从一cd他对象Ş成一个对象。如有桃树、李树、杏树等对象Q我们通过概括或以得到一个对??。概括表C的?is_a"的关p,如“李树”是一U“树”?</p><p class="main">4、基本ER模型的扩? 领会 ) </p><p class="main">  ER(实体联系)模型 是对现实世界的一U抽象,它的主要成䆾?实体 ?联系 ?属?。但是在现实世界中还有一些特D的语义。需要扩展ER模型的概忉|能更好地模拟现实世界?</p><p class="main">   依赖联系 Q在现实世界中,有些实体对一另一些实体有很强的依赖关p,即一个实体的存在必须以另一实体的存在ؓ前提。前者就UCؓ"弱实?Q如在h事管理系l中Q职 工子女的信息是以职工的存在为前提的Q子奛_体是弱实体,子女与职工的联系是一U依赖联pR在ER图中用双U框表示弱实体。用头表示依赖联系?</p><p class="main">  子类 Q在现实中,存在某个实体cd中所有实体同时也是另一实体cd中的实体Q此Ӟ我们U前一实体cd的子类Q后一实体cdUCؓ类。子cL一个很重要的性质l承性。在ER图中Q超cȝ两端双线框表C,q用加圈的线与子cȝq?</p><p class="main">5、ER模型的操? 领会 ) </p><p class="main">  ER模型在数据库概念设计q程中经帔R要进行变换,包括实体cd、联pȝ型和属性的分裂、合q和增删{?</p><p class="main">  实体cd的分裂包?垂直分割 、水q_??</p><p class="main">  注意Q在垂直分割Ӟ键必d分裂后的每个实体cd中出现。在联系cd合ƈӞ所合ƈ的联pȝ型必L定义在相同的实体cd中?</p><p class="main">6?采用ERҎ的数据库概念设计( 领会 ) </p><p class="main">采用ERҎq行数据库概念设计分成三步进行: </p><ul><li><span id="ifnrnzk" class="main">首先设计局部ER模式 </span></li><li><span id="vgykclz" class="main">然后把各局部ER模式l合成全局ER模式 </span></li><li id="ahwtaff" class="main">最后对全局ER模式q行优化 </li></ul><p class="main"><strong>五、逻辑设计 </strong></p><p class="main">1、概念设计的l果是得C个与DBMS无关的概忉|式。?逻辑设计 的目的是把概念设计阶D设计好的基?ER图{?Z选用的具体机器上的DBMS所支持的数据模式相W合?逻辑l构 (包括数据库模式和外模??</p><br /><p class="样式2" align="center"><b>W六?数据库保?/b></p><p></p><p class="main">   本章不是重点章节Q主要内容包括数据库保护的四U措施,数据库的恢复、ƈ发控制、完整性和安全性。了解这些内容及其在SQL语言中的实现方式?</p><p class="main"><strong>一、数据库的恢? </strong>领会 <strong>) </strong></p><p class="main">1?事务的概?Q?事务是一个操作序?。这些操作要么什么都做,要么都不做,是一?不可分割 的工作单位。事务以BEGIN TRANSACTION语句开始,以COMMIT(提交)语句或ROLLBACK(回退或撤?语句l束?</p><p class="main">一个程序的执行可通过若干事务的执行序列来完成?</p><p class="main">2?事务的性质 Q?原子?(atomicity)?一致?(consistency)?隔离?(isolation)?持久?(durability)。称Z务的ACID性质?</p><p class="main"><em>通过教材的例子来理解事务的性质 </em>?</p><p class="main">3、故障类型和恢复Ҏ </p><p align="center"><img src="http://51zk.csai.cn/sjkyl/images/NO00046_001.GIF" height="93" width="528" /></p><p class="main">4、恢复的基本原则和实现方?</p><p class="main">  恢复的基本原?很简单,是?冗余 ”,x据的重复存储 ?</p><ul><span id="gdrovaa" class="main"> 实现Ҏ有: </span><li><span id="okseauy" class="main">(1)定期Ҏ据库q行 复制 或{?dump)。注意几个概念:静态{储、动态{储、v量{储和增量转储? </span></li><li><span id="vcjvghz" class="main">(2)建立?日志 ”文件? </span></li><li id="rjkodxy" class="main">(3) 恢复 。发生故障时有两U处理方法,如数据库已破坏,则由DBA装入最q备份的数据库然后利?日志文g"执行REDO(重做)操作。如数据库未被损坏,但某些数据不可靠Q则pȝ会自动执行UNDO操作恢复数据?</li></ul><p class="main">5?q行记录优先原则 (?先记录,再更斎ͼ先记完,再结?) </p><ul><li><span id="miefqvy" class="main">(1)臛_要等相应的运行记录已l写入“日志”文件后Q才能允怺务往数据库在写数据? </span></li><li id="xexbbrv" class="main">(2)直到事务的所有运行记录都已写入运行“日志”文件后Q才能允怺务完成“END TRANSACTION”处理?</li></ul><p class="main">6、SQL中的恢复操作,可上察?</p><p class="main"><strong>二、数据库的ƈ发控? </strong>领会 <strong>) </strong></p><p class="main">1、ƈ发控制带来的三类问题Q?</p><ul><li><span id="ewdhsit" class="main">(1)丢失更新的问? </span></li><li><span id="vcrdklt" class="main">(2)不一致分析问? </span></li><li id="sdoawqm" class="main">(3)“脏数据”的d?在数据库技术中Q未提交的随后又被撤消的数据为“脏数据”? </li></ul><p class="main">2、ؓ解决q发控制带来的问题,通常要采?锁 (locking)技术,常用的封锁有Q排它型锁( X锁) 和共享型锁( S锁 )两种?</p><p class="main">  X锁的规则称?PX协议 Q其内容为:M企图更新记录R的事务必d执行LOCK X(R)操作Q以获得对该记录q行d的能力,q对它取得X锁。如果未获得X锁Q那么这个事务进入等待状态,一直到获准X锁Q事务l进行?</p><p class="main">  CؓQ?先锁XQ再执行Q取不到Q就{待?</p><p class="main">  PXC协议 Q它由PX协议及一条规?X锁必须保留?事务l点 (COMMIT或ROLLBACK)"l成?</p><p class="main">   S锁的规则称?PS协议 Q其内容为:M要更新记录R的事务必d执行LOCK S(R)操作Q以获得对该记录d的能力ƈ对它取得S锁。如果未获准S锁Q那么这个事务进入等待状态,一直到获准S锁Q事务才l箋q行下去。当事务 获准对记录R的要锁后,在记录R修改前必LS锁升为X锁?</p><p class="main">  CؓQ?先锁SQ再执行Q锁不到Q就{待Q若要修改则升X ?</p><p class="main">  PSC协议Q由PS协议和“将S锁保持C务终点”组成?</p><p class="main">3?z锁 Q是指某个事务永q处于等待状态,得不到执行的现象。避免活锁的Ҏ是采用“先来先服务”策略?</p><p class="main">  死锁 Q有两个或以上的事务处于{待状态,每个事务都在{待另一个事务解除封锁,它才能l执行下去,l果M一个事务都无法执行Q这U现象就是死锁?</p><p class="main">  解除死锁的方法是由DBMS中的“死锁测试程序”来查,如发现死锁则牺牲一个事务,q做回退操作,解除它的所有封锁?</p><p class="main">4?两段锁?( 识记 ) </p><p class="main">  两段锁协议规定所有事务都要遵守下列规则:(1)在对M数据q行d操作之前Q事务首先要获得对该数据的封锁;(2)在释放一个封锁之后,事务不再获得M其他锁?</p><p class="main">  针对课本的例子来理解?</p><p class="main"><strong>三、数据库的完整? </strong>领会 <strong>) </strong></p><p class="main">1、数据库?完整?是指数据?正确性和相容?。数据库中数据发生错误,往往是由非法更新引v的?</p><p class="main">数据库完整性是通过DBMS?完整性子pȝ 实现的,它有两个功能Q?</p><ul><li><span id="cgksstt" class="main">(1)监督事务的执行,q测试是否违反完整性规则? </span></li><li id="wwvkrok" class="main">(2)如有q反Q则采取恰当的操作,如拒l、报告违反情况,Ҏ错误{方法进行处理?<br /></li></ul><p class="main">  数据库完整性子pȝ 是根据?完整性规则集 ?工作的,q些完整性规则包括: ?完整性规则?域联p?的规则?关系完整?规则(一个比一个大) </p><p class="main">2、SQL中的完整性约?</p><p class="main">  在SQL中,表达完整性约束的规则?主键U束 ?外键U束 ?属性值约??全局U束{?多种形式?</p><ul><li><span id="kcvhsxf" class="main">主键U束Q可用主键子句或主键短语 PRIMARY KEY 来定义? </span></li><li><span id="oorgcal" class="main">外键U束Q可用外键子句来定义?FOREIGN KEY (S#) REFERNCE S(S#) </span></li><li><span id="lpextnv" class="main">属性值约束:包括非空值约? NOT NULL )和基于属性的查子? CHECK ) 及域U束子句 ?CREAT DOMAIN AGE SMALLINT CHECK (&#118alue>10) </span></li><li id="gnugnws" class="main">全局U束Q包括基于元l的查子? CHECK )和断a( CREATE ASSERTION 断言?CHECK 条g)?</li></ul><p class="main"><strong>四、数据库的安全? </strong>识记 <strong>) </strong></p><p class="main">数据库的安全性是指保护数据库防止不合法的使用Q以免数据的泄漏、非法更改和破坏?</p><p class="main">1、安全性别:包括 环境U??职员U??OSU??|络U??数据库系l ?</p><p class="main">2、用h应用E序 使用数据库的方式UCؓ权限 Q权限的U类Q?</p><ul><li><span id="ufyggai" class="main">讉K数据权限Q?诅R插入、修攏V删?四种 </span></li><li id="xiwpwbp" class="main">修改数据库模式权限: 索引 (创徏或删除烦??资源 (创徏新关p??修改 (增删关系l构属??撤消权限 (撤消关系) </li></ul><p class="main">3、权限的转授与回ӞM?权限?Q只要根l点到用L点之间存在一?路径 Q那么它有权限Q回收时是删去某些路径?</p><p class="main">4、SQL中的安全性控?</p><p class="main">  SQL中有两个安全机制Q一?视图机制 、二?授权子系l??</p><p class="main">  视图是从一个或几个 基本?导出的表Q是 虚表 Q视囑֮义后可以像基本表一L于查询和删除Q但?更新操作(增、删、改) 会受到限制?</p><p class="main">  视图机制 把用户可以用的数据定义在视图中Q这L户就不能使用视图定义外的其他数据Q从而保证了数据库的安全性。视图机制ɾpȝh 三个优点 Q?数据安全??数据独立??操作便??</p><p class="main">  授权机制 可以保证用户只能q行其权限范围内的操作?</p><p class="main">6、数据加密可更好C证数据库中数据的安全性,采用加密法l把源文变ؓ密文来实现。常用的加密法有?替换Ҏ ”和 明键加密??</p><p class="main">  同时Qؓ保证数据库的安全Q也应注意自然环境的安全性?</p><br /><img src ="http://www.shnenglu.com/urgentmind/aggbug/7721.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/urgentmind/" target="_blank">TanZek</a> 2006-05-27 10:22 <a href="http://www.shnenglu.com/urgentmind/articles/7721.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>国外大学部分现用教材及教学参考书http://www.shnenglu.com/urgentmind/articles/1903.htmlTanZekTanZekTue, 20 Dec 2005 07:49:00 GMThttp://www.shnenglu.com/urgentmind/articles/1903.htmlhttp://www.shnenglu.com/urgentmind/comments/1903.htmlhttp://www.shnenglu.com/urgentmind/articles/1903.html#Feedback0http://www.shnenglu.com/urgentmind/comments/commentRss/1903.htmlhttp://www.shnenglu.com/urgentmind/services/trackbacks/1903.html阅读全文

TanZek 2005-12-20 15:49 发表评论
]]>
递归模型与递归法的设?/title><link>http://www.shnenglu.com/urgentmind/articles/1381.html</link><dc:creator>TanZek</dc:creator><author>TanZek</author><pubDate>Mon, 28 Nov 2005 16:28:00 GMT</pubDate><guid>http://www.shnenglu.com/urgentmind/articles/1381.html</guid><wfw:comment>http://www.shnenglu.com/urgentmind/comments/1381.html</wfw:comment><comments>http://www.shnenglu.com/urgentmind/articles/1381.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/urgentmind/comments/commentRss/1381.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/urgentmind/services/trackbacks/1381.html</trackback:ping><description><![CDATA[<P><STRONG>递归模型<BR><BR></STRONG>一般由<STRONG>递归出口</STRONG>?STRONG>递归?/STRONG>两部分组成,前者确定递归C时ؓ止,后者确定递归的方式?BR><BR><STRONG>递归出口</STRONG>的一般格式ؓQ?BR>            f(s<SUB>0</SUB>)=m<SUB>0</SUB><BR>q里s<SUB>0</SUB>与m<SUB>0</SUB>均ؓ帔RQ有些递归问题可能有多个递归出口?BR><BR><STRONG>递归?/STRONG>一般格式ؓQ?BR>            f(s)=g(f(s<SUB>1</SUB>),f(s<SUB>2</SUB>),…?f(s<SUB>n</SUB>),c<SUB>1</SUB>,c<SUB>2</SUB>,…?c<SUB>m</SUB>)<BR>q是S是一个递归大问题,s<SUB>1</SUB>,s<SUB>2</SUB>,…?s<SUB>n</SUB>为递归问题,c<SUB>1</SUB>,c<SUB>2</SUB>,…?c<SUB>m</SUB>是若q个可以直接解决的问题。g为递归函数Q反映了递归问题的结构?BR><BR>递归设计的步骤:<BR>1.   对原问题f(s)q行分析Q假讑և合理的较问题f(s')?BR>2.   假设f(s')是可解的Qƈ在此基础上确定f(s)的解Q即l出f(s)与f(s')之间的关pR?BR>3.   定一个特定情况(如f(1)或f(0)Q的解,作ؓ递归出口?/P><img src ="http://www.shnenglu.com/urgentmind/aggbug/1381.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/urgentmind/" target="_blank">TanZek</a> 2005-11-29 00:28 <a href="http://www.shnenglu.com/urgentmind/articles/1381.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>排列问题http://www.shnenglu.com/urgentmind/articles/1380.htmlTanZekTanZekMon, 28 Nov 2005 16:08:00 GMThttp://www.shnenglu.com/urgentmind/articles/1380.htmlhttp://www.shnenglu.com/urgentmind/comments/1380.htmlhttp://www.shnenglu.com/urgentmind/articles/1380.html#Feedback0http://www.shnenglu.com/urgentmind/comments/commentRss/1380.htmlhttp://www.shnenglu.com/urgentmind/services/trackbacks/1380.html排列问题最初出现在计数中,今日学习《离散数学结构》,发现定义竟源于此U?/FONT>

?SPAN lang=EN-US>A?SPAN lang=EN-US>A的一个双称?SPAN lang=EN-US>A的一个排列(permutationQ?/SPAN>
如果A={a1,a2,…?an}是有限集Q?SPAN lang=EN-US>p?SPAN lang=EN-US>A上的双射Q可以用另一U方式表C个双,?SPAN lang=EN-US>A?SPAN lang=EN-US>n个元?SPAN lang=EN-US>a1,a2,…?an和对应的n个函数?SPAN lang=EN-US>p(a1),p(a2),…?p(an)排成两行Q如下所C?BR>equation.bmp
A中元素的n个函数?SPAN lang=EN-US>p(a1),p(a2),…?p(an)的序列,实际是A中元素的重新排列?BR>Q这是一U新的方式表C双。注意对比关pȝ有序对表CŞ式,与函数表CŞ式。)

Q未完,待箋Q?/SPAN>



TanZek 2005-11-29 00:08 发表评论
]]>
þþþþþƷ| Ʒþþþþù| ޹˾þۺҰ| ƷȾþëƬ| ޾Ʒһۺ99þ| Ʒþþþa| 99ȳ˾ƷȾþ| ޹ƷþõӰŷ| ԻԻ˿þþ| ɫþùƷ12p| þֻоƷҳ| ձɫվWWWþ| þþþƷSmվ| ˳ɾƷþþþ| þþƷަvDz| þˬˬav| ھƷþþþӰԺ˾ | 99þþƷҹһ| ŷ þ| ľƷþþþùַ | þҹɫ˾Ʒ| 97þۺϾƷþþۺ| ݺɫþþۺ| һþƵ| þþƷž޾Ʒ| ۺ˾þۺ| þۺ| ŷ þ| ģ˽ĹƷþ| Ʒþþþþù˽| þþþƷҰ| ձŷþþþѲ| ˼˼þ99ѾƷ6| ҹþþþþþþõӰ | þۺϳDž | պƷþĻ | þþƷһ| Ʒþþþþ| þԭƷ | þþƷһ| ˳AVɫۺϾþ|