E-R模型
实体-联系模型(Entity-Relationship Model,E-R模型),实体是指现实中区别于其他对象的一种“物体”或一件“事情”,例如一名学生,一个项目等等。同一个类型中所有的实体被叫做实体集,对应于数据库的一张表,一个实体则对应于一条记录。不同的任务之间,就是通过联系关系整合到一起。
一个设计良好的数据库,不应该存在以下两个问题:1)重复记录;2)不能表示某种信息;
事务
事务(transaction)表示对数据库的单一逻辑操作的集合,具有四大特性:ACID
Atomicity:原子性,一个事务要么发生,要么不发生。由恢复管理器控制原子性,如果在事务执行过程中发生未知错误,则回滚(roll-back)到上一个状态。一般采用日志机制保证原子性。
Consistency:一致性,两个程序同时对数据库中同一条记录进行操作,必须保证结果是一致的。如两个银行柜员同时对同一个账号取钱,结果必须是减掉两次取钱之后的结果,不能因为并发就产生不同的结果。
Isolation:隔离性,两件事务即使是同时发生的,也要由事务管理器控制其串行执行,在每个事务看来,彼此是先后执行的。通过锁机制或阻塞机制实现。
Durability:持久性,一个事务一旦结束,就不可更改,不可回滚。事务完成之后先存入日志中,这样即使发生故障,数据库也可以根据历史日志确保更改的完整性。
--------------------------------补充不一致性--------------------------------------
不一致性的原因和结果有以下几种:
A和B同时修改:A的修改可能会丢失;
A读,B修改:A不可重复读,即A读两次发现结果不一致;
A读,B修改后又撤销:A读到脏数据;
A读,B删除部分数据:A幻读;
事务管理器
事务管理器(transaction manager)包括故障恢复管理器和并发控制管理器组成
范式
数据库设计包含许多种范式,常见的理解到第三范式就够了。
第一范式:所有字段都不可以再分,每个字段中不能够存放多个数据;
第二范式:所有属性都必须依赖于主键,不能只依赖于主键的一部分(针对联合主键);
第三范式:每个表中都不能存有其他表中的非主键的字段;