数据库课后题答案 第6章 管理数据库其他对象

合集下载

数据库系统原理及应用教程第四版课后答案(苗雪兰 刘瑞新) 机械工业出版社第6章汇总

数据库系统原理及应用教程第四版课后答案(苗雪兰 刘瑞新)  机械工业出版社第6章汇总

6.2答: ① SELECT 姓名,联系电话 FROM 供应商 WHERE 所在城市='天津 ② SELECT * FROM 工程 WHERE 预算 BETWEEN 50000 AND 100000 ORDER BY 预算 DESC ③ SELECT 工程代号 FROM 供应零件 WHERE 供应商代码='S1 ④ SELECT 零件.零件名, 供应零件.数量 FROM 零件,供应零件 WHERE 零件.零件代码=供应零件.零件代码 AND 供应零件.工程代码= 'J2' ⑤ SELECT 零件代号 FROM 供应商, 供应零件 WHERE供应商.供应商代码=供应零件.供应商代码 AND 供应商.所在城 市='上海'
6.1答: ① CREATE TABLE 职工(职工号 CHAR(10) NOT NULL UNIQUE, 姓名 CHAR(8) NOT NULL, 年龄 SMALLINT, 性别 CHAR(2), CONSTRAINT C1 CHECK(性别 IN ('男','女'))) Go CREATE TABLE 社会团体(编号 CHAR(8) NOT NULL UNIQUE, 名称 CHAR(12) NOT NULL, 负责人 CHAR(8), 活动地点 VARCHAR(50), CONSTRAINT C2 FOREIGN KEY(负责人) REFERENCES职工(职工号)) Go CREATE TABLE 参加(职工号 CHAR(8), 编号 CHAR(8), 参加日期 DATE, CONSTRAINT C3 PRIMARY KEY(职工号, 编号), CONSTRAIN C3 FOREIGN KEY(职工号) REFERENCES 职工(职工号)) Go ②SELECT 职工号, 姓名 FROM 职工, 社会团体, 参加 WHERE 职工.职工号=参加.职工号 AND 参加.编号=社会团体.编号 AND社会团体.名称 IN ('唱歌队', '篮球队') ③SELECT * FROM 职工 WHERE NOT EXISTS ( SELECT * FROM 参加 WHERE 参加.职工号=职工.职工号) ④ SELECT * FROM 职工 WHERE NOT EXISTS (SELECT * FROM 参加 WHERE NOT EXISTS (SELECT * FROM 社会团体 WHERE 参加.职工号=职工.职工号 AND 参加.编号=社会团体.编号))

数据库6版第二、六章习题解答 (1)

数据库6版第二、六章习题解答 (1)

数据库5版第二章习题解答表结构employee(person-name,street, city)worker (person-name, company-name, salary)company (company-name, city )manages (person-name, manager-name)2.1 主码employee(person-name,street, city)worker (person-name, company-name, salary)company (company-name, city )manages (person-name, manager-name)2.7a)Πperson-name(σcity=”Miami”(employee))b) Πperson-name(σsalary >100000 (works))c) Πperson-name(σcity=”Miami”∧salary >100000(employee∞works))2.12a)Πperson-name(σcompany-name=”first…”(works) )b) Πperson-name, city(σcompany-name=”first…”(employee∞works) )c) Πperson-name, street,city(σcompany-name=”first…”∧salary >100000 (employee∞works))6.2a) 找出与其经理居住在同一城市同一街道的所有员工的姓名。

分析:用e1扩充manages中员工的属性,用e2扩充manages中经理的属性Πe1.person-name(σe1.person-name=manages.person-name∧manages.manager-name=e2.person-name∧e1.street=e2.street∧e1.city=e2.city( (ρe1(employee)×manages×ρe2(employee)))b) 找出此数据库中不在First Bank Corporation 公司工作的所有员工姓名。

数据库原理课后答案第六章

数据库原理课后答案第六章

第6章数据库设计一、选择题1、下列对数据库应用系统设计的说法中正确的是应用程序员可以不必参与数据库的概念结构设计2、在需求分析阶段,常用数据流图描述用户单位的业务流程。

3、下列对E-R图设计的说法中错误的是集成后所得的E-R图中可能存在冗余数据和冗余联系,应予以全部清除4、下列属于逻辑结构设计阶段任务的是将E-R图转换为一组关系模式5、将一个一对多联系型转换为一个独立关系模式时,应取多端实体型的关键属性为关键字。

6、将一个M对N(M>N)的联系型转换成关系模式时,应转换为一个独立的关系模式7、在从E-R图到关系模式的转化过程中,下列说法错误的是关系模式的规范化程度越高,查询的效率就越高8、对数据库的物理设计优劣评价的重点是时空效率A.B.动态和静态性能C.用户界面的友好性D.成本和效益9、下列不属于数据库物理结构设计阶段任务的是确定选用的DBMS10、确定数据的存储结构和存取方法时,下列策略中将表和索引存储在同一磁盘上不利于提高查询效率。

二、填空题1、在设计分E-R图时,由于各个子系统分别面向不同的应用,所以各个分E-R图之间难免存在冲突,这些冲突主要包括_命名冲突_、_属性冲突_和_结构冲突_三类。

2、数据字典中的_数据项_是不可再分的数据单位。

3、若在两个局部E-R图中都有实体“零件”的“重量”属性,而所用重量单位分别为公斤和克,则称这两个E-R图存在_属性_冲突。

4、设有E-R图如图6.18,其中实体“学生”的关键属性是“学号”,实体“课程”的关键属性是“课程编码”,设将其中联系“选修”转换为关系模式R,则R的关键字应为属性集_学号与课程编码__。

5、确定数据库的物理结构主要包括三方面内容,即:_确定数据存放位置和存储结构_、_确定数据存取方法_和_系统配置_。

6、将关系R中在属性A上具有相同值的元组集中存放在连续的物理块上,称为对关系R基于属性A进行_聚簇_。

7、数据库设计的重要特点之一要把_结构(数据)_设计和__行为(处理)_设计密切结合起来,并以_结构(数据)_为核心而展开。

数据库课后题答案 第6章 管理数据库其他对象

数据库课后题答案  第6章 管理数据库其他对象

第6章管理数据库其他对象本章要点:1、视图及视图与表的关系2、视图的创建、管理和操作3、规则、默认值的概念及创建、捆绑、修改和删除4、自定义数据类型的创建、修改、删除和查看5、触发器的概念、作用及两种触发器的工作原理和执行过程6、触发器的创建及管理6.1 视图6.1.1 视图的概念视图是一种数据库对象,是从一个或者多个数据表或视图中导出的虚表,视图的结构和数据是对数据表进行查询的结果。

视图被定义后便存储在数据库中,通过视图看到的数据只是存放在基表中的数据。

当对通过视图看到的数据进行修改时,相应的基表的数据也会发生变化,同时,若基表的数据发生变化,这种变化也会自动地反映到视图中。

视图可以是一个数据表的一部分,也可以是多个基表的联合。

6.1.2 视图的优点⏹视图可以屏蔽数据的复杂性,简化用户对数据库的操作。

⏹视图可以让不同的用户以不同的方式看到不同或者相同的数据集。

⏹可以使用视图重新组织数据。

⏹视图可以定制不同用户对数据的访问权限。

6.1.3 创建视图1、创建视图之前的注意事项:⏹只能在当前数据库中创建视图。

⏹一个视图中行、列的限制。

⏹如果视图中某一列是函数、数学表达式、常量或者来自多个表的列名相同,则必须为列定义名称。

⏹视图与基表的关系⏹不能在视图上创建索引,不能在规则、默认的定义中引用视图。

2、创建视图(1)使用企业管理器创建视图在企业管理器中展开要创建视图的数据库,用鼠标右键单击“视图”选项,在弹出的快捷菜单中选择“新建视图”命令,打开后,这个界面我们在前面介绍select语句的时候已经给大家介绍过了。

在此不再赘述了,请大家对照书本的例子练习。

(2)使用Transact-SQL语句创建视图CREATE VIEW[ < database_name > .] [ < owner > .]view_name [ ( column [ ,...n ] ) ][ WITH < view_attribute > [ ,...n ] ]ASselect_statement[ WITH CHECK OPTION ]< view_attribute > ::={ ENCRYPTION | SCHEMABINDING |VIEW_METADATA }举例:在“studentborrow”数据库中,创建一个仅包含“高等教育出版社”出版图书的视图语句:create view 高等教育出版社asselect *from 图书信息where 出版社名称='高等教育出版社'创建一个视图,其中的内容是所有价格低于10元的图书,并加密视图的定义。

数据库原理与应用教程第四版 第六章答案

数据库原理与应用教程第四版 第六章答案

免责声明:私人学习之余整理,如有错漏,概不负责1.关系规范化中的操作异常有哪些?是由什么引起的?解决方法是什么?操作异常有数据冗余问题、数据更新问题、数据插入问题、数据删除问题。

