《2019年电大本科《数据库应用技术》试题简述题附答案备考电大资料》由会员分享,可在线阅读,更多相关《2019年电大本科《数据库应用技术》试题简述题附答案备考电大资料(23页珍藏版)》请在装配图网上搜索。
2019年电大本科《数据库应用技术》试题简述题附答案
简述题
1.关系完整性的主要内容是什么?为什么要保证关系的完整性?
关系完整性就是关系模型中数据的正确性、一致性和有效性。关系完整性又包括实体完整性、参照完整性和用户定义的完整性三个方面。只有保证了关系的完整性,才能使数据库中的数据正确、一致和有效。
2.什么是嵌入式SQL,它有哪些用途?
嵌入式SQL语言是将SQL语句直接嵌入到程序的源代码中,与其他程序设计语言语句混合。
嵌入式SQL的用途:它是数据库应用程序的一种开发方法。是一种应用程序进行数据库访问时所采取的编程式数据库语言。
3.请简要说明视图的概念和作用
视图是在基本表或其他视图上建立的表,它的结构和内容都来自某个基本表,是依据基本表存在而存在的。删除一个视图时,不会对基本表产生任何影响,但当删除一张基本表时,与之相关联的视图就会自动被删除。
其作用主要是:(1)视图是经过预编译的SELECT语句,存储在数据库服务器端,因此执行视图比从客户端直接执行SELECT语句速度更快、效率更高一些。(2)视图属于用户模式范畴,在实际中,一般的用户不一定具有SELECT语句方面的专门知识,从用户友好性角度来说,视图更便于用户使用。(3)利用视图可以简化的形式表达复杂的SELECT语句组,如嵌套查询等。
4.什么是函数依赖与函数决定,请举例说明
设一个关系为R,X和Y是它的两个属性集。若对于X上的每个值都有Y上的一个惟一值与之对应,则称X和Y具有函数依赖关系,并称X函数决定Y,或称Y函数依赖于X,称X为决定因素
假设一个职工关系为(职工号,姓名,性别,年龄,职务),职工号用来标识每个职工,选作该关系的主键。我们可以从以下两方面理解函数依赖的概念:首先,对于该关系中每个职工的职工号,都对应着姓名属性中的惟一值,即该职工的姓名,或者说一个职工的姓名由其职工号惟一确定,所以称职工号函数决定姓名,或称姓名函数依赖于职工号。其次,除职工号外,其他属性都不能成为决定因素形成函数依赖,因为对于它们的每个属性值,都可能对应另一属性的多个不同的取值,比如对于性别属性的一个取值“男”就会对应多个而不是一个职工号
5. 请简要说明存储过程的概念和优点。
存储过程(StoredP rocedure)是一组预先编译好的,以一种可执行的形式永久地存储在数据中的SQL代码。
使用存储过程的好处可归纳为以下几点:
(a)执行速度快。在经过第一次调用以后,就驻留在内存中,不必再经过编译和优化;
(b)模块化的程序设计。经过了一次创建以后,可以被调用无数次;
(c)减少网络流量;(d)保证系统的安全性。
6. 请简要说明关系规范化的必要性。
减少数据冗余、更新异常、插人异常、删除异常
7. 为什么要使用事务?事务处理的作用是什么?
事务(Transaction)是并发控制的基本单位,它反映了现实世界中需要以一个完整的单位提交的一项工作。SQL Server通过事务机制,将逻辑相关的一组操作捆绑在一起,以便服务器保持数据的完整性。它是SQL复杂程序设计必不可少的内容。
举例说,如果我们正在使用UPDATE语句同时将学生表、成绩表中的学号“20030001”改为“20040001”。这个任务需要两条UPDATE语句组成,即:
UPDATE 学生表 SET 学号=‘20040001’ WHERE 学号=‘20030001’
UPDATE 成绩表 SET 学号=‘20040001’ WHERE 学号=‘20030001’
如果在执行完第一个语句后,计算机突然断电,而第二条语句还没来得急执行,数据出现了不一致怎么办?这时候就需要用到SQL的事务控制功能了。
如果使用了SQL Server的事务控制机制,以上两个问题均可获得解决。在使用事务的情况下,SQL Server可以保证,所有的记录要么全部处理,要么一行也不处理。如果修改了全部记录的一半时服务器出错了,SQL Server会返回到以前未执行UPDATE操作前的位置,清除它已经修改过的数据,这就是事务处理的作用。
8. 为什么要进行数据备份?数据库备份包括哪些主要内容?
任何系统都不可避免会出现各种形式的故障,而某些故障可能会导致数据库灾难性的损坏,所以做好数据库的备份工作极为重要。备份可以创建在磁盘、磁带等备份设备上,与备份对应的是还原。
数据库备份就是在某种介质上(磁带、磁盘等)存储数据库(或者其中一部分)的拷贝的过程。更严格意义上讲,备份应该是一种把数据从硬盘上复制到其他可移动介质上的操作过程。
一个完整的备份通常要包括三部分内容,即系统数据库、用户数据库和事务日志。
9. 请简要说明SQL Server数据库备份有哪几种方式?
SQL Server提供了四种不同的方式:数据库完全备份、增量备份、事务日志备份,以及数据库文件和文件组备份。
10.请简要说明开发数据库应用系统时,结构设计和行为设计的含义。
从系统开发的角度,数据库应用系统的建设工作包括结构与行为两个方面:(a)结构设计,着重描述数据库的结构及各数据库对象间关系,要求在满足应用需求的前提下,尽可能地达到第三范式;(b)行为设计,主要目的是描述对数据库的操作动作,这些行为和动作将来要体现在应用程序中,所以行为的设计主要是应用程序的设计。根据系统的结构和行为两方面特性,系统设计开发分为两个部分,一部分是作为数据库应用系统核心和基石的数据库设计,另一部分是相应的数据库应用软件的设计开发,二者相辅相成,组成统一的数据库工程。
什么是数据和数据处理?数据与信息的区别联系是什么?
参考答案:
数据(Data)是一组表示数量、行动和目标的非随机的可鉴别的符号。
数据处理通常包括查找、统计、分类、修改、计算、汇总等各种方法。
数据(Data)是一组表示数量、行动和目标的非随机的可鉴别的符号。
信息(Information)是经过加工的,能对接收者的行为和决策产生影响的、有价值的数据。
如果将数据比喻为原料,那么信息就是数据经过加工而生产的产品,是有价值的数据。与原料和产品的概念相似,一个系统的产品可能是另一个系统的原料,那么一个系统的信息可能成为另一个系统的数据。
2.数据库、数据库管理系统、数据库系统之间到底是什么关系?
参考答案:
数据库就是各种相关数据的集合和容器。数据库所保存的数据是指长期储存在计算机内、有组织的、可共享的数据集合。数据库中的数据必须按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可以被一定范围内的各种用户共享。
数据库管理系统是对数据库进行管理的系统软件,位于用户和操作系统之间,为用户或应用程序提供访问数据库的方法和工具。
广义上,数据库系统就是采用了数据库技术的计算机系统,一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员和用户构成。狭义上讲,数据库系统主要指数据库和数据库管理系统,由于这二者在应用中的相互依赖性,所以在一般不引起混淆的情况下常常把数据库系统简称为数据库。
3.请描述一下SQL Server数据库的存储结构。
参考答案:
SQL Server数据库的存储结构包括物理存储结构和逻辑存储结构两个层面。
在物理层面上,SQL Server数据库是由两个操作系统文件组成的,即数据文件和事务日志文件,它们的后缀分别是MDF和LDF。数据文件主要用于存储数据,事务日志文件主要用于存储数据库的更新情况等事务日志信息。
在逻辑层次上,数据库是由表、视图、存储过程等一系列数据对象组成的。当采用SQL Server企业管理器将上述数据库文件“打开”后,就能看到数据库的逻辑结构了,如图XXX所示。数据库中的数据分别存储在几个不同的对象中,而这些对象是用户在操作数据库时,实际能够看到和接触到的,属于逻辑存储结构。常用的数据库对象主要包括:表(Table)、索引(Index)、视图(Views)、触发器(Triggers)、存储过程(Store Procedures)、缺省(Default)、约束(Constraints)、用户(Users)以及图表(Diagram)和用户自定义的数据类型等。在以后的章节中,我们将逐步学习这些对象的使用方法。
4.简述关系模型的组成。
参考答案:
系模型是目前最重要的一种数据模型。关系数据库系统采用关系模型作为数据的组织方式。关系模型由三部分组成:数据结构、关系操作集合和关系的完整性。
数据结构是指在关系模型中,无论是数据还是数据之间的联系都是以二维表(关系)这一种简单的结构表示的,这即符合人们使用数据的习惯,同时也便于计算机实现。
关系操作是指关系代数(或等价的关系演算)中并、交、差、选择、投影、连接等。关系模型给出了关系操作的能力和特点,但不对DBMS的语言给出具体的语法要求。关系语言的特点是高度的非过程化。其操作方式的特点是集合操作,即操作的对象和结果是集合,称为一次一集合的方式,而不是一次一个记录的方式。
关系完整性包括实体完整性、参照完整性和用户自己定义的完整性。实体完整性是保证数据库中记录的惟一性,即每个记录的主键不能为空值,也不能与其他记录的主键相同。参照完整性是保证表与表之间语意上的完整性,即当一个表引用在另一个表中定义的实体时,要保证这个实体的有效性。这两种完整性是关系模型必须满足的约束条件,应该由关系系统自动支持。而用户自定义完整性反映了用户的要求,是用户自行定义的。
什么是SQL,请简要说明它的组成和特点。
参考答案:
结构化查询语言,Structured Query Language,简称 SQL,是关系数据库的标准语言。SQL语言共分为四大类:数据定义语言,数据查询语言,数据操纵语言,数据控制语言。它的特点包括:非过程化语言,统一的语言,是所有关系数据库的公共语言。
2、索引的作用是什么?SQL Server有哪几类索引,各自的特点是什么?
参考答案:
索引(Index)提供了一种快速访问数据的途径,索引是在基本表的列上建立的一种数据加对象,索引是为了加速查询速度而创建的。
实际的索引通常是这两大类5种方式的组合。
(1)单列索引:对基本表的某一单独的列进行索引,是最简单和最常用的索引类型,通常情况下,应对每个基本表的主关键字建立单列索引。
(2)惟一索引:一旦在一个或多个列上建立了惟一索引,则不允许在表中相应的列上插入任何相同的取值。使用惟一索引不但能提高查询性能,还可以维护数据的完整性。
(3)复合索引:是针对基本表中两个或两个以上列建立的索引。
(4)聚集索引:会改变基本表中记录的物理存储顺序。即表中记录的物理排序顺序不再按插入的先后排列,而是根据索引列重新排序。
(5)非聚集索引:表中记录的物理顺序与索引顺序不同,表中的记录仍按实际插入的先后顺序排列,不按索引列排序。
3、什么是基本表?什么是视图?视图有什么特点?在什么情况下需要创建视图?
参考答案:
表是一个由行、列组成的二维结构,通常把行称做记录,把列称为字段。
视图是由查询数据库表产生的,它其实是一个虚拟的表,它限制了用户能看到和修改的数据。
视图的特点是在基本表或其他视图上建立的表,它的结构和内容都来自某个基本表,是依据基本表存在而存在的。删除一个视图时,不会对基本表产生任何影响,但当删除一张基本表时,与之相关联的视图就会自动被删除。
如果要限制用户能够看到的数据库中的信息,可以使用视图。
4、谓词LIKE的作用是什么?
参考答案:
确定给定的字符串是否与指定的模式匹配。模式可以包含常规字符和通配符字符。模式匹配过程中,常规字符必须与字符串中指定的字符完全匹配。
5、如果创建一个数据库其SQL语句是什么?
参考答案:
CREATE DATABASE 数据库名称
6、存储过程的含义是什么?创建存储过程的SQL语句是什么?
参考答案:
存储过程(Stored Procedure)是一组预先编译好的,以一种可执行的形式永久地存储在数据中的SQL代码,在master数据库中存储了一些SQL Server事先定义好的系统存储过程,通常以sp_xxxx做为存储过程的名字。当用户创建数据库时,也会自动生成一些事先定义好的存储过程,通常以dt_xxxx做为名字。
创建存储过程的SQL语句是:
(1)语句格式:
CREATE PROC[EDURE] <存储过程名> AS
(2)语句功能:
创建一个存储过程,多数是指利用SQL Server的Transact-SQL编写的程序。
7、什么是事务?举例说明事务处理的作用是什么?
参考答案:
事务(Transaction)是并发控制的基本单位,它反映了现实世界中需要以一个完整的单位提交的一项工作。SQL Server通过事务机制,将逻辑相关的一组操作捆绑在一起,以便服务器保持数据的完整性。它是SQL复杂程序设计必不可少的内容。
事务需要用户根据实际业务规则定义,有一定的难度,但其原理比较简单。举例说,如果我们正在使用UPDATE语句同时对学生表、成绩表中的学号”20030001”改为”20040001”。这个任务需要两条UPDATE语句组成,即:
UPDATE 学生表 SET 学号=’20040001’ WHERE 学号=’20030001’
UPDATE 成绩表 SET 学号=’20040001’ WHERE 学号=’20030001’
如果在执行完第一个语句后,计算机突然断电,而第二条语句还没来得急执行,数据出现了不一致怎么办?这时候就需要用到SQL的事务控制功能了。
如果使用了SQL Server的事务控制机制,以上两个问题均可获得很了的解决。在使用事务的情况下,SQL Server可以保证,要么所有的记录要么全部处理,要么一行也不处理。如果修改了全部记录的一半时服务器出错了,SQL Server会返回到以前未执行UPDATE操作前的位置,清除它已经修改过的数据,这就是事务处理的作用。
8、SQL Server有哪些数据类型,它们的主要用途是什么?
参考答案:
SQL Server提供了数值型、字符型、日期型、二进制型、位型、双字节型等6大类数据类型。
数据类型是数据的一种属性,表示数据所表示信息的类型。任何一种计算机语言都定义了自己的数据类型。
9、假设某教学管理数据库有以下三张表,请写出下列问题的SQL语句:
学生(学号,姓名,年龄,性别)
课程(课程号,课程名,任课教师)
成绩(学号,课程号,成绩)
(1)如何在SQL Server上创建这三张表;
参考答案:
学生表:
create table 学生表 (
学号 char (8) primary Key,
姓名 char(8),
年龄 int,
性别 bit)
课程表:
create table 课程表 (
课程号 char (7) primary Key,
课程名 char(20),
任课教师 char (8))
成绩表:
create table 成绩表 (
学号 char (8),
课程号 char (7),
成绩 Numeric (4,2))
(2)查询刘峰教师所授课程号,课程名;
参考答案:
Select课程号, 课程名 from课程表 where任课教师=’ 刘峰’
(3)查询年龄大于20岁的所有男同学的学号、姓名;
参考答案:
Select 学号, 姓名 from 学生表 where 性别=1 and 年龄>20
(4)查询至少选修了两门课程(含两门)的学生学号;
参考答案:
select 学号 from 成绩
group by 学号
having count(学号)>=2
(5)查询王文芳同学选修的所有课程的课程号;
参考答案:
Select 课程号 from 成绩表, 学生表
Where学生表.姓名=’ 王文芳’ and 学生表.学号=成绩表.学号
(6)查询王文芳同学不学的课程的课程号;
参考答案:
select 课程号 from 成绩表
where 课程号 not in (select 课程号 from 学生表,成绩表
where 学生表.姓名='王文芳' and 学生表.学号=成绩表.学号)
(7)查询所有上刘峰老师课程的学生学号;
参考答案:
Select 学号 from 成绩表,课程表,学生表
Where 课程表.任课教师='刘世峰' and 课程表.课程号=成绩表.课程号 and 课程表.学号=成绩表.学号
(8)查询所有选修“数据库原理”的学生的学号;
参考答案:
Select 学号 from 成绩表,课程表
where 课程表.课程名='数据库技术' and 课程表.课程号=成绩表.课程号
(9)向学生表中插入一条记录(’2003001’,’吴红’,21,’女’);(1表示女,0表示男)
参考答案:
insert into 学生表 values ('2003001','吴红','21',1)
(10)删除三张表中所有学号为20020001的学生信息;
参考答案:
Delete from学生表 where 学号=’ >20020001’
Delete from学生表 where 学号=’ 20020001’
(11)把学号为20030002的学生的年龄改为22岁;
参考答案:
Update 学生表 set 年龄=’22’ where学号=’20030002’
设关系模式R有N个属性,在模式R上可能成立的函数依赖有多少个?
参考答案:
函数依赖有N×(N-1)个
2.设有关系模式R(职工号,职工名,项目号,项目名,工资),假设一个职工可参加多个项目,在每个项目中各领一份工资。那么请回答以下问题:
(1)请写出这个关系模式的函数依赖和主关键字;
函数依赖包括:职工号→职工名,项目号→项目名,(职工号,项目号)→工资
主键为(职工号,项目号)
(2)这个关系符合第几范式,为什么?
这个关系符合第一范式,因为它的每个属性都不可再分。
(3)请举例说明,这个关系存在哪些问题;
这个关系没有达到第二范式,可能出现数据冗余和操作异常。
例如,某个职工参与了多个项目的工作,他的职工号、职工名会重复多次存储。同样,如果一个项目有多名职工参加,项目号和项目名也会重复我次存储。另外,如果现在增加了一个新的项目,但暂时还没有安排职工参加,那么由于主键是(职工号,项目号),这个项目的信息可能无法插入。
(4)请把这个关系模式分解成3NF,并说明理由。
修改后的各个关系如下:
职工关系=(职工号,职工名)
项目关系=(项目号,项目名)
职工选择项目关系=(职工号,项目号,工资)
(注:此处的工资是指职工参加某个项目得到的劳动报酬)
3.关系完整性的主要内容是什么?为什么要保证关系的完整性?
参考答案:
关系完整性就是关系模型中数据的正确性、一致性和有效性。关系完整性又包括实体完整性、参照完整性和用户定义的完整性三个方面。
只有保证了关系的完整性,才能使数据库中的数据正确、一致和有效。
4.SQL Server中进行关系完整性的主要方法是什么,请写出相应的SQL语句。
参考答案:
1)SQL Server通过约束机制来实现数据库完整性保护。主要包括:Primary Key约束、Foreign Key约束、Default约束、Unique约束、Check约束等。
Primary Key约束:
学号 char (8) NOT NULL
PRIMARY KEY(学号)
Foreign Key约束:
学号 char (8) NOT NULL
REFERENCES 学生表(学号)
Default约束:
成绩 numeric(9,2) DEFAULT 0.00
Unique约束:
学号 char (8) NOT NULL
UNIOQUE(学号)
Check约束:
年龄 int CHECK (年龄)17 and 年龄<25)
2)使用规则实施数据的完整性。
创建规则的语法结构如下:
CREATE RULE 规则名 AS 条件表达式
3)使用默认实施数据完整性管理。
创建默认的语法如下:
CREATE DEFAULT 默认名 AS 默认值
5.为什么要进行规范化?规范化的相关理论是什么?请简要说明。
参考答案:
为确保数据库设计的正确性,在数据库逻辑设计阶段,常使用关系规范化理论来指导关系型数据库的设计。其基本思想是,每个关系都应满足一定的规范,才能使关系模式设计合理,达到减少冗余,提高查询效率的目的。
一个好的数据库关系,应该没有数据冗余、更新异常、插入异常、删除异常问题的存在,这就必须进行规范化处理。
规范化使用的理论是函数依赖。
6.什么是一个“好”的关系模式,一个“不好”的关系模式有什么缺点?
参考答案:
“好”的关系模式通常是指符合第三范式要求的关系,“不好”的关系模式会存在数据冗余、更新异常、插入异常、删除异常等问题。
7.请写出一个符合第三范式的关系模式,并说明理由。
参考答案:
学生=(学生号,姓名,性别,专业)
课程=(学生号,课程号,成绩)
选课=(课程号,课程名,课程学分)
请简要说明数据库应用系统设计的步骤。
参考答案:
数据库应用系统设计的步骤包括需求分析、概念设计、逻辑设计和物理设计。
2.数据库设计的目的是什么,请谈谈你的理解。
参考答案:
数据库设计指的是设计数据库及其应用系统的技术,是指对于一个给定的应用环境,包括硬件环境和操作系统、数据库管理系统(DBMS)等软件环境,如何使用这个环境来表达用户的要求,构造最优的数据库模式,建立数据库及围绕数据库展开的应用系统,使之能够有效地收集、存储、操作和管理数据,满足企业组织中各类用户的应用需求(信息需求和处理需求)。
3.基本表设计的主要原则是什么,坚持这些原则有什么好处?
参考答案:
基本表设计最主要的原则是关系规范化,尽可能达到第三范式。规范化有助于消除数据库中的数据冗余,减少更新异常。规范化有好几种形式,但第三范式通常被认为在性能、扩展性和数据完整性方面达到了最好平衡。简单来说,遵守第三范式标准的数据库的表设计原则是:“One Fact in One Place”(一个事实对应一个地方),即某个表只包括其本身基本的属性,当不是它们本身所具有的属性时需进行分解。表之间的关系通过外键相连接。
4.进行SQL Server数据库设计时,一般有哪些命名规则?
参考答案:
首先,命名的长度应尽量充足。假设某企业现有职工在一千人以内,如果用数字表示职工号的话,职工号的长度为3位即可,它最大可以表示999个职工。但是,如果考虑到企业未来的发展,那么职工号最好设为4位,当企业职工数目突破千人时,根本无需重构整个数据库。
其次,小心保留词。要保证字段名没有与SQL等保留词或者常用访问方法名发生冲突。
最后,慎用使用触发器。触发器在保证数据完整性方面发挥着积极作用,但它同时也会带来效率方面的问题,因此要慎用。触发器的功能通常可以用其他方式实现。
5.什么是数据流程图,数据字典的主要作用是什么,谈谈你的理解。
参考答案:
数据流图(Data Flow Diagram,简记DFD),是在业务流程分析基础上,描述实际数据流动和加工过程的图形表示法,它一般有4种符号,即外部实体、数据流、加工和存储。外部实体数据的来源和去向;数据流用带箭头的连线表示,反映数据的流动方向;加工用椭圆、圆或方框代表(本教材利用圆形表示加工),表示对数据的加工处理动作;存储表示数据的存档情况。
数据字典(Data Dictionary,简记DD),是对数据流程图中数据流和存储结构的描述。在数据库应用系统设计中,数据字典是表、视图设计的主要依据。
6.什么是E-R图,它的作用是什么?
参考答案:
E-R图是E-R(实体-关系)方法的重要组成部分。E-R方法是描述概念模型的有力工具。E-R图方法是一种有效的信息抽象方法。在E-R图中,用长方形表示实体,用椭圆形表示属性,用菱形表示联系。在图形内标识它们的名字,它们之间用无向线段相连,表示联系的线段上标明是哪种联系。
它的作用是采用E-R图模型将现实世界的信息结构统一用实体、属性以及实体之间的联系来描述。
7.简要说明需求分析阶段的主要任务和目的。
参考答案:
需求分析阶段的主要目的是回答“干什么”的问题。需要从多方面对拟开发数据库应用系统的企事业单位进行调查,收集和分析各项应用对信息和处理两方面的需求。了解和掌握数据库应用系统开发对象(或称用户)的工作业务流程和每个岗位、每个环节的职责,了解和掌握信息从开始产生或建立,到最后输出、存档或消亡所经过的传递和转换过程,了解和掌握各种人员在整个系统活动过程中的作用;通过同用户充分地交流和沟通,决定那些工作应由计算机来做,哪些工作仍由手工来做,决定各种人员对信息和处理各有什么要求,对视屏操作界面和报表输出格式各有什么要求,对数据(信息)的安全性(保密性)和完整性各有什么要求等等。需求分析阶段的主要工作就是,通过调查从用户处获得对数据库的下列需求。
信息需求:用户将从数据库中获得的信息的内容和性质,有信息要求导出数据要求,即在数据库中存储哪些数据。
处理需求:用户要完成什么处理功能,对某种处理的执行频度、用户要求的响应时间,以及处理的方式是联机处理还是批处理等。
安全性和完整性的约束
请简要说明数据库安全机制?
参考答案:
一个用户访问SQL Server必须要经过4个层次的安全控制,操作系统的安全性;服务器的安全性;数据库的安全性;表和列的安全性。从上述流程可以看出,用户使用SQL Server时,需要经过两个安全性阶段:身份验证和权限认证。
身份验证阶段系统只检验用户是否有连接SQL Server实例的权力,如果身份验证通过了,只表示用户可以连接SQL Server实例,否则系统将拒绝用户的连接。然后需要检验用户是否有访问服务器上数据库的权限,为此需要授予每个数据库中映射到用户登录的账号访问权限,权限认证就可以控制用户在数据库中进行的操作。
2.登录账号和用户账号的含义是什么?它们有什么区别联系?
参考答案:
登录账号用于身份验证,使得用户到达登录到SQL Server服务器,属于服务器层面,相当于大门的钥匙;用户账号用于权限验证,属于数据库层面,相当于自己房间的钥匙。用户账号在定义时便与一个登录账号相关联,即任何一个用户账号背后都有一个登录账号。
3.请简要说明使用企业管理创建登录账号和用户账号的过程。
参考答案:
(1)在SQL Server的企业管理器下,展开“SQL Server组”文件夹,找到需要建立登录账号的服务器并展开其文件夹,再展开“安全性”文件夹,在“登录”选项上右击鼠标,在出现的快捷菜单中单击“新建登录”菜单命令,打开“SQL Server登录属性->新建登录”对话框。
(2)SQL Server支持“Windows身份验证”和单击“SQL Server身份验证”两种认证模式。选择“SQL Server身份验证”单选钮,在“名称”文本框中输入要创建的登录账号名称,例如“mysa”,在“身份验证”选项组中,并输入密码。
(3)设置完毕后,单击“确定”按钮,即可完成登录账号的创建。
接下来,开始创建用户账号,基本方法是:
(1)在企业管理器中,展开SQL Server组及其服务器,在“数据库”文件夹中,展开某一数据库,例如“进销存”的文件夹,然后在“用户”选项上右击,在弹出的快捷菜单中选择“新建数据库用户”命令,打开新建用户对话框。
(2)单击“登录名”下拉列表框右端的下拉箭头,会看到刚刚创建的“mysa”登录帐号。选择“mysa”登录账号,此时“用户名”文本框中自动显示为“mysa”。可以更改“用户名”文本框中的用户名,也可以在“数据库角色成员”列表框中选择新建用户应该属于的数据库角色。
(3)设置完毕后,单击“确定”按钮,即可在“进销存”数据库中创建一个新的用户账号。如果不想创建用户账号,单击“取消”按钮即可。
4.如何对用户账号进行授权管理,一般有哪些权限,请简要说明。
参考答案:
(1)展开服务器组,然后展开服务器;展开“数据库”项,然后找到相关的数据库,比如“进销存”;
(2)展开“进销存”数据库,根据对象类型,单击表、视图、存储过程等对象,找到需要进行授权管理的数据库对象,比如“物资台账”表。
(3)右击授予权限所在的对象,从弹出菜单中选择“所有任务->管理权限”选项;单击“列出全部用户/用户定义的数据库角色/public”选项,然后选择授予每位用户的权限。其中,选中标记表示授予权限。进一步,通过本界面可完成列级的授权管理。
另外,也可以采用GRANT(授予权限)、DENY(拒绝权限)和REVOKE(撤消权限)等SQL语句完成授权管理。
5.为什么要进行数据备份?数据库备份包括哪些主要内容?
参考答案:
任何系统都不可避免会出现各种形式的故障,而某些故障可能会导致数据库灾难性的损坏,所以做好数据库的备份工作极为重要。备份可以创建在磁盘、磁带等备份设备上,与备份对应的是还原。
数据库备份就是在某种介质上(磁带、磁盘等)存储数据库(或者其中一部分)的拷贝的过程。更严格意义上讲,备份应该是一种把数据从硬盘上复制到其他可移动介质上的操作过程。
一个完整的备份通常要包括三部分内容,即系统数据库、用户数据库和事务日志。
6.什么是备份设备,请谈一谈SQL Server中创建备份设备的主要步骤和方法。
参考答案:
备份设备是用来存储数据库、事务日志或文件和文件组备份的存储介质。SQL Server支持3种备份设备,即磁盘设备、磁带设备和命名管道设备。
在SQL Server中,可以采用两种方法创建备份设备,一是利用企业管理器;二是使用系统存储过程sp_addumpdevice。其步骤如下:
在企业管理器中展开服务器组,展开指定的服务器,展开“管理”文件夹,右击“备份”,在弹出的快捷菜单中选择“新建备份设备”选项,打开“备份设备属性- 新设备”对话框。在“名称”文本框中输入逻辑设备的名称,在下面选择磁带或者磁盘备份设备,并设置物理位置。当使用磁盘时,SQL Server允许将本地主机硬盘和远程主机上的硬盘作为备份设备,备份设备在硬盘中是以文件的方式存储的。完成后,单击“确定”按钮即可。缺省情况下,备份设备的全路径为“C:\Program Files\Microsoft SQL Server\MSSQL\BACKUP\进销存数据库备份.BAK”,备份设备文件名为“进销存数据库备份.BAK”,缺省路径为SQL Server安装目录的BACKUP文件夹。
7.事务日志文件有什么用途?是否也需要备份?为什么?
参考答案:
SQL Server数据库是由两个操作系统文件组成的,即数据文件和事务日志文件。事务日志文件主要用于存储数据库的更新情况等事务日志信息。事务日志文件非常重要,所有对数据库的更改操作都会记录于此,当数据库损坏时,数据库管理员可使用事务日志恢复数据库。
从事务日志文件的作用上可以看出,它是非常有用和重要的,因此也需要备份。
8.请按以下操作练习一下数据库备份操作,并体会一下数据库备份的的效果。
(1)创建一个数据库;
(2)使用CREATE TABLE语句在数据库中创建一张表;
(3)使用INSERT语句向表中插入若干条数据;
(4)进入企业管理器,对数据库进行备份操作;
(5)使用DROP TABLE语句删除已创建的表;
(6)使用企业管理器,对数据库进行还原操作。
参考答案:
CREATE DATABASE 学生库
学生表:
create table 学生 (
学号 char (8) primary Key,
姓名 char(8),
年龄 int,
性别 bit)
insert into 学生values ('2007001','王丽','19', 1)
insert into 学生values ('2007002','张华','20', 0)
insert into 学生values ('2007003','李敏','19', 1)
1.什么是嵌入式SQL,它有哪些特点和用途?
参考答案:
嵌入式SQL语言是将SQL语句直接嵌入到程序的源代码中,与其他程序设计语言语句混合。
嵌入式SQL的用途:它是数据库应用程序的一种开发方法。是一种应用程序进行数据库访问时所采取的编程式数据库语言。
嵌入式SQL的特点是,数据库管理系统DBMS一般会采用预编译的处理办法,即由DBMS的预处理程序对源程序进行扫描,识别出SQL语句,把它们转换成宿主语言调用语句,以使宿主语言编译程序能够识别它,最后再由宿主语言的编译程序将整个源程序编译成目标码。嵌入SQL语句完成的功能也可以通过应用程序接口(API)实现。
2.请简述C/S和B/S的主要原理,并说明它们各自的优缺点。
参考答案:
C/S模式就是基于企业内部网络的应用系统。传统的C/S 模式是一种两层结构的系统,第一层是在客户机系统上结合了表示与业务逻辑;第二层是通过网络结合了数据库服务器。
优点是:C/S模式的应用系统最大的好处是不依赖企业外网环境,即无论企业是否能够上网,都不影响应用。
缺点是应用程序的维护、移植和互操作变得复杂。
B/S模式,即浏览器/服务器模式,是一种从传统的二层C/S模式发展起来的新的网络结构模式,其本质是三层结构C/S模式。B/S网络结构模式是基于Intranet的需求而出现并发展的。在B/S模式中,客户端运行浏览器软件。
优点是:B/S占有优势的是其异地浏览和信息采集的灵活性。任何时间、任何地点、任何系统,只要可以使用浏览器上网,就可以使用B/S系统的终端。
缺点是:采用B/S结构,客户端只能完成浏览、查询、数据输入等简单功能,绝大部分工作由服务器承担,这使得服务器的负担很重。
3.请简要说明利用VB开发数据库应用系统的一般步骤。
参考答案:
利用VB开发数据类应用程序的基本框架如下:
1)通常要声明一个全局数据库连接对象
2)一般要创建Main子过程,并将它设置为启动对象。在其中顺序完成以下操作:
(1)以非模态方式显示飞溅窗。
(2)创建全局数据库连接对象,并连接SQL Server或Access等数据库。
(3)以模态方式显示登录窗,等待用户登录。
(4)登录成功后,以非模态方式显示主窗体,否则退出程序。
3)主窗体一般均提供增加、删除、修改、查询等对数据库的管理功能,所有操作均使用全局数据库连接对象作为与数据库交互的通道,通过SQL语句对数据进行处理,其中包括增加功能、删除功能、修改功能和查询功能。
4)其他功能。比如数据库备份和恢复功能、用户权限管理功能等。
4.什么是数据库引擎?VB数据库应用系统访问数据库的主要机理是什么?
参考答案:
VB提供了三种数据库访问引擎,即Jet引擎、ODBC和OLE DB,目前主要使用OLE DB。
在VB应用程序中主要用这个对象建立与数据库的连接,一般的方法是:
①声明并创建对象
Dim ADOcn As New Connection
②建立数据库连接
ADOcn.Open 连接字符串
如果要连接SQL Server数据库,那么连接字符串一般应具有以下组成:
Provider=SQLOLEDB;Server=<服务器名>;User ID=<登录账号>;Password=<登录口令>;Database=<数据库名>
③对数据表进行更新操作
5.ADO对象模型的主要对象是什么?如果连接后台数据库?
参考答案:
ADO对象模型的主要对象是:Connection、Command、Recordset、Parameter、Property、Field和Error。
①声明并创建对象
Dim ADOcn As New Connection
②建立数据库连接
ADOcn.Open 连接字符串
如果要连接SQL Server数据库,那么连接字符串一般应具有以下组成:
Provider=SQLOLEDB;Server=<服务器名>;User ID=<登录账号>;Password=<登录口令>;Database=<数据库名>
6.请写出VB中编写增、删、改、查功能的主要步骤和语句。
参考答案:
ADOcn.ExecuteSQL语句字符串
要增加学生成绩表中学号为20070008的记录,可以采用以下语句实现:
ADOcn.Execute “insert into 学生成绩表 (学号,课程号,成绩) Value(‘20070008’,’101’,’85’)”
要删除学生成绩表中学号为001的记录,可以采用以下语句实现:
ADOcn.Execute “DELETE FROM 学生成绩表 WHERE 学号 = ‘001’”
要修改学号为20070008学生课程号为101的成绩为89。
ADOcn.Execute “UPDATE 学生成绩表 SET 成绩=’89’
WHERE学号 = ‘20070008’ AND 课程号=’101’”
要查找所有的学生的成绩
ADOcn.Execute “SELECT * FROM 学生成绩表”
请简要说明视图的概念和作用
参考答案:视图是在基本表或其他视图上建立的表,它的结构和内容都来自某个基本表,是依据基本表存在而存在的。删除一个视图时,不会对基本表产生任何影响,但当删除一张基本表时,与之相关联的视图就会自动被删除。其作用主要是:(1)视图是经过预编译的SELECT语句,存储在数据库服务器端,因此执行视图比从客户端直接执行SELECT语句速度更快、效率更高一些。(2)视图属于用户模式范畴,在实际中,一般的用户不一定具有SELECT语句方面的专门知识,从用户友好性角度来说,视图更便于用户使用。(3)利用视图可以简化的形式表达复杂的SELECT语句组,如嵌套查询等。
2.什么是函数依赖与函数决定,请举例说明
参考答案:
设一个关系为R,X和Y是它的两个属性集。若对于X上的每个值都有Y上的一个惟一值与之对应,则称X和Y具有函数依赖关系,并称X函数决定Y,或称Y函数依赖于X,称X为决定因素。
假设一个职工关系为(职工号,姓名,性别,年龄,职务),职工号用来标识每个职工,选作该关系的主键。我们可以从以下两方面理解函数依赖的概念:首先,对于该关系中每个职工的职工号,都对应着姓名属性中的惟一值,即该职工的姓名,或者说一个职工的姓名由其职工号惟一确定,所以称职工号函数决定姓名,或称姓名函数依赖于职工号。其次,除职工号外,其他属性都不能成为决定因素形成函数依赖,因为对于它们的每个属性值,都可能对应另一属性的多个不同的取值,比如对于性别属性的一个取值“男”就会对应多个而不是一个职工号。
3.请简要说明存储过程的概念和优点。
参考答案:
存储过程(Stored Procedure)是一组预先编译好的,以一种可执行的形式永久地存储在数据中的SQL代码。
使用存储过程的好处可归纳为以下几点:(a)执行速度快。在经过第一次调用以后,就驻留在内存中,不必再经过编译和优化;(b)模块化的程序设计。经过了一次创建以后,可以被调用无数次;(c)减少网络流量;(d)保证系统的安全性。
1.请简要说明视图的概念和作用
参考答案及评分要点:视图是在基本表或其他视图上建立的表,它的结构和内容都来自某个基本表,是依据基本表存在而存在的(2分)。删除一个视图时,不会对基本表产生任何影响,但当删除一张基本表时,与之相关联的视图就会自动被删除(1分)。其作用主要是:(1)视图是经过预编译的SELECT语句,存储在数据库服务器端,因此执行视图比从客户端直接执行SELECT语句速度更快、效率更高一些。(2)视图属于用户模式范畴,在实际中,一般的用户不一定具有SELECT语句方面的专门知识,从用户友好性角度来说,视图更便于用户使用。(3)利用视图可以简化的形式表达复杂的SELECT语句组,如嵌套查询等。(每答对1点得1分,最高2分)。
综合应用题
1.用SQL语句创建简单数据表
设有某数据库中有学生表(表名为Students),包括学号SNo,姓名SName,出生年月日SD等字段。SNo和SName均为字符型(长度10),SD为日期型。SNo是主键,请用SQL语句创建该数据表Students。
CREATE TABLE Students (
SNo CHAR(10) PRIMARY KEY,
SName CHAR(10),
SD DATETIME
);
2.利用SQL语句进行查询
在第五题第1小题的基础上,假设还存在课程表(表名Courses)和成绩表(表名Marks)两张数据表。课程表Courses包括课程号CNo,课程名CName两个字段;成绩表marks包括学号SNo,课程号CNo和成绩mark三个字段。
教学管理人员希望查询学号为“2009001”的学生情况,并按如图1所示的方式显示查询结果,请写出对应的Select查询语句。
图1 要求的显示结果
SELECT students.Sno,Sname,Cname,mark
FROM students,courses,marks
WHERE students.Sno=marks.Sno and courses.Cno=marks.Cno and students.Sno=‘2009001’
3.程序应用题
接第五题第2小题,某教学管理系统包括课程信息录入功能,程序运行界面如图2所示,其中Text1为课程号、Text2为课程名。进入界面后,用户输入所有数据,点击“确认”按钮,将结果插入到课程表courses中。请补充完成下列程序代码。
图2“增加记录”窗体运行界面
Private Sub Command1_Click()
‘声明一个记录集对象
Dim ADOrs As New Recordset
‘将记录集对象与已建立的数据库联接对象ADOcn绑定
ADOrs.ActiveConnection=ADOcn
‘第一步:在课程表Courses中查询是否存在关键字相同的记录
(1)拼写查询字符串
strSQL =“Select CNo From courses Where Cno=‘” + Text1 + “’”
(2)执行查询语句
ADOrs.Open strSQL
‘第二步:如果记录已经存在,则退出程序
If Not ADOrs.EOF Then
MsgBox “记录已存在,不能继续增加”
Exit Sub
End If
‘第三步:将结果插入到课程表Courses中
strSQL = “Insert Into courses(Cno,CName) Values(‘”+Text1+“’,‘”+Text2+“’)”
ADOcn.Execute strSQL End Sub
4.用SQL语句创建简单数据表
设有两个关系(1)教师关系T,包括教师编号TNo,姓名TN,系别TD,职称RANK;(2)课程关系C,包括课程号CNo,课程名CN。教师编号和课程号分别是上述两个关系的主键,请用SQL语句创建教师数据表T。
参考答案
CREATE TABLE T{
TNo INT PRIMARY KEY,
TN CHAR(30),
TD CHAR(20),
RANK CHAR(20)
};
5.用SQL语句创建数据表
在上题基础上,假设还存在教师教授课程关系TC,包括教师编号TNo和课程号CNo。
注意:说明主键码和外键码约束
参考答案
CREATE TABLE TC{
TNo INT,
CNo INT,
PRIMARY KEY (Tno,Cno),
FOREIGN KEY (TNo) REFERENCES T(TNo),
FOREIGN KEY (CNo) REFERENCES C(CNo)
};
6.利用SQL语句进行查询
在上题的基础上,如果要查询“张红老师承担的所有课程”,请写出对应的SQL查询语句。
参考答案
SELECT C.CNo,C.CN FROM T,C,TC
WHERE T.TNo=TC.TNo AND C.CN=TC.CNo AND T.TN=‘张红’
7.程序应用题
设学生成绩表的结构为(学号、课程号、成绩),程序运行界面如图1所示。进入界面后,用户首先选择学号(Combo1)、课程号(Combo2),姓名(Text1)和课程名(Text2)从数据库中自动读入;然后,用户输入对应的成绩(Text3),点击“确认”按钮后,将结果插入到学生成绩表中。请补充完成下列程序代码。
Command1
Private Sub Command1_Click()
‘声明一个记录集对象
Dim ADOrs As New Recordset
‘将记录集对象与已建立的数据库联接对象ADOcn绑定
ADOrs.ActiveConnection=ADOcn
‘第一步:在学生成绩表中查询是否存在关键字相同的记录
(1)拼写查询字符串
strSQL=“Select * From 学生成绩表 Where 学号=‘”+combo1.Text+“ ’ And 课程号=‘”+Combo2.Text+“ ’ ” (2)执行查询语句
ADOrs.Open StrSQL
‘第二步:如果关键字重复,则退出程序
If Not ADOrs.EOF Then
MsgBox “记录已存在,不能继续增加”
Exit Sub
End If
‘第三步:将结果插入到学生成绩表中
StrSQL=“Insert Into 学生成绩表(学号,课程号
链接地址:https://www.zhuangpeitu.com/p-1678860.html