我正在学习数据库课程,我有几个关于计算问题的问题。任何见解都非常感谢。数据库规范化和子查询
首先,我听到它抛出了“没有算法”来将关系转换为无损和依赖保持的BCNF。其原因是,对于某些关系,BCNF中不存在与期望属性的关系。我觉得这是误导,因为你可以说没有算法用相同的逻辑找到二次方程的两个实数解。当然,你不能...但是对于归一化问题,我认为应该有可能确定是否存在具有两个属性(决策问题)的BCNF变换,并且如果决策问题发出“是”,则应该有算法计算一个等效的BCNF表示。我的思想是正确的,还是我说过的错误?
我的第二个问题关于子查询。 SQL中涉及子查询的任何查询都可以在没有子查询的情况下重写吗?我知道这不是很好 - 我想我们坚持基本的SQL(大多数/所有系统共享)并限制子查询选择从属于顶层的语句(允许顶层集操作) 。
感谢您的支持。对于第一个,我想有一个有限数量的不同的,有意义的分解......所以一个算法将生成它们并检查它们。对于第二个...我们同意有一些查询可以消除子查询。但是,有些事情只能通过子查询完成吗? – Patrick87