其产生的原因是关系模式没有设计好,某些属性之间存在不良的函数依赖。

解决方法是进行模式分解,把一个不良的关系模式分解为两个或多个关系模式。

2.第一、二、三范式的定义分别是什么?第一范式:不包含重复组的关系,即不包含非原子项的属性。

第二范式:属于第一范式,且每个非主属性都完全函数依赖于主码。

第三范式:属于第二范式,且所有非主属性都不传递依赖于主码。

3.什么是部分函数依赖?什么是传递函数依赖?举例说明。

部分函数依赖:在关系模式R(U)中,如果X→Y,并且存在X的一个真子集X0,使得X0→Y,则称Y对X部分函数依赖。

传递函数依赖:在关系模式R(U)中,设X,Y,Z是U的不同的属性子集,如果X确定Y、Y确定Z,且有X不包含Y,Y不确定X,(X∪Y)∩Z=空集合,则称Z传递函数依赖于X。

4.第三范式的关系模式是否一定不包含部分函数依赖?不一定。

可列举以下关系模式:关系模式(A,B,C,D)中AB和BC为候选码,AC相互依赖,D完全依赖于AB或BC,则ABC为主属性。

令AB为主码,此关系模式中各属性不可再分,且非主属性D完全依赖于主码,并不传递依赖于主码,则其为第三范式,但主属性C部分依赖于主码AB。

实际例子:(学号,课程号,身份证号,成绩)候选码:(学号,课程号)和(课程号,身份证号)主码:(学号,课程号)主属性:学号,课程号,身份证号非主属性:成绩5.对于主码只有一个属性组成的关系模式,如果它是第一范式,则它是否也一定是第二范式?第一范式主码只有一个属性,则不存在部分依赖关系,即一定是第二范式。

6.学生修课(学号,姓名,所在系,性别,课程号,课程名,学分,成绩)关系模式…。

指出候选码,判断是第几范式,转为第三范式并指出主码与外码。

数据库第六章习题答案

数据库第六章习题答案

第六章习题答案一、选择填空1、A2、C3、D4、B5、D6、A7、C8、A9、D 10、A11、C 12、A 13、B 14、C 15、C 16、D 17、B 18、C 19、A 20、D21、C 22、B二、判断下列描述的正确性,对者划√,错者划×。

1、√2、×3、×4、×5、√6、√7、×8、√9、×10、√11、√12、√13、√14、√15、×16、√17、√18、√19、√20、×21、×22、×三、分析下列程序的输出结果。

1、运行该程序输出结果如下所示。

Default constructor calledConstructor calleda=0,b=0a=4,b=82、运行该程序输出结果如下所示。

a=7,b=93、运行该程序输出结果如下所示。

1044、运行该程序输出结果如下所示。

1035,789.5045、运行该程序输出结果如下所示。

1{}{0,1,2,3,4,5,6,7,8}1{11,12,13,14,15,16,17,18,19}{19,18,17,16,15,14,13,12,11}6、运行该程序输出结果如下所示。

Starting1:Default constructor called.Default constructor called.Default constructor called.Eding1:Starting2:Constructor: a=5,b=6Constructor: a=7,b=8Constructor: a=9,b=10Ending2:Destructor called.a=9,b=10Destructor called.a=7,b=8Destructor called.a=5,b=6Destructor called.a=5,b=6Destructor called.a=3,b=4Destructor called.a=1,b=27、运行该程序输出结果如下所示。

电大数据库系统与应用,形考册第6章,习题与参考答案

电大数据库系统与应用,形考册第6章,习题与参考答案

第6章习题与参考答案一.单项选择题1.下列关于视图的说法,正确的是〔B。

A.视图与基本表一样,也存储数据B.对视图的操作最终都转换为对基本表的操作C.视图的数据源只能是基本表D.所有视图都可以实现对数据的增、删、改、查操作2.在视图的定义语句中,只能包含〔A。

A.数据查询语句B.数据增、删、改语句C.创建表的语句D.全部都可以3.视图对应数据库三级模式中的〔A。

A.外模式B.内模式C.模式D.其他4.下列关于视图的说法,正确的是〔B。

A.通过视图可以提高数据查询效率B.视图提供了数据的逻辑独立性C.视图只能建立在基本表上D.定义视图的语句可以包含数据更改语句5.创建视图的主要作用是〔D。

A.提高数据查询效率B.维护数据的完整性约束C.维护数据的一致性D.提供用户视角的数据6.设有学生表〔学号,姓名,所在系。

下列建立统计每个系的学生人数的视图语句中,正确的是〔D。

A.CREATE VIEW v1ASSELECT 所在系, COUNT<*> FROM 学生表GROUP BY 所在系B.CREATE VIEW v1ASSELECT 所在系, SUM<*> FROM 学生表GROUP BY 所在系C.CREATE VIEW v1<系名,人数> ASSELECT 所在系, SUM<*> FROM 学生表GROUP BY 所在系D.CREATE VIEW v1<系名,人数> ASSELECT 所在系, COUNT<*> FROM 学生表GROUP BY 所在系7.设用户在某数据库中经常需要进行如下查询操作:SELECT * FROM T WHERE C1='A' ORDER BY C2设T表中已在C1列上建立了主键约束,且该表只建有该约束。

为提高该查询的执行效率,下列方法中可行的是〔C。

A.在C1列上建立一个聚集索引,在C2列上建立一个非聚集索引B.在C1和C2列上分别建立一个非聚集索引C.在C2列上建立一个非聚集索引D.在C1和C2列上建立一个组合的非聚集索引8.下列关于索引的说法,正确的是〔C。

第6章 管理数据库

第6章  管理数据库

第6章管理数据库在创建完成数据库之后,就可以对数据库进行管理操作,主要包括查看、修改和删除。

查看是指可以浏览数据库的各种属性和状态;修改是指可以修改数据库的名称、大小、自动增长等;删除数据库是对不需要的数据库进行删除,以释放多余的磁盘空间。

6.1 查看数据库信息Microsoft SQL Server 2008系统中,查看数据库信息有很多种方法,例如,可以使用目录视图、函数和存储过程等查看有关数据库的基本信息。

下面分别来介绍这几种查看数据库信息的基本方式。

1.使用目录视图常见的查看数据库基本信息的操作有:●使用sys.databases数据库和文件目录视图查看有关数据库的基本信息●使用sys.database_files查看有关数据库文件的信息●使用sys.filegroups查看有关数据库组的信息●使用sys.maste_files查看数据库文件的基本信息和状态信息2.使用函数可以使用DATABASEPROPERTYEX函数来查看指定数据库中的指定选项的信息,该函数一次只能返回一个选项的设置。

例如,要查看【图书管理系统(BookDateBase)】数据代码的执行结果如图6-1所示:图6-1查看数据库选项设置3.使用存储过程使用sp_spaceused存储过程可以显示数据库使用和保留的空间。

下面来查看【图书管理系统(BookDateBase)】数据库的空间大小和已经使用的空间等信息。

如图6-2所示。

图6-2使用sp_spaceused存储过程可以查看所有数据库的基本信息,仍然来查看【图书管理系统(BookDateBase)】数据库的信息,如图6-3所示。

图6-3使用sp_helpdb存储过程除上面介绍的几种方法外,还可以利用Microsoft SQL Server Management Studio窗口来查看数据库信息。

在【对象资源管理器】窗格中右击要查看信息的数据库,选择【属性】命令,在弹出的【数据库属性】对话框中就可以查看到数据库的常规信息、文件信息、文件组信息、选项信息等,如图6-4所示。

数据库练习第6章

数据库练习第6章

第六章习题一、选择题:1.关系规范化中的删除操作异常是指①,插入操作异常是指②。

A.不该删除的数据被删除B.不该插入的数据被插入C.应该删除的数据未被删除D.应该插入的数据未被插入答案:①A ②D2.设计性能较优的关系模式称为规范化,规范化主要的理论依据是____。

A.关系规范化理论B.关系运算理论C.关系代数理论D.数理逻辑答案:A3.规范化理论是关系数据库进行逻辑设计的理论依据。

根据这个理论,关系数据库中的关系必须满足:其每一属性都是____。

A.互不相关的B.不可分解的C.长度可变的D.互相关联的答案:B4.关系数据库规范化是为解决关系数据库中____问题而引人的。

A.插入、删除和数据冗余B.提高查询速度C.减少数据操作的复杂性D.保证数据的安全性和完整性答案:A5.规范化过程主要为克服数据库逻辑结构中的插入异常,删除异常以及____的缺陷。

A.数据的不一致性B.结构不合理C.冗余度大D.数据丢失答案:C6.当关系模式R(A,B)已属于3NF,下列说法中____是正确的。

A.它一定消除了插入和删除异常B.仍存在一定的插入和删除异常C.一定属于BCNF D.A和C都是答案:B7.关系模型中的关系模式至少是____。

