• SqlServer------范式小结


    说明:大多数初学者对于关系数据库中的范式很是头疼,我本人也是,所以今天又看了视频,总结了一下内容,尽量语言通俗易懂,少用专业术语以及概念。

    首先要理解几个键值。

    超键:在关系模式中,能唯一标识元组的属性集称为 super key。

    候选键:关系模式中,能唯一标识元组并且不含多余属性的属性集称为候选键。值得注意的是,超键与候选键的区别,超键可能含有多余属性,而候选键不能。

    主键:在一个关系的若干个候选键中随意指定一个作为关键字,此关键字就是主键。

    外键:关系R1中的属性或属性组非R1的码,但它是其他关系的码,那么该属性集对于关系模式R1而言是外键。

    主属性:候选码的所有属性称为主属性。

    如何区分超键,候选键,主键?

             相同点:功能方面,用于唯一标识一个元组。

             不同点:超键有多余的属性,主键和候选键没有,它们中的属性是必要的。主键是候选键的一个,只是被数据库设计者选中而已。

             联想理解:候选人和候选键,主席与主键。(也就是说,候选键中的任何一个键都可以作为主键,只是设计者之选择了其中的一个。)

    (例子是检验概念的唯一标准),大家看例子吧。

    例1:学生(学号,姓名,性别,专业号,年龄)

    (学号,姓名)是超键,而不是候选键,学号是候选键,同时也是主键。

    例2:学生(学号,姓名,性别,专业号,年龄)主键:学号,外键:专业名

             专业(专业号,专业名)主键:专业号,外键:无

    例3:成绩(学号,姓名,课程号,成绩)学生无同名。

             (学号)等价于(姓名)

             (学号,课程号)候选键

             (姓名,课程号)候选键

             所以主属性:学号,姓名,课程号

    范式

    1NF:通俗的说,就是所有的属性都是不可再分的,复合属性是不允许的。(这一点容易理解)

    2FN:

    先了解部分函数依赖的概念。

    部分函数依赖:主码的部分只要有一部分就可以确定属性的值。

    在第一范式的前提下,保证函数依赖关系是全部函数依赖,而非部分函数依赖。

     

    第三范式:

             在第二范式的前提下,且没有函数传递依赖于码。

    定理:如果某个关系模式,它的关键字是单个关键字,没有部分的函数依赖问题,那么它的肯定是2NF。(仔细理解这句话)

     

           

    我有点笨,还是初学者,所以有什么不对的地方,还请大家多多指点。

  • 相关阅读:
    序列终结者
    CF696C PLEASE
    [清华集训]Rmq Problem / mex
    CF786B Legacy
    链表结构详解
    synchronized同步方法和同步代码块的区别
    关于守护线程定义
    线程的优先级
    mysql查询当天的数据
    java以正确的方式停止线程
  • 原文地址:https://www.cnblogs.com/zi-xing/p/4019844.html
Copyright © 2020-2023  润新知