• 数据库规范化理论


    1.候选键

    候选键(候选码)是能够唯一标示元组却无冗余的属性组合,可以有多种不同的候选键,在其中任选一个作为主键。候选键的求取可以利用图示法找入度为0的属性集合,并在此基础上进行扩展,最终找到能够遍历全图的最小属性组合作为候选键,对于入度为0在关系依赖集中可以理解为从未在箭线右侧出现候选键(候选码)是能够唯一标示元组却无冗余的属性组合,可以有多种不同的候选键,在其中任选一个作为主键。候选键的求取可以利用图示法找入度为0的属性集合,并在此基础上进行扩展,最终找到能够遍历全图的最小属性组合作为候选键,对于入度为0在关系依赖集中可以理解为从未在箭线右侧出现。

    组成候选码的属性就是主属性,其他为非主属性。

    外键是其他关系模式的主键

    2. 范式

    **第一范式(1NF):**在关系模式R中,当且仅当所有域只包含原子值,即每个属性都是不可再分的数据项,则称关系模式R是第一范式。

    **第二范式(2NF):**当且仅当关系模式R是第一范式(1NF),且每一个非主属性完全依赖候选键(没有不完全依赖)时,则称关系模式R是第二范式。

    **第三范式(3NF):**当且仅当关系模式R是第二范式(2NF),且R中没有非主属性传递依赖于候选键时,则称关系模式R是第三范式。

    **BC范式(BCNF):**设R是一个关系模式,F是它的依赖集,R属于BCNF当且仅当其F中每个依赖的决定因素必定包含R的某个候选码。

    3.规范化过程:分解关系模式

    保持函数依赖:设数据库模式ρ={R1,R2,…,Rk}是关系模式R的一个分解,F是R上的函数依赖集,ρ中每个模式Ri上的FD集是Fi。如果{F1,F2,…,Fk}与F是等价的(即相互逻辑蕴涵),那么称分解ρ保持FD。

    无损联接分解:指将一个关系模式分解成若干个关系模式后,通过自然联接和投影等运算仍能还原到原来的关系模式。(表格法,公式法-仅限分解为2个子关系)

    4.数据库完整性约束

    实体完整性:规定其主属性不能去空值

    参照完整性(也称为引用完整性):规定其外键为参照表的主键值或为空值。

    用户自定义完整性:指用户针对某一具体的关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足的予以要求,由应用的环境决定

    触发器:一种复杂的完整性约束。

  • 相关阅读:
    Python+大数据-Spark技术栈(二)SparkBase&Core
    Redis与Mysql的数据一致性
    输入一个url后,会发生什么事?
    前端性能优化
    Linux 进程控制
    国产32位单片机 普冉PY32F002B 适用于LED灯驱,控制器等
    python --监听鼠标事件
    区分bug 前后端归属之后,我再也不背锅了
    用Rust开发一个类似SQL Server的数据库系统的步骤和关键技术
    js添加dom到指定div之后,并给添加的dom类名,然后设置其样式,以及el-popover层级z-index过高问题解决。
  • 原文地址:https://blog.csdn.net/flysh05/article/details/126735337