A.1NF B.2NF C.3NF D.BCNF答案:A8.在关系DB中,任何工元关系模式的最高范式必定是____。

A.1NF B.2NF C.3NF D.BCNF答案:D9.在关系模式R中,若其函数依赖集中所有候选关键宇都是决定因素,则R最高范式是____。

A.2NF B.3NF C.4 NF D.BCNF答案:C10.当B属性函数依赖于A属性时,属性A与B的联系是____。

A.1对多B.多对1 C.多对多D.以上都不是答案:B11.在关系模式中,如果属性A和B存在1对1的联系,则说____。

A.A→B B.B→A C.A↔B D.以上都不是答案:C12.候选码中的属性称为____。

数据库技术与应用课后习题答案

数据库技术与应用课后习题答案

第一章习题答案1.1 选择题1. A2. C3. C4. B5. C6. A7. C8. B9. D 10. A 11. D 12. A 13. A1.2 填空题数据数据的逻辑独立性数据的物理独立性层次数据模型,网状数据模型,关系数据模型能按照人们的要求真实地表示和模拟现实世界、容易被人们理解、容易在计算机上实现实体、记录属性、字段码域一对一、一对多、多对多E-R模型E-R模型层次模型、网状模型、关系模型数据操作、完整性约束矩形、菱形、椭圆形层次模型、一对多网状模型关系模型关系外模式、模式、内模式三级模式、两级映像外模式、模式、内模式数据、程序数据逻辑、数据物理DBMS数据库管理系统、DBA数据库管理员1.4 综合题2.注:各实体的属性省略了3.第二章习题答案1.1 单项选择题1. C2. A3. B4. C5. C6. D7. A8. B1.2 填空题集合2. 能唯一标识一个实体的属性系编号, 学号,系编号关系, 元组, 属性关系模型,关系, 实体, 实体间的联系投影1.4 综合题1. πsnoσcno=’2’SC2. πsnoσcname=’信息系统’SCCOURSE3. πsno,SNAME,SAGESTUDENT第三章习题答案1.1select from jobs1.2select emp_id,fname+'-'+lname as 'Name' from employee1.3select emp_id,fname+'-'+lname as 'Name',Yeargetdate-Yearhire_date as 'worke time' from employee order by 'worke time'2.1select from employee where fname like 'f%'2.2select from employee where job_id='11'2.3select emp_id,fname+'-'+lname as 'Name', Yeargetdate-Yearhire_date as worketime from employeewhere Yeargetdate-Yearhire_date >5order by worketime2.4select from employee where castjob_id as integer>=5 and castjob_id as integer<=8 2.5select from employee where fname='Maria'2.6select from employee where fname like '%sh%' or lname like '%sh%'3.1select from sales where ord_date <'1993-1-1'4.1select distinct bh, zyh from stu_info wherebh inselect bh from stu_infogroup by bhhaving count>30 and count<40order by bh或者是select bh,zyh from stu_infogroup by zyh,bhhaving countbh>30 and countbh<40order by bh4.2select from gbanwhere bh like '计%'4.3select from gfiedwhere zym like '%管理%'4.4select xh,xm,zym,stu_info.bh,rxsj from stu_info,gfied,gban where nl>23and stu_info.zyh=gfied.zyh and stu_info.bh=gban.bh4.5select zyh,count from gbanwhere xsh='03'group by zyh第四章习题答案4.1 单项选择题:B 2、A 3、C 4、A 5、A 6、C 7、C 8、D 9、B 10、A 11、C或B,即书上121页例题中from的写法12、A 13、C 14、C 15、C4.2 填空题:drop tablealter table add <列名或约束条件>with check option基本表基本表distinct group by roder by数据定义数据操纵数据控制distinctlike % _自含式嵌入式10、order by asc desc4.3 综合题1、SELECT XH, XM, ZYM, BH, RXSJFROM STU_INFO, GFIEDWHERE STU_INFO.ZYH = GFIED.ZYH AND NL > 23 AND XBM = '男'2、SELECT ZYM 专业名, count 人数 FROM STU_INFO, GFIEDWHERE STU_INFO.XSH = '03' AND STU_INFO.ZYH = GFIED.ZYHGROUP BY ZYM注意:该题目中给出的条件XSH = '03'中的03代表的是“控制科学与工程”学院,信息学院的代码是12,大家可根据具体情况来做该题;3、SELECT bh,count as 人数 FROM STU_INFO GROUP BY bh4、SELECT XH, XM, XBM, BH FROM STU_INFOWHERE ZYH INSELECT ZYHFROM STU_INFOWHERE XM = '李明'ORDER BY XH5、SELECT DISTINCT GCOURSE.KCH, KM FROM STU_INFO, XK, GCOURSEWHERE XK.KCH = GCOURSE.KCH AND STU_INFO.XSH = '12'AND STU_INFO.XH = XK.XH该题中设计到的课程名称只有在GCOURSE表中存在,所以在题目开始的几个表中还应填加该表;另外把信息学院的代码改为12;6、SELECT COUNTDISTINCT KCH AS 选课门数, AVGKSCJ AS 平均成绩FROM STU_INFO, XKWHERE STU_INFO.XH = XK.XH AND XSH = '12'7、SELECT DISTINCT STU_INFO.XH, XM, BH, ZYM, KMFROM STU_INFO, XK, GFIED, GCOURSEWHERE KSCJ > 85 AND STU_INFO.XH = XK.XH AND XK.KCH = GCOURSE.KCH AND STU_INFO.ZYH = GFIED.ZYHORDER BY ZYM, BH, STU_INFO.XH8、SELECT STU_INFO.XH, XM, XSM, ZYM, BH, PYCCMFROM STU_INFO, XK, GDEPT, GFIEDWHERE KKNY = '20011' AND STU_INFO.XH = XK.XH AND STU_INFO.XSH = GDEPT.XSH AND STU_INFO.ZYH = GFIED.ZYHGROUP BY STU_INFO.XH, XM, XSM, ZYM, BH, PYCCMHAVING COUNT > 109、SELECT DISTINCT bhFROM STU_INFO10、DELETE FROM STU_INFOWHERE XH LIKE '2000%'或DELETE FROM STU_INFOWHERE LEFTXH,4 = '2000'11、ALTER TABLE STU_INFOADD BYSJ varchar812、UPDATE XKSET KSCJ = 60WHERE KSCJ BETWEEN 55 AND 59 andXH inSELECT xhFROM stu_infoWHERE zyh = '0501'andKCH inSELECT kchFROM gcourseWHERE km = '大学英语'前面已经考虑到在该题目中应该加入学生课程信息表GCOURSE13、UPDATE GCOURSESET KCXF=6WHERE KCH = '090101'14、CREATE TABLE CCOURSEKCH char6,KM varchar30,KCYWM varchar3015、CREATE VIEW ISE ASSELECTFROM STU_INFOWHERE XSH=’12’第五章课后答案5.11~7 BABABCB5.21 使属性域变为简单域消除非主属性对主关键字的部分依赖消除非主属性对主关键字的传递依赖2 平凡函数依赖3 Y也相同唯一的Y值5.31 函数依赖:P136定义5.1部分函数依赖:P138定义5.4完全函数依赖:P138定义5.4传递函数依赖:P138定义5.51NF:P139定义5.62NF:P141定义5.73NF:P142定义5.8BCNF:P144定义5.9在全码关系中R〈U,F〉中若存在这样的码X,属性组Y及非主属性Z 使得X→Y, Y→Z成立,所以全码关系R〈U,F〉∈3NF;在全码关系R〈U,F〉中,对于R中的函数依赖,若X→Y且X必含有码,所以全码关系R∈BCNF 2 1 R的码是Sno,Cno,R是1NF,因为Teacher和Title属性部分函数依赖于码Sno,Cno,所以R∈1NF2SCSno,Cno,GradeCTCno,teacher TTTeacher,title3 D->B C->A4 需求分析需求分析是数据库设计的第一个阶段,从数据库设计的角度来看,需求分析的任务是对现实世界要处理的对象组织、部门、企业等进行详细的调查了解,通过对原系统的了解,收集支持新系统的基础数据并对其进行处理,在此基础上确定新系统的功能;概念结构设计阶段将需求分析得到的用户需求抽象为信息结构即概念模型的过程就是概念结构设计;简单地说数据库概念结构设计的任务就是根据需求分析所确定的信息需求,建立信息模型;如E-R模型;逻辑结构设计阶段数据库逻辑结构设计的任务是把概念结构设计阶段所得到的与DBMS无关的数据模式,转换成某一个DBMS所支持的数据模型表示的逻辑结构;数据库物理设计阶段数据库物理设计是对给定的关系数据库模式,根据计算机系统所提供的手段和施加的限制确定一个最适合应用环境的物理存储结构和存取方法数据库实施阶段在数据库实施阶段,设计人员运用DBMS提供的数据语言及其宿主语言,根据逻辑设计和物理设计的结果建立数据库,编制与调试应用程序,组织数据入库,并进行试运行数据库运行和维护阶段数据库应用系统经过试运行后即可投入正式运行;在数据库系统运行过程中必须不断地对其进行评价、调整与修改;包括:数据库的转储和恢复、数据库的安全性和完整性控制、数据库性能的监督、分析和改进、数据库的重组织和重构造;P149最后一段ER图是用来描述某一组织单位的概念模型,提供了表示实体、属性和联系的方法;构成ER图的基本要素是实体、属性和关系;实体是指客观存在并可相互区分的事特;属性指指实体所具有的每一个特性;商店商店编号,商店名,地址,电话码:商店编号顾客顾客编号,姓名,性别,家庭住址,出生年月码:顾客编号消费商店编号,顾客编号,消费金额码:商店编号,顾客编号第六章习题答案6.1 单项选择题1、A2、D3、D4、D5、B6、D7、C6.2 填空题1、原子性一致性隔离性持续性 ACID2、软故障硬故障3、静态动态4、丢失修改不可重复读读“脏”数据5、自主存取控制强制存取控制6、实体完整性约束参照完整性约束用户自定义完整性约束6.4 综合题create table 读者借书证号 char10 primary key,姓名 varchar10 not null,年龄 tinyint not null,所在院系 varchar20 not nullcreate 图书图书号 char8 primary key,书名 varchar20 not null,作者 varchar10 not null,出版社 varchar30 not null,价格 real not null check价格>0 and 价格<=120create 借阅借书证号 char10 not null,图书号 char8 not null,借阅日期 datetime not null,primary key借书证号, 图书号,foreign key借书证号 references 读者借书证号,foreign key图书号 references 图书图书号实验4 答案Select xh,xm,xbm from stu_info,gdept where stu_info.xsh=gdept.xsh and gdept.xsm=’信息科学与工程’或 Select xh,xm,xbm from stu_info where xsh=select xsh from gdept where xsm=’信息科学与工程’Select stu_info.xh,xm,km from stu_info,xk,gcourse where stu_info.xh=xk.xh and xk.kch=gcourse.kch and kscj>85Select xh,xm,xsm from stu_info,gdept where stu_info.xsh=gdept.xsh and xh like ‘2000%’Select xh, xm from stu_info where xh in select xh from xk where kch=’090101’ and kscj<60或 select stu_info.xh,xm from stu_info,xk where stu_info.xh=xk.xh and kch=’090101’ and kscj<605. select stu_info.xh,xm,km from stu_info,xk,gcourse where stu_info.xh=xk.xh and xk.kch=gcourse.kch and xsh=’12’ and kscj<606. select stu_info.xh,xm,xsm from stu_info,xk,gdept where stu_info.xsh=gdept.xsh and stu_info.xh=xk.xh and kkny=’20011’ group by stu_info.xh,xm,xsm having count>=10实验5 答案1、2题参考实验4答案3. Select xh,xm,xbm,bh from stu_info where zyh in select zyh from stu_info where xm=’李明’ order by xh实验6答案Create view num_ban as select countdistinct bh from stu_infoCreate view ban as select distinct bh from stu_infoCreate view is_stu as select xm,xbm,bh from stu_info where xsh=’01’ orxsh=’02’Create view zhang_stu as select from stu_info where xsh=’01’ and xm like ‘张%’或 Create view zhang_stu as select from stu_info,gdept where xsm=’材料科学与工程’ and xm like ‘张%’ and stu_info.xsh=gdept.xsh8. Create view 材0168 as select stu_info.,xk. from stu_info,xk where bh=’材0168’ and stu_info.xh=xk.xhCreate view gaoshu _stu as select xm from stu_info,xk,gcourse where stu_info.xh=xk.xh and gcourse.kch=xk.kch and km=’高等数学’或 Create view gaoshu _stu as select xm from stu_info where xh inselect xh from xk where kch =select kch from gcourse where km=’高等数学’。

