《数据库概论》教材勘误表 页号 行号 原文 修订后文字 说明 23 图2.13 ‘工作'和‘领导'两个联系上的函数对应关系都应该是“1对多”,其中的数字‘1'被打印出了小写的字母工 33 倒数第6行 (i∈{1,2,…,n})万e{1,2,…,m) 6e{1,2,…,m)5∈{1,2.…,n) 55 倒数第4行 在选择条件中,原文用‘,’来表示逻辑‘与'运算,建议把逗号改为数理逻辑中的逻辑与运算符‘八” 56 例3.14 Ⅱm(iem-cg-A(SSC)】 Πδmo-cA-A(S6SC) 理由同上 57 第6行 W=Πm,emo(SC÷R) W=Πoeo(SC)÷R 右括号位置不对 第10行 Πm(SooΠsa,ema(SC÷(cmo(6sna4(SC))》 lm(So(laem(SC)÷Π(6no(SC))》 理由同上 倒数第4行 S(sno,sn,sd,'sa+l') S(sno,sn,sd,sa+l) 61 三条CREATE TABLE语句不符合SQL的语法,建议作两点修改:(I)修改为合法的SQL语句,每条语句用:’结束。(2)将表SC中 成绩属性g的类型修改为整数(或短整数)。(在后面的$QL查询例子中,需要对成绩进行统计或计算) 62 第13行 ON(,K顺序>】[小,J[其他参数] 序>.其他参数] 63 第15行 l,2,…m8F(R1DR2o.DRn)) 12,md(R1XR2X…XRn) 如果是关系代数中的自 然联接,那么WHERE子 句中就不单单是条件F了 第24行 SELECT[,] SELECT[,1. 第25行 FROM[,] FROM[,1 64 第24行 =,,>=, =,,>=,20' WHERE sa>20 65 第12行 WHERE sa BETWEEN18'AND21' WHERE sa BETWEEN 18 AND 21 第16行 WHERE sa NOT BETWEEN18'AND21' WHERE sa NOT BETWEEN 18 AND 21 第21行 WHERE sn IS LIKE A% WHERE sn LIKE A%' 第23行 IS [NOT]LIKE NOT)LIKE 第30行 WHERE sn IS LIKE A P%' WHERE sn LIKE A P% 66 第8行 WHERE sd='CS'AND sa<='20' WHERE sd='CS'AND sa<=20 第12行 WHERE NOT sd='CS'OR NOT sa='18' WHERE NOT sd='CS'OR NOT sa=18 例3.39 将‘FIRST.SC替换为FIRST SC',SECOND.SC'替换为‘SECOND SC'(原文不符合SQL语法)
《数据库概论》教材勘误表 页号 行号 原文 修订后文字 说明 23 图 2.13 ‘工作’和‘领导’两个联系上的函数对应关系都应该是“1 对多”,其中的数字‘1’被打印出了小写的字母 L 33 倒数第 6 行 (i∈{1,2,…,n}),j∈{1,2,…,m}) (i∈{1,2,…,m}),j∈{1,2,…,n}) 55 倒数第 4 行 在选择条件中,原文用‘,’来表示逻辑‘与’运算,建议把逗号改为数理逻辑中的逻辑与运算符‘∧’ 56 例 3.14 ∏sn ( δcno=C,g=A (S ∞ SC ) ) ∏sn(δcno=C ∧ g=A(S∞SC)) 理由同上 57 第 6 行 W = ∏ sno,cno ( SC ÷ R ) W = ∏ sno,cno ( SC ) ÷ R 右括号位置不对 第 10 行 ∏sn(S∞∏sno,cno(SC÷(∏cno(δsno=s4(SC))))) ∏sn ( S ∞ ( ∏sno,cno(SC) ÷ ∏cno(δsno=s4(SC)) )) 理由同上 倒数第 4 行 S(sno, sn, sd, ‘sa+1’) S(sno, sn, sd, sa+1) 61 三条 CREATE TABLE 语句不符合 SQL 的语法,建议作两点修改:(1)修改为合法的 SQL 语句,每条语句用‘;’结束。(2)将表 SC 中 成绩属性 g 的类型修改为整数(或短整数)。(在后面的 SQL 查询例子中,需要对成绩进行统计或计算) 62 第 13 行 ON ([][,[],…])[其他参数] ON ([] [,[]]…)[其他参数] 63 第 15 行 ∏r1,r2,…,rm δF ( R1 ∞ R2 ∞…∞ Rn ) ∏r1,r2,…,rm δF ( R1×R2×…×Rn ) 如果是关系代数中的自 然联接,那么 WHERE 子 句中就不单单是条件 F 了 第 24 行 SELECT [ , ] SELECT [ , ]… 第 25 行 FROM [ , ] FROM [ , ]… 64 第 24 行 =,,>=,,!=,! =,,>=, 在 SQL 标准中没有运算 符‘!’ 第 30 行 WHERE sa>’20’ WHERE sa>20 65 第 12 行 WHERE sa BETWEEN ‘18’AND ‘21’ WHERE sa BETWEEN 18 AND 21 第 16 行 WHERE sa NOT BETWEEN ‘18’AND ‘21’ WHERE sa NOT BETWEEN 18 AND 21 第 21 行 WHERE sn IS LIKE ‘A%’ WHERE sn LIKE ‘A%’ 第 23 行 IS [NOT] LIKE [NOT] LIKE 第 30 行 WHERE sn IS LIKE ‘A_P%’ WHERE sn LIKE ‘A_P%’ 66 第 8 行 WHERE sd=’CS’AND sa<=’20’ WHERE sd=’CS’AND sa<=20 第 12 行 WHERE NOT sd=’CS’ OR NOT sa=’18’ WHERE NOT sd=’CS’ OR NOT sa=18 例 3.39 将‘FIRST.SC’替换为‘FIRST_SC’,‘SECOND.SC’替换为‘SECOND_SC’(原文不符合 SQL 语法)
67 第8行 ORDER BY[ASC/DESC1 ORDER BY[ASC DESC] 第20行 7.查询结果的赋值 在SELECT子句后面接NTO子句,一般是用于与应用程序进行数据交换的(嵌 入式SQL),标准SQL中没有见过教材中的这种用法。 68 第16行 (I)N、EXIST (1)IN、EXISTS 第17行 (2)ANY、ALL (2)ANY、SOME、ALL 第18行 (3)CONTAINS、EQ 标准SQL中没有这两个 谓词 69 第13行 WHERE g5' HAVING COUNT(*)>5 第28行 WHERE cno!=Cs' WHERE cno◇Cg' 第30行 HAVING MIN(g)>=60' HAVING MIN(g)>=60 74 第31行 DISTINCT、BETWEEN、LIIKE及NULL DISTINCT、BETWEEN、LIKE及NULL 第33行 集合量谓词包括N、CONTAINS、EQ及EXIST谓词 集合量谓词包括N及EXISTS谓词 75 第24行 WHERE CS'=(SELECT sd WHERE CS'IN (SELECT sd 在标准SQL中不允许使 用原文所用的‘比较'方 式,也可用‘=SOM正’或 =ANY'替换原文的=' 第30行 INTO[[,]…] NTO[([,].)] 第31行 VALUES([,1.)川 VALUES([,].) 带的元组插入 在后面有其句法 76 第1行 NTO[[,]…J NTO[(L,].)] 第6行 VALUES(SIo,Cis',5) VALUES('SIo',CIs',5) 第12行 WHERE g>60' WHERE g>60 第31行 WHERE CS'=(SELECT sd WHERE CS'IN (SELECT sd
67 第 8 行 ORDER BY [ASC / DESC ] ORDER BY [ASC | DESC ] 第 20 行 7.查询结果的赋值 在 SELECT 子句后面接 INTO 子句,一般是用于与应用程序进行数据交换的(嵌 入式 SQL),标准 SQL 中没有见过教材中的这种用法。 68 第 16 行 (1)IN、EXIST (1)IN、EXISTS 第 17 行 (2)ANY、ALL (2)ANY、SOME、ALL 第 18 行 (3)CONTAINS、EQ 标准 SQL 中没有这两个 谓词 69 第 13 行 WHERE g ALL”、“!= ANY”、“!= ALL”等 “<> ALL”等 第 30 行 3.谓词 CONTAINS 的使用 标准 SQL 中没有这个谓词符号,与该谓词有关的内容及其例子都去掉。 71 第 9 行 4.量词 EXIST 的使用 4.量词 EXISTS 的使用 同理,该部分文字和例子 中的所有 EXIST 都替换 为 EXISTS 73 第 23 行 HAVING COUNT(*) > ’5’ HAVING COUNT(*) > 5 第 28 行 WHERE cno != ‘C8’ WHERE cno <> ‘C8’ 第 30 行 HAVING MIN(g) >= ‘60’ HAVING MIN(g) >= 60 74 第 31 行 DISTINCT、BETWEEN、LIIKE 及 NULL DISTINCT、BETWEEN、LIKE 及 NULL 第 33 行 集合量谓词包括 IN、CONTAINS、EQ 及 EXIST 谓词 集合量谓词包括 IN 及 EXISTS 谓词 75 第 24 行 WHERE ‘CS’ = ( SELECT sd WHERE ‘CS’ IN ( SELECT sd 在标准 SQL 中不允许使 用原文所用的‘比较’方 式,也可用‘=SOME’或 ‘=ANY’替换原文的‘=’ 第 30 行 INTO [ [ , ] … ] INTO [ ( [ , ] … ) ] 第 31 行 VALUES( [ , ]…) | VALUES( [ , ]…) 带的元组插入 在后面有其句法 76 第 1 行 INTO [ [ , ] … ] INTO [ ( [ , ] … ) ] 第 6 行 VALUES(‘S10’, ‘C15’, ‘5’) VALUES(‘S10’, ‘C15’, 5) 第 12 行 WHERE g > ‘60’ WHERE g > 60 第 31 行 WHERE ‘CS’ = ( SELECT sd WHERE ‘CS’ IN ( SELECT sd
77 第7行 CREATE VIEW([[,].]) CREATE VIEW[([,].)] 78 第4行 WHERE sa>20 WHERE sa>20 第9行 WHERE sd='CS'AND sa>'20 WHERE sd='CS'AND sa>20 第20行 WHERE sa>'18' WHERE sa>18 第25行 VALUES(27188,沈佩华,CS,20) VALUES(27188,沈佩华,CS,20) 104 图5.3 表中的数据不对:1)从第7步开始,A的值改为10000,A+B的值改为30000:3)从第10步开始,B的值改为30000,A+B的值改为40000: 2)第12步,B的值改为25000,A+B的值改为35000: 154 定义8.3 且对X的任何真子集X都有X”一Y,则称Y完全函数 Y不函数依赖于X的任何 依赖于X 且对X的任何真子集X都有X>Y,则称Y完全 真子集,此时的X一Y才 函数依赖于X 被称为·完全函数依赖' 159 例81 在这个例子的最后一段话中,结论正确但理由是错误的。对于关系R(sn,cn,n)来说,其关键字有两个(sn,m)和(sn,cm)(请根据本章中关键 字的定义8.6自行验证),那么关系R的主属性集为{sn,cm,tn,非主属性集为{!(空集)。该关系满足3NF(定义8.10)的要求(不存在 不符合要求的非主属性!),但有函数依赖(tn→c)不满足BCNF的要求(定义8.II)。 160 图8.5 在关系R,中,删去如与sn之间的箭头(在关系R,中,它们两者之间不存在函数依赖关系)
77 第 7 行 CREATE VIEW ( [ [ , ]… ] ) CREATE VIEW [ ( [ , ]… ) ] 78 第 4 行 WHERE sa>’20’ WHERE sa>20 第 9 行 WHERE sd = ’CS’ AND sa > ’20’ WHERE sd = ’CS’ AND sa > 20 第 20 行 WHERE sa>’18’ WHERE sa>18 第 25 行 VALUES(‘27188’, ‘沈佩华’, ‘CS’, ‘20’) VALUES(‘27188’, ‘沈佩华’, ‘CS’, 20) 104 图 5.3 表中的数据不对:1)从第 7 步开始,A 的值改为 10000,A+B 的值改为 30000;3)从第 10 步开始,B 的值改为 30000,A+B 的值改为 40000; 2)第 12 步,B 的值改为 25000,A+B 的值改为 35000; 154 定义 8.3 且对 X 的任何真子集 X'都有 X’→Y,则称 Y 完全函数 依赖于 X 且对 X 的任何真子集 X'都有X’ Y ,则称 Y 完全 函数依赖于 X Y 不函数依赖于 X 的任何 真子集,此时的 X→Y 才 被称为‘完全函数依赖’ 159 例 8.1 在这个例子的最后一段话中,结论正确但理由是错误的。对于关系 R(sn, cn, tn)来说,其关键字有两个(sn,tn)和(sn,cn)(请根据本章中关键 字的定义 8.6 自行验证),那么关系 R 的主属性集为{sn, cn, tn},非主属性集为{}(空集)。该关系满足 3NF(定义 8.10)的要求(不存在 不符合要求的非主属性!),但有函数依赖(tn→cn)不满足 BCNF 的要求(定义 8.11)。 160 图 8.5 在关系 R1 中,删去 tn 与 sn 之间的箭头(在关系 R1 中,它们两者之间不存在函数依赖关系)