关系数据库理论

关系数据库理论:

完全函数依赖:U是属性全集,X和Y是U的子集,如果X->Y并且对于X的任何一个真子集X‘,都有X’-/>Y,则称Y对于X完全函数依赖,如果对于某个X的真子集X‘,X’->Y,称为部分函数依赖。
传递函数依赖:U是属性全集,X,Y,Z是U的子集,若X->Y,但Y-/>X,而Y->Z,则称Z对X传递函数依赖

候选码:可以作为一条元组的唯一表示的一个属性或属性集。
一个关系中可能有多个候选码,从中选择一个作为主码,或者称为主关系键,主键

非主属性:不包含在任何候选码中的属性称为非主属性。
主属性:除了非主属性,其余都是主属性。

第一范式:其分量都是不可分的数据项
第二范式:消除1NF关系中非主属性对键的部分函数依赖,每个非主属性完全函数依赖于主键。
第三范式:消除2NF关系中非主属性对键的传递函数依赖,每个非主属性都不传递依赖于主关系键。
BC范式:消除3NF关系中主属性对键的部分函数依赖和传递函数依赖,不存在主属性对键的部分函数依赖和传递函数依赖。

MYsql中的B+树:(参考链接:https://blog.csdn.net/xlgen157387/article/details/79450295)
二叉树:
1、任意节点左子树不为空,则左子树的值均小于根节点的值;
2、任意节点右子树不为空,则右子树的值均大于于根节点的值;
3、任意节点的左右子树也分别是二叉查找树;
4、没有键值相等的节点;
二叉树
平衡二叉树:
所有结点左右子树高度差不超过1,要通过旋转来保持其平衡。旋转非常耗时,仅仅适用于插入删除较少,而查询较多的情况。
红黑树:
1、每个节点非红即黑;
2、根节点是黑的;
3、每个叶节点(叶节点即树尾端NULL指针或NULL节点)都是黑的;
4、如果一个节点是红的,那么它的两儿子都是黑的;
5、对于任意节点而言,其到叶子点树NULL指针的每条路径都包含相同数目的黑节点;
6、每条路径都包含相同的黑节点;
从根节点到子节点,没有一条路径的长度会超过另外一条长度的两倍。
红黑树
B+树:
B/B+树是为了磁盘或其它存储设备而设计的一种平衡多路查找树

B树的性质
1、定义任意非叶子结点最多只有M个儿子,且M>2;
2、根结点的儿子数为[2, M];
3、除根结点以外的非叶子结点的儿子数为[M/2, M];
4、每个结点存放至少M/2-1(取上整)和至多M-1个关键字;(至少2个关键字)
5、非叶子结点的关键字个数=指向儿子的指针个数-1;
6、非叶子结点的关键字:K[1], K[2], …, K[M-1];且K[i] < K[i+1];
7、非叶子结点的指针:P[1], P[2], …, P[M];其中P[1]指向关键字小于K[1]的子树,P[M]指向关键字大于K[M-1]的子树,其它P[i]指向关键字属于(K[i-1], K[i])的子树;
8、所有叶子结点位于同一层;
在这里插入图片描述
这里只是一个简单的B树,在实际中B树节点中关键字很多的,上面的图中比如35节点,35代表一个key(索引),而小黑块代表的是这个key所指向的内容在内存中实际的存储位置,是一个指针。

B+树的性质(下面提到的都是和B树不相同的性质)(B+树就像文件系统文件的查找一样)
(每个节点最多有n个键,最多有n+1个指针)
1、非叶子节点的子树指针与关键字个数相同;
2、非叶子节点的子树指针p[i],指向关键字值属于[k[i],k[i+1]]的子树.(B树是开区间,也就是说B树不允许关键字重复,B+树允许重复);
3、为所有叶子节点增加一个链指针;
4、所有关键字都在叶子节点出现(稠密索引). (且链表中的关键字恰好是有序的);
5、非叶子节点相当于是叶子节点的索引(稀疏索引),叶子节点相当于是存储(关键字)数据的数据层;
6、更适合于文件系统;
B+树维基百科参考
在这里插入图片描述
非叶子节点(比如5,28,65)只是一个key(索引),实际的数据存在叶子节点上(5,8,9)才是真正的数据或指向真实数据的指针。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值