数据库 第6章 数据库设计客观题及答案

数据库   第6章 数据库设计客观题及答案

数据库第6章数据库设计客观题及答案一、选择题1、在数据库设计中,用 ER 图来描述信息结构但不涉及信息在计算机中的表示,它属于数据库设计的()。

A 需求分析阶段B 概念设计阶段C 逻辑设计阶段D 物理设计阶段答案:B解释:概念设计阶段通常使用 ER 图来描述信息结构,主要是对现实世界中的事物及其关系进行抽象和建模,不考虑具体的计算机实现。

2、数据库物理设计完成后,进入数据库实施阶段,下列各项中不属于实施阶段的工作是()。

A 建立库结构B 扩充功能C 加载数据D 系统调试解释:扩充功能一般不属于数据库实施阶段的工作,实施阶段主要是按照物理设计的结果建立数据库的实际结构、加载数据并进行调试。

3、在数据库设计中,将 ER 图转换成关系数据模型的过程属于()。

A 需求分析阶段B 概念设计阶段C 逻辑设计阶段D 物理设计阶段答案:C解释:逻辑设计阶段的主要任务就是将概念模型(如 ER 图)转换为具体的关系数据模型。

4、规范化理论是关系数据库进行逻辑设计的理论依据。

根据这个理论,关系数据库中的关系必须满足:其每一属性都是()。

A 互不相关的B 不可分解的C 长度可变的D 互相关联的解释:规范化理论要求关系数据库中的关系每一属性都是不可分解的,以避免数据冗余和操作异常。

5、从 ER 模型关系向关系模型转换时,一个 M:N 联系转换为关系模式时,该关系模式的关键字是()。

A M 端实体的关键字B N 端实体的关键字C M 端实体关键字与 N 端实体关键字组合D 重新选取其他属性答案:C解释:在 M:N 的联系中,转换后的关系模式关键字应为两端实体关键字的组合,这样才能唯一标识一个联系。

6、设有关系模式 R(A,B,C,D),其函数依赖集 F ={A→B,B→C,C→D,D→A},则 R 的候选关键字为()。

A ABB BCC CDD 不存在答案:D解释:由于该函数依赖集中存在循环依赖,所以不存在候选关键字。

7、关系数据库规范化是为解决关系数据库中()问题而引入的。

数据库第6章习题参考答案

数据库第6章习题参考答案

第6章习题解答1.选择题(1)(C)允许用户定义一组操作,这些操作通过对指定的表进行删除、插入和更新命令来执行或触发。

A.存储过程B.视图C.触发器D.索引(2)SQL Server为每个触发器创建了两个临时表,它们是( B )。

A.Updated和Deleted B.Inserted和DeletedC.Inserted和Updated D.Seleted和Inserted(3)SQL Server中存储过程由一组预先定义并被(C)的Transact-SQL语句组成。

A.编写B.解释C.编译D.保存(4)下列可以查看表的行数以及表使用的存储空间信息的系统存储过程是( A )。

A.sq_spaceused B.sq_depends C.sq_help D.sq_rename (5)以下语句创建的触发器ABC是当对表T进行__D_____操作时触发。

CREATE TRIGGER ABC ON 表T FOR INSERT, UPDATE, DELETEAS……A.只是修改B.只是插入C.只是删除D.修改、插入、删除(6)以下_______不是存储过程的优点。

A.实现模块化编程,能被多个用户共享和重用B.可以加快程序的运行速度C.可以增加网络的流量D.可以提高数据库的安全性(7)以下_______操作不是触发触发器的操作。

A.SELECT B.INSERT C.DELETE D.UPDATE (8)下面关于触发器的描述,错误的是_______。

A.触发器是一种特殊的存储过程,用户可以直接调用B.触发器表和deleted表没有共同记录C.触发器可以用来定义比CHECK约束更复杂的规则D.删除触发器可以使用DROP TRIGGER命令,也可以使用企业管理器(9)关于SQL Server中的存储过程,下列说法中正确的是_______。

A.不能有输入参数B.没有返回值C.可以自动被执行D.可以嵌套使用(10)对于下面的存储过程:CREATE PROCEDURE Mysp1 @p IntASSELECT St_name, Age FROM Students WHERE Age=@p调用这个存储过程查询年龄为20岁的学生的正确方法是_______。

数据库技术与应用第5、6章 习题答案

数据库技术与应用第5、6章 习题答案

第5章数据库完整性与安全性1. 什么是数据库的完整性?什么是数据库的安全性?两者之间有什么区别和联系?解:数据库的完整性是指数据库中数据的正确性、有效性和相容性,其目的是防止不符合语义、不正确的数据进入数据库,从而来保证数据库系统能够真实的反映客观现实世界。

数据库安全性是指保护数据库,防止因用户非法使用数据库造成数据泄露、更改或破坏。

数据的完整性和安全性是两个不同的概念,但是有一定的联系:前者是为了防止数据库中存在不符合语义的数据,防止错误信息的输入和输出,即所谓垃圾进垃圾出所造成的无效操作和错误结果。

