数据库概论参考答案_第1页
数据库概论参考答案_第2页
数据库概论参考答案_第3页
数据库概论参考答案_第4页
数据库概论参考答案_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本文格式为Word版,下载可任意编辑——数据库概论参考答案

3.4教材习题答案

3.1试述SQL语言的特点。答:

SQL语言集数据查询(DataQuery)、数据操纵(DataManipulation)、数据定义(DataDefinition)和数据控制(DataControl)功能于一体,主要特点包括:

1、综合统一。SQL语言集数据定义语言DDL、数据操纵语言DML、数据控制语言DCL的功能于一体。

2、高度非过程化。用SQL语言进行数据操作,只要提出“做什么〞,而无需指明“怎么做〞,因此无需了解存取路径,存取路径的选择以及SQL语句的操作过程由系统自动完成。这不仅大大减轻了用户负担,而且有利于提高数据独立性。

3、面向集合的操作方式。SQL语言采用集合操作方式,不仅操作对象、查找结果可以是元组的集合,而且一次插入、删除、更新操作的对象也可以是元组的集合。

4、以同一种语法结构提供两种使用方式。SQL语言既是自含式语言,又是嵌入式语言。作为自含式语言,它能够独立地用于联机交互操作使用方式,用户可以在终端键盘上直接键入SQL命令对数据库进行操作;作为嵌入式语言,SQL语句能够嵌入到高级语言的程序中,供程序员设计程序时使用。

5、语言简捷,易学易用。SOL语言功能极强,但由于设计巧妙,语言十分简捷,完成核心功能只用了9个动词。SQL语言接近英语句子,因此简单学习,简单使用。

6、支持三级模式结构。SQL语言支持关系数据库的三级模式结构。其中外模式对应于视图(View),模式对应于基本表,内模式对应于存储文件。

3.2试述SQL的定义功能。答:

SQL的数据定义功能包括定义表、定义视图和定义索引。SQL语言使用CREATETABLE语句建立基本表,ALTERTABLE语句修改基本表定义,DROPTABLE语句删除基本表;使用CREATEINDEX语句建立索引,DROPINDEX语句删除索引;使用CREATEVIEW语句建立视图,DROPVIEW语句删除视图。

3.3用SQL语句建立习题2.4中的4个表。答:

对于供应商表:S(Sno(供应商代码),Sname(供应商名),Status(供应状态),City(供应商所在城市))

建S表

CREATETABLES

(SnoCHAR(4),SnameCHAR(10),StatusCHAR(4),CityCHAR(20));

对于零件表:P(Pno(零件代码),Pname(零件名),Color(颜色),Weight(重量))建P表

22

CREATETABLEP

(PnoCHAR(4),PnameCHAR(20),ColorCHAR(4),WeightINT);

对于工程项目表:J(Jno(工程项目代码),Jname(工程项目名),City(工程项目所在的城市))

建J表

CREATETABLEJ

(JnoCHAR(4),JnameCHAR(20),CityCHAR(20));

对于零件供应状况表:SPJ(Sno(供应商代码),Pno(零件代码),Jno(工程项目代码),QTY(供应数量))。

建SPJ表

CREATETABLESPJ

(SnoCHAR(4),PnoCHAR(4),JnoCHAR(4),QTYINT);

3.4针对习题3.3中建立的3个表,试用SQL语言完成习题2.4中的查询。

⑴找出供应工程J1零件的供应商号;答:

SELECTSnoFROMSPJ

WHEREJno=’J1’;

⑵找出供应工程J1零件P1的供应商号;答:

SELECTSnoFROMSPJ

WHEREJno=’J1’ANDPno=’P1’;

⑶找出供应工程J1红色零件的供应商号;答:

SELECTSnoFROMSPJ

WHEREJno=’J1’ANDPnoIN

(SELECTPnoFROMP

WHEREColor=’绿’);

SELECTSnoFROMSPJ,P

23

WHEREJno=’J1’ANDSPJ.Pno=P.PnoANDP.Color=’绿’);

⑷找出没有使用杭州供应商生产的绿色零件的工程号。答:

SELECTJnoFROMJ

