第六章关系数据理论

本章讨论关系数据理论

  6.1问题的提出

    前面已经介绍了关系数据库的基本概念,关系模型的三个部分以及关系数据库的标准语言SQL。但还有一个基本问题:如何构造一个适合它的数据库模式,这是数据库设计问题。

 

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

      R(U,D,DOM,F)

      R:关系名,表名

      U:表示一组属性

      D:为属性组属性中的取值范围

      DOM:为属性到域的映射

      F:为属性组的数据依赖

      

由于D,DOM与模式设计关系不大,因此在本章中把关系模式看做一个三元组:  R< U,F>   当U属性组上的一个属性r满足F时,r称为关系模式R<U,F>的一个关系。

 

做为一个二维表,关系要符合一个最基本的条件:每一个分量必须是不可分的数据项。满足这个条件的模式就属于第一范式(1NF)。通俗的来讲1NF就是不可以有表中表(例如:总金额属性,不能再分为数量属性和单价属性),必须属性列是唯一的。

 

 

数据依赖:是一个关系内部属性与属性之间的一种约束关系。    举例:  当知道学生的Sno就可以推出来学生的姓名Sname来          Sno——>Snome

   1.函数依赖(FD):比如描述一个学生的关系,可以有学号(Sno),姓名(Sname),系名(Sdept)等等属性,由于一个学号只对应一个学生,一个学生只在一个系学习。因而当学号值确定之后,学生的姓名以及所在系的值也就被唯一地确定了。属性间的这种依赖关系类似于数学中的函数y=f(x),自变量X确定之后,相应的函数值y也就唯一确定了。

      例如:Sname  =f(Sno) 即Sno函数决定Sname,或者说Sname函数依赖于Sno     记作:   Sno——>Sname

 

 

总结:

    1.R< U,F>   当U属性组上的一个属性r满足F时,r称为关系模式R<U,F>的一个关系。

    2. 1NF不可以有表中表,必须属性列是唯一的。

    3.数据依赖是y=f(x),已知一个属性值推出另外一个值。

上一篇:Android导入自定义的jar包时出现 E/AndroidRuntime(486): java.lang.NoClassDefFoundError错误


下一篇:利用Python操作数据库(SQL Sever)