1:参加了项目名为“哈同公路”的员工名字
答案:
NAME((pname=‘哈同公路’PROJECT)
PNUMBER=PNOWORKS_ON SSN=ESSN EMPLOYEE)
错误:
1、 主外键关系:(pname=‘哈同公路’PROJECT)
DNUM=DNOEMPLOYEE
2、 给定项目名,却当成项目号!
3、书写混乱!
2:没有参加项目 p1 的员工姓名
答案:
NAMEEMPLOYEE – NAME((pno=’P1’WORKS_ON)
ESSN=SSNEMPLOYEE)
错误:
1、集合差的条件!
2、WORKS_ON – pno=’P1’WORKS_ON
3、pname=’P1’
4、pname≠’P1’或者pno≠’P1’
5、PROJECT
DNUM=DNOEMPLOYEE 主外键错误。
3:没有家属的工作人员名字
答案:
NAMEEMPLOYEE – NAME(DEPENDENT
ESSN=SSNEMPLOYEE)
错误:
1、集合差的条件!没有家属连接得到但没有投影。
E-E DEPENDENT
2、sex=NULLDEPENDENT 或者relationship=NULL
4:由张红领导的工作人员的姓名和所在部门的名字
答案:
NAME,DNAME
(EMPLOYEE
SUPERSSN=SSN
( SSN name=
‘
张
红
‘EMPLOYEE)
DNO=DNUMBERDEPARTMENT)
错误:
1、DNO=DNUMBER,(1)其中 DNO 属性的二义性,不是要张红的部门名字!(2)
NAME(E
E),谁的 NAME?
2、SUPERSSN=SSN 中的两个属性要与两边的关系分别对应;
3、MGRSSN。张红不一定是部门领导。
5:至少参加了项目 P1 和项目 P2 的员工号
答案:
ESSN,PNO (WORKS_ON) (PNUMBER->PNOPNUMBER=’P1’PNUMBER=’P2’PROJECT)
ESSN (PNO=’P1’WORKS_ON) ESSN (PNO=’P2’WORKS_ON)
错误:
1、把项目号当成项目名;
2、主外键关系。EMPLOYEE
DNO=DNUNMBERPROJECT
3、PNO=P1,P2;
4、PNO=P1, PNO=P2 PROJECT;
5、PNAME=P1&& PNAME=P2 PROJECT;
6、PNO=’P1’ PNO=’P2’ 空集;
7、(PNO=’P1’WORKS_ON) (PNO=’P2’WORKS_ON)
或者(PNO=’P1’WORKS_ON) (PNO=’P2’WORKS_ON)
或者(PNO=’P1’WORKS_ON) (PNO=’P2’WORKS_ON)
6:参加了员工 e2 参加的所有项目的员工姓名
答案:
NAME(((PNO,ESSNWORKS_ON)(PNOESSN=’e2’WORKS_ON))
ESSN=SSNEMPLOYEE)
错误:
1、 注意商操作的条件。经常少一个投影!
PNO,SEENWORKS_ONPNO(ESSN=’e2’WORKS_ON)
2、 语义错误,没有表达出所有项目。
7:参加了在哈尔滨进行的项目的员工名字
答案:
NAME(WORKS_ON
PNO=PNUMBER( PNUMBER plocation=
‘
哈
尔
滨
‘PROJECT)
ESSN=SSNEMPLOYEE)
错误:
1、主外键。PNAME=’哈尔滨’PROJECT
DNUM=DNOEMPLOYEE
书写逻辑:
1、下标:该下标要写成下标。
2、项目号和项目名混乱,不区分。
3、连接符不写连接条件;选择操作的写法;
4、并交差的条件。
5、商操作的条件。
6、关系名.属性名 语义检查!
7、一个查询应对应一个表达式,而不是多个。
8、表达式的规范。
二元运算符少一个关系名,如 E ;
连接不写连接条件或者条件不是规范的比较运算。
NAMEEMPLOYEE(SSNEMPLOYEE-ESSNDEPENDENT)
用于逻辑表达式,用于集合。