1、数据库应用技术第1次作业及答案第一章 思考与练习题一、 选择题 1 三级模式间存在两种映射, 它们是( C) 。A模式与子模式间, 模式与内模式间B子模式与内模式间, 外模式与内模式间C外模式与模式间, 模式与内模式间D模式与内模式间, 模式与模式间 2 SQL Server系统中的所有系统级信息存储于哪个数据库( A ) 。Amaster Bmodel Ctempdb Dmsdb 3 下面关于tempdb数据库描述不正确的是( D ) 。A是一个临时数据库 B属于全局资源C没有权限限制 D是用户建立新数据库的模板 4 在数据库技术中, 面向对象数据模型是一种( B ) 。A概念模型B结构模型
2、C物理模型D形象模型 5 数据库管理系统常见的数据模型有( B) 。A网状、 关系和语义B层次、 关系和网状C环状、 层次和关系D网状、 链状和层次 6 用户看到的数据表, 属于数据库系统三级模式中的( D ) 。A外模式B内模式C子模式D模式 7 对数据的插入属于数据库管理系统( B ) 的功能。A数据定义B数据操纵C数据库的运行管理D数据库的建立和维护 8 保持数据的完整性属于数据库管理系统( C ) 的功能。A数据定义B数据操纵C数据库的运行管理D数据库的建立和维护 9 在SQL Server数据库中, 默认情况下Sys一般是( C ) 。A数据文件的后缀B事务日志文件的后缀C系统表表名
3、的前缀D辅助文件的后缀二、 填空题 1 计算机数据处理技术大致经历了( 人工管理 ) 、 ( 文件管理 ) 、 ( 数据库管理 ) 等不同的发展阶段。 2 数据库系统由( 外模式 ) 、 ( 模式 ) 和( 内模式 ) 三级抽象模式构成。 3 数据库管理系统的主要功能包括( 数据定义 ) 、 ( 数据操纵 ) 、 ( 数据库的运行管理 ) 、 ( 数据库的建立和维护 ) 。 4 关系模型由三部分组成( 数据结构 ) 、 ( 关系操作集合 ) 和( 关系的完整性 ) 。 5 SQL Server提供了大量易用的管理工具, 比较常见的主要有( 服务管理器 ) 、 ( 企业管理器 ) 和( 查询分析
4、器 ) 。 6 数据文件的后缀是( mdf ) 。 7 事务日志文件的后缀是( ldf ) 。 8 SQL Server数据库分为 ( 系统数据库 ) 和( 用户数据库 ) 两种类型。三、 简答题1什么是数据和数据处理? 数据与信息的区别联系是什么? 参考答案: 数据( Data) 是一组表示数量、 行动和目标的非随机的可鉴别的符号。数据处理一般包括查找、 统计、 分类、 修改、 计算、 汇总等各种方法。数据( Data) 是一组表示数量、 行动和目标的非随机的可鉴别的符号。信息( Information) 是经过加工的, 能对接收者的行为和决策产生影响的、 有价值的数据。如果将数据比喻为原料
5、, 那么信息就是数据经过加工而生产的产品, 是有价值的数据。与原料和产品的概念相似, 一个系统的产品可能是另一个系统的原料, 那么一个系统的信息可能成为另一个系统的数据。2数据库、 数据库管理系统、 数据库系统之间到底是什么关系? 参考答案: 数据库就是各种相关数据的集合和容器。数据库所保存的数据是指长期储存在计算机内、 有组织的、 可共享的数据集合。数据库中的数据必须按一定的数据模型组织、 描述和储存, 具有较小的冗余度、 较高的数据独立性和易扩展性, 并能够被一定范围内的各种用户共享。数据库管理系统是对数据库进行管理的系统软件, 位于用户和操作系统之间, 为用户或应用程序提供访问数据库的方
6、法和工具。广义上, 数据库系统就是采用了数据库技术的计算机系统, 一般由数据库、 数据库管理系统( 及其开发工具) 、 应用系统、 数据库管理员和用户构成。狭义上讲, 数据库系统主要指数据库和数据库管理系统, 由于这二者在应用中的相互依赖性, 因此在一般不引起混淆的情况下常常把数据库系统简称为数据库。3请描述一下SQL Server数据库的存储结构。参考答案: SQL Server数据库的存储结构包括物理存储结构和逻辑存储结构两个层面。在物理层面上, SQL Server数据库是由两个操作系统文件组成的, 即数据文件和事务日志文件, 它们的后缀分别是MDF和LDF。数据文件主要用于存储数据,
7、事务日志文件主要用于存储数据库的更新情况等事务日志信息。在逻辑层次上, 数据库是由表、 视图、 存储过程等一系列数据对象组成的。当采用SQL Server企业管理器将上述数据库文件”打开”后, 就能看到数据库的逻辑结构了, 如图XXX所示。数据库中的数据分别存储在几个不同的对象中, 而这些对象是用户在操作数据库时, 实际能够看到和接触到的, 属于逻辑存储结构。常见的数据库对象主要包括: 表( Table) 、 索引( Index) 、 视图(Views)、 触发器( Triggers) 、 存储过程( Store Procedures) 、 缺省( Default) 、 约束( Constra
8、ints) 、 用户( Users) 以及图表( Diagram) 和用户自定义的数据类型等。在以后的章节中, 我们将逐步学习这些对象的使用方法。4简述关系模型的组成。参考答案: 系模型是当前最重要的一种数据模型。关系数据库系统采用关系模型作为数据的组织方式。关系模型由三部分组成: 数据结构、 关系操作集合和关系的完整性。数据结构是指在关系模型中, 无论是数据还是数据之间的联系都是以二维表( 关系) 这一种简单的结构表示的, 这即符合人们使用数据的习惯, 同时也便于计算机实现。关系操作是指关系代数( 或等价的关系演算) 中并、 交、 差、 选择、 投影、 连接等。关系模型给出了关系操作的能力和
9、特点, 但不对DBMS的语言给出具体的语法要求。关系语言的特点是高度的非过程化。其操作方式的特点是集合操作, 即操作的对象和结果是集合, 称为一次一集合的方式, 而不是一次一个记录的方式。关系完整性包括实体完整性、 参照完整性和用户自己定义的完整性。实体完整性是保证数据库中记录的惟一性, 即每个记录的主键不能为空值, 也不能与其它记录的主键相同。参照完整性是保证表与表之间语意上的完整性, 即当一个表引用在另一个表中定义的实体时, 要保证这个实体的有效性。这两种完整性是关系模型必须满足的约束条件, 应该由关系系统自动支持。而用户自定义完整性反映了用户的要求, 是用户自行定义的。第二章思考与练习题
10、一、 选择题 1 下述关于索引的描述, 正确的是( B ) 。A撤销索引会同时撤销数据库中与之相关的内容B建立索引后, 会影响基本表的插入速度C基本表的记录数量越多, 越不应该建立索引D基本表的记录越长, 越不应该建立索引 2 下述关于视图的描述, 正确的是( C ) 。A视图仅由一个基本表导出B执行视图比在客户端直接执行SELECT语句的速度要慢C在SQL Server中, 能够像基本表一样对视图进行查询操作D视图存储在客户端的数据库中 3 如果希望从学生表中查询出所有姓”张”的同学, 那么条件语句应该是( B ) 。AWhere 姓名 % 张BWhere 姓名 LIKE 张CWhere 姓
11、名 % LIKE张DWhere 姓名 LIKE 张 4 下列SQL语句中, 能够完成求某列最大值的是( B ) 。ASELECT AVG(Age) FROM StudentBSELECT MAX(Age) FROM StudentCSELECT MIN(Age) FROM StudentDSELECT COUNT(*) FROM Student 二、 填空题1SQL数据定义语言的主要作用是创立存储数据的结构, 而数据操纵语言的主要作用则是向数据库中填写数据, 具体包括 增加、 删除、 修改 等操作。2当需要对查询结果进行排序时, 能够指定其排序方式, 字段后使用 ASC 表示升序, DESC
12、表示降序。3. 视图是一个虚表, 它是从( 一个或多个基本表) 中导出的表。三、 简答题1、 什么是SQL, 请简要说明它的组成和特点。参考答案: 结构化查询语言, Structured Query Language, 简称 SQL, 是关系数据库的标准语言。SQL语言共分为四大类: 数据定义语言, 数据查询语言, 数据操纵语言, 数据控制语言。它的特点包括: 非过程化语言, 统一的语言, 是所有关系数据库的公共语言。2、 索引的作用是什么? SQL Server有哪几类索引, 各自的特点是什么? 参考答案: 索引( Index) 提供了一种快速访问数据的途径, 索引是在基本表的列上建立的一种
13、数据加对象, 索引是为了加速查询速度而创立的。实际的索引一般是这两大类5种方式的组合。( 1) 单列索引: 对基本表的某一单独的列进行索引, 是最简单和最常见的索引类型, 一般情况下, 应对每个基本表的主关键字建立单列索引。( 2) 惟一索引: 一旦在一个或多个列上建立了惟一索引, 则不允许在表中相应的列上插入任何相同的取值。使用惟一索引不但能提高查询性能, 还能够维护数据的完整性。( 3) 复合索引: 是针对基本表中两个或两个以上列建立的索引。( 4) 聚集索引: 会改变基本表中记录的物理存储顺序。即表中记录的物理排序顺序不再按插入的先后排列, 而是根据索引列重新排序。( 5) 非聚集索引:
14、 表中记录的物理顺序与索引顺序不同, 表中的记录仍按实际插入的先后顺序排列, 不按索引列排序。3、 什么是基本表? 什么是视图? 视图有什么特点? 在什么情况下需要创立视图? 参考答案: 表是一个由行、 列组成的二维结构, 一般把行称做记录, 把列称为字段。视图是由查询数据库表产生的, 它其实是一个虚拟的表, 它限制了用户能看到和修改的数据。视图的特点是在基本表或其它视图上建立的表, 它的结构和内容都来自某个基本表, 是依据基本表存在而存在的。删除一个视图时, 不会对基本表产生任何影响, 但当删除一张基本表时, 与之相关联的视图就会自动被删除。如果要限制用户能够看到的数据库中的信息, 能够使用
15、视图。4、 谓词LIKE的作用是什么? 参考答案: 确定给定的字符串是否与指定的模式匹配。模式能够包含常规字符和通配符字符。模式匹配过程中, 常规字符必须与字符串中指定的字符完全匹配。5、 如果创立一个数据库其SQL语句是什么? 参考答案: CREATE DATABASE 数据库名称6、 存储过程的含义是什么? 创立存储过程的SQL语句是什么? 参考答案: 存储过程( Stored Procedure) 是一组预先编译好的, 以一种可执行的形式永久地存储在数据中的SQL代码, 在master数据库中存储了一些SQL Server事先定义好的系统存储过程, 一般以sp_xxxx做为存储过程的名字
16、。当用户创立数据库时, 也会自动生成一些事先定义好的存储过程, 一般以dt_xxxx做为名字。创立存储过程的SQL语句是: ( 1) 语句格式: CREATE PROCEDURE AS ( 2) 语句功能: 创立一个存储过程, 多数是指利用SQL Server的Transact-SQL编写的程序。7、 什么是事务? 举例说明事务处理的作用是什么? 参考答案: 事务( Transaction) 是并发控制的基本单位, 它反映了现实世界中需要以一个完整的单位提交的一项工作。SQL Server经过事务机制, 将逻辑相关的一组操作捆绑在一起, 以便服务器保持数据的完整性。它是SQL复杂程序设计必不可
17、少的内容。事务需要用户根据实际业务规则定义, 有一定的难度, 但其原理比较简单。举例说, 如果我们正在使用UPDATE语句同时对学生表、 成绩表中的学号” 0001”改为” 0001”。这个任务需要两条UPDATE语句组成, 即: UPDATE 学生表 SET 学号= 0001 WHERE 学号= 0001UPDATE 成绩表 SET 学号= 0001 WHERE 学号= 0001如果在执行完第一个语句后, 计算机突然断电, 而第二条语句还没来得急执行, 数据出现了不一致怎么办? 这时候就需要用到SQL的事务控制功能了。 如果使用了SQL Server的事务控制机制, 以上两个问题均可获得很了
18、的解决。在使用事务的情况下, SQL Server能够保证, 要么所有的记录要么全部处理, 要么一行也不处理。如果修改了全部记录的一半时服务器出错了, SQL Server会返回到以前未执行UPDATE操作前的位置, 清除它已经修改过的数据, 这就是事务处理的作用。8、 SQL Server有哪些数据类型, 它们的主要用途是什么? 参考答案: SQL Server提供了数值型、 字符型、 日期型、 二进制型、 位型、 双字节型等6大类数据类型。数据类型是数据的一种属性, 表示数据所表示信息的类型。任何一种计算机语言都定义了自己的数据类型。9、 假设某教学管理数据库有以下三张表, 请写出下列问题
19、的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),成绩 Numer
20、ic (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学生表.姓名=
21、 王文芳 and 学生表.学号=成绩表.学号( 6) 查询王文芳同学不学的课程的课程号; 参考答案: select 课程号 from 成绩表where 课程号 not in (select 课程号 from 学生表,成绩表 where 学生表.姓名=王文芳 and 学生表.学号=成绩表.学号) ( 7) 查询所有上刘峰老师课程的学生学号; 参考答案: Select 学号 from 成绩表,课程表,学生表Where 课程表.任课教师=刘世峰 and 课程表.课程号=成绩表.课程号 and 课程表.学号=成绩表.学号( 8) 查询所有选修”数据库原理”的学生的学号; 参考答案: Select 学号
22、 from 成绩表,课程表where 课程表.课程名=数据库技术 and 课程表.课程号=成绩表.课程号( 9) 向学生表中插入一条记录( 001,吴红,21,女) ; (1表示女, 0表示男)参考答案: insert into 学生表 values ( 001,吴红,21,1)( 10) 删除三张表中所有学号为200 1的学生信息; 参考答案: Delete from学生表 where 学号 200 1Delete from学生表 where 学号 200 1( 11) 把学号为 0002的学生的年龄改为22岁; 参考答案: Update 学生表 set 年龄=22 where学号= 000
23、2数据库应用技术第2次作业及答案第三章思考与练习题一、 选择题1设一个关系为R, 如果它的每个属性都是不可再分的, 则称这个关系是符合( A ) 。A、 第一范式B、 第二范式C、 第三范式D、 BNC范式2在第一个关系中出现, 在第二个关系中不出现的记录组成的关系称为两个关系的( C ) 。A、 交B、 并C、 差D、 笛卡儿积二、 简答题1.设关系模式R有N个属性, 在模式R上可能成立的函数依赖有多少个? 参考答案: 函数依赖有N( N-1) 个2.设有关系模式R( 职工号, 职工名, 项目号, 项目名, 工资) , 假设一个职工可参加多个项目, 在每个项目中各领一份工资。那么请回答以下问
24、题: ( 1) 请写出这个关系模式的函数依赖和主关键字; 函数依赖包括: 职工号职工名, 项目号项目名, ( 职工号,项目号) 工资主键为( 职工号, 项目号) ( 2) 这个关系符合第几范式, 为什么? 这个关系符合第一范式, 因为它的每个属性都不可再分。( 3) 请举例说明, 这个关系存在哪些问题; 这个关系没有达到第二范式, 可能出现数据冗余和操作异常。例如, 某个职工参与了多个项目的工作, 她的职工号、 职工名会重复多次存储。同样, 如果一个项目有多名职工参加, 项目号和项目名也会重复我次存储。另外, 如果现在增加了一个新的项目, 但暂时还没有安排职工参加, 那么由于主键是( 职工号,
25、 项目号) , 这个项目的信息可能无法插入。( 4) 请把这个关系模式分解成3NF, 并说明理由。修改后的各个关系如下: 职工关系( 职工号, 职工名) 项目关系( 项目号, 项目名) 职工选择项目关系( 职工号, 项目号, 工资) ( 注: 此处的工资是指职工参加某个项目得到的劳动报酬) 3.关系完整性的主要内容是什么? 为什么要保证关系的完整性? 参考答案: 关系完整性就是关系模型中数据的正确性、 一致性和有效性。关系完整性又包括实体完整性、 参照完整性和用户定义的完整性三个方面。只有保证了关系的完整性, 才能使数据库中的数据正确、 一致和有效。4.SQL Server中进行关系完整性的主
26、要方法是什么, 请写出相应的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.00Unique约束: 学号 char (8) NOT NULL UNI
27、OQUE(学号)Check约束: 年龄 int CHECK (年龄)17 and 年龄新建登录”对话框。( 2) SQL Server支持”Windows身份验证”和单击”SQL Server身份验证”两种认证模式。选择”SQL Server身份验证”单选钮, 在”名称”文本框中输入要创立的登录账号名称, 例如”mysa”, 在”身份验证”选项组中, 并输入密码。( 3) 设置完毕后, 单击”确定”按钮, 即可完成登录账号的创立。接下来, 开始创立用户账号, 基本方法是: ( 1) 在企业管理器中, 展开SQL Server组及其服务器, 在”数据库”文件夹中, 展开某一数据库, 例如”进销存
28、”的文件夹, 然后在”用户”选项上右击, 在弹出的快捷菜单中选择”新建数据库用户”命令, 打开新建用户对话框。( 2) 单击”登录名”下拉列表框右端的下拉箭头, 会看到刚刚创立的”mysa”登录帐号。选择”mysa”登录账号, 此时”用户名”文本框中自动显示为”mysa”。能够更改”用户名”文本框中的用户名, 也能够在”数据库角色成员”列表框中选择新建用户应该属于的数据库角色。( 3) 设置完毕后, 单击”确定”按钮, 即可在”进销存”数据库中创立一个新的用户账号。如果不想创立用户账号, 单击”取消”按钮即可。4如何对用户账号进行授权管理, 一般有哪些权限, 请简要说明。参考答案: ( 1)
29、展开服务器组, 然后展开服务器; 展开”数据库”项, 然后找到相关的数据库, 比如”进销存”; ( 2) 展开”进销存”数据库, 根据对象类型, 单击表、 视图、 存储过程等对象, 找到需要进行授权管理的数据库对象, 比如”物资台账”表。( 3) 右击授予权限所在的对象, 从弹出菜单中选择”所有任务-管理权限”选项; 单击”列出全部用户/用户定义的数据库角色/public”选项, 然后选择授予每位用户的权限。其中, 选中标记表示授予权限。进一步, 经过本界面可完成列级的授权管理。另外, 也能够采用GRANT( 授予权限) 、 DENY( 拒绝权限) 和REVOKE( 撤消权限) 等SQL语句完
30、成授权管理。5为什么要进行数据备份? 数据库备份包括哪些主要内容? 参考答案: 任何系统都不可避免会出现各种形式的故障, 而某些故障可能会导致数据库灾难性的损坏, 因此做好数据库的备份工作极为重要。备份能够创立在磁盘、 磁带等备份设备上, 与备份对应的是还原。数据库备份就是在某种介质上(磁带、 磁盘等)存储数据库(或者其中一部分)的拷贝的过程。更严格意义上讲, 备份应该是一种把数据从硬盘上复制到其它可移动介质上的操作过程。一个完整的备份一般要包括三部分内容, 即系统数据库、 用户数据库和事务日志。6什么是备份设备, 请谈一谈SQL Server中创立备份设备的主要步骤和方法。参考答案: 备份设
31、备是用来存储数据库、 事务日志或文件和文件组备份的存储介质。SQL Server支持3种备份设备, 即磁盘设备、 磁带设备和命名管道设备。在SQL Server中, 能够采用两种方法创立备份设备, 一是利用企业管理器; 二是使用系统存储过程sp_addumpdevice。其步骤如下: 在企业管理器中展开服务器组, 展开指定的服务器, 展开”管理”文件夹, 右击”备份”, 在弹出的快捷菜单中选择”新建备份设备”选项, 打开”备份设备属性- 新设备”对话框。在”名称”文本框中输入逻辑设备的名称, 在下面选择磁带或者磁盘备份设备, 并设置物理位置。当使用磁盘时, SQL Server允许将本地主机硬
32、盘和远程主机上的硬盘作为备份设备, 备份设备在硬盘中是以文件的方式存储的。完成后, 单击”确定”按钮即可。缺省情况下, 备份设备的全路径为”C:Program FilesMicrosoft SQL ServerMSSQLBACKUP进销存数据库备份.BAK”, 备份设备文件名为”进销存数据库备份.BAK”, 缺省路径为SQL Server安装目录的BACKUP文件夹。7事务日志文件有什么用途? 是否也需要备份? 为什么? 参考答案: SQL Server数据库是由两个操作系统文件组成的, 即数据文件和事务日志文件。事务日志文件主要用于存储数据库的更新情况等事务日志信息。事务日志文件非常重要,
33、所有对数据库的更改操作都会记录于此, 当数据库损坏时, 数据库管理员可使用事务日志恢复数据库。从事务日志文件的作用上能够看出, 它是非常有用和重要的, 因此也需要备份。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 ( 001,王丽,19, 1)insert into 学生values ( 002,张华,20, 0)insert into 学生values ( 003,李敏,