why-not 和 why 问题简介
2017-01-11 20:04
155 查看
数据库中的why-not问题与why问题,用来描述数据库的查询结果与期望不同的情况。
why问题,表示数据库的查询结果中出现了部分不希望得到的结果,按字面意思:为什么出现了这些结果?
在实际的数据库查询中,用户总是期望查询结果既准确又全面。不幸的是,数据库返回的查询结果往往不符合用户的预期。有时候期望的查询结果丢失,有时候不期望的查询结果反而出现。这时候,直觉上,用户很自然地会提出why-not问题和why问题来解释为什么会出现这样和预期不符的结果。
如果数据库具备这样的解释能力,那将会帮助用户更好地理解查询的意义,并因此发起更合适的查询以获得更准确和全面的查询结果。
1、找出剔除了用户期望查询结果的操作,主要用于Select-Project-Join (SPJ)查询和Select-Project-Join-Union-Aggregation (SPJUA)查询。
2、对数据进行修改(如insert、update表),从而使用户期望的查询结果出现。这种方法也主要应用于SPJ和SPJUA查询。
3、修改最初的查询语句而使丢失的查询结果得以找回。SPJA查询、top-k查询、反向skyline查询都可使用这类方法。
事实上,无论是why-not还是why问题,都依赖于具体的查询类型。没有一种方法可以适用于任何查询查询方式的why-not和why问题。
问题描述
why-not问题,表示数据库的查询结果中缺失了部分期望得到的结果,按字面意思:为什么我希望的结果没有出现?why问题,表示数据库的查询结果中出现了部分不希望得到的结果,按字面意思:为什么出现了这些结果?
问题的提出
性能和可用性一直是数据库发展的两个大方向。过去的数十年间,数据库的性能已经有了极大的提升,然而数据库的可用性仍然难以满足用户的需求,原因在于用户的期望与数据库的连接之间总是存在许多特殊的障碍。例如对与期望不符的查询结果的解释能力,一直是现代数据库所缺失的。在实际的数据库查询中,用户总是期望查询结果既准确又全面。不幸的是,数据库返回的查询结果往往不符合用户的预期。有时候期望的查询结果丢失,有时候不期望的查询结果反而出现。这时候,直觉上,用户很自然地会提出why-not问题和why问题来解释为什么会出现这样和预期不符的结果。
如果数据库具备这样的解释能力,那将会帮助用户更好地理解查询的意义,并因此发起更合适的查询以获得更准确和全面的查询结果。
解决方案
解决why-not的问题主要有三种方法:1、找出剔除了用户期望查询结果的操作,主要用于Select-Project-Join (SPJ)查询和Select-Project-Join-Union-Aggregation (SPJUA)查询。
2、对数据进行修改(如insert、update表),从而使用户期望的查询结果出现。这种方法也主要应用于SPJ和SPJUA查询。
3、修改最初的查询语句而使丢失的查询结果得以找回。SPJA查询、top-k查询、反向skyline查询都可使用这类方法。
事实上,无论是why-not还是why问题,都依赖于具体的查询类型。没有一种方法可以适用于任何查询查询方式的why-not和why问题。
相关文章推荐
- 解决Hiberante延迟加载问题——could not initialize proxy - no Session & 简介Hibernate的持久化
- Why .Net databinding does not support for class field?
- Why Pascal is Not My Favourite Programming Language
- WebServieces 部署到PocketPC上的问题(SystemNotSupportException)
- GIS系统与一个好的软件架构,Why not and how?
- Why C Is Not My Favourite Programming Language
- .NET中访问Oracle数据库链接:ORA-02041: client database did not begin a transaction 问题的处理。
- GEF,EMF,RCP,Eclipse's plugin的几个问题(1) PackageNotFound Exception
- mysql4.1以上版本连接时出现Client does not support authentication protocol问题解决办法
- mysql4.1版本连接时出现Client does not support authentication protocol问题解决办法
- P=NP?问题简介
- Why Is Visual Basic .NET Not 100% Compatible?
- 5W1H(what、why、where、when、who、how)的问题
- weblogic8.1中使用hibernate3的问题:CharScanner; panic: ClassNotFoundException: org.hibernate.hql.ast.HqlToken
- 烦人的问题:Client does not support authentication protocol requested by server; consider upgrading MySQL client
- Here is a reason why can not log a SQL CString
- [导入]Why does my Windows Form project not use visual styles in XP even when I call Application.EnableVisualStyles?
- mysql4.1以上版本连接时出现Client does not support authentication protocol问题解决办法
- 成为技术传播者(二):Why and Why NOT
- Mysql4安装Client does not support authentication protocol requested问题的解决