2.
答:(1).关系模式:
学生(学号、姓名、出生日期、系名、班号、宿舍区)
班级(班号、专业名、系名、人数、入校年份)
系(系名、系号、系办公室地点、人数)
学会(学会名、成立年份、地点、人数)
学生--学会(学号、学会名、入会年份)
(2)最小函数依赖集:
学生:(学号-->姓名,学号-->出生日期,学号-->系名,学号-->班号,系名-->宿舍区)存在传递依赖:学号-->宿舍区
班级:(班号-->专业名,专业名-->系名,班号-->人数,班号-->入校年份)存在传递依赖:班号-->系名
系:(系号-->系名,系名-->系号,系号-->系办公室地点,系号-->人数)不存在传递依赖
学会:(学会名-->成立年份,学会名-->地点,学会名-->人数)不存在传递依赖
学生--学会 :(学号,学会名-->入会年份) 不存在传递函数,函数依赖是完全函数依赖
(3)候选码,外码,全码:
学生:(候选码:学号; 外码:班号;系名 ; 全码:无)
班级:(候选码:班号; 外码:系名; 全码:无)
系:(候选码:系号;系名 外码:无; 全码:无)
学会:(候选码:学会名; 外码:无; 全码:无)
学生--学会(候选码:学号,学会名; 外码:学号;学会名; 全码:无)
3.设关系模式R<A,B,C,D>,函数依赖集:F={A-->C,C-->A,B-->AC,D-->AC,BD-->A}
答:(1).求出R的候选码:
候选码:BD
(2).求出F的最小函数依赖集:
第一步:F={A-->C,C-->A,B-->A,B-->C,D-->A,D-->C,BD-->A}
第二步:依次查看各函数依赖的闭包,得出B-->C,D-->C冗余,所以F={A-->C,C-->A,B-->A,D-->A,BD-->A}
第三步:依次查看各函数依赖中,能否用X-Bi取代X,所以F={A-->C,C-->A,B-->A,D-->A}
最小函数依赖集:{A-->C,C-->A,B-->A,D-->A}
(3).将R分解为3NF,使其具有无损连接性又具有函数依赖保持性:
p={AC,CA,BA,DA,BD}
5.设关系模式R(A,B,C,D,E,F),函数依赖集F={AB-->E,BC-->D,BE-->C,CD-->B,CE-->AF,CF-->BD,C-->A,D-->EF},求F的最小函数依赖集。
答:第一步:F={AB-->E,BC-->D,BE-->C,CD-->B,CE-->A,CE-->F,CF-->B,CF-->D,C-->A,D-->E,D-->F}
第二步:依次查看各函数依赖的闭包,得出BC-->D,CD-->B,CE-->A冗余,所以F={AB-->E,BE-->C,CE-->F,CF-->B,CF-->D,C-->A,D-->E,D-->F}
第三步:依次查看各函数依赖中,能否用X-Bi取代X,结果为F={AB-->E,BE-->C,CE-->F,CF-->B,CF-->D,C-->A,D-->E,D-->F}
所以F的最小函数依赖集为{AB-->E,BE-->C,CE-->F,CF-->B,CF-->D,C-->A,D-->E,D-->F}
8.设关系模式R(B,O,I,S,Q,D), 函数依赖集F={S-->D,I-->S,IS-->Q,B-->Q}
答:(1).找出R的主码。
主码:BOI.
(2).把R分解为BCNF,且具有无损连接性 。
1.R的主码为BOI,选择S-->D分解,得出P1={B,I,O,S,Q},F1={I-->S,IS-->Q,B-->Q}
2.选择IS-->Q分解,得出P2={B,I,O,S},F2={I-->S}
3.选择I-->S分解,得出P3={B,O,I},F3=空集
最后的分解为P={SD,ISQ,IS,BOI}