B+Tree
- 每个分支节点至多又4颗子树。
- 根节点或者没有子树,或者至少有2颗子树。
- 根节点除外,其他节点分支节点至少有2棵子树。
- 有n棵子树的节点恰好有n个关键字。子树个数与该节点的关键字个数相同。
- 所有叶子节点包含全部关键子指向相应记录的指针,而且叶子节点按关键字大小顺序链接。并将所有叶子节点链接起来。
- 所有分支节点(可看成是索引的索引)中仅包含它的各个子节点(即下级索引的索引块)中最大的关键子指向子节点的指针。
B+树查找 - 通过指针可以实现随机查找;当需要查找一个数时,通过和根节点的关键子对比,决定查找的范围。
- 由于B+树的所有叶子节点都带有指针按照顺寻存储,所以可以通过该指针实现顺寻查找。
B+树插入数据
将关键字k插入到B+树中,过程分为两步完成:
- 查找关键字插入的节点(注意B+树的插插入节点一定是叶子节点层节点)。
触发器的触发过程
触发器(trigger)是个特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由个事件来触发,比如当对一个表进行操作( insert,delete, update)时就会激活它执行。触发器经常用于加强数据的完整性约束和业务规则等。 触发器可以从 DBA_TRIGGERS ,USER_TRIGGERS 数据字典中查到。
触发器可以查询其他表,而且可以包含复杂的 SQL 语句。它们主要用于强制服从复杂的业务规则或要求。例如:您可以根据客户当前的帐户状态,控制是否允许插入新订单。
触发器也可用于强制引用完整性,以便在多个表中添加、更新或删除行时,保留在这些表之间所定义的关系。然而,强制引用完整性的最好方法是在相关表中定义主键和外键约束。如果使用数据库关系图,则可以在表之间创建关系以自动创建外键约束。
delete与truncate命令的区别
1、命令类型delete是数据操作语言(DML)命令;而truncate是数据定义语言(DDL)命令。 2、功能delete命令根据指定的SQL语句从表中删除单个,多个或所有记录;而truncate命令从数据库中删除所有记录和表结构。