数据库课后作业

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

产品数据库

Product(maker, model, type)

PC(model, speed, ram, hd, price)

Laptop(model, speed, ram, hd, screen, price)

Printer(model, color, type, price)

关系Product给出了各种产品的制造厂商、型号和产品类型(PC、笔记本电脑或者打印机)。为了简单起见,假设所有产品的型号都唯一,而不管它是由哪个制造商生产的。关系PC对于不同型号给出了如下属性:速度(处理器的速度,单位是GHz)、RAM的大小(单位是MB)、硬盘的容量(单位是GB)以及价格。关系Laptop与关系PC类似,它在PC的基础上增加了属性screen,即显示器的尺寸(以英寸为单位)。关系Printer对于每种型号有如下属性:是否彩色(如果是的话,这个值是true)、处理类型(激光的还是喷墨的)以及价格。

关系PC的数据

关系Laptop的数据

关系Printer的数据

作业一:

习题1.1

1.对于产品数据库中的4个关系,写出它们的关系模式定义语句。2.修改关系Printer,删掉属性color。

3.修改关系Laptop,增加属性od(光驱类型,比如CD、DVD)。如果某个笔记本电脑没有光驱,则该属性的默认值为‘none’。

作业二:

习题2.1 对于产品数据库,试写出下列查询的关系代数表达式。

1.哪种PC型号具有最少3.00的速度?

2.哪个生产厂商的笔记本电脑的硬盘容量至少100GB?

3.查询厂商B生产的所有产品的型号和价格。

4.查询所有彩色激光打印机的型号。

5.查询那些只生产笔记本电脑,不生产PC的厂商。

习题2.2 已知关系

R(A,B):{(0,1), (2,3), (0,1), (2,4), (3,4)}

S(B,C):{(0,1), (2,4), (2,5), (3,4), (0,2), (3,4)}

计算下面的表达式:

1. πB+1, C-1(S)

2. τB,A(R)

3. δ(R)

4. γB,A VG(C)(S)

5. γA,A VG(C)(R∞S) (注:∞此处代表自然连接)

6. R与S的自然左外连接

7. R与S的自然右外连接

作业三:

习题3.1 对于产品数据库,用SQL写出下面的查询:

以下4小题要求使用连接查询

1.查询硬盘容量至少30G的笔记本电脑制造商及该电脑的速度。

2.查询制造商B生产的任意类型的所有产品的型号和价格。

3.查询出现在两种或两种以上PC中的硬盘大小。

4.查询每对具有相同速度和RAM的PC的型号。每一对只能列出一次;例如,若(i, j)已被列出,则(j, i)就不能再被列出。

以下4小题要求使用子查询(使用IN、EXISTS、ANY、ALL)

5.找出速度在3.0以上的PC制造商。

6.找出价格最高的打印机。

7.找出速度比任何一台PC都慢的笔记本电脑。

8.找出价格最低的彩色打印机的制造商

以下4小题使用集函数、分组

9.查询厂商A生产的PC的平均价格。

10. 查询每种不同速度的PC的平均价格。

11. 查询每家厂商生产的笔记本电脑的显示器尺寸的平均值。

12. 查询至少生产三种不同型号PC的制造商。

习题3.2 对于产品数据库,用SQL写出下面的更新:

1.通过两条INSERT语句在数据库中添加如下信息:厂商C生产的型号为1100的PC,其速度为3.2,RAM容量大小为1024,硬盘容量大小为180,售价为$2499。

2.删除所有硬盘容量低于100GB的PC。

3.厂商A收购了厂商B,将所有B生产的产品改为由A生产。

习题3.3

Movies (title, year, length, genre, studioName, producerC#)

StarsIn (movieTitle, movieYear, starName)

MovieStar (name, address, gender, birthdate)

MovieExec (name, address, cert#, netWorth)

Studio (name, address, presC#)

从上面的基本表构造以下视图:

1.视图StudioPress给出了既是电影公司经理(Studio president)又是制片人(Movie Executive)的那些人的名字、地址、证书号和资产。

2.视图ExecutiveStar给出了既是制片人又是演员的那些人的名字、地址、性别、生日。

不用基本表,基于以上视图,用SQL写出以下查询:

3.找出既是演员又是制片人的女性姓名。

4.找出是电影公司经理,同时资产至少有$10 000 000的制片人名字。

5.找出是演员同时资产至少有$50 000 000的电影公司经理的名字。

为下面的属性或属性组声明索引:

6.StudioName

7.genre和length

作业四:

对于电影数据库,对所有关系都定义了主键,如下所示:

Movies (title, year, length, genre, studioName, producerC#)

StarsIn (movieTitle, movieYear, starName)

MovieStar (name, address, gender, birthdate)

MovieExec (name, address, cert#, netWorth)

Studio (name, address, presC#)

习题4.1 声明如下引用完整性约束:

1.电影的制片人必须是MovieExec中的某个制片人。任何对MovieExec的更新,若违反此约束则拒绝该操作。

2.重复(1),但是当违反约束时,将Movies中的producerC#置为NULL。

3.重复(1),但是当违反约束时,Movies中违反约束的元组被删除或修改。

习题4.2 声明关于Movies的属性的约束:

1.年份不能是1915年以前。

2.长度不能少于60也不能多于250。

3.电影公司的名字只能是Disney、Fox、MGM、Paramount

作业五:

习题5.1 针对下列关系模式和FD集合,找出关系的所有候选码。

1.R(A, B, C, D),FD:A B→C,C→D,D→A

2.S(A, B, C, D),FD:A →B,B→C,B→D

习题5.2 对于下列关系模式和FD集合,是否有3NF违例?如有,找出所有的3NF违例,

相关文档
最新文档