我已经浏览了Date和Silberschatz,但似乎无法找到我的这些具体问题的答案。关于关系数据库的一些基本问题
如果2个数据库用户发出查询 - 比如说'select * from AVERYBIGTABLE;' - 查询结果在哪里将被存储在一般情况下......即与结果集的大小无关?
a。在DBMS服务器的OS管理的物理/虚拟内存中?
b。在DBMS管理的临时文件中?
是否每个连接都维护查询结果集?
如果查询结果集确实是每个连接都维护的,那么如果连接池有效(通过一层代码位于DBMS之上)呢?那么,每个查询(而不是每个连接)都不会保留结果集?
如果数据库在其用户同时发出select查询时实时更改,那么查询发出者已经执行但尚未(完全)“消耗”的查询会发生什么情况?例如,假设结果集有50,000行;如果前面的查询由DBMS的任何用户重新发布,那么当前另一个用户执行插入/删除操作时,用户当前正在迭代100次,这样,如果先前的查询将被重新发出,那么它将导致多于/少于50,000行?另一方面,如果数据库不能实时更改,如果2个用户发出的每个查询具有相同但非常大的结果集,DBMS是否保留2个相同的结果集副本,或者它会有一个共享的副本吗?
非常感谢提前。
可以想见,现在,他们为什么AREN没有涵盖在关系理论文本中。但是,那么,我会在哪里找到他们的答案?在产品特定手册中? JEE被吹捧为独立于底层的数据库管理系统(DBMS)......它告诉我至少应该有一些不变的概念(或者一组概念/假设),应用程序开发人员可以选择编程。 – Harry 2009-06-19 05:42:56
而对于你对#4的回应,结果集产生后会发生什么? (谢谢,btw,花点时间回复。) – Harry 2009-06-19 05:44:06