WHERENOTEXISTS

(SELECT*FROMSPJ

WHERESPJ.Jno=J.JnoANDSnoIN

(SELECTSnoFROMS

WHERECity=’杭州’)ANDPnoIN

(SELECTPnoFROMP

WHEREColor=’绿’));

SELECTJnoFROMJ

WHERENOTEXISTS

(SELECT*FROMSPJ,S,P

WHERESPJ.Jno=J.JnoANDSPJ.Sno=S.SnoANDSPJ.Pno=P.PnoANDS.City=’杭州’ANDP.Color=’绿’);

⑸找出至少用了S2供应商所供应的全部零件的工程号。答:

SELECTDISTINCTJnoFROMSPJSPJZ

WHERENOTEXISTS

(SELECT*

FROMSPJSPJXWHERESno=’S2’

ANDNOTEXISTS(SELECT*

FROMSPJSPJY

WHERESPJY.Pno=SPJX.Pno

24

ANDSPJY.Jno=SPJZ.Jno));

⑹找出供应红色的P1零件且其供应量大于200的供应商号。答:

SELECTJnoFROMP,SPJ

WHEREP.Pno=SPJ.PnoANDP.Pno=’P1’ANDSPJ.QTY>=200;

3.5针对习题3.3中的4个表,试用SQL语言完成以下各项操作。

(1)找出所有供应商的姓名和所在城市。答:

SELECTSname,CityFROMS;

(2)找出所有零件的名称、颜色、重量。答:

SELECTPname,Color,WeightFROMP;

(3)找出访用供应商S2所供应零件的工程号。答:

SELECTJnoFROMSPJ

WHERESno=’S2’;

(4)找出工程项目J3使用的各种零件的名称及其数量。答:

SELECTP,Pname,SPJ.QTYFROMP,SPJ

WHEREP.Pno=SPJ.Pno

ANDSPJ.Jno=’J3’;

(5)找出杭州厂商供应的所有零件号码。答:

SELECTDISTINCTPnoFROMSPJ

WHERESnoIN

(SELECTSnoFROMS

25

WHERECity=’杭州’);

(6)找出访用杭州产的零件的工程名称。答:

SELECTJnameFROMJ,SPJ,S

WHEREJ.Jno=SPJ.JnoANDSPJ.Sno=S.SnoANDS.City=’杭州’;或

SELECTJnameFROMJ

WHEREJnoIN

(SELECTJnoFROMSPJ,S

WHERESPJ.Sno=S.SnoANDS.City=’杭州’);

(7)找出没有供应天津产的零件的工程号。答:

SELECTJnoFROMJ

WHERENOTEXISTS(SELECT*FROMSPJ

WHERESPJ.Jno=J.Jno

ANDSnoIN

(SELECTSnoFROMS

WHERECity=’天津’));

SELECTJnoFROMJ

WHERENOTEXISTS(SELECT*FROMSPJ,S

WHERESPJ.Jno=J.Jno

ANDSPJ.Sno=S.SnoANDCity=’天津’);

26

(8)把全部红色零件的颜色改成蓝色。答:

UODATEP

SETColor=’蓝’

WHEREColor=’红’;

(9)由供应商S4供给J3零件P5改为由S3供应,请做必要的修改。答:

UPDATESPJSETSno=’S3’

WHERESno=’S4’ANDJno=’J3’ANDPno=’P5’;

(10)从供应商关系中删除S3的记录,并从供应状况关系中删除相应的记录。答:

DELETEFROMSPJ

WHERESno=’S3’;

DELETEFROMS

WHERESno=’S2’;

(11)请将(S2,J6,P4,300)插入到供应状况关系中。答:

INSERTINTOSPJ(Sno,Jno,Pno,QTY)VALUE(S2,J6,P4,300);或

INSERTINTOSPJVALUE(S2,J6,P4,300);

3.6什么是基本表?什么是视图?两者的区别和联系是什么?答:

基本表是数据库中本身独立存在的表,每个基本表对应一个关系模式。在SQL中一个关系就对应一个基本表。一个(或多个)基本表对应一个存储文件,一个基本表可以建立若干索引,它们都依附于基本表且存放在存储文件中。

