小结
与RDBMS的所有通信都发生在会话这个上下文环境中当在一个客户端程序与RDBMS之间建立一个会话时它具有某些默认的属性这些属性决定了会话的行为在会话期间可以修改其中一些属性数据库管理员可以使这些修改持久化企业级RDBMS提供了事务支持的能力可以按批一个单独的逻辑工作单元来执行SQL语句SQL标准规定一个SQL语句总是作为一个事务来运行RDBMS对此的实现可能存在差异某些RDBMS默认启动一个隐式的事务而另外一些RDBMS则要求显式地声明启动事务的语句以开始一个事务事务必须满足某些条件(也称为ACID检验)才能符合事务的标准但这些细节通常由RDBMS进行管理
访问共享资源的事务必须实现某些并发控制事务的属性之一就是为该事务建立的隔离级别隔离级别管控着一个事务所能访问的对象以及它能访问和修改的数据
某些RDBMS实现了错综复杂的锁系统以解决并发性问题然而这些锁并不是SQL标准的一部分锁具有不同的类型可以在SQL语句中声明锁也可以作为会话的属性进行声明在高容量的事务处理系统中或者设计不正确的系统中可能会发生死锁的情况通常RDBMS会自动地解决死锁问题或者由数据库管理员手动解决死锁问题
SQL本身只提供了非常有限的安全机制RDBMS需要更健壮的安全性各个RDBMS厂商都以非标准的方式实现了多种安全机制
安全性在宏观上可以分为几个不同的层次身份验证授权和审计在最基本的层面上还有一些其他技术用于保护数据
RDBMS将用户的概念视为某种实体用户连接到数据库并执行某些操作此外本书讨论的各种RDBMS还实现了角色角色用于管理一组特权角色可以是系统定义的也可以是用户定义的
数据库还提供了各种机制用于实现其他方面的安全性约束视图存储过程和触发器最底层的数据保护机制就是对数据进行加密加密后的数据是人类不可读的
目前既有国家的安全标准也有国际的安全标准建议采用这些标准(但并不要求)某些数据库厂商选择获得认证而另外一些RDBMS则并未认证人们制定了很多法律来处理安全问题本书所讨论的各种RDBMS的最新版本都已实现了很多特性用于帮助用户遵从法规
在实际的RDBMS实现进入市场很长时间之后ISO/ANSI才采用INFORMATION_SCHEMA作为标准因此很多数据库厂商都以系统表的形式实现了它们自己的元数据存储库
可以采用多种办法来获取这些系统表的信息通常通过RDBMS专门为此目的提供的视图进行访问(即INFORMATION_SCHEMA的思路)或者也可以通过RDBMS提供的一些存储过程或函数来实现获取元数据的功能
绝大多数RDBMS都明显地不鼓励用户直接访问系统表因为在未通知用户的情况下系统表的结构可能会发生改变因此无法保证这些系统表中包含的信息与你设想的一致简而言之系统表是供系统自身使用的视图是供用户使用的通过直接查询底层系统表获取数据库元数据的时代已经结束了
返回目录SQL实战新手入门
编辑推荐
Oracle索引技术
高性能MySQL
数据仓库与数据挖掘培训视频教程