数据库发展阶段:人工管理阶段;文件管理阶段;数据库系统阶段;
DBMS的数据控制功能:统一管理和控制;数据安全性(security);数据完整性(integrity):正确性、有效性及相容性;并发(concurrency)控制;数据库恢复(recovery)
数据模型要素:数据结构;数据操作;数据的约束条件
数据模型:
非关系模型包括:层次模型(hierarchical model);网状模型(network model);
关系模型(relational model)
DBMS功能:数据定义;数据操纵;数据库运行管理;数据组织、存储和管理;数据库的建立与维护;数据通信接口
DBMS组成:数据定义语言(data definition language DDL)及其翻译处理程序;数据操纵语言(data manipulation language DML)及其翻译程序;数据库运行控制程序;实用程序
DBMSS实现方法:
N方案:DBMS与应用程序融合在一起;
2N方案:一个DBMS进程对应一个用户进程;
M+N方案(M<N):多个DBMS进程对应多个用户进程;
N+1方案:一个DBMS进程对应所有用户进程
视图:从一个或是几个基本表或视图导出的虚表,视图在进行查询的时候需要将对视图的查询转换为对基本表的查询(视图消解view resolution)
DBMS的并发控制是以事务(transaction)为单位进行,定义事务的SQL有三条:
Begin Transaction; Commit; Rollback
事务的属性:原子性(atomicity);一致性(consistency);隔离性(isolation);持续性(durability)
并发操作带来的数据不一致性包括三类:丢失修改(lost update);不可重复读(nonrepeatable read)和读“脏”数据(dirty read)
并发操作的调度:可串行性(serialiazable)是并行事务正确性的唯一准则;采用封锁方法保证调度正确性;
封锁类型:排它锁(exclusive lock, X锁,写锁)和共享锁(share lock, S锁,读锁)
封锁粒度(granularity):粒度越小,并发度越高,系统开销越大;
封锁协议(locking protocol):
保证数据一致性的封锁协议----三级封锁协议
1级封锁协议:事务T在修改数据R之前必须先对其加X锁,直到事务结束(正常结束commit,非正常结束rollback)才释放,防止丢失修改;
2级封锁协议:1级封锁协议加上事务T在读取数据R之前必须先对其加S锁,读完后即可释放S锁,防止丢失修改,防止读脏数据;
3级封锁协议:1级封锁协议加上事务T在读取数据R之前必须先对其加S锁,直到事务结束才释放
X锁都是事务结束释放,S锁2级封锁协议是操作结束释放,3级是事务结束释放。
保证并行调度可串行性的封锁协议----两段锁协议(two-phase locking 2PL)
2. 每个事务中,所有的封锁请求先于所有的解锁请求。
如事务1:
SlockA···SlockB···XlockC···UlockB···UlockA···UlockC
事务2封锁序列:
SlockA···UlockA···SlockB···XlockC···UlockC···UlockB
事务1遵守两段锁协议
ER图提供标示实体型、属性和联系的方法:
实体型:用矩形标示,矩形框内写明实体名;
属性:用椭圆形标示,并用无相边将其与相应的实体连接起来;
联系:用菱形标示,菱形框内写明联系名,并用无向边分别于有关实体连接起来,同时在无向边旁标上联写的类型(1:1,1:n,m:n)