数据库考试复习福建农林大学.docx

上传人:b****8 文档编号:9478651 上传时间:2023-02-04 格式:DOCX 页数:9 大小:18.84KB
下载 相关 举报
数据库考试复习福建农林大学.docx_第1页
第1页 / 共9页
数据库考试复习福建农林大学.docx_第2页
第2页 / 共9页
数据库考试复习福建农林大学.docx_第3页
第3页 / 共9页
数据库考试复习福建农林大学.docx_第4页
第4页 / 共9页
数据库考试复习福建农林大学.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

数据库考试复习福建农林大学.docx

《数据库考试复习福建农林大学.docx》由会员分享,可在线阅读,更多相关《数据库考试复习福建农林大学.docx(9页珍藏版)》请在冰豆网上搜索。

数据库考试复习福建农林大学.docx

数据库考试复习福建农林大学

一、题型及分值

1、填空题(10个空,10分)

2、选择题(10小题,20分)

3、程序填空题(10个空,20分)

4、应用题(SQL查询及更新,4小题,16分)

4、问答与分析题(5小题,34分)

二、知识要点

(一)关系数据理论及数据库设计

1、函数依赖:

完全函数依赖、部分函数依赖、传递函数依赖

2、三大范式

3、反范式设计

4、数据库设计的一般步骤

5、数据库设计中各个步骤的作用

【例1】在关系数据库中,从关系规范化的意义看,如果关系R中的非主属性对码有传递函数依赖,那么R最高是______范式。

【例2】设有关系模式R(A,B,C,D),其上的函数依赖集合F={B→A,BC→D},则R最高是

_____范式。

【例3】在关系模式:

选课(学号,课程号,考试次数,成绩)中,假设一个学生可以参加多门课程的多次考试。

该关系模式的码是__________。

【例4】关系数据库的规范化理论主要解决的问题是(  )。

A、如何构造合适的数据逻辑结构

B、如何构造合适的数据物理结构

C、如何构造合适的应用程序界面

D、如何控制不同用户的数据操作权限 

【例5】一个只满足1NF的关系模式,可能存在哪些方面的问题?

答:

数据冗余、插入异常、删除异常和修改异常。

【例6】关系模式R(球员编号,篮球比赛场次,进球数,球队名,队长)用来表示我校举行的各系篮球比赛。

规定每个球队只有一名队长。

(1)试说明R不是2NF的理由,并将R分解为2NF的模式集。

答:

关系R的码是(球员编号,篮球比赛场次)。

该关系的函数依赖集如下:

{(球员编号,篮球比赛场次)进球数,球员编号球队名,球队名队长}

即存在非主属性“球员编号”、“队长”对码的部分函数依赖,因此R不是2NF。

将R分解为2NF后的结果如下:

R1:

(球员编号,篮球比赛场次,进球数)

R2:

(球员编号,球队名,队长)

(2)将R分解为3NF模式集。

答:

R1:

(球员编号,篮球比赛场次,进球数)

R2:

(球员编号,球队名)

R3:

(球队名,队长)

【例7】就下图给出的关系R,回答问题:

R

SNO

CNO

CTITLE

SNAME

SLOCA

GRADE

80152

C1

OS

王平

D1

70

80153

C2

DB

高升

D2

85

80154

C1

OS

王平

D1

86

80154

C3

AI

杨洋

D3

72

80155

C4

CL

高升

D2

92

 

 

 

 

 

 

(1)关系R为几范式?

为什么?

(2)是否存在删除操作异常?

若存在,则说明是在什么样情况下发生的?

(3)将它分解成高一级范式,分解后的关系是如何解决分解前可能存在的删除异常问题的?

【例8】已知点评网的后台数据库中存在以下两个关系:

帖子表(帖子ID,帖子标题,会员ID),会员表(会员ID,会员昵称,会员等级)。

请回答以下问题:

(1)已知“帖子ID”为自增列字段,请写出查询最新的10个帖子的标题以及会员昵称的查询语句。

答:

SELECTTOP10N.帖子标题,U.会员昵称,N.会员ID

FROM帖子表N INNERJOIN会员表U

ONN.会员ID=U.会员ID

ORDERBYN.帖子IDDESC

(2)为了提高第一小题的SQL语句的查询速度,您会如何重新设计数据库表?

并说明原因。

答:

当帖子表和会员表中涉及到大量记录时,上述的查询难以满足用户对于网页速度的要求。

为了提高查询速度,考虑“反范式设计”,即在帖子表里面添加冗余字段“会员昵称”,这样就可以通过下面的语句达到同样的查询目的:

SELECTTOP10帖子标题,会员昵称,会员ID

FROM帖子表

ORDERBY帖子IDDESC

【例9】请简述范式对查询的影响。

答:

对查询的利:

(1)减少数据冗余,数据更为紧凑;            

(2)表的行数少,排序、索引更为迅速;          

(3)由于多表,多个聚集索引成为可能。

          

对查询的弊:

使得查询数据分离在多张表中,增加了查询的复杂性。

【例10】概念结构设计阶段得到的结果是( )。

A.数据字典描述的数据需求      B. E-R图表示的概念模型

C. 某个DBMS所支持的数据模型    D.包括存储结构和存取方法的物理结构

