前滚和回滚:
1、前滚是将未完成的操作继续完成,回滚是将执行完的操作回复过来
2、数据库中的undo、rollback,既撤消和回滚。首先这2个操作是针对事务来说的
3、以为数据库异常重启或者人为的停止了,数据并没有及时更新到文件中, 但是日志里面已经记录了,当数据库重启的时候就会把那些已经完成的事务“前滚”相当于是重做一遍,把那些没有完成的事务“回滚”
4、回滚是事物执行失败,数据跟没有操作事物前一样
主键约束,唯一性约束,主键,外键:
1、唯一性约束与主键比较相似,但是有区别,唯一性约束是一列中不可出现重复值,但是可以是null,只要null出现一次就好了。主键是primary key 是用来唯一标识表中的某列的,而且不可以是null
2、
主键是唯一证明,在茫茫人海中,怎么区分你和别人呢。通过身份证(当然也有别的,指纹之类的)。每个身份证号都是唯一的。不可能有两个人有同一个身份证号(理论上)。 外键相当于引用别人的主键。比如说你买房子,有房产证。那个房产证上要有你的身份证号。这里,你的身份证号就成了外键 唯一性约束。就是强制性要求,在范围内(一张表)该列的值不能重复。是唯一的。主键必然是唯一的。 e.g A B 1 x 2 x 上表B列就不满足唯一性约束(x有两个), 视图,就是在表之上抽取出来的。基于表,没有物理结构,不实际存储数据。 比如你属于一个很大的家族x的成员。然后你,你父母又是一个小的单位y。这样y就相当于从x根据某种条件筛选中的视图。
3、
主键:就是这个表的目录,以方便你查询、更新等等,既然是“目录”,所以不可能有重复的定义出现,所以也就自动有一个主键约束。 外键:就是这个表外在的约束,要求某一列值,必须与外面的某一数据相符 ,是表与表之间数据的约束 。 主键约束 :就是要求,主键不能重复,才可以生成“目录”。 唯一约束 :就是要求,某个或某几个数据不能重复。
事务:
数据库事务是指作为单个逻辑工作单元执行的一系列操作。
设想网上购物的一次交易,其付款过程至少包括以下几步数据库操作:
· 更新客户所购商品的库存信息
· 保存客户付款信息--可能包括与银行系统的交互
· 生成订单并且保存到数据库中
· 更新用户相关信息,例如购物数量等等
正常的情况下,这些操作将顺利进行,最终交易成功,与交易相关的所有数据库信息也成功地更新。但是,如果在这一系列过程中任何一个环节出了差错,例如在更新商品库存信息时发生异常、该顾客银行帐户存款不足等,都将导致交易失败。一旦交易失败,数据库中所有信息都必须保持交易前的状态不变,比如最后一步更新用户信息时失败而导致交易失败,那么必须保证这笔失败的交易不影响数据库的状态--库存信息没有被更新、用户也没有付款,订单也没有生成。否则,数据库的信息将会一片混乱而不可预测。
数据库事务正是用来保证这种情况下交易的平稳性和可预测性的技术
原子:
一个事务,要么全部执行完,要么什么都不执行;
联合索引,唯一索引,聚集索引:
根据数据库的功能,可以在数据库设计器中创建三种索引:唯一索引、主键索引和聚集索引。有关数据库所支持的索引功能的详细信息,请参见数据库文档。
提示:尽管唯一索引有助于定位信息,但为获得最佳性能结果,建议改用主键或唯一约束。
唯一索引 唯一索引是不允许其中任何两行具有相同索引值的索引。 当现有数据中存在重复的键值时,大多数数据库不允许将新创建的唯一索引与表一起保存。数据库还可能防止添加将在表中创建重复键值的新数据。例如,如果在employee表中职员的姓(lname)上创建了唯一索引,则任何两个员工都不能同姓。
主键索引 数据库表经常有一列或列组合,其值唯一标识表中的每一行。该列称为表的主键。 在数据库关系图中为表定义主键将自动创建主键索引,主键索引是唯一索引的特定类型。该索引要求主键中的每个值都唯一。当在查询中使用主键索引时,它还允许对数据的快速访问。
聚集索引 在聚集索引中,表中行的物理顺序与键值的逻辑(索引)顺序相同。一个表只能包含一个聚集索引。 如果某索引不是聚集索引,则表中行的物理顺序与键值的逻辑顺序不匹配。与非聚集索引相比,聚集索引通常提供更快的数据访问速度。
数据库和实例的区别:
|