如何设计一个好的数据库不仅仅是一个理论研究问题,也是一个实际应用问题。在关系数据库中不满足规范化理论的数据库设计会存在冗余、插入异常、删除异常等现象。
设R(U)是一个关系模式,U={
A1,A2, ……, An}。其中Ai是关系的属性,X,Y是U的子集。函数依赖 XàY
定义了数据库中属性集X与Y的依赖关系。根据Armstrong公理,函数依赖满足:
(1) 自反律:若Ai∈X, 则 XàAi
. 特别地,Ai àAi
.
(2) 增广律:若
XàY, 则 ZXàZY. (ZX 是指集合Z与X的并集 )
(3) 传递律:若
XàY, YàZ, 则 XàZ.
(4) 分解律:若
XàY, 则 XàAi ( 若属性Ai∈Y )
(5) 合并律:若
XàY, XàZ, 则 XàYZ.
已知 F 是关系模式R(U)上的函数依赖集,利用Armstrong公理系统可以推导出更多的函数依赖。设X是属性集U={
A1,A2, ……, An} 的子集, 定义X关于F的闭包XF+
XF+={
Ai | 若Xà Ai可以通过Armstrong公理导出}
对于给定的U , F ,X, 请求出XF+
对每组数据,
第1行: n
m k n 表示U中属性个数( 1≤n≤26 ), 用大写字母表示
m表示X中属性个数( 1≤m≤26 )
k个函数依赖 (1≤ k ≤
20 )
第2行: 字符串U n个大写字母
第3行: 字符串X m个大写字母
接下来有K行,每行有两个字符串 S T,用一个空格隔开。 表示 SàT
1
6 2 4
ABGDCI
AD
A B
BD I
AG C
C D
ABDI