后者是保护数据库防止恶意的破坏和非法的存取。

也就是说,安全性措施的防范对象是非法用户和非法操作,完整性措施的防范对象是不合语义的数据。

2. 什么是数据库的完整性约束条件?完整性约束条件可以分为哪几类?解:完整性约束条件是指数据库中的数据应该满足的语义约束条件。

一般可以分为六类:静态列级约束、静态元组约束、静态关系约束、动态列级约束、动态元组约束、动态关系约束。

静态列级约束是对一个列的取值域的说明,包括以下几个方面:①数据类型的约束,包括数据的类型、长度、单位、精度等;②对数据格式的约束;③对取值范围或取值集合的约束;④对空值的约束;⑤其他约束。

静态元组约束就是规定组成一个元组的各个列之间的约束关系,静态元组约束只局限在单个元组上。

静态关系约束是在一个关系的各个元组之间或者若干关系之间常常存在各种联系或约束。

常见的静态关系约束有:①实体完整性约束;②参照完整性约束;③函数依赖约束。

动态列级约束是修改列定义或列值时应满足的约束条件,包括下面两方面:①修改列定义时的约束;②修改列值时的约束。

动态元组约束是指修改某个元组的值时需要参照其旧值,并且新旧值之间需要满足某种约束条件。

动态关系约束是加在关系变化前后状态上的限制条件,例如事务一致性、原子性等约束条件。

3. 试述DBMS如何实现完整性控制。

解:为了维护数据库的完整性,DBMS提供了以下三种机制:①完整性约束条件定义完整性约束条件也称为完整性规则,是数据库中的数据必须满足的语义约束条件。

数据库原理课后题答案

数据库原理课后题答案

