在多用户并发访问的数据库环境中,锁机制是保障数据一致性和完整性的基石。本文简要介绍南大通用GBase 8s 数据库(gbase database)V8.8中的锁类型、分类等,方便大家快速了解和上手实践。

1.锁机制
- 在多用户数据库系统中,用户可以锁定一个对象,可以防止其他用户修改锁定的对象
- 多个并发用户访问数据库数据的情况下,为了保证数据的完整性,锁是必需的
- 锁作为关联到数据项的对象,程序可以显示对数据加锁,数据库系统也可以隐式的对对象进行加锁
2.锁的分类
- Shared locks: 共享锁,多个用户可以同时读取相同的记录
- Exclusive locks: 排他锁,同一时间仅仅有一个用户可以读取相同的记录
- Promotable (Update) lock: 提升锁,可以升级 (从共享锁提升为排他锁) 或者降级
- Intent lock: 专一锁,是一种表级锁,标识在该表上有一个游标在读取数据
3.锁的兼容矩阵

4.锁的有效期
- 程序控制数据库锁的有效期,当数据库关闭后,数据库锁将被释放
- 根据数据库是否使用了事务的情况,表锁的有效期不同【如果数据没有使用事务(没有事务日志,也不使用commit work语句),显示对一个表lock,当执行unload table时,锁将被释放;】
- 当数据库使用了事务,事务结束时,将释放事务所有的锁 table, row, page, and index locks