第一章 思考与练习题
一、选择题
1.三级模式间存在两种映射,它们是( )。
A.模式与子模式间,模式与内模式间
B.子模式与内模式间,外模式与内模式间
C.外模式与模式间,模式与内模式间
D.模式与内模式间,模式与模式间
2.SQL Server系统中的所有系统级信息存储于哪个数据库( )。
A.master B.model C.tempdb D.msdb
3. 下面关于tempdb数据库描述不正确的是( )。
A.是一个临时数据库 B.属于全局资源
C.没有权限限制 D.是用户建立新数据库的模板
4. 在数据库技术中,面向对象数据模型是一种( )。
A.概念模型 B.结构模型 C.物理模型 D.形象模型
5. 数据库管理系统常见的数据模型有( )。
A.网状、关系和语义 B.层次、关系和网状
C.环状、层次和关系 D.网状、链状和层次
6. 用户看到的数据表,属于数据库系统三级模式中的( )。
A.外模式 B.内模式 C.子模式 D.模式
7. 对数据的插入属于数据库管理系统( )的功能。
A.数据定义 B.数据操纵
C.数据库的运行管理 D.数据库的建立和维护
8. 保持数据的完整性属于数据库管理系统( )的功能。
A.数据定义 B.数据操纵
C.数据库的运行管理 D.数据库的建立和维护
9. 在SQL Server数据库中,默认情况下Sys通常是( )。
A.数据文件的后缀 B.事务日志文件的后缀
C.系统表表名的前缀 D.辅助文件的后缀
二、填空题
1. 计算机数据处理技术大致经历了_________、____________、___________发展阶段。
2. 数据库系统由_________、____________和_________三级抽象模式构成。
3. 数据库管理系统的主要功能包括_________、_________、_________、_________。
4. 关系模型由三部分组成_________、_________和_________。
5. SQL Server提供了大量易用的管理工具,比较常用的主要有______________、______________和______________。
6. 数据文件的后缀是_________。
7. 事务日志文件的后缀是_________。
8. SQL Server数据库分为_________和_________两种类型。
三、简答题
1.什么是数据和数据处理?数据与信息的区别联系是什么?
2.数据库、数据库管理系统、数据库系统之间到底是什么关系?
3.请描述一下SQL Server数据库的存储结构。
4.简述关系模型的组成。
第二章 思考与练习题
一、选择题
1.下述关于索引的描述,正确的是( )。
A.撤销索引会同时撤销数据库中与之相关的内容
B.建立索引后,会影响基本表的插入速度
C.基本表的记录数量越多,越不应该建立索引
D.基本表的记录越长,越不应该建立索引
2.下述关于视图的描述,正确的是( )。
A.视图仅由一个基本表导出
B.执行视图比在客户端直接执行SELECT语句的速度要慢
C.在SQL Server中,可以像基本表一样对视图进行查询操作
D.视图存储在客户端的数据库中
3. 如果希望从学生表中查询出所有姓"张"的同学,那么条件语句应该是( )。
A.Where 姓名 % '张' B.Where 姓名 LIKE '张%'
C.Where 姓名 % 'LIKE张' D.Where 姓名 LIKE '张'
4.下列SQL语句中,能够完成求某列最大值的是( )。
A.SELECT AVG(Age) FROM Student B.SELECT MAX(Age) FROM Student
C.SELECT MIN(Age) FROM Student D.SELECT COUNT(*) FROM Student
5.假定学生关系S(SNO,SNAME,SEX,AGE),课程关系C(CNO,CNAME,TEACHER),学生选课关系SC(SNO,CNO,CRADE).要查询选修了"计算机技术"课程的女学生姓名,将涉及到关系。
A.S B.SC,C C.S,C D.S,C,SC
二、填空题
1.SQL数据定义语言的主要作用是创建存储数据的结构,而数据操纵语言的主要作用则是向数据库中填写数据,具体包括_____________等操作。
2.当需要对查询结果进行排序时,可以指定其排序方式,使用_________表示升序,_________表示降序。
3.视图是一个虚表,它是从_________中导出的表。
三、简答题
1、什么是SQL,请简要说明它的组成和特点。
2、索引的作用是什么?SQL Server有哪几类索引,各自的特点是什么?
3、什么是基本表?什么是视图?视图有什么特点?在什么情况下需要创建视图?
4、谓词LIKE的作用是什么?
5、如果创建一个数据库其SQL语句是什么?
6、存储过程的含义是什么?创建存储过程的SQL语句是什么?
7、什么是事务?举例说明事务处理的作用是什么?
8、SQL Server有哪些数据类型,它们的主要用途是什么?
9.假定有三个关系,A(ANO,ANAME,WQTY,CITY),分别表示(商店代号,商店名,店员数量,所在城市),B(BNO,BNAME,PRICE), 分别表示(商品号,商品名,价格),AB(ANO,BNO,QTY) 分别表示(商店代号,商品号,商品数量)。
要求,创建三个表,并给每个表插入4个合理的记录,用SQL语言写出下列查询语句,同时给出查询结果:
(1) 创建三张表,并给每个表至少插入四条合理记录
(2)找出店员人数不超过1000人或在长沙市内的所有商店的代号和商店名
(3) 找出供应书包的商店
(4)找出至少供应代号为256的商品所供应的全部商品的商店名和所在的城市。
10、假设某教学管理数据库有以下三张表,请写出下列问题的SQL语句:
学生(学号,姓名,年龄,性别);
课程(课程号,课程名,任课教师);
成绩(学号,课程号,成绩)
(1)如何在SQL Server上创建这三张表,并给出每张表插入至少4条合理记录;
(2)查询刘峰教师所授课程号,课程名;
(3)查询年龄大于20岁的所有男同学的学号、姓名;
(4)查询至少选修了两门课程(含两门)的学生学号;
(5)查询王文芳同学选修的所有课程的课程号;
(6)查询王文芳同学不学的课程的课程号;
(7)查询所有上刘峰老师课程的学生学号;
(8)查询所有选修"数据库原理"的学生的学号;
(9)向学生表中插入一条记录('2003001','吴红',21,'女');(1表示女,0表示男)
(10)删除三张表中所有学号为20020001的学生信息;
(11)把学号为20030002的学生的年龄改为22岁;
《数据库应用技术》形考作业(一)讲评
第一章 数据库系统概论
一、选择题
1.C 2.A 3.D 4.B 5.B 6.D 7.B 8.C 9.C
二、填空题
1.人工管理、文件管理、数据库管理
2.外模式 、 模式 、 内模式
3.数据定义、数据操纵、数据库的运行管理、数据库的建立和维护
4.数据结构、 关系操作集合、关系的完整性
5.服务管理器、企业管理器、查询分析器
6.mdf
7.ldf
8.系统数据库、用户数据库
三、简答题
1.什么是数据和数据处理?数据与信息的区别联系是什么?
数据(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
一、选择题
1.B 2.C 3.B 4.B 5.D
二、填空题
1.增加、删除、修改
2.ASC、DESC
3.一个或多个基本表
三、简答题
1、什么是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)语句功能:
创建一个存储过程,
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.假定有三个关系,A(ANO,ANAME,WQTY,CITY),分别表示(商店代号,商店名,店员数量,所在城市),B(BNO,BNAME,PRICE), 分别表示(商品号,商品名,价格),AB(ANO,BNO,QTY) 分别表示(商店代号,商品号,商品数量)。
要求,创建三个表,并给每个表插入4个合理的记录,用SQL语言写出下列查询语句,同时给出查询结果:
(1) 创建三张表,并给每个表至少插入四条合理记录
CREATE TABLE A (ANO CHAR(8),
ANAME CHAR(20),
WQTY INT,CITY char(20)
)
CREATE TABLE B (BNO CHAR(8),
BNAME CHAR(20),
PRICE REAL(20)
)
CREATE TABLE AB (ANO CHAR(8),
BNO CHAR(8),
QTY INT
)
(2)找出店员人数不超过1000人或在长沙市内的所有商店的代号和商店名
SELECT ANO,ANAME
FROM A
WHERE WQTY<=100 AND CITY='长沙'
(3) 找出供应书包的商店
SELECT A.*
FROM A,B,AB
WHERE A.ANO=AB.ANO AND B.BNO=AB.BNO AND BNAME='书包'
(4)找出至少供应代号为256的商品所供应的全部商品的商店名和所在的城市。
SELECT ANAME,CITY
FROM A,AB
WHERE A.ANO=AB.ANO AND BNO='256'
10、假设某教学管理数据库有以下三张表,请写出下列问题的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'
《数据库应用技术》形考作业(二)
第三章 思考与练习题
一、选择题
1.设一个关系为R,如果它的每个属性都是不可再分的,则称这个关系是符合( )。
A.第一范式 B.第二范式 C.第三范式 D.BC范式
2.在第一个关系中出现,在第二个关系中不出现的记录组成的关系称为两个关系的( )。
A.交 B.并 C.差 D.笛卡儿积
3.关系数据库规范化是为了解决关系数据库中的( )问题。
A.插入、删除和数据冗余 B.提供查询的速度
C.保证数据的安全性 D.减少数据操作的复杂性
4.关系模式中,满足2NF的模式,( )。
A.可能是1NF B. 必定是1NF
C. 必定是2NF D. 必定是3NF
二、简答题
1.设关系模式R有N个属性,在模式R上可能成立的函数依赖有多少个?
2.设有关系模式R(职工号,职工名,项目号,项目名,工资),假设一个职工可参加多个项目,在每个项目中各领一份工资。那么请回答以下问题:
(1)请写出这个关系模式的函数依赖和主关键字;
(2)这个关系符合第几范式,为什么?
(3)请举例说明,这个关系存在哪些问题;
(4)请把这个关系模式分解成3NF,并说明理由。
3.关系完整性的主要内容是什么?为什么要保证关系的完整性?
4.SQL Server中进行关系完整性的主要方法是什么,请写出相应的SQL语句。
5.为什么要进行规范化?规范化的相关理论是什么?请简要说明。
6.什么是一个"好"的关系模式,一个"不好"的关系模式有什么缺点?
第四章 思考与练习题
一、填空题
1.数据库设计一般包括__________、_____________、_____________、____________、___________和__________等阶段。
2.数据库应用系统的建设包括___________和____________两个方面。
3.数据库设计的主要原则包括___________、___________和其他原则。
4.E-R图的设计关键在于对___________、___________的选择和表示。
5.物理设计的主要内容包括存储记录的格式设计、_______________、_______________以及完整性和安全性考虑。
二、简答题
1.请简要说明数据库应用系统设计的步骤。
2.数据库设计的目的是什么,请谈谈你的理解。
3.基本表设计的主要原则是什么,坚持这些原则有什么好处?
4.进行SQL Server数据库设计时,一般有哪些命名规则?
5.什么是数据流程图,数据字典的主要作用是什么,谈谈你的理解。
6.什么是E-R图,它的作用是什么?
7.简要说明需求分析阶段的主要任务和目的。
《数据库应用技术》形考作业(二)评价
第三章 数据库规范化与完整性
一、选择题
1.A 2.C 3.A 4.C
二、简答题
1.设关系模式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.请写出一个符合第三范式的关系模式,并说明理由。
学生=(学生号,姓名,性别,专业)
课程=(学生号,课程号,成绩)
选课=(课程号,课程名,课程学分)
第四章 数据库设计
一、填空题
1、需求分析、概念设计、逻辑设计、物理设计、数据库实施、运行维护
2、结构设计、行为设计
3、表设计原则、字段设计原则
4、实体、联系
5、存储方法设计、访问方法设计
二、简答题
1.请简要说明数据库应用系统设计的步骤。
数据库应用系统设计的步骤包括需求分析、概念设计、逻辑设计和物理设计。
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.简要说明需求分析阶段的主要任务和目的。
需求分析阶段的主要目的是回答"干什么"的问题。需要从多方面对拟开发数据库应用系统的企事业单位进行调查,收集和分析各项应用对信息和处理两方面的需求。了解和掌握数据库应用系统开发对象(或称用户)的工作业务流程和每个岗位、每个环节的职责,了解和掌握信息从开始产生或建立,到最后输出、存档或消亡所经过的传递和转换过程,了解和掌握各种人员在整个系统活动过程中的作用;通过同用户充分地交流和沟通,决定那些工作应由计算机来做,哪些工作仍由手工来做,决定各种人员对信息和处理各有什么要求,对视屏操作界面和报表输出格式各有什么要求,对数据(信息)的安全性(保密性)和完整性各有什么要求等等。需求分析阶段的主要工作就是,通过调查从用户处获得对数据库的下列需求。
信息需求:用户将从数据库中获得的信息的内容和性质,有信息要求导出数据要求,即在数据库中存储哪些数据。
处理需求:用户要完成什么处理功能,对某种处理的执行频度、用户要求的响应时间,以及处理的方式是联机处理还是批处理等。
安全性和完整性的约束。
《数据库应用技术》形考作业(三)
第五章 思考与练习题
一、简答题
1.请简要说明数据库安全机制?
2.登录账号和用户账号的含义是什么?它们有什么区别联系?
3.请简要说明使用企业管理创建登录账号和用户账号的过程。
4.如何对用户账号进行授权管理,一般有哪些权限,请简要说明。
5.为什么要进行数据备份?数据库备份包括哪些主要内容?
6.什么是备份设备,请谈一谈SQL Server中创建备份设备的主要步骤和方法。
7.事务日志文件有什么用途?是否也需要备份?为什么?
8.请按以下操作练习一下数据库备份操作,并体会一下数据库备份的的效果。
(1)创建一个数据库;
(2)使用CREATE TABLE语句在数据库中创建一张表;
(3)使用INSERT语句向表中插入若干条数据;
(4)进入企业管理器,对数据库进行备份操作;
(5)使用DROP TABLE语句删除已创建的表;
(6)使用企业管理器,对数据库进行还原操作。
第六章 思考与练习题
一、简答题
1.什么是嵌入式SQL,它有哪些特点和用途?
2.请简述C/S和B/S的主要原理,并说明它们各自的优缺点。
3.请简要说明利用VB开发数据库应用系统的一般步骤。
4.什么是数据库引擎?VB数据库应用系统访问数据库的主要机理是什么?
5.ADO对象模型的主要对象是什么?如果连接后台数据库?
6.请写出VB中编写增、删、改、查功能的主要步骤和语句。
《数据库应用技术》形考作业(三)评价
第五章 数据库管理
一、简答题
1.请简要说明数据库安全机制?
一个用户访问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)使用企业管理器,对数据库进行还原操作。
参考答案:
(1)CREATE DATABASE 学生库
(2)学生表:
create table 学生 ( 学号 char (8) primary Key,
姓名 char(8),
年龄 int,
性别 bit)
(3)insert into 学生values ('2007001','王丽',19, 1)
insert into 学生values ('2007002','张华',20, 0)
insert into 学生values ('2007003','李敏',19, 1)
(4)如图所示。
(5)DROP TABLE 学生
(6)如图所示。
第六章 数据库应用系统开发
一、简答题
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中编写增、删、改、查功能的主要步骤和语句。
《数据库应用技术》形考作业(四)
一、单项选择题(每个题只有一个答案是正确的。)
1.如果希望从学生表中查询出所有姓"李"的同学,那么条件语句应该是( )。
A、Where 姓名 % '李' B、Where 姓名 LIKE '李%'
C、Where 姓名 % 'LIKE李' D、Where 姓名 LIKE '李'
2.在一个教师关系中,能够成为主关键字(或称主码)的属性是( )。
A、教师姓名 B、教师编号 C、教师年龄 D、教师性别
3.从最终用户应用程序的视角看,数据库系统的三级模式结构是( )。
A、模式、外模式和内模式 B、内模式、外模式和模式
C、外模式、模式和内模式 D、外模式、内模式和模式
4.在一个学生关系中,能够成为主关键字(或称主码)的属性是( )。
A、性别 B、年龄 C、学号 D、班级
5.有严格的数学基础的数据模型是( )。
A、关系模型 B、网状模型 C、层次模型 D、面向对象模型
6.下列关于索引的说明不正确的是( )。
A、索引必须创建在主关键字之上
B、索引与基本表分开存储
C、索引是为了提高查询速度而创建的
D、索引会在一定程度上影响增删改操作的效率
7.设关系R是满足第一范式的,若R中不存在非主属性对主键的部分函数依赖,则R符合( )。
A、第二范式 B、第三范式 C、BC范式 D、第四范式
8.下列符合第三范式的关系是( )。
A、学生(学号,姓名,课程号,课程名)
B、学生(学号,姓名,课程名,成绩)
C、学生(学号,姓名,课程号,成绩)
D、学生(学号,姓名,性别)
9.在第一个关系中出现,而在第二个关系中不出现的记录组成的新关系称为( )。
A、两个关系的积 B、两个关系的并
C、两个关系的交 D、两个关系的差
10.数据库应用程序开发中,需求分析阶段的主要目的是( )。
A、回答"干什么"的问题 B、回答"怎么干"的问题
C、建立逻辑数据模型 D、建立最佳物理存储结构
11.用户使用SQL Server时,通常需要依次经过两个安全性阶段( )。
A、登录验证、操作验证 B、操作验证、登录验证
C、身份验证、权限认证 D、权限认证、身份验证
12.SQL Server数据库中的一个完整的备份通常要包括( )。
A、系统数据库、用户数据库和事务日志
B、系统数据库、系统表和数据字典
C、系统数据库、用户数据库和数据字典
D、用户数据库和事务日志
13.下列哪些不属于索引的类型( )。
A、单列索引 B、惟一索引 C、聚集索引 D、事务日志索引
14.下列SQL语句中,能够完成并运算的是( )。
A、SELECT * FROM 篮球爱好者UNIONSELECT * FROM 足球爱好者
B、SELECT * FROM 篮球爱好者INTERSECTSELECT * FROM 足球爱好者
C、SELECT * FROM 篮球爱好者EXCEPTSELECT * FROM 足球爱好者
D、SELECT * FROM 篮球爱好者,足球爱好者
15.设学生表和课程表的结构分别为(学号,姓名)和(学号,课程号,成绩),如果希望查询出"成绩大于90分的学生姓名",则对应的SQL语句是( )。
A、SELECT 姓名 FROM 学生表 WHERE 学生表.学号=课程表.学号 AND 课程表.成绩>90
B、SELECT 姓名 FROM 课程表 WHERE学生表.学号=课程表.学号 AND 课程表.成绩>90
C、SELECT 姓名 FROM 学生表,课程表 WHERE 学生表.学号=课程表.学号 OR 课程表.成绩>90
D、SELECT 姓名 FROM 学生表,课程表 WHERE 学生表.学号=课程表.学号 AND 课程表.成绩>90
二、填空题
1.数据库系统的三级模式结构是指数据库系统由外模式、__________和__________三级抽象模式构成。
2.__________是指将数据从硬盘复制到可移动媒体上的过程。
3."实体一联系"方法是描述数据库概念模型的主要方法,一般称这种方法为__________。
4.用户使用SQL Server数据库时,一般需要经过两个安全性阶段:__________和__________。
5.E-R图设计一般在数据库设计的__________阶段使用。
三、判断题(正确的在括号内打上"√",错误的打上"?"。)
1.能够惟一表示数据表中的每条记录的字段或者字段的组合称为主码或主键( )。
2.SQL Server数据库中的NULL值(空值)表示的是 "空格"或"0"值( )。
3.一个不规范的关系模式通常会引发插入异常、删除异常和更新异常,导致大量的数据冗余。( )
4.根据索引的特点,应该对那些数据量大、查询频度较高、实时性要求强的基本表创建索引,( )
5.数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,有效存储数据,满足用户信息要求和处理要求。( )
6.参照完整性规则通常是指在两个参照和被参照关系中,参照关系中每条记录的外键或者为空,或者等于被参照关系中某条记录的主键。( )
四、简述题
1.请简要说明视图的概念和作用
2.什么是函数依赖与函数决定,请举例说明
3.请简要说明存储过程的概念和优点。
五、综合应用题
1.设有 有以下基本表:(1)供应商表(供应商编号,供应商名称,供应商所在城市);(2)零件表(零件编号,零件名称,零件颜色,零件重量);(3)工程项目表(工程编号,工程名称,工程所在城市);(4)工程供货表(工程编号,供应商编号,零件编号,零件数量)。
用SQL语言写出下列查询语句,
(1)查询所有工程的全部细节:
(2)查询所在城市为上海的所有工程的全部细节
(3)查询重量最轻的零件代号
(4)查询为工程编号为"JG2008001"的工程提供零件的供应商编号
(5)查询为工程编号为"JG2008001"的工程提供零件编号为"P1"的供应商编号
(6)查询由供应商编号为S1的供应商提供零件的工程名称
(7)查询供应商S1提供的零件的颜色
(8)查询为所在城市为上海的工程提供零件的供应商编号
2.用SQL语句创建简单数据表
设有两个关系(1)教师关系T,包括教师编号TNo,姓名TN,系别TD,职称RANK;(2)课程关系C,包括课程号CNo,课程名CN。教师编号和课程号分别是上述两个关系的主键,请用SQL语句创建教师数据表T。
3.用SQL语句创建数据表
在上题基础上,假设还存在教师教授课程关系TC,包括教师编号TNo和课程号CNo。
注意:说明主键码和外键码约束
4.利用SQL语句进行查询
在上题的基础上,如果要查询"张红老师承担的所有课程",请写出对应的SQL查询语句。
5.程序应用题
设学生成绩表的结构为(学号、课程号、成绩),程序运行界面如图1所示。进入界面后,用户首先选择学号(Combo1)、课程号(Combo2),姓名(Text1)和课程名(Text2)从数据库中自动读入;然后,用户输入对应的成绩(Text3),点击"确认"按钮后,将结果插入到学生成绩表中。请补充完成下列程序代码。
图1"增加记录"窗体运行界面
Private Sub Command1_Click()
'声明一个记录集对象
Dim ADOrs As New Recordset
'将记录集对象与已建立的数据库联接对象ADOcn绑定
ADOrs.ActiveConnection=ADOcn
'第一步:在学生成绩表中查询是否存在关键字相同的记录
(1)拼写查询字符串
strSQL ="____________________________________________________________"
(2)执行查询语句
'第二步:如果关键字重复,则退出程序
If Not______________Then
MsgBox "记录已存在,不能继续增加"
Exit Sub
End If
'第三步:将结果插入到学生成绩表中
StrSQL="________________"
StrSQL
End Sub
《数据库应用技术》形考作业(四)评价
一、单项选择题(每个题只有一个答案是正确的。)
1.B 2.B 3.C 4.C 5.A 6.A 7.A 8.D
9.D 10.A 11.C 12.A 13.D 14.A 15.D
二、填空题
1.外模式、模式和内模式
2.备份
3.E-R方法(或E-R图方法)
4.身份验证、权限认证
5.概念设计阶段使用
三、判断题(正确的在括号内打上"√",错误的打上"?"。)
1.√ 2.? 3.√ 4.√ 5.√ 6.√
四、简述题
1.请简要说明视图的概念和作用
视图是在基本表或其他视图上建立的表,它的结构和内容都来自某个基本表,是依据基本表存在而存在的。删除一个视图时,不会对基本表产生任何影响,但当删除一张基本表时,与之相关联的视图就会自动被删除。其作用主要是:(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.设有有以下基本表:(1)供应商表(供应商编号,供应商名称,供应商所在城市);(2)零件表(零件编号,零件名称,零件颜色,零件重量);(3)工程项目表(工程编号,工程名称,工程所在城市);(4)工程供货表(工程编号,供应商编号,零件编号,零件数量)。
用SQL语言写出下列查询语句,
(1)查询所有工程的全部细节:
SELECT * FROM 工程项目表
SELECT * FROM JB
(2)查询所在城市为上海的所有工程的全部细节
SELECT * FROM 工程项目表 WHERE 工程所在城市='上海'
SELECT * FROM JB WHERE CITY='上海'
(3)查询重量最轻的零件代号
SELECT 零件编号FROM PB WHERE 零件重量=
(SELECT MIN(零件重量) FROM 零件表)
SELECT PN FROM PB WHERE WTIGHT=
(SELECT MIN(WTIGHT) FROM PB)
(4)查询为工程编号为"JG2008001"的工程提供零件的供应商编号
SELECT 供应商编号 FROM 工程供货表 WHERE 工程编号='JG2008001'
SELECT SN FROM SPJB WHERE JN='JG2008001'
(5)查询为工程编号为"JG2008001"的工程提供零件编号为"P1"的供应商编号
SELECT 供应商编号 FROM 工程供货表
WHERE 工程编号='JG2008001' AND 零件编号='P1'
SELECT SN FROM SPJB
WHERE JN='JG2008001' AND PN='P1'
(6)查询由供应商编号为S1的供应商提供零件的工程名称
SELECT 工程项目表.工程名称 FROM 工程项目表,工程供货表
WHERE 工程项目表.工程编号=工程供货表.工程编号 AND 工程供货表.供应商编号='S1'
SELECT JB.JNAME FROM JB,SPJB
WHERE JB.JN=SPJB.JN AND SPJB.JN='S1'
(7)查询供应商S1提供的零件的颜色
SELECT DISTINCT零件表.零件颜色FROM零件表,工程供货表
WHERE 零件表.零件编号=工程供货表.零件编号 AND 工程供货表.供应商编号='S1'
SELECT DISTINCT PB.COLOR FROM PB,SPJB
WHERE PB.PN=SPJB.PB号 AND SPJB.SN='S1'
(8)查询为所在城市为上海的工程提供零件的供应商编号
SELECT DISTINCT 工程供货表.供应商编号 FROM 工程项目表,工程供货表
WHERE 工程供货表.工程编号=工程项目表.工程编号 AND 工程项目表.工程所在城市='上海'
SELECT DISTINCT SPJB.SN FROM JB,SPJB
WHERE SPJB.JN=JB.JN AND JB.CITY='上海'
2.用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)
);
3.用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)
);
4.利用SQL语句进行查询:在上题的基础上,如果要查询"张红"老师承担的所有课程,请写出对应的SQL查询语句。
SELECT C.CNo,C.CN FROM T,C,TC
WHERE T.TNo=TC.TNo AND C.CN=TC.CNo AND T.TN='张红'
5.程序应用题
设学生成绩表的结构为(学号、课程号、成绩),程序运行界面如图1所示。进入界面后,用户首先选择学号(Combo1)、课程号(Combo2),姓名(Text1)和课程名(Text2)从数据库中自动读入;然后,用户输入对应的成绩(Text3),点击"确认"按钮后,将结果插入到学生成绩表中。请补充完成下列程序代码。
Private Sub Command1_Click()
'声明一个记录集对象
Dim ADOrs As New Recordset
'将记录集对象与已建立的数据库联接对象ADOcn绑定
ADOrs.ActiveConnection=ADOcn
'第一步:在学生成绩表中查询是否存在关键字相同的记录
strSQL="Select * From 学生成绩表 Where 学号=' "+combo1.Text+" ' And 课程号=' "+Combo2.Text+" ' "
ADOrs.Open StrSQL
'第二步:如果关键字重复,则退出程序
If Not ADOrs.EOF Then
MsgBox "记录已存在,不能继续增加"
Exit Sub
End If
'第三步:将结果插入到学生成绩表中
StrSQL="Insert Into 学生成绩表(学号,课程号,成绩)Values(' "+Combo1.Text+" ',' "+Combo2.Text+" ', "+Str(Val(Text3.Text))+")"
ADOcn.Execute StrSQL
End Sub
来源:网络整理 免责声明:本文仅限学习分享,如产生版权问题,请联系我们及时删除。
<script> (function(){ var h2=$('.print_content').children('h2'); for(var i=0;i相关文章:
《植物学》形成性考核册1-4作业04-30
《植物生产技术》形考册04-30
《水利工程测量》形成性考核册04-30
《文秘管理与应用写作》形成性考核册104-30
《文秘管理与应用写作》形成性考核册答案04-30
《文秘管理与应用写作》形考作业104-30
《文论专题》形成性考核册04-30
《新编组织行为学》形考册04-30
《数控机床电气控制》形成性考核册作业04-30