【例11】设某商业集团数据库中有三个实体集:

“商店”实体集,其中的属性有商店编号、商店名、地址等;“商品”实体集,其中的属性有商品号、商品名、规格、单价等;“职工”实体集,其中的属性有职工编号、姓名、性别、业绩等。

商店与商品之间存在“销售”联系,每个商店可销售多种商品,每种商品也可放在多个商店销售,每个商店销售一种商品,有月销售量;商店与职工之间存在着“聘用”联系,每个商店的职工人数应该在20~100人之间,每个职工只能在一个商店工作,商店聘用职工有聘用期和月薪。

(1)试画出E-R图;

(2)将E-R图转换成关系模型。

(二)数据库的完整性

1、约束:

三类完整性约束、SQLServer的约束类型

2、触发器:

after触发器

3、游标的作用

【例1】请编写触发器实现如下功能:

将userInfo(uid,userName,userPass)删除的记录,移到userInfo_Del(userName,userPass,delTime)中。

其中,del_time存储删除操作的时间。

【例2】有职工表EMP和部门表DEPT如图所示,其中有下划线的属性为主键,有波浪线

的属性为外键。

下面操作不能正确执行的是(   )

A.检索部门号为“D05”的职工号

B.将EMP表中职工“李路”的部门号改为空值

C.删除职工“崔浩”的记录

D.在EMP表中插入记录(“E18”,“D05”,“王莹”)

部门号部门名

D01研发部

D02市场部

D03人事部

D04财务部

 

EMP                 DEPT

职工号部门号职工名

E01D03李路

E25D01武明

E19D04崔浩

E32D01李颖

 

【例3】已知两个关系如下:

R

A

B

C

 

1

b1

c1

 

2

b2

c2

 

3

b1

c1

 

 

 

 

S

D

E

A

 

d1

e1

1

 

d2

e2

1

 

d3

e1

2

 

 

 

 

假设R的主键是A,S的主键是D,在关系S的定义中包含外键子句:

“FOREIGN KEY(A) REFERENCES R(A)”,

下列SQL语句不能成功执行的是(  )

A.DELETE FROM R WHERE A=2

B.DELETE FROM R WHERE A=3

C.DELETE FROM S WHERE A=1

D.DELETE FROM S WHERE A=2

【例4】已知Teacher表包含教师编号、姓名、职称和工资四个字段。

请定义完整性规则:

教授工资不得低于4000元。

如果低于4000元,自动改成4000元。

【例5】一个SQL语句原则上可产生或处理一组记录,而主语句一次只能处理一个记录,为此必须协调两种处理方式,这是通过使用___游标__机制来解决的。

 

(三)视图

1、数据库系统的三级模式:

外模式、内模式、模式

2、视图的作用

【例1】什么是物化视图?

试分析物化视图与普通视图的区别。

答:

物化视图指的是存放SQL语句对应查询结果的视图。

区别:

(1)普通视图只存放视图的定义,物化视图存放的是实际的查询数据;    

(2)使用物化视图的查询效率通常高于普通视图;              

(3)物化视图需要占用较大的存储空间;                

(4)当基表中的数据发生变化时,需要刷新物化视图。

  

【例2】单个用户使用的数据视图的描述称为( )

A. 外模式             B.概念模式

C. 内模式             D.存储模式

【例3】在合并分E-R时,需完成消除命名冲突的工作。

使用_视图__机制可以重新定义某些属性名,使其与用户习惯一致。

        

(四)存储过程

1、存储过程的定义

2、存储过程的优缺点

【例1】什么是存储过程?

存储过程有哪些优点?

答:

存储过程是用户完成某项特定任务的一组预编译好的SQL语句。

优点:

(1)模块化编程;

(2)快速执行;(3)减少网络通信量。

(4)预防SQL语句的注入攻击。

【例2】试举例说明存储过程能够预防SQL语句注入攻击。

答:

假设数据库中有一个关系student(sno,sname,sage,ssex)。

在连接数据库后,使用字符串拼接的方式查询指定学号的学生信息,其中txtSno.Text代表用户往文本框中输入的学号。

StringsqlStr=“select*fromstudentwheresno=‘”+txtSno.Text.Trim()+“’”;

如果用户往文本框中输入字符串:

‘or‘1’=‘1

该语句将成为select*fromstudentwheresno=‘’or‘1’=’1’

即执行结果为student表中的全部记录。

而如果在student表上创建如下存储过程Pr_Student,其中@sno用于接受用户输入的学号。

CreateprocedurePr_Student

@snochar(5)

As

Select*fromstudentsno=@sno

然后在应用程序中使用如下语句调用存储过程。

SqlCommandcommand=newSqlCommand("Pr_Student",sqlCon);

command.CommandType=CommandType.StoredProcedure;

command.Parameters.AddWithValue("@sno",sno);

当用户输入字符串‘or‘1’=‘1,将在数据库中查找sno为‘or‘1’=‘1的学生信息,输出结果将为空。

通过上例说明了使用存储过程能够预防SQL语句的注入攻击。

          

【例3】设计一个具备分页功能的存储过程。

【例4】请在UserLogin(id,userName,userPass,lastLogin)表中,编写一个实现“登录”功能的存储过程。

其中,lastLogin代表最后登录时间。

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1