资源描述
,CopyrightbyECNUCSDBLABAllrightsreserved.,第五章其他关系语言,数据库系统概念习题分析与解答,习题目录,习题5.1(参阅课本P127)习题5.2(参阅课本P128)习题5.6(参阅课本P128)习题5.7(参阅课本P129),2,3,第五章其他关系语言,5.1已知如下关系模式:R=(A,B,C)S=(D,E,F)设关系r(R)和s(S)已知。分别给出与下列表达式等价的元组关系演算表达式:,参考解答:a.t|qr(qA=tA)b.t|trtB=17c.t|prqs(tA=pAtB=pBtC=pCtD=qDtE=qEtF=qF)d.t|prqs(tA=pAtF=qFpC=qD,返回,4,第五章其他关系语言,5.2设R=(A,B,C),且r1和r2都是模式R上的关系。分别给出与下列表达式等价的域关系演算表达式:,参考解答:a.|p,q(r1)b.|r1b=17c.|r1r2d.|r1r2e.|r1_r2f.|p,q(r1r2),返回,5,第五章其他关系语言,5.6考虑图5-4的员工数据库。为下面每个查询语句分别写出元祖关系演算和域关系演算表达式:,a.找出所有为FirstBankCorporation工作的员工名字b.找出所有为FirstBankCorporation工作的员工名字和居住城市c.找出所有为FirstBankCorporation工作且年薪超过1万美元的员工名字、居住街道和城市d.找出数据库中居住城市和公司所在城市相同的所有员工e.找出居住街道和城市与其经理的相同的所有员工f.找出数据库中所有不为FirstBankCorporation工作的员工g.找出工资高于SmallBankCorporation的每一位员工的员工h.假设一个公司可以在好几个城市有分部,找出所有这样的公司,其所在的城市包含了SmallBankCorporation所在的城市。,employee(person_name,street,city)works(person_name,company_name,salary)company(company_name,city)manages(person_name,manager_name),6,第五章其他关系语言,5.6.a.找出所有为FirstBankCorporation工作的员工名字,参考解答:t|sworks(tperson-name=sperson-namescompany-name=“FirstBankCorporation”)|c,s(worksc=”FirstBankCorporation”),employee(person_name,street,city)works(person_name,company_name,salary)company(company_name,city)manages(person_name,manager_name),7,第五章其他关系语言,5.6.b.找出所有为FirstBankCorporation工作的员工名字和居住城市,参考解答:b.t|remployeesworks(tperson-name=rperson-nametcity=rcityrperson-name=sperson-namescompany-name=”FirstBankCorporation”)|co,sa,st(worksemployeeco=”FirstBankCorporation”),employee(person_name,street,city)works(person_name,company_name,salary)company(company_name,city)manages(person_name,manager_name),8,第五章其他关系语言,5.6.c.找出所有为FirstBankCorporation工作且年薪超过1万美元的员工名字、居住街道和城市,参考解答:c.t|temployee(sworks(sperson-name=tperson-namescompany-name=“FirstBankCorporation”ssalary10000)|employeeco,sa(worksco=“FirstBankCorporation”sa10000),employee(person_name,street,city)works(person_name,company_name,salary)company(company_name,city)manages(person_name,manager_name),9,第五章其他关系语言,5.6.d.找出数据库中居住城市和公司所在城市相同的所有员工,参考解答:d.t|eemployeewworksccompany(tperson-name=eperson-nameeperson-name=wperson-namewcompany-name=ccompany-nameecity=ccity)|st,c,co,sa(employeeworkscompany),employee(person_name,street,city)works(person_name,company_name,salary)company(company_name,city)manages(person_name,manager_name),10,第五章其他关系语言,5.6.e.找出居住街道和城市与其经理的相同的所有员工,参考解答:e.t|lemployeemmanagesremployee(lperson-name=mperson-namemmanager-name=rperson-namelstreet=rstreetlcity=rcitytperson-name=lperson-name)|s,c,m(employeemanagesemployee),employee(person_name,street,city)works(person_name,company_name,salary)company(company_name,city)manages(person_name,manager_name),11,第五章其他关系语言,5.6.f.找出数据库中所有不为FirstBankCorporation工作的员工,参考解答:f.员工仅在一个公司工作:t|wworks(wcompany”FirstBankCorporation”tperson-name=wperson-name)|c,s(worksc”FirstBankCorporation”)员工在多个公司工作或者员工不属于任何公司:t|eemployee(tperson-name=eperson-namewworks(wcompany-name=“FirstBankCorporation”wperson-name=tperson-name)|s,c(employeex,y(y=”FirstBankCorporation”works),employee(person_name,street,city)works(person_name,company_name,salary)company(company_name,city)manages(person_name,manager_name),12,第五章其他关系语言,5.6.g.找出工资高于SmallBankCorporation的每一位员工的员工,参考解答:g.t|wworks(tperson-name=wperson-namesworks(scompany-name=“SmallBankCorporation”=wsalaryssalary)|c,s(worksp2,c2,s2(worksc2“SmallBankCorporation”ss2),employee(person_name,street,city)works(person_name,company_name,salary)company(company_name,city)manages(person_name,manager_name),13,第五章其他关系语言,5.6.h.假设一个公司可以在好几个城市有分部,找出所有这样的公司,其所在的城市包含了SmallBankCorporation所在的城市。,参考解答:h.t|scompany(scompany-name=“SmallCorporation”=rcompany(tcompany-name=0rcompany-name)rcity=scity)|co2,ci2(companyco2“SmallCorporationCompany”company),employee(person_name,street,city)works(person_name,company_name,salary)company(company_name,city)manages(person_name,manager_name),返回,14,第五章其他关系语言,5.7设R=(A,B)且S=(A,C),r(R)和s(S)是关系。分别给出与下列域关系演算表达式等价的关系代数表达式,参考解答:a.A(b=17(r)b.r.A,B,C(r.A=s.A(rs)或者rsc.A(r)(sC(s)d.r.A(rs)c=r2.Ar.Br2.B(r2(r),返回,
展开阅读全文