您的位置:首页 > 其它

why-not 和 why 问题简介

2017-01-11 20:04 155 查看
数据库中的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问题。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