第1章1.试述数据、数据库、数据库系统、数据库管理系统的概念;答:1数据:描述事物的符号记录成为数据;数据的种类有数字、文字、图形、图像、声音、正文等;数据与其语义是不可分的;(2)数据库:数据库是长期储存在计算机内的、有组织的、可共享的数据集合;数据库中的数据按照一定的数据模型组织;描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享;(3)数据库系统:数据库系统是指在计算机系统中引入数据库后的系统构成,一般由数据库、数据库管理系统及其开发人具、应用系统、数据库管理员构成; (4)数据库管理系统:数据库管理系统是位于用户与操作系统之间的一层数据管理软件,用于科学地组织和存储数据、高效地获取和维护数据;DBMS的主要功能包括数据定义功能、数据操作功能、数据库的建立和维护功能;6.试述数据库系统三级模式结构,这种结构的优点是什么答:数据库系统的三级模式机构由外模式、模式和内模式组成;外模式,亦称子模式或用户模式,是数据库用户包括应用程序员和最终用户能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示;模式亦称逻辑模式,是数据库中全体数据呃逻辑结构和特征的描述,是所有用户的公共数据视图;模式描述的是数据的全局逻辑结构;外模式涉及的是数据的内部逻辑结构,通常是模式的子集;内模式,亦称存储模式,是数据在数据库内部的表示,即对数据的物理结构和存储方式的描述;数据库系统的三级模式是对数据的三个抽象级别,它对数据的具体组织留给DBMS管理,使用户能逻辑抽象地处理数据,而不必关心数据在计算机中的表示和存储;为了能够在内部实现这三个抽象层次的联系和转换,数据库系统在这三级模式之间提供了两层映像:外模式∕模式映像和模式∕内模式映像;正是这两层映像保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性;7.定义并解释下列术语;外模式:亦称子模式或用户模式,是数据库用户包括应用程序员和最终用户能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示;内模式:亦称存储模式,是数据在数据库内部的表示,即对数据的物理结构和存储方式的描述;模式:亦称逻辑模式,是数据库中全体数据逻辑结构和特征的描述,是所有用户的公共数据视图;模式描述的是数据的全局逻辑结构;外模式涉及的是数据的内部逻辑结构,通常是模式的子集;DDL:数据库定义语言,用来定义数据库模式、外模式、内模式的语言;DML:数据操纵语言,用来对数据库中数据进行查询、插入、删除和修改的语句;8.什么叫数据与程序的物理独立性什么叫数据与程序的逻辑独立性为什么数据库系统具有数据与程序的独立性答:数据与程序的逻辑独立性:当模式改变时例如增加新的关系、新的属性、改变属性的数据类型等,由数据库管理员各个外模式∕模式的映像做相应改变,可以使外模式保持不变;应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性;数据与程序的物理独立性:当数据库的存储结构改变了,有数据库管理员对模式∕内模式映像做相应改变,可以使模式保持不变,从而应用程序也不必改变,保证了数据与程序的物理独立性,简称数据的物理独立性;数据库管理系统在三级模式之间提供的两层映像保证了数据库系统中的数据具有较高的逻辑独立性和物理独立性;第2章数据模型3.试描述数据模型的三个要素;数据模型由数据结构、数据操作和完整性约束三部分组成;(1)数据结构:是所研究的对象类型的集合,是对系统静态特性的描述;(2)数据操作:是对数据库中各种对象型的实例值允许进行的操作的集合,包括操作及有关的操作规则,是对系统动态特性的描述;(3)数据的约束条件: 是一组完整性规则的集合;完整性规则是给定的数据模型中数据及其联系所具有的制约和依存规则,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效、相容;7.试述关系模型的概念,定义并解释以下术语;答:关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成;(1)关系:一个关系对应通常说法的一张表(2)关系模式:对关系的描述,一般表示为:关系名属性1,属性2,…,属性n(3)元祖:表中的一行即为一个元组(4)属性:表中的一列即为一个属性(5)码:表中的某个属性组,它可以惟一确定一个元组(6)域:属性的取值范围(7)分量:元组中的一个属性值第3章关系数据库3.定义并理解下列术语,说明它们之间的联系与区别; (1)域:域是一组具有相同数据类型的值的集合;笛卡儿积:给定一组域D1,D2,…,Dn,这些域中可以有相同的;D1,D2,…,Dn的笛卡尔积为:D1×D2×…×Dn={d1,d2,…,dn|di∈Di,i=1,2,…,n} 其中每一个元素d1,d2,…,dn叫做一个n元组或简称元组;元素中的每一个值di叫做一个分量;关系:在域D1,D2,…,Dn上笛卡尔积D1×D2×…×Dn的子集称为关系,表示为RD1,D2,…Dn元组:关系中的每个元素是关系中的元组;属性:关系也是一个二维表,表的每行对应一个元组,表的每列对应一个域;由于域可以相同,为了加以区分,必须对每列起一个名字,称为属性;(2)候选码:若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码;主码:若一个关系有多个候选码,则选定其中一个为主码;外部码:设F是基本关系R的一个或一组属性,但不是关系R的码,如果F与基本关系S的主码Ks相对应,则称F是基本关系R的外部码,简称外码;基本关系R称为参照关系,基本关系S称为被参照关系或目标关系;关系R 和S可以是相同的关系;(3)关系模式:关系的描述称为关系模式;它可以形式化地表示为RU,D,dom,F 其中R为关系名,U为组成该关系的属性名集合,D为属性组U中属性所来自的域,dom为属性向域的映像集合,F为属性间数据的依赖关系集合;关系:在域D1,D2,…,Dn上笛卡儿积D1×D2×…×Dn的子集称为关系,表示为RD1,D2,…Dn,关系是关系模式在某一时刻的状态或内容;关系模式是静止的、稳定的;而关系是动态的、随时间不断变化的,因为关系操作在不断更新着数据库中的数据;关系数据库:关系数据库也有型和值之分;关系数据库的型也称为关系数据库模式,是对关系数据库的描述,它包括若干域的定义以及在这些域上定义的若干关系模式;关系数据库的值是这些关系模式在某一时刻对应的关系的集合,通常就称为关系数据库;4.试述关系模型的完整性规则;在参照完整性中,为什么外部码属性的值也可以为空什么情况下才可以为空5.答:关系模型的完整性规则是对关系的某种约束条件;关系模型中可以有三类完整性约束:实体完整性、参照完整性和用户定义的完整性;其中实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称做事关系的两个不变性,应该由关系系统自动支持;1实体完整性规则:若属性A是基本关系R的主属性,则属性A不能取空值; 2参照完整性规则:若属性或属性组F是基本关系R的外码,它与基本关系S 的主码Ks相对应基本关系R和S不一定是不同的关系,则对于R中每个元组在F上的值必须为:1或者取空值F的每个属性值均为空值2或者等于S中的某个元组的主码值;3用户定义的完整性是针对某一具体关系数据库的约束条件;它反映某一具体应用所涉及的数据必须满足的语义要求;在参照完整性中,外部码属性的值可以为空,它表示该属性的值尚未确定,但前提条件是该外部码属性不是其所在关系的主属性;例如,在下面的“学生”表中,“专业号”是一个外部码,不是学生表的主属性,可以为空,其语义是,该学生的专业尚未确定;学生学号,姓名,性别,专业号,年龄专业专业号,专业名而在下面的“选修”表中的“课程号”虽然也是一个外部码属性,但它又是“课程”表的主属性,所以不能为空,因为关系模型必须满足实体完整性;课程课程号,课程名,学分选修学号,课程号,成绩p61 5、设有一个SPJ数据库,包括S、P、J、SPJ四个关系模式:SSNO,SNAME,STATUS,CITY;PPNO,PNAME,COLOR,WEIGHT;JJNO,JNAME,CITY;SPJSNO,PNO,JNO,QTY;供应商表S由供应商代码SNO、供应商姓名SNAME、供应商状态STATUS、供应商所在城市CITY组成;零件表P由零件代码PNO、零件名PNAME、颜色COLOR、重量WEIGHT组成;工程项目表J由工程项目代码JNO、工程项目名JNAME、工程项目所在城市CITY 组成;供应情况表SPJ由供应商代码SNO、零件代码PNO、工程项目代码JNO、供应数量QTY组成,表示某供应商供应某种零件给某工程项目的数量为QTY;今有若干数据如下:S表试分别用关系代数完成如下查询:(1)求供应工程J1零件的供应商号SNO;答关系代数πSNOσJNO=’J1’SPJ(2)求供应工程J1零件P1的供应商号SNO;答关系代数πSNOσJNO=’J1’⋀PNO=’P1’SPJ(3)求供应工程J1零件为红色的供应商号SNO;答关系代数πSNOπSNO,PNOσJNO=’J1’SPJ ⋈πPNOσCOLOR=’红’P(4)求没有使用天津供应商生产的红色零件的工程号JNO;答关系代数πJNO J-πJNOπSNOσCITY=’天津’S⋈πSNO,PN0,JNO SPJπPNOσCOLOR=’红’P解析减法运算中被减的部分是使用了天津供应商生产的红色零件的所有工程号,πJ是全部工程的工程号,两者相减就是没有使用天津供应商生出的红色零件的工程号,包括没有使用任何零件的工程号;5求至少用了S1供应商所供应的全部零件的工程号JNO;答关系代数πJNO,PNO SPJ÷πPNOσSNO=’s1’SPJ解析上面公式中除号前的部分是所有工程与该工程所用的零件,除号后的部分是S1所供应的全部零件号;对于SPJ表中的某一个JNO,如果该工程使用的所有零件的集合包含S1所供应的全部零件号,则该JNO符合本题条件,在除法运算的结果集中;可以看到,使用关系代数的除法运算概念清晰,语言表达也很简单;7.关系代数的基本运算有哪些选择、投影、并、差和笛卡儿积五种;第4章关系数据库的标准语言SQL5.针对习题3中的4个表试用SQL完成如下操作;1找出所有供应商的姓名和所在的城市;SELECT SNAME,CITYFROM S;5找出上海厂同提供的所有零件号码SELECT DISTINCT PNOFROM SPJ WHERE SNO INSELECT SNO FROM S WHERE CITY=‘上海’;(8)把所有红色的零件的颜色改成蓝色UPDATE P SET COLOR=’蓝’ WHERE COLOR=’红’(10)从供应商的关系中删除S2的记录,并从供应关系中删除相应记录;DELETE FROM SPJ WHERE SNO=‘2’;DELETE FROM S WHERE SNO=‘S2’;6.什么是基本表什么是视图两者的区别和联系是什么基本表是本身独立存在的表;视图是人一个或几个基本表导出的表;视图本身不独立存储在数据库中,是一个虚表;即数据库中只存放视图的定义而不存放视图对应的数据,这些数据仍存放在导出视图的基本表中;用户可以如同基本表那样使用视图,可以在视图上再定义视图;7.试述视图的优点;1视图能简化用户的操作;2视图使用户能以多种角度看待同一数据;3视图对重构数据库提供了一定程度的逻辑独立性;4视图能够对机密数据提供安全保护;9.哪类视图是可以更新的基本表的行列子集视图是可以更新的;第5章数据库的安全性1什么是数据库的安全性答:数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄露,更改过破坏;试述实现数据库安全性控制的常见方法和技术3实现数据库安全性控制的常见方法和技术有:(1)用户标识和鉴别:该方法由系统提供一定的方式让用户标识自己的名字或身份;每次用户要求进入系统时,由系统进行核对,通过鉴定后才提供系统的使用权;(2)存取控制:通过用户权限定义和合法权检查确保只有合法权限的用户访问数据库,所有未被授权的人无法存取数据;例如C2集中地自主存取控制DAC,B1集中的强制存取控制MAC; (3)视图机制:为不同的用户定义视图,通过视图机制把要保密的数据对无权存取的用户隐藏起来,从而自动地对数据提供一定程度的安全保护;(4)审计:建立审计日志,把用户对数据库的所有操作自动记录下来放入审计日志中,DBA 可以利用审计跟踪的信息,重现导致数据库现有状况的一系列事件,找出非法存取数据的人、时间和内容等;(5)数据加密:对存储和传输的数据进行加密处理,从而使得不知道解密算法的人无法获知数据的内容;6. 什么是数据库的审计功能,为什么要提供审计功能答:审计功能是指DBMS的审计模块在用户对数据库执行操作的同时把所有操作自动记录到系统的审计日志中;因为任何系统的安全保护措施都不是完美无缺的,蓄意盗窃破坏数据的人总可能存在;利用数据库的审计功能,DBA可以根据审计跟踪的信息,重现导致数据库现有状况的一系列事件,找出非法存取数据的人、时间和内容等;第6章数据库的完整性1.什么是数据库的完整性答:数据库的完整性是指数据的正确性和相容性;6.假设有下面两个关系模式:职工职工号,姓名,年龄,职务,工资,部门号,其中职工号为主码;部门部门号,名称,经理名,地址,电话号,其中部门号是主码;用SQL语言定义这两个关系模式,要求在模式中完成以下完整性约束条件的定义:定义每个模式的主码;定义参照完整性;定义职工年龄不超过60岁;答:CREATE TABLE DEPTDeptno NUMBER2,Deptname VARCHAR10,Manager VARCHAR10,PhoneNumber Char12CONSTRAINT PK_SC PRIMARY KEY Deptno;CREATE TABLE EMPEmpno NUMBER4 primary key,Ename VARCHAR10,Age NUMBER2,CONSTRAINT C1 CHECK Aage < =60,Job VARCHAR9,Sal NUMBER7,2,Deptno NUMBER2,CONSTRAINT FK_DEPTNOFOREIGN KEYDeptnoREFERENCES DEPTDeptno;7关系系统中,当操作违反实体完整性、参照完整性和用户定义的完整性约束条件时,一般是如何分别进行处理的答:对于违反实体完整性和用户定义完整性的操作,一般都采用拒绝执行的方式处理;而对于违反参照完整性的操作,并不都是简单地拒绝执行,有时要根据应用语义执行一些附加的操作,以保证数据的正确性;第7章数据库恢复技术5.数据库的恢复技术有哪些数据转储和登录日志文件是数据库恢复的基本技术;当系统运行过程中发生故障,利用转储的数据库后备副本和日志文件就可以将数据库恢复到故障前的某个一致性状态;第8章并发控制1.在数据库中为什么要并发控制答:数据库是共享资源,通常有许多个事务同时在运行;当多个事务并发地存取数据库时就会产生同时读取和∕或修改同一数据的情况;若对并发操作不加控制就可能读取和存储不正确的数据,破坏数据库的一致性;所以数据库管理系统必须提供并发控制机制;2.并发操作可能会产生哪几类数据不一致用什么方法能避免各种不一致的情况3.答:并发操作带来的数据不一致性包括三类:丢失修改、不可重复读和读“脏”数据;1丢失修改两个事务T1和T2读入同一数据并修改,T2提交的结果破坏了覆盖了T1提交的结果,导致T1的修改被丢失;2不可重复读不可重复读是指事务T1读取数据后,事务T2提交执行更新操作,使T1无法再现前一次读取结果;3读”脏”数据读“脏”数据是指事务T1修改某一数据,并将其写回磁盘,事务T2读取同一数据后,T1由于某种原因被撤销,这时T1已修改过的数据恢复原值,T2读到的数据就与数据库中的数据不一致,则T2读到的数据就为“脏”数据,即不正确的数据;避免不一致性的方法和技术就是并发控制;最常用的技术是封锁技术;也可以用其他技术,例如在分布式数据库系统中可以采用时间戳方法来进行并发控制;4.基本的封锁类型有几种试述它们的含义;答:基本的封锁类型有两种:排它锁和共享锁;排它锁又称为写锁;若事务T对数据对象A加上X锁,则只允许T读取和修改A,其他任何事务都不能再对A加任何类型的锁,直到T释放A上的锁;这就保证了其他事务在T释放A上的锁之前不能再读取和修改A;共享锁又称为读锁;若事务T对数据对象A加上S锁,则事务T可以读A但不能修改A,其他事务只能再对A加S锁,而不能加X锁,直到T释放A上的S锁;这就保证了其他事务可以读A,但在T释放A上的S锁之前不能对A做任何修改; 6.如何用封锁机制保证数据的一致性答:DBMS在对数据进行读、写操作之前首先对该数据执行封锁操作,例如下图中事务T1在对进行修改之前先对A执行XockA,即对A加X锁;这样,当T2请求对A加X锁是就被拒绝,T2只能等待T1释放A上的锁后才能获得对A的X锁,这时它读到的A是T1更新后的值,再按此新的A值进行运算;这样就不会丢失T1的更新;DBMS按照一定的封锁协议,对并发控制进行控制,使得多个并发操作有序地执行,就可以避免丢失修改、不可重复读和读“脏”数据等数据不一致性;5.什么是封锁协议不同级别的封锁协议的主要区别是什么6.答:在运用封锁技术对数据加锁时,要约定一些规则;例如,在运用X锁和S锁对数据对象加锁时,要约定何时申请X锁或S锁、何时释放封锁等;这些约定或者规则称为封锁协议;对封锁方式约定不同的规则,就形成了各种不同的封锁协议、不同级别的封锁协议,例如三级封锁协议,三级封锁协议的主要区别在于什么操作需要申请封锁,何时申请封锁以及何时释放锁即持锁时间的长短;一级封锁协议:事务T在修改数据R之前必须先对其加X锁,直到事务结束才释放;二级封锁协议:一级封锁协议加上事务T在读取数据R之前必须先对其加S 锁,读完后即可释放S锁;三级封锁协议:一级封锁协议加上事务T在读取数据R之前必须先对其加S 锁,直到事务结束才释放;8.什么是活锁什么是死锁答:T1 T2 T3 T4Lock R . . .. Lock R . .. 等待lock R .Unlock 等待. Lock R. 等待Lock R 等待. 等待. 等待. 等待Unlock 等待, 等待. Lock R 如果事务T1封锁了数据R,事务T2又请求封锁R,于是T2等待;T3也请求封锁R,当T1释放了R上的封锁之后系统首先批准了T3的请求,T2仍然等待;然后T4又请求封锁R,当T3释放了R上的封锁之后系统又批准了T4的请求……T2有可能永远等待,这就是活锁的情形;活锁的含义是该等待事务等待时间太长,似乎被锁住了,实际上可能被激活;如果事务T1封锁了数据R1,T2封锁了数据R2,然后T1又请求封锁R2,因T2已封锁了R2,于是T1等待T2释放R2上的锁;接着T2又申请分所R1,因T1已封锁了R1,也只能T1释放R1上的锁;这样就出现了T1在等待T2,而T2又在等待T1的局面,T1和T2两个事务永远不能结束,形成死锁;T1 T2lock R1 ..Lock R2. .Lock R2.等待lock R1.8.试述活锁的产生原因和解决方法;答:活锁产生的原因:当一系列封锁不能按照其先后顺序执行时,就可能导致一些事务无限期等待某个封锁,从而导致活锁;避免活锁的简单方法是采用先来先服务的策略;当多个事务请求封锁同一数据对象时,封锁子系统按请求封锁的先后次序对事务排队,数据对象上的锁一旦释放就批准申请队列中的第一个事务获得锁;10.请给出预防死锁的若干方法;答:在数据库中,产生死锁的原因是两个或多个事务都已封锁了一些数据对象,然后又都请求已被其他事务封锁的数据加锁,从而出现死等待;防止死锁的发生其实就是要破坏产生死锁的条件;预防死锁通常有两种方法:(1)一次封锁法,要求每个事务必须一次将所有要使用的数据全部加锁,否则就不能继续执行;(2)顺序封锁法,预先对数据对象规定一个封锁顺序,所有事务都能按这个顺序实行封锁;不过,预防死锁的策略不大适合数据库系统的特点,具体原因可参加概论; 11.请给出检测死锁发生的一种方法,当发生死锁后如何解除死锁答:数据库系统一般采用允许死锁发生,DBMS检测到死锁后加以解除的方法;DBMS中诊断死锁的方法与操作系统类似,一般使用超时法或事务等待图法;超时法是:如果一个事务的等待时间超过了规定的时限,就认为发生了死锁;超时法实现简单,但有可能误判死锁,事务因其他原因长时间等待超过时限时,系统会误认为发生了死锁;若时限设置的太长,又不能及时发现死锁发生;DBMS并发控制子系统检测到死锁后,就要设法解除;通常采用的方法是选择一个处理死锁代价最小的事务,将其撤销,释放此事务持有的所有锁,使其他事务得以继续运行下去;当然,对撤销的事务所执行的数据修改操作必须加以恢复; 12.什么样的并发调度是正确的调度答:可串行化的调度室正确的调度;可串行化的调度的定义:多个事务的并发执行是正确的,当且仅当其结果与按某一次序串行执行它们时的结果相同,称这种调度策略为可串行化的调度; 13.设T1,T2,T3是如下的3个事务:T1:A=A+2;T2:A=A2;T3:A=A2;A←A²设A的初值为0.(1)若这三个事务允许并行执行,则有多少可能的正确结果,请一一列举出来;答:A的最终结果可能有2、4、8、16;因为串行执行次序有T1T2T3、T1T3T2、T2T1T3、T2T3T1、T3T1T2、T3T2T1;对应的执行结果是16、8、4、2、4、2;2请给出一个可串行化的调度,并给出执行结果;答:T1T2T3Slock AY=A=0Unlock AXlock ASlock AA=Y+2 等待写回A=2 等待Unlock A 等待Y=A=2Unlock AXlock ASlock AA=Y2 等待写回A=4 等待Unlock A 等待Y=A=4Unlock AXlock AA=Y2写回A=16Unlock A 最后结果A为16,是可串行化的调度;3请给出一个非串行化的调度,并给出执行结果;T1T2T3Slock AY=A=0Unlock ASlock AY=A=0Xlock A等待Unlock AA=Y+2写回A=2 Slock AUnlock A 等待Y=A=2Unlock AXlock AXlock A等待Y=Y2等待写回A=4等待Unlock AA=Y2写回A=0Unlock A最后结果A为0,为非串行化的调度;(4)若这3个事务都遵守两段锁协议,请给出一个不穿生死锁的可串行化调度;答:T1 T2T3Slock AY=A=0Xlock AA=Y+2 Slock A写回A=2 等待Unlock A 等待Y=A=2Xlock AUnlock A 等待Slock AA=Y2 等待写回A=4 等待Unlock A 等待Y=A=4Unlock AXlock AA=Y2写回A=16Unlock AUnlock A5若这3个事务都遵守两段锁协议,请给出一个产生死锁的调度;答:T1T2 T3Slock AY=A=0Slock AY=A=0Xlock A等待Xlock A等待Slock AY=A=0Xlock A14.试述两段锁协议的概念; 等待答:两段锁协议是指所有事务必须分两个阶段对数据项加锁和解锁;●在对任何数据进行读、写操作之前,首先要申请并获得对该数据的封锁;●在释放一个封锁之后,事务不再申请和获得任何其他封锁;“两段”的含义是,事务分为两个阶段:第一阶段是获得封锁,也称为扩展阶段,在这个阶段,事务可以申请获得任何数据项上的任何类型的锁,但是不能释放任何锁;第二阶段是释放封锁,也称为收缩阶段,在这阶段,事务释放已经获得的锁,但是不能再申请任何锁;第十章概念模型与E-R方法1.什么是概念模型概念模型的作用是什么答:概念模型实际上是现实世界机器的一个中间层次;概念模型用于信息世界的建模,是现实世界到信息世界的第一层抽象,是数据库设计人员进行数据库设计的有力工具,也是数据库人员和用户之间进行交流的语言;4.试给出3个实际部门的E-R图,要求实体型之间具有一对一,一对多,多对多各种不同的联系;n9.学校总有若干系,每个系有若干班级和教研室,每个教研室有若干教员,其中有的教授和副教授没人各带若干研究生,每个学生选修若干课程,每门课程可由若干学生选修;请用E-R图画出此学校的概念模型;答:。

