数据库设计的规范化

来源:互联网 发布:网络摄影机安装视频 编辑:程序博客网 时间:2024/05/01 10:24

  现在开始整理一下,关系数据库理论这一章的内容。来自《数据库系统概论  萨师煊  王珊   第三版》,以前在学校看过,不过忘了,现在工作了在看看,有的内容这才明白了是怎么回事。

 

           先理解了这段话:现实世界随着时间在不断变化,因而在不同的时刻,关系模式的关系也会有所变化。但是,现实世界的许多已有事实限定了关系模式所有可能的关系必须满足一定的完整性约束条件这些约束条件或者通过对属性取值范围的限定或者通过属性值间的相互关联(主要体现于值的相等与否)反映出来。后者成为数据依赖,它是数据模式设计的关键。关系模式应当刻划这些完整性约束条件。

于是一个关系模式应当是一个五元组。

   R<U,D,dom,F> 

   <1> 关系名R,它是符号化的元组语义,

   <2>一组属性U;

   <3>属性组U中属性所来自的域D;

    <4>属性到域的映射 dom;

    <5>属性组U上的一组数据依赖F;

 

     先说以上我对上面这几段标上颜色句子的理解:

      <1>黄色句子:一个表的建立:表达了现实世界的一个事实,表达了一个客户的需求。这个需求要满足一定的约束条件。

      <2>蓝色句子:例如  Student(StudentNO,StudentName) 其中StudentNo属性取值 限定了不能重复。

 

 

        函数依赖:

    函数依赖和别的数据依赖一样是语义范畴的概念,只能根据语义来确定函数依赖。函数依赖不是指关系模式R的某个或某些关系满足的约束条件,而是指R的一切关系要满足的约束条件。

   理解:例如 姓名->年龄  这个函数依赖成立的条件是,你事先定义的语义概念是:只有在姓名不重复的情况下,年龄才能够唯一确定。

           如果说 姓名有重复的,那么这个依赖关系就不存在了。要做修改。或者  做限定,如果有重复的姓名,拒绝插入。

 

       函数依赖的定义:

       设R<U> 是属性集U上的关系模式。X,Y是U的子集。若对于R<U>的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称X函数确定Y 或 Y函数依赖于X  记作  X->Y.

 

       理解:       StudentNo                  StudentName

                       10001                          甲

                       10001                          甲

 

             对于这个关系,两个元组 在  StudentNo上的值相等, 在StudentName上的值也相同   这个关系就不满足函数依赖。

 

 

        下面一些术语:

        X->Y  但是 Y不包含X 则称 X->Y 是非平凡的函数依赖。

        X-> Y  但是Y包含X     则称X->Y 是平凡的函数依赖。

        若X->Y 则x 是决定因素

         若Y不函数依赖于X 则   记作 X ! ->Y

 

 

        完全函数依赖:                                                                                                                                F

           在R<U>中,如果X->Y  ,并且对于X的任何一个真子集  Z,都有  Z!->Y  则称Y 对X 完全函数依赖。 记作  X—>Y.

          若  X->Y 但是Y不完全函数依赖于X  ,则称Y对X部分函数依赖。

          记作                P

                          X    ->  Y

 

        若  X->Y  Y!->X  Y->Z    则称  Z对X传递依赖。

 

 

 

 

原创粉丝点击