此问题可以归结为:
求属性集X(X包含于U)关于U上的函数依赖集F的闭包,判断此闭包是否等于U
输入:X,F
输出:F是否是候选码
步骤:
1 令X(0)=X,i=0
2 求B,这里B={A | (存在V)(存在W)(V->W 属于F 并且 V包含于X(i) 并且 A属于W)};
3 X(i+1) = B 加上 X(i)
4 判断X(i+1)是否等于X(i)
5 若否,则使用i+1来取代i,返回第二步
6 相等,则X(i)就是所求闭包,若此闭包=U,则F是侯选码之一。 算法终止。
将F穷举,就可以得到所有的候选码。
求属性集X(X包含于U)关于U上的函数依赖集F的闭包,判断此闭包是否等于U
输入:X,F
输出:F是否是候选码
步骤:
1 令X(0)=X,i=0
2 求B,这里B={A | (存在V)(存在W)(V->W 属于F 并且 V包含于X(i) 并且 A属于W)};
3 X(i+1) = B 加上 X(i)
4 判断X(i+1)是否等于X(i)
5 若否,则使用i+1来取代i,返回第二步
6 相等,则X(i)就是所求闭包,若此闭包=U,则F是侯选码之一。 算法终止。
将F穷举,就可以得到所有的候选码。
解决方案 »
- 一个SQL统计问题
- [DBNETLIB][ConnectionWrite (send()).]一般性网络错误。请检查网络文档。 Insert Statement:
- 我的数据库不能新建表了??
- 在线等!!请问下有100个数,1到100 从这组数据中取出99个数,请问怎么才能把没有取出的数给计算出来!
- 问一个并发的问题,如果同时有100人同时往一张表里增加数据,会有并发问题吗?
- 查询时候between..and快还是">和<"快呢?
- 请教关于(zjcxc(邹建) )的用SQL_DMO过程复制及备份数据库的方法!?
- 关于在启用了FileStream的SQL Server 2008数据库中删除记录的问题
- 怎样在数据库中写入数学公式????
- sqlserver2000的默认端口改为别的值后(如:3489)后再程序中怎样写连接数据库的字符串?
- 请问如何通过ado获得sql server的存储过程执行情况的更多信息
- DELPHI的编程高手,救救小弟
当时的目的是为了至少要实现3NF,后来放弃了,因为那样不现实。主要是依赖关系很多很杂。其实不一定要用计算机来实现。数据库设计很大部分是经验。根据需求分析的结果进而是分析的结果得到数据模型,手工分步优化数据库,从1NF到2NF到3NF。同时考虑系统的性能。有时为了提高性能不惜牺牲规范。我认为技术仅是一种手段。太追求它反而觉得迷茫。