本章讨论关系数据理论 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),已知一个属性值推出另外一个值。