本文翻译自Coding-Geek文章:《 How does a relational database work》。原文链接:http://coding-geek.com/how-databases-work/#Buffer-Replacement_strategies
本文翻译了如下章节, 介绍数据库的客户端管理器组件:
Client manager
客户端管理器是一个处理与数据库客户端连接通信的组件。数据库的客户端可以是Web服务器,也可以是终端应用程序。数据库提供了各种访问数据库的接口,比较知名有:JDBC、ODBC、OLE-DB…
除通用接口外,各数据库也提供了一些专有的特色接口。
客户端管理器在处理查询操作请求时会做这样的一些事情:
首先做鉴权,即检查你是否具有访问数据库的权限(用户名和密码是否正确);然后检查是否有操作数据库的相应权限(表,数据的读写权限)。这些权限都是由DBA授予的。
然后会检查是否已经有线程管理该查询(没有的话分配)。
还会检查数据库服务器当前是否已经超负荷。
所有检查通过后,客户端管理器将等待获取数据库资源(计算资源、锁等)。如果等待超时,将关闭连接,返回错误信息告知客户端。
客户端管理器获取资源后将查询请求传递到查询管理器,任务交给下游处理。
数据库查询操作并不是一锤子买卖,一但客户端管理器从查询管理器中获取到部分数据,它就会先把这把这部分数据存储到缓存种并发给客户端。
查询过程一旦遇到错误(鉴权失败,SQL语法错误等),客户端管理器将关闭连接,释放资源,返回错误。
本文为博主原创文章,未经博主允许不得转载。其它文章请访问:http://blog.csdn.net/ylforever