视图是从一个或几个基本表导出的表。视图本身不独立存储在数据库中,是一个虚表。即数据库中只存放视图的定义及其关联的基本表名等信息而不存放视图对应的数据,这些数据依旧存放在导出视图的基本表中。但SQL在查询视图时与基本表完全一致,且用户可以

27

在视图上再定义视图。但用视图对数据库中的数据进行增、删、改等更新操作时有一定的限制。

3.7试述视图的优点。答:

⑴视图能够简化用户的操作。视图使用户可以将注意力集中在所关心的数据上并简化用户的数据查询操作。

⑵视图使用户能够以多角度对待同一数据。视图可使不同的用户以不同的方式对待同一数据,当大量不同种类的用户共享同一个数据库时,这种灵活性显得十分重要的。

⑶视图为数据库重构提供了一定程度的规律独立性。数据的规律独立性是指当数据库重新构造时,如增加新的关系或对原有关系增加新的字段等,用户和用户程序不会受影响,而视图就为数据库重构提供了一定程度的规律独立性。

⑷视图能够对数据提供安全保护。对不同的用户定义不同的视图,可使机密数据不出现在不应当看到这些数据的用户视图上,达到对机密数据的安全保护。

3.8所有的视图是否都可以更新?为什么?答:

不是。

视图是不实际存储数据的虚表,因此对视图的更新,最终要转换为对基本表的更新,由于有些视图的更新不能惟一有意义地转换成对相应基本表的更新,所以,并不是所有的视图都是可更新的。

3.9哪类视图是可以更新的,哪类视图是不可更新的?各举一例。答:

基本表的行列子集视图一般是可以更新的。如《数据库原理与应用》3.5.3中的例3.65。例、将数学系学生视图C_Student中学号为S05的学生姓名改为“黄海〞。UPDATEC_StudentSETSname='黄海'WHERESno='S05';

DBMS自动转换为对基本表的更新语句如下:UPDATEStudentsSETSname='黄海'

WHERESno='S05'ANDSdept='数学';

若视图的属性来自集函数、表达式,则该视图确定是不可以更新的。如《数据库原理与应用》3.5.3中的例3.66。

例、向数学系学生视图C_Student中插入一个新的学生记录,其中学号为“S09〞,姓名为“王海〞,年龄为20岁。

INSERT

INTOC_Student

VALUES('S09','王海',20,’数学’);

由于在定义C_Student是应用了“WITHCHECKOPTION〞短语,其作用是限制Sdept

28

的值必需是“数学〞才允许由视图C_Student插入,若换成其它任何字符,DBMS都拒绝执行插入操作。若定义C_Student是不用“WITHCHECKOPTION〞这个短语,则以上VALUES短语中改为('S09','王海',20,’自动化’)依旧可以完成插入操作,但用SELECT*FROMC_Student命令则看不到刚插入的元组。

3.10试述某个你熟悉的实际系统中对视图更新的规定。

答:(略)

由于不同的系统对视图的更新规定是不同的,学员必需了解你所用系统对视图更新的规定,所以我们无法给出一个相对标准的答案。

3.11请为一建工程项目建立一个供应状况的视图,包括供应商代码(Sno)、零件代码(Pno)、供应商名称(Sname)、供应数量(Qty)。针对该视图完成以下查询:

(1)找出一建工程项目使用的各种零件代码及其数量。(2)找出供应商S2的供应状况。答:建视图

CREATEVIEWV_SPJASSELECTSno,Pno,Sname,QtyFROMSPJWHEREJno=

(SELECTJnoFROMJ

WHEREJname=’一建’);对该视图进行查询:

(1)找出一建工程项目使用的各种零件代码及其数量。答:

SELECTPno,QtyFROMV_SPJ;

(2)找出供应商S2的供应状况。答:

SELECTPno,QtyFROMV_SPJ;WHERESno=’S2’;

(3)找出供应零件P2且供应数量大于100的供应商名。答:

SELECTPnameFROMV_SPJ;

29

WHEREPno=’P2’ANDQ

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论