关于数据库范式理论的程序设计 - ArmstrongUtils
这里我使用的工具类全部都是使用接口,public interface ArmstrongUtils extends CollectionUtils是关于Armstrong公理的工具,因为后面算法都不用就算F+,所有这些性质都很少会直接用到重点内容。
Utils工具的继承关系
ArmstrongUtils接口
import com.ruoxing.dbs.bean.FunctionalDependency;
/**
* @author :ruoxing
* @type :Interface
* @date :2018年5月
* @description :Armstrong公理
*/
public interface ArmstrongUtils extends CollectionUtils {
}
自反律(reflexivity)
1. 方法代码
/**
* 描述:自反律: β包含于α => α → β
* @param sequenceA α
* @param sequenceB β
* @return FunctionalDependency α → β
*/
default FunctionalDependency reflexivity(CharSequence sequenceA, CharSequence sequenceB) {
if (contains(sequenceA, sequenceB)) {
return new FunctionalDependency(sequenceA, sequenceB);
}
return null;
}
2. 测试代码(Junit)
import com.ruoxing.dbs.bean.FunctionalDependency;
import com.ruoxing.dbs.util.ArmstrongUtils;
import org.junit.Test;
import java.util.Arrays;
/**
* 描述:测试Armstrong公理的实现
*/