数据库第6章第7章习题

数据库第6章第7章习题

第6章关系数据理论一.选择题1.对关系模式进行规范化的主要目的是BA.提高数据操作效率B.维护数据的一致性C.加强数据的安全性D.为用户提供更快捷的数据操作2.关系模式中的插入异常是指DA.插入的数据违反了实体完整性约束B.插入的数据违反了用户定义的完整性约束C.插入了不该插入的数据D.应该被插入的数据不能被插入3.如果有函数依赖X→Y,并且对X的任意真子集X’,都有X’Y,则称C A.X完全函数依赖于Y B.X部分函数依赖于YC.Y完全函数依赖于X D.Y部分函数依赖于X4.如果有函数依赖X→Y,并且对X的某个真子集X’,有X’→Y成立,则称B A.Y完全函数依赖于X B.Y部分函数依赖于XC.X完全函数依赖于Y D.X部分函数依赖于Y5.若X→Y和Y→Z在关系模式R上成立,则X→Z在R上也成立。

该推理规则称为C A.自反规则B.增广规则C.传递规则D.伪传递规则6.若关系模式R中属性A仅出现在函数依赖的左部,则A为AA.L类属性B.R类属性C.N类属性D.LR类属性7.若关系模式R中属性A是N类属性,则A DA.一定不包含在R任何候选码中B.可能包含也可能不包含在R的候选码中C.一定包含在R的某个候选码中D.一定包含在R的任何候选码中8.设F是某关系模式的极小函数依赖集。

