关闭

关系模式

148人阅读 评论(0) 收藏 举报
分类:
一个关系就是一个table,关系模型就是处理table的,有三部分组成:
    描述DB各种数据的基本结构形式
    描述table和table之间可能发生的各种操作(关系运算)
    操作应遵循的约束条件(完整性约束)
关系模型的三个要素:
    基本结构
    基本操作:
        并、差、广义积、选择、投影、交、连接、除
    完整性约束:
        实体完整性、参照完整性、用户自定义的完整性
 table的定义:
    
列定义:
    定义列的取值范围(域Domain)
    域是一组值得集合。域的基数是集合中元素的个数
元组定义:
    元组的笛卡儿积:
    元组是从每一个域中取一个值所形成的一种集合,,这种所有可能组成的集合就是笛卡儿积,
    若Di的基数是mi,则笛卡尔的基数(个数)是:m1*m2*m3.....*mn
笛卡尔积德所有元组并不是都有意义的
关系:
    是一组域D1 D2 D3 ……Dn 的笛卡儿积的子集
    笛卡儿积中具有某种意义的元组成为一个关系
关系可以用R(A1:D1,A2:D2……An:Dn),(A1:D1含义是属性名师A1,其值来自于D1),可简记为R(A1, A2, ……An),这种描述被称为关系模型或表标题
关系模式R(A1:D1,A2:D2……An:Dn),中属性向域的映像在很多DBMS中一般直接说明为属性的类型、长度等,例如:
    SC(S# char(8), C# char(8), Grade float(1))//关系模式
关系模式与关系:
    同一模式下,可有很多的关系
    关系模式是关系的结构,关系是关系模式在某一个时刻的数据
    关系模式是稳定的,而关系是在某一时刻的值,是随时间可能变化的

关系特性

列是同质:
    每一列的分量来自同一个域,是同一数据列行
    理论上:关系中的任意两个元组是不能完全相同的(集合中不能有相同的两个元素)实际中:表可能并不完全遵守此特性
    元组相同是指两个元组的每个分量都是相同的
    属性不可再分特性(关系第一范式):
        复合属性、多值属性不符合第一范式
            解决:复合属性:只保留一种值
                       多值属性:新建一个元组
候选码(Candidate key)/候选键:
    能够唯一区分元组的一个属性,叫候选码。例如:
学生(S#, Sname, Sage, Sclass)通过S#可以确定这个人是谁,通过其他几个属性确定不了
    候选码可以由几个属性共同构成
主码(Primary Key)/主键:
    当有多个候选键的时候,选定一个作为主码
主属性与非主属性:
    包含在任何一个候选码中的属性叫主属性
外码(foreign Key)/外键:(连接两个关系的属性)
   不是当前关系的候选码,但是是另外一个关系的候选码,这个属性就是外键。例如:关系“合同”中,“客户号”不是候选码,但是“客户号”是关系“客户”的候选码,所以“客户号”是一个外键。
实体完整性:
    关系的主码中的属性值不能为空值(空值:不知道,不存在或无意义的值)



0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:44923次
    • 积分:1624
    • 等级:
    • 排名:千里之外
    • 原创:122篇
    • 转载:3篇
    • 译文:0篇
    • 评论:3条
    最新评论