下列关于F的说法,错误的是B A.F中每个函数依赖的右部都必须是单个属性B.F中每个函数依赖的左部都必须是单个属性C.F中不能有冗余的函数依赖D.F中每个函数依赖的左部不能有冗余属性9.有关系模式:学生(学号,姓名,所在系,系主任),设一个系只有一个系主任,则该关系模式至少属于BA.第一范式B.第二范式C.第三范式D.BC范式10.设有关系模式R(X, Y, Z),其F={Y→Z, Y→X, X→YZ},则该关系模式至少属于DA.第一范式B.第二范式C.第三范式D.BC范式11.下列关于关系模式与范式的说法,错误的是DA.任何一个只包含两个属性的关系模式一定属于3NFB.任何一个只包含两个属性的关系模式一定属于BCNFC.任何一个只包含两个属性的关系模式一定属于2NFD.任何一个只包含三个属性的关系模式一定属于3NF12.有关系模式:借书(书号,书名,库存量,读者号,借书日期,还书日期),设一个读者可以多次借阅同一本书,但对一种书(用书号唯一标识)不能同时借多本。

数据库试题及课后答案

数据库试题及课后答案

数据库系统概论习题集第一章绪论一、选择题1. DBS是采用了数据库技术的计算机系统,DBS是一个集合体,包含数据库、计算机硬件、软件和(C)。

A. 系统分析员B. 程序员C. 数据库管理员D. 操作员2. 数据库(DB),数据库系统(DBS)和数据库管理系统(DBMS)之间的关系是(A )。

A. DBS包括DB和DBMSB. DBMS包括DB和DBSC. DB包括DBS和DBMSD. DBS就是DB,也就是DBMS3. 下面列出的数据库管理技术发展的三个阶段中,没有专门的软件对数据进行管理的是(D)。

I.人工管理阶段II.文件系统阶段III.数据库阶段A. I 和IIB. 只有IIC. II 和IIID. 只有I4. 下列四项中,不属于数据库系统特点的是(C )。

A. 数据共享B. 数据完整性C. 数据冗余度高D. 数据独立性高5. 数据库系统的数据独立性体现在(B)。

A.不会因为数据的变化而影响到应用程序B.不会因为系统数据存储结构与数据逻辑结构的变化而影响应用程序C.不会因为存储策略的变化而影响存储结构D.不会因为某些存储结构的变化而影响其他的存储结构6. 描述数据库全体数据的全局逻辑结构和特性的是(A )。

A. 模式B. 内模式C. 外模式D. 用户模式7. 要保证数据库的数据独立性,需要修改的是(C)。

A. 模式与外模式B. 模式与内模式C. 三层之间的两种映射D. 三层模式8. 要保证数据库的逻辑数据独立性,需要修改的是(A )。

A. 模式与外模式的映射B. 模式与内模式之间的映射C. 模式D. 三层模式9. 用户或应用程序看到的那部分局部逻辑结构和特征的描述是(C),它是模式的逻辑子集。

A.模式B. 物理模式C. 子模式D. 内模式10.下述(D )不是DBA数据库管理员的职责。

A.完整性约束说明B. 定义数据库模式C.数据库安全D. 数据库管理系统设计选择题答案:(1) C (2) A (3) D (4) C (5) B(6) A (7) C (8) A (9) C (10) D课后习题第二章关系数据库一、选择题1. 下面的选项不是关系数据库基本特征的是(A )。

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

第6章管理数据库其他对象
本章要点:
1、视图及视图与表的关系
2、视图的创建、管理和操作
3、规则、默认值的概念及创建、捆绑、修改和删除
4、自定义数据类型的创建、修改、删除和查看
5、触发器的概念、作用及两种触发器的工作原理和执行过程
6、触发器的创建及管理
6.1 视图
6.1.1 视图的概念
视图是一种数据库对象,是从一个或者多个数据表或视图中导出的虚表,视图的结构和数据是对数据表进行查询的结果。

视图被定义后便存储在数据库中,通过视图看到的数据只是存放在基表中的数据。

当对通过视图看到的数据进行修改时,相应的基表的数据也会发生变化,同时,若基表的数据发生变化,这种变化也会自动地反映到视图中。

视图可以是一个数据表的一部分,也可以是多个基表的联合。

6.1.2 视图的优点
⏹视图可以屏蔽数据的复杂性,简化用户对数据库的操作。

⏹视图可以让不同的用户以不同的方式看到不同或者相同的数据集。

⏹可以使用视图重新组织数据。

⏹视图可以定制不同用户对数据的访问权限。

6.1.3 创建视图
1、创建视图之前的注意事项:
⏹只能在当前数据库中创建视图。

⏹一个视图中行、列的限制。

⏹如果视图中某一列是函数、数学表达式、常量或者来自多个表的列名相同,则必须为列定义名称。

⏹视图与基表的关系
⏹不能在视图上创建索引,不能在规则、默认的定义中引用视图。

2、创建视图
(1)使用企业管理器创建视图
在企业管理器中展开要创建视图的数据库,用鼠标右键单击“视图”选项,
在弹出的快捷菜单中选择“新建视图”命令,打开后,这个界面我们在前
面介绍select语句的时候已经给大家介绍过了。

在此不再赘述了,请大家
对照书本的例子练习。

(2)使用Transact-SQL语句创建视图
CREATE VIEW
[ < database_name > .] [ < owner > .]
view_name [ ( column [ ,...n ] ) ]
[ WITH < view_attribute > [ ,...n ] ]
AS
select_statement
[ WITH CHECK OPTION ]
< view_attribute > ::=
{ ENCRYPTION | SCHEMABINDING |
VIEW_METADATA }
举例:
在“studentborrow”数据库中,创建一个仅包含“高等教育出版社”出版图书的视图
语句:
create view 高等教育出版社
as
select *
from 图书信息
where 出版社名称='高等教育出版社'
创建一个视图,其中的内容是所有价格低于10元的图书,并加密视图的定义。

create view ddd
with encryption
as
select *
from 图书信息
where 定价<10
此时右单击视图“低价图书”->属性->文本行定义不可见
(2)使用向导创建视图
选择“工具”->“向导”->“数据库向导”->“创建视图向导”,根据向导的提示一步一步操作即可。

6.1.4 查看视图信息
1、使用企业管理器查看视图信息
2、使用系统存储过程查看视图信息
sp_help 数据库对象名称
sp_helptext 视图(触发器、存储过程)
sp_depends 数据库对象名称
举例:查看视图高等教育出版社定义
exec sp_helptext 高等教育出版社
6.1.5 修改视图
1.使用企业管理器修改视图
2.使用Transact-SQL语句修改视图
ALTER VIEW view_name
[(column[,...n])]
[WITH ENCRYPTION]
AS
select_statement
[ WITH CHECK OPTION ]
6.1.6 重命名视图
1.使用企业管理器重命名视图
2.使用系统存储过程重命名视图
sp_rename old_name,new_name
6.1.7 使用视图
⏹修改视图中的数据时每次修改都只能影响一个基表。

⏹不能修改那些通过计算得到的字段。

⏹如果在创建视图时指定了WITH CHECK OPTION选项,那么所有使用视图修改数据库信息时,必须保证修改后的数据满足视图定义的范围。

⏹执行UPDATE、DELETE命令时,所删除与更新的数据必须包含在视图的结果集中。

⏹如果视图引用多个表时,无法用DELETE命令删除数据,若使用UPDATE命令则应与INSERT操作一样,被更新的列必须属于同一个表。

6.1.8 删除视图
1、使用企业管理器删除视图
2、使用Transact-SQL语句删除视图
DROP VIEW {view_name} [,…n]
第二节用户自定义数据类型
用户自定义数据类型并不是真正的数据类型,它只是提供了一种加强数据库内部元素和基本数据类型之间一致性的机制。

通过使用用户自定义数据类型,能够简化对常用规则和默认值的管理。

6.2.1 创建用户自定义数据类型
1、使用T-SQL语句
可以使用系统存储过程sp_addtype来创建用户自定义数据类型。

语法:
sp_addtype type_name[,system_type]{‘null’,|’not null’|’notnull’}。

相关文档
最新文档