苏州大学 数据库原理与设计 课程期中试卷分析

合集下载

数据库课程期中试卷答案

数据库课程期中试卷答案

苏州大学数据库系统课程期中试卷一、选择题(每题1分,共10分)1.数据独立性是指___________ 。

A.数据之间的相互独立 B. 应用程序与DB的结构之间相互独立C.数据的逻辑结构与物理结构相互独立 D. 数据与磁盘之间相互独立2.在关系模式中,如果属性A和B存在1对1的联系,则说________A. A->BB. B→AC. A←→BD.以上都不对3. 关系数据库规范化是为了解决关系数据库中______________问题而引入的A. 插入、删除异常和数据冗余B. 提高数据查询效率C. 减少数据操作的复杂度D. 保证数据的安全性和完整性4.当B属于函数依赖于A属性时,属性A与B的联系是。

A.1对多B.多对1 C.多对多D.以上都不是5. 在数据库中存储的是:A. 数据B. 数据模型C. 数据以及数据之间的联系D. 信息6. 数据库系统中存放三级结构定义的DB称为A. DBSB. DDC. DDLD. DBMS7. 关系数据库规范化是为了解决关系数据库中______________问题而引入的A. 插入、删除异常和数据冗余B. 提高数据查询效率C. 减少数据操作的复杂度D. 保证数据的安全性和完整性8. 下列各关系代数表达式中,不正确的是:A. R – S = R –(R ∩ S)B. R = (R – S) ∪(R ∩ S)C. R ∩ S = S –(S – R)D. R ∩ S = S – ( R – S)9.连个函数集F和G等价的充分必要条件是A. F=GB. F+=GC. F = G+D. F+ = G+10. 在关系模式R中,若函数依赖集中所有候选关键字都是决定因素,则R最高范式C.4NF D.5NF二、填空题(每题1分,共15分)1.DBMS是指数据库管理系统它是位于操作系统和用户之间的一层管理软件。

2.关系数据库中,关系的完整性约束条件包括三大类__实体完整性___________、_____参照完整性___________和______用户定义的完整性_________________ 。

(附答案)数据库期中考试复习题目汇总

(附答案)数据库期中考试复习题目汇总

《数据库概论》课程期中复习题目汇总一、为某百货公司设计一个E-R模型。

百货管辖若干个连锁商店,每家商店经营若干商品,每家商店有若干职工,但每个职工只能服务于一家商店。

实体类型“商店”的属性有:商店编号,店号,店址,店经理。

实体类型“商品”的属性有:商品编号,商品名,单价,产地。

实体类型“职工”的属性有:职工编号,职工名,性别,工资。

在联系中应反映出职工参加某商店工作的开始时间,商店销售商品的有销售量。

试画出反映商店、商品、职工实体类型及联系类型的ER图,并将其转换成关系模式集。

二、关系代数设有三个关系:S(S#,SNAME,AGE,SEX)SC(S#,C#,GRADE)C(C#,CNAME,TEACHER)说明:S#——学号SNAME——学生姓名AGE——年龄SEX——性别C#——课程号CNAME——课程名TEACHER——教师GRADE——成绩试用关系代数写出查询语句。

(1)检索LIU老师所授课程的课程号、课程名。

(2)检索年龄大于23岁的男学生的学号与姓名。

(3)检索学号为S3学生所学课程的课程名与任课教师名。

(4)检索至少选修LIU老师所授课程中一门课程的女学生的姓名。

(5)检索W ANG同学不学的课程号。

(6)检索至少选修两门课程的学生学号。

(7)检索全部学生都选修的课程的课程号与学生学号。

(8)检索选修课程包含LIU老师所授课程的学生学号。

(用∞代表自然连接):(1)πC#,CNA ME(σTEA CHER='LIU'(C))(2)πS#,SNAME(σAGE>'23'∧SEX='男'(S))(3)πCNA ME,TEACHER(σS#='S3'(SC∞C))(4)πSNAME(σSEX='女'∧TEA CHER='LIU'(S∞SC∞C))(5)πC#(C)-πC#(σSNAME='WANG'(S∞SC))(6)πS#(σ1=4∧2≠5(SC×SC)) (SC自乘之后,同一个学号下两个课程号不同的元组)(7)πC#,S#(SC∞(πS#,C#(SC)÷πS#(S))))(8)πS#(σTEA CHER='LIU'(S∞SC∞C))三、SQL语句(1)1、建立一个数据库和五张表的表结构。

数据库历年真题答案及解析

数据库历年真题答案及解析

数据库历年真题答案及解析在计算机科学领域,数据库是一种用于存储和管理数据的系统。

它们被广泛应用于许多领域,包括企业管理、电子商务和信息系统。

对于计算机科学专业的学生而言,掌握数据库知识是非常重要的。

为了帮助学生更好地掌握数据库的概念和技术,许多高校和机构都提供了数据库的历年真题及其答案解析。

历年真题是指以往的考试题目,这些题目涵盖了数据库的各个方面,包括数据库设计、数据库管理、SQL语言和数据库安全性等。

通过研究历年真题,学生可以了解到数据库考试的题型和难度,为备考做好充分的准备。

下面给出一道历年真题及其答案解析,以帮助读者更好地理解数据库的概念和技术。

题目:考虑一个关系模式R(A, B, C, D, E, F)及其函数依赖集合F={AB->C, CD->E, EF->D, D->A}。

请判断以下候选键和超键。

候选键是指可以唯一标识一个元组的最小属性集合,而超键是指可以唯一标识一个元组的属性集合。

答案解析:首先,我们需要确定R的超键。

根据函数依赖集合F,我们可以看出ABCD是超键,因为它可以唯一标识一个元组。

另外,ABD、CDE和ABCDEF也是超键,因为它们都可以唯一标识一个元组。

然后,我们需要确定R的候选键。

为了确定候选键,我们需要考虑每个超键是否是最小的。

在此例中,ABCD是最小的超键,因为没有任何属性被冗余包含在其中。

因此,ABCD是R的候选键之一。

接下来,我们需要确定R的其他候选键。

观察函数依赖集合F,我们可以看出CD和EF都是候选键。

对于CD,我们可以通过CD->E和CD->A推断出E和A是多余的属性,因此CD是最小的候选键。

对于EF,我们可以通过EF->D推断出D是多余的属性,因此EF是最小的候选键。

综上所述,R的候选键为ABCD、CD和EF,其中ABCD是最小的候选键。

通过对这道题目的分析,我们可以看到数据库设计中的候选键和超键是如何确定的。

2022年苏州大学计算机科学与技术专业《数据库原理》科目期末试卷B(有答案)

2022年苏州大学计算机科学与技术专业《数据库原理》科目期末试卷B(有答案)

2022年苏州大学计算机科学与技术专业《数据库原理》科目期末试卷B(有答案)一、填空题1、设某数据库中有商品表(商品号,商品名,商品类别,价格)。

现要创建一个视图,该视图包含全部商品类别及每类商品的平均价格。

请补全如下语句: CREATE VIEW V1(商品类别,平均价格)AS SELECT商品类别,_____FROM商品表GROUP BY商品类别;2、数据库管理系统的主要功能有______________、______________、数据库的运行管理以及数据库的建立和维护等4个方面。

3、数据库内的数据是______的,只要有业务发生,数据就会更新,而数据仓库则是______的历史数据,只能定期添加和刷新。

4、设某数据库中有作者表(作者号,城市)和出版商表(出版商号,城市),请补全如下查询语句,使该查询语句能查询作者和出版商所在的全部不重复的城市。

SELECT城市FROM作者表_____SELECT城市FROM出版商表;5、从外部视图到子模式的数据结构的转换是由______________实现;模式与子模式之间的映象是由______________实现;存储模式与数据物理组织之间的映象是由______________实现。

6、在SQL Server 2000中,某数据库用户User在此数据库中具有对T 表数据的查询和更改权限。

现要收回User对T表的数据更改权,下述是实现该功能的语句,请补全语句。

_____UPDATE ON T FROM User;7、关系模型由______________、______________和______________组成。

8、在SQL Server 2000中,新建了一个SQL Server身份验证模式的登录账户LOG,现希望LOG在数据库服务器上具有全部的操作权限,下述语句是为LOG授权的语句,请补全该语句。

EXEC sp_addsrvrolemember‘LOG’,_____;9、使某个事务永远处于等待状态,得不到执行的现象称为______。

苏州大学数据库课程设计报告

苏州大学数据库课程设计报告

《数据库课程设计》实验报告专业计算机科学与技术年级 15 级姓名学号指导老师使用日期苏州大学计算机科学与技术学院统一印制二零一七年三月一:概述项目背景:数据库课程设计系统名称:教务管理系统开发环境:SQL Server 2016 二:需求分析1.系统概述根据要求设计一个数据库教务管理系统2.教务系统的ER图3.数据库表(1)Student表(2)Teacher表(3)Class表(4)College表(5)Secretary表(6)Major表(7)Course表表(8)Teaching(9)TPlan表(10)CourseClass表(11)TempScore表(12)FinalScore表(13)RebuildScore表(14)CourseSelect表(15)ChangeLog表三:程序代码1.SQL建表代码use EduMS/*教师表*/create table Teacher(teacher_id varchar(20)primary key,teacher_name varchar(20),teacher_sex varchar(10)check(teacher_sex in('男','女')), teacher_usename varchar(20),--用户名teacher_password varchar(20)--密码)/*秘书表*/create table Secretary(secretary_id varchar(20)primary key,secretary_name varchar(20),secretary_sex varchar(10)check(secretary_sex in('男','女')),secretary_usename varchar(20),secretary_password varchar(20))/*学院表*/create table College(college_id varchar(20)primary key,college_name varchar(20),secretary_id varchar(20)not null,--教务秘书编号major_num int,--专业数目foreign key(secretary_id)referencesSecretary(secretary_id))/*专业表*/create table Major(major_id varchar(20)primary key,major_name varchar(20),class_count int check(class_count >= 0),--班级数college_id varchar(20)not null,foreign key(college_id)references College(college_id) )/*班级表*/create table Class(class_id varchar(20)primary key,class_name varchar(20),class_stuCount int check(class_stuCount >= 0),--班级人数major_id varchar(20)not null,grade varchar(10),--年级foreign key(major_id)references Major(major_id))/*学生表*/create table Student(stu_id varchar(20)primary key,stu_name varchar(20),stu_sex varchar(10)check(stu_sex in('男','女')),class_id varchar(20)not null,stu_identity varchar(20)not null,--身份证号stu_intake date,--入学时间stu_birth date,--出生日期major_id varchar(20)not null,college_id varchar(20)not null,foreign key(class_id)references Class(class_id),foreign key(major_id)references Major(major_id),foreign key(college_id)references College(college_id) )/*课程表*/create table Course(course_id varchar(20)primary key,course_name varchar(20),course_credit int,--学分course_hour int--学时)/*班级课程表*/create table CourseClass(course_id varchar(20)not null,class_id varchar(20)not null,teacher_id varchar(20)not null,class_time varchar(20),--上课时间class_place varchar(20),--上课地点class_week varchar(10)check(class_week in('单周','双周','单双周')),--上课周数major_id varchar(20)not null,primary key(course_id,class_id),foreign key(course_id)references Course(course_id),foreign key(class_id)references Class(class_id),foreign key(teacher_id)references Teacher(teacher_id), foreign key(major_id)references Major(major_id))/*教学计划表*/create table TPlan(major_id varchar(20)not null,course_id varchar(20)not null,grade varchar(10),--年级term int check(term > 0),--学期college_id varchar(20)not null,max_size int,primary key(major_id,course_id),foreign key(major_id)references Major(major_id),foreign key(course_id)references Course(course_id),foreign key(college_id)references College(college_id) )/*选课表*/create table CourseSelect(stu_id varchar(20)not null,course_id varchar(20)not null,term int,--学期stu_full bit,--该课程是否人数已满textbook bit,--是否预定教材primary key(stu_id,course_id),foreign key(stu_id)references Student(stu_id),foreign key(course_id)references Course(course_id))/*教学表*/create table Teaching(teacher_id varchar(20)not null,teacher_name varchar(20),class_id varchar(20)not null,course_id varchar(20)not null,term int,major_id varchar(20),primary key(teacher_id,class_id,course_id),foreign key(teacher_id)references Teacher(teacher_id), foreign key(class_id)references Class(class_id),foreign key(course_id)references Course(course_id),foreign key(major_id)references Major(major_id))/*临时成绩表*/create table TempScore(stu_id varchar(20)not null,course_id varchar(20)not null,class_id varchar(20)not null,term int,rebuild_flag bit,score_ordtime int check(score_ordtime >= 0),--平时成绩score_mid int check(score_mid >=0),--期中成绩score_termial int check(score_termial >= 0),--期末成绩score_expe int check(score_expe >= 0),--实验成绩score_final int check(score_final >= 0),--最终总评成绩course_credit int check(course_credit >= 0),--所得学分GPA float,primary key(stu_id,course_id),foreign key(stu_id)references Student(stu_id),foreign key(course_id)references Course(course_id),foreign key(class_id)references Class(class_id))/*重修成绩表*/create table RebuildScore(stu_id varchar(20)not null,course_id varchar(20)not null,class_id varchar(20)not null,term int,rebuild_id int,--第几次重修score_ordtime int check(score_ordtime >= 0),--平时成绩score_mid int check(score_mid >=0),--期中成绩score_termial int check(score_termial >= 0),--期末成绩score_expe int check(score_expe >= 0),--实验成绩score_final int check(score_final >= 0),--最终总评成绩course_credit int check(course_credit >= 0),--所得学分GPA float,primary key(stu_id,course_id,rebuild_id),foreign key(stu_id)references Student(stu_id),foreign key(course_id)references Course(course_id), foreign key(class_id)references Class(class_id))/*成绩表*/create table FinalScore(stu_id varchar(20)not null,course_id varchar(20)not null,class_id varchar(20)not null,term int,score_ordtime int check(score_ordtime >= 0),score_mid int check(score_mid >=0),score_termial int check(score_termial >= 0),score_expe int check(score_expe >= 0),score_final int check(score_final >= 0),course_credit int check(course_credit >= 0),GPA float,primary key(stu_id,course_id),foreign key(stu_id)references Student(stu_id),foreign key(course_id)references Course(course_id), foreign key(class_id)references Class(class_id))/*成绩变动记录表*/create table ChangeLog(stu_id varchar(20)not null,course_id varchar(20)not null,update_time date,--改动时间score_pri_ordtime int check(score_pri_ordtime >= 0),score_pri_mid int check(score_pri_mid >=0),score_pri_termial int check(score_pri_termial >= 0),score_pri_expe int check(score_pri_expe >= 0),score_pri_final int check(score_pri_final >= 0),-pri_course_credit int check(pri_course_credit >= 0),pri_GPA float,score_cur_ordtime int check(score_cur_ordtime >= 0),score_cur_mid int check(score_cur_mid >=0),score_cur_termial int check(score_cur_termial >= 0),score_cur_expe int check(score_cur_expe >= 0),score_cur_final int check(score_cur_final >= 0),cur_course_credit int check(cur_course_credit >= 0),cur_GPA float,primary key(stu_id,course_id),foreign key(stu_id)references Student(stu_id),foreign key(course_id)references Course(course_id),)2.触发器代码/*对FinalScore进行插入、删除、修改操作时把数据备份到Changelog 中*/gocreate trigger InsertScoreon FinalScorefor insertasdeclare @stu_id varchar(20), @course_id varchar(20),@class_id varchar(20),@term int, @score_ordtime int, @score_mid int,@score_termial int,@score_expe int, @score_final int, @course_credit int, @GPA floatselect @stu_id =stu_id, @course_id =course_id,@class_id = class_id,@term = term, @score_ordtime = score_ordtime,@score_mid = score_mid, @score_termial=score_termial,@score_expe = score_expe, @score_final = score_final, @course_credit = course_credit, @GPA = GPA from insertedinsert intoChangeLog(stu_id,course_id,score_cur_ordtime,score_cur_m id,score_cur_termial,score_cur_expe,score_cur_final,cur_ course_credit,cur_GPA,update_time)values(@stu_id,@course_id,@score_ordtime,@score_mid,@sco re_termial,@score_expe,@scre_final,@course_credit,@GPA,GETDATE())gogocreate trigger UpdateScoreon FinalScorefor updateasdeclare @stu_id varchar(20), @course_id varchar(20),@class_id varchar(20),@term int, @score_ordtime int,@score_mid int, @score_termial int,@score_expe int,@score_final int, @course_credit int, @GPA floatselect @stu_id =stu_id, @course_id =course_id,@class_id = class_id,@term = term, @score_ordtime = score_ordtime,@score_mid = score_mid, @score_termial=score_termial,@score_expe = score_expe, @score_final = score_final, @course_credit = course_credit, @GPA = GPA from insertedif(not exists(select stu_id from FinalScore where stu_id = @stu_id))begininsert intoChangeLog(stu_id,course_id,score_cur_ordtime,score_cur_mid,score_cur_termial,score_cur_expe,score_cur_final,cur_course_credit,cur_GPA,update_time)values(@stu_id,@course_id,@score_ordtime,@score_mid,@score_termial,@score_expe,@score_final,@course_credit,@GPA,GETDATE())endelsebeginupdate ChangeLogset score_cur_ordtime = @score_ordtime,score_cur_mid =@score_mid,score_cur_termial= @score_termial, score_cur_expe =@score_expe,score_cur_final = @score_final,cur_course_credit = @course_credit, cur_GPA =@GPA, update_time =GETDATE()where stu_id = @stu_id and course_id = @course_id endselect @stu_id =stu_id, @course_id =course_id,@class_id = class_id,@term = term, @score_ordtime = score_ordtime,@score_mid = score_mid, @score_termial=score_termial,@score_expe = score_expe, @score_final = score_final, @course_credit = course_credit, @GPA = GPA from deletedupdate ChangeLogset score_pri_ordtime =@score_ordtime,score_pri_mid =@score_mid, score_cur_termial = @score_termial,score_pri_expe= @score_expe, score_pri_final =@score_final,pri_course_credit = @course_credit,pri_GPA = @GPAwhere stu_id = @stu_id and course_id = @course_idgocreate trigger DeleteScoreon FinalScorefor deleteasdeclare @stu_id varchar(20), @course_id varchar(20),@class_id varchar(20),@term int, @score_ordtime int,@score_mid int, @score_termial int,@score_expe int,@score_final int, @course_credit int, @GPA floatselect @stu_id =stu_id, @course_id =course_id,@class_id = class_id,@term = term, @score_ordtime = score_ordtime,@score_mid = score_mid, @score_termial=score_termial,@score_expe = score_expe, @score_final = score_final, @course_credit = course_credit, @GPA = GPA from insertedif(not exists(select stu_id from FinalScore where stu_id = @stu_id))begininsert intoChangeLog(stu_id,course_id,score_cur_ordtime,score_cur_mid,score_cur_termial,score_cur_expe,score_cur_final,cur_course_credit,cur_GPA,update_time) values(@stu_id,@course_id,null,null,null,null,null,null, null,GETDATE())endelsebeginupdate ChangeLogset score_cur_ordtime =null,score_cur_mid =null, score_cur_termial =null, score_cur_expe =null,score_cur_final =null, cur_course_credit =null,cur_GPA =null, update_time =GETDATE()where stu_id = @stu_id and course_id = @course_idendselect @stu_id =stu_id, @course_id =course_id,@class_id = class_id,@term = term, @score_ordtime = score_ordtime,@score_mid = score_mid, @score_termial=score_termial,@score_expe = score_expe, @score_final =score_final, @course_credit = course_credit, @GPA = GPA from deletedupdate ChangeLogset score_pri_ordtime = @score_ordtime, score_pri_mid = @score_mid, score_cur_termial =@score_termial,score_pri_expe= @score_expe,score_pri_final = @score_final, pri_course_credit =@course_credit, pri_GPA = @GPAwhere stu_id = @stu_id and course_id = @course_idgo/*当更新重修成绩时,自动比较之前的成绩,把最高的分数替换到FinalScore表中*/gocreate trigger InsertRebuildScoreon RebuildScorefor insertasdeclare @stu_id varchar(20), @course_id varchar(20),@class_id varchar(20),@term int, @rebuild_id int,@score_ordtime int, @score_mid int, @score_termialint,@score_expe int, @score_final int, @course_credit int, @GPA floatdeclare @score intselect @stu_id =stu_id, @course_id =course_id,@class_id = class_id,@term = term, @rebuild_id = rebuild_id,@score_ordtime = score_ordtime, @score_mid = score_mid,@score_termial =score_termial,@score_expe = score_expe,@score_final = score_final,@course_credit = course_credit,@GPA = GPAfrom insertedselect @score = score_finalfrom FinalScorewhere stu_id = @stu_id and course_id = @course_idif(@score < @score_final)beginupdate FinalScoreset term =@term,score_ordtime =@score_ordtime,score_mid = @score_mid, score_termial =@score_termial,score_expe = @score_expe,score_final = @score_final, course_credit =@course_credit, GPA = @GPAwhere stu_id = @stu_id and course_id = @course_id endgogocreate trigger UpdateRebuildScoreon RebuildScorefor updateasdeclare @stu_id varchar(20), @course_id varchar(20),@class_id varchar(20),@term int, @rebuild_id int, @score_ordtime int,@score_mid int,@score_termial int,@score_expe int, @score_final int, @course_credit int,@GPA floatdeclare @score intselect @stu_id =stu_id, @course_id =course_id,@class_id = class_id,@term = term, @rebuild_id = rebuild_id,@score_ordtime = score_ordtime, @score_mid = score_mid,@score_termial =score_termial,@score_expe = score_expe,@score_final = score_final,@course_credit = course_credit,@GPA = GPAfrom insertedselect @score = score_finalfrom FinalScorewhere stu_id = @stu_id and course_id = @course_idif(@score < @score_final)beginupdate FinalScoreset term = @term, score_ordtime = @score_ordtime, score_mid = @score_mid, score_termial =@score_termial,score_expe = @score_expe,score_final = @score_final, course_credit = @course_credit, GPA = @GPAwhere stu_id = @stu_id and course_id = @course_id endgo3.角色权限分配代码create role U_JWMSgrant select,insert,update,delete on Class to U_JWMS;grant select,insert,update,delete on College to U_JWMS; grant select,insert,update,delete on Course to U_JWMS;grant select,insert,update,delete on CourseClass to U_JWMS; grant select,insert,update,delete on CourseSelect to U_JWMS; grant select,insert,update,delete on FinalScore to U_JWMS; grant select,insert,update,delete on Major to U_JWMS;grant select,insert,update,delete on RebuildScore to U_JWMS; grant select,insert,update,delete on Secretary to U_JWMS; grant select,insert,update,delete on Student to U_JWMS; grant select,insert,update,delete on Teacher to U_JWMS; grant select,insert,update,delete on Teaching to U_JWMS; grant select,insert,update,delete on TempScore to U_JWMS; grant select,insert,update,delete on TPlan to U_JWMS;gocreate role U_Webgrant select on Class to U_Web;grant select on College to U_Web;grant select on Course to U_Web;grant select on CourseClass to U_Web;grant select,update,delete,insert on CourseSelect to U_Web; grant select on FinalScore to U_Web;grant select on Major to U_Web;grant select on RebuildScore to U_Web;grant select on Secretary to U_Web;grant select on Student to U_Web;grant select on Teacher to U_Web;grant select on Teaching to U_Web;grant select,update,insert,delete on TempScore to U_Web; grant select on TPlan to U_Web;go4.计算GPA函数/*计算绩点函数*/gocreate function CalJD(@score int)returns floatasbegindeclare @JD floatif(@score >= 60)beginset@JD =(@score - 50)/ 10endelsebeginset @JD = 0endreturn @JDendgo/*计算GPA函数*/gocreate function CalGPA(@stu_id varchar(20))returns float asbegindeclare @sum_JD float, @sum_credit int, @GPA floatselect @sum_JD =sum(dbo.CalJD(score_final))from FinalScorewhere stu_id = @stu_idselect @sum_credit =sum(course_credit)from FinalScorewhere stu_id = @stu_idset @GPA = @sum_JD / @sum_creditreturn @GPAendgo5.存储过程代码(获取最高分数,由于之前重修成绩输入时触发自动比较更新,所以最高的成绩已经存储在FinalScore表中)gocreate proc GetAllScore@stu_id varchar(20)asbeginselect stu_name,course_name,score_finalfrom Student,Course,FinalScorewhere FinalScore.stu_id = Student.stu_id andCourse.course_id = FinalScore.course_id endgo。

数据库期中试题及答案

数据库期中试题及答案

数据库期中试题及答案苏州科技学院数据库原理与设计试卷一、单选题(1*20=20分)1、DBMS 是DA.数据库B.操作系统C.数据库系统D.数据库管理系统2、下述哪一条不在DBA(数据库管理员)职责范围内 D 。

A.监督和控制数据库的运行B.参与数据库及应用程序设计C.设计数据库的存储策略D.设计数据库管理系统DBMS3、模式的逻辑子集通常称为(C)A.存储模式B.内模式C.外模式D.模式4、用二维表结构表示实体以及实体间联系的数据模型称为BA 层次数据模型B 关系数据模型C 网状数据模型D 树状数据模型5、下列哪一条不属于概念模型的特点D。

A.对现实世界的真实反映B.易于交流和理解C.易于变动D.在计算机实现效率高6、表之间一对多关系是指_B_____。

A.一张表与多张表之间的关系B.一张表中的一个记录对应另一张表中的多个记录C.一张表中的一个记录对应多张表中的一个记录D.一张表中的一个记录对应多张表中的多个记录7、一辆汽车由多个零部件组成,且相同的零部件可适用于不同型号的汽车,则汽车实体集与零部件实体集之间的联系是( D )A. 1:1B. 1:MC. M:1D. M:N8、设计数据库时首先应该设计 C 。

A.数据库应用系统结构B.DBMS结构C.数据库的概念结构D.数据库的控制结构9、概念设计的主要目标是产生数据库概念结构,该结构主要反映(D )A.DBA管理信息的需求B.数据库的维护需求C.应用程序开发的需求D.企业的信息需求10、设属性A是关系R的主属性,则属性A不能取空值,这是 AA.实体完整性规则B.参照完整性规则C.用户自定义完整性规则D.表完整性规则11、设关系R和S分别有m和n个元组,则R×S的元组个数是(D)A.m B.n C.m+n D.m×n12、下面不是SQL语言优点的是(D )A.语言简练,易学易用B.高度非过程化C.数据独立性好D.能方便地生成报表13、.取出关系中的某些列,并消去重复的元组的关系运算称为( B )。

数据库历年真题答案解析

数据库历年真题答案解析

数据库历年真题答案解析一、概述数据库是计算机科学中最基本、最重要的应用之一,随着信息时代的到来,数据库的重要性愈发凸显。

作为数据库管理系统的用户,了解历年真题的答案解析,既有助于对数据库的理论知识进行综合运用,又能为实际数据库开发和管理工作提供参考。

本文将对数据库历年真题答案进行解析,探讨其中的知识点和解题思路。

二、数据库基础知识数据库是一种组织存储数据的方式,它将各种类型的数据按照一定的模式存储在计算机系统中,并通过相应的操作进行管理和应用。

数据库系统的三个重要组成部分是数据库、数据库管理系统(DBMS)和数据库应用程序。

了解数据库的基础知识是理解并正确解答历年真题的关键。

三、数据库设计数据库的设计是数据库系统开发的核心环节,它涉及到数据库的结构、组织和逻辑。

数据库设计的过程包括需求分析、概念设计、逻辑设计和物理设计。

在历年真题中,设计问题往往是重点考察内容之一。

例如,某年的真题要求设计一个学生信息管理系统,包括学生表、课程表和成绩表。

解答这道题目时,首先要进行需求分析,确定需要的字段和关系;然后进行概念设计,将实体和关系转化为E-R图;接下来进行逻辑设计,将E-R图转化为关系模式;最后进行物理设计,确定数据库的存储方式和索引方法。

四、SQL语言SQL(Structured Query Language)是数据库管理系统中最常用的查询语言。

掌握SQL的基本语法和常用操作是数据库学习的基础。

历年真题中,SQL语言的应用占有很大比例。

例如,某年的真题要求查询某表中的所有数据并按照指定的字段排序。

解答这道题目时,首先要使用SELECT语句查询所有数据;然后使用ORDER BY子句对指定字段进行排序。

五、数据库管理数据库管理是数据库系统运行和维护的一系列操作,包括备份与恢复、性能调优、安全管理等。

在历年真题中,对于数据库管理的问题也会进行考察。

例如,某年的真题要求解释数据库的恢复和并发控制机制,并分析它们的优缺点。

《数据库应用技术》作业分析和试卷分析.doc

《数据库应用技术》作业分析和试卷分析.doc

《数据库应用技术》作业分析和试卷分析第一部分作业题分析本课程形考作业分为四个单元,前三个单元按课程教学进度设计,第四个单元针对本课程教学内容和期末考试的综合设计。

作业充分体现了课程教学重难点。

第一章数据库系统概述:期末考试题型为:选择题、填空题和简答题,分值约为15 分。

重点作业题分析:(一)选择题:1.三级模式间存在两种映射,它们是()。

A・模式与了模式间,模式与内模式间B.子模式与内模式间,外模式与内模式间C.外模式为模式间,模式少内模式间D.模式与内模式间,模式与模式间知识点:数据库体系包括三级模式:内模式、模式和外模式(子模式)。

为了实现三个抽象级别的联系和转换,数据库管理系统在三层结构Z间提供了两层映象:外模式/模式映象和模式/内模式映象。

木题答案:C2.SQL Server系统中的所冇系统级信息存储于哪个数据库()。

A. masterB. modelC. tempdbD. msdb知识点:在安装SQL Server时,系统会自动建立M aster > ModeK Tempdb > Msdb系统数据库和Pubs、Northwind两个用户数据库。

其中,Master数据库:包含SQL Server系统中的所冇系统级信息;Tempdb数据库:是一个临时数据库;Model数据库:是用户建立新数据库的模板;Msdb数据库:用来进行复制、作业调度和管理报警等。

木题答案:A(二)填空题计算机数据处理技术大致经历了_____________ 、___________ 、_________ 发展阶段。

计算机数据处理技术的发展阶段分四个阶段。

人工管理阶段、文件系统阶段、数据库管理阶段和面向对象管理阶段。

目前最为流行的数据库管理阶段。

(三)简答题1.描述SQL Server数据库的存储结构:答:SQL Server的数据存储在数据库中,在数据库中,数据被组织到用户可以看见的逻辑纽件中,而在磁盘上则作为两个或更多的物理文件來实现。

高级数据库 期中考试 答案

高级数据库 期中考试 答案

苏州大学高级数据库课程试卷(A)卷共 5页考试形式闭卷 20XX年11 月院系年级专业学号姓名成绩一.选择题(3*8=24)1. 排序操作可以在( B )表空间有效进行A.SYSTEM B. TEMPORARYC.ROLLBACK D. USERS2. 关于控制文件以下正确的是( A )A.Oracle建议至少二个控制文件存放在二个磁盘分区B.Oracle建议至少二个控制文件存放在一个磁盘分区C.Oracle建议存放一个控制文件D.一个控制文件不足以运行数据库3.最新被SQL语句使用过的数据块存储在( B )A. Shared PoolB. Buffer CacheC. PGAD. UGA4. 要统计某表中记录的总个数,以下哪项是正确的SQL语句( C )。

A. select Max(*) from 表名B. select Sum(*) from 表名C. select Count(*) from 表名D. select Min(*) from 表名5. 当B属于函数依赖于A属性时,属性A与B的联系是( B )。

A.1对多 B.多对1 C.多对多 D.以上都不是6.E-R图是数据库设计的工具之一,它适用于建立数据库的( A )。

A.概念模型 B.逻辑模型 C.结构模型 D.物理模型7. 在关系代数运算中,五种基本运算为( C )。

A.并、差、选择、投影、自然连接B.并、差、交、选择、投影C.并、差、选择、投影、乘积D.并、差、交、选择、乘积8. 假定学生关系是S(S#,SNAME,SEX,AGE),课程关系是C(C#,CNAME,TEACHER),学生选课关系是SC(S#,C#,GRADE),要查找选修“COMPUTER”课程的“女”学生姓名,将涉及到关系( D )。

A.S B.SC,C C.S,SC D.S,C,SC二.简答题(6*6=36)1.说明数据库控制文件的作用。

控制文件保存数据库的物理结构信息,包括数据库名称、数据文件的名称与状态、重做日志文件的名称与状态等。

数据库原理期中试卷及答案

数据库原理期中试卷及答案

嘉兴学院试卷2010—2011学年第2学期期中试卷课程名称:数据库原理使用__信管09考试形式:开卷______座位号:一、单项选择题(每小题1分,共20分)1. (A )是位于用户与操作系统之间的一层数据管理软件,它属于系统软件,它为用户或应用程序提供访问数据库的方法。

数据库在建立、使用和维护时由其统一管理、统一控制。

A.DBMS B.DB C.DBS D.DBA2. 目前(A )数据库系统已逐渐淘汰了层次数据库和网状数据库,成为当今最为流行的商用数据库系统。

A.关系B.面向对象C.分布D.并行3. E-R图是数据库设计的工具之一,它一般适用于建立数据库的(A )。

A.概念模型B.结构模型C.物理模型D.逻辑模型4. DB,DBMS,DBS三者之间的关系是( B )。

A.DB包括DBMS和DBSB.DBS包括DB和DBMSC.DBMS包括DB和DBSD.DBS与DB和DBMS无关5. 部门Dept(deptNo, deptName, telephone, manager)和职工Emp(empNo, empName, sex, address, deptNo)实体集,若一个职工只能属于一个部门,部门负责人manager是一个职工。

Dept与Emp的关系为( B )A.多对多B.一对多C.多对一D.一对一6. 在SQL中,建立视图用的命令是( C )。

A.CREA TE PROCEDUREB.CREA TE T ABLEC.CREA TE VIEWD.CREA TE INDEX7. 在数据库中,产生数据不一致的根本原因是( C )A.数据存储量太大B.没有严格保护数据C.未对数据进行完整性控制D.数据冗余8. 实现关系代数选择运算的SQL子句是( D ).A.SELECTB.ORDER BYC.FROMD.WHERE9. 下述不属于数据库设计的内容的是( A )A. 设计DBMSB. 设计数据库概念结构C. 设计数据库逻辑结构D. 设计数据库物理结构10. 概念设计的结果是( B )。

数据库试卷要点分析总结

数据库试卷要点分析总结

数据库试卷要点分析总结:一.数据库对象的特征定义:对象主要有表, 视图, 存储过程, 函数, 触发器, 约束, 索引。

1.表:对于建表时的每一行信息表示数据表的一个字段的相关属性定义,主要包括字段的字段名(列名),数据类型,长度,精度,小数位数以及字段的空值与默认值.在表的操作中可以进行数据表的修改,删除基本表,查看数据表.2.视图:视图是虚表,其数据不进行储存,而是来自基本表,只在数据库中储存其定义,如果试图引用的表被删除,则在使用时返回错误,如果有相同的表结构,则会代替它,则该视图依旧可用,否则必须重新创建视图,不能在视图上创建索引,不能在规则,默认和触发器的定义中引用图表,当使用视图查询数据时,它会检查视图所引用的表是否在,是否有效如果检查失败则显示错,如果检查正确,则转成对表的查询,试图也可以对表进行修改,删除但是不可以对几个表同时进行修改。

3.存储过程:存储过程是对批量的SQL进行逻辑处理, 是数据库中的一种编译对象, 可以主要接受输入参数并输出参数的形式将多个值返回只调用过程或批处理, 包含执行数据库操作的编译语句, 想调用过程或批处理返回状态值, 以表明成功或失败(失败的原因)。

有四个优点: 模块化的程序设计, 高效率的执行, 减少网络流量, 可以作为为安全机制使用。

有三个分类: 系统存储过程, 用户自定义存储过程, 扩展存储过程。

当建立存储过程时需要确定存储过程的三个组成部分:所有的输入参数以及传给调用者的输出参数;被执行的针对数据库的操作语句, 包括调用其他存储过程的语句;返回给调用者的状态值以指明调用成功还是失败。

4.函数: a.函数主要有分四类:(1)行集函数: 返回可在SQL语句中像表引用一样使用的对象;(2)聚合函数: 对一组值进行运算, 但返回一个汇总值;(3)排名函数: 对分区中的每一行均返回一个排名值;(4)标量函数: 对单一制进行计算, 并且返回一个单一值(只要表达是有效, 即可使用标量函数);b.其中最常用的函数有配置函数, 游标函数, 日期函数和时间函数, 数学函数, 元数据函数, 安全函数, 字符串函数.5.触发器:触发器是一种特殊的存储过程, 主要是通过对事件的触发被执行, 而存储过程可以通过名字直接调用, 当进行update,insert,delete等更新操作时, SQL会自动执行触发器所定义的SQL语句, 因此, 触发器有四个因素:名称: 触发器有一个符合标示符命名规则的名称;定义的目标: 触发器必须定义在表或者是图上;触发条件: update,insert,delete等语句;触发逻辑: 出发之后怎样处理。

数据库原理与设计答案

数据库原理与设计答案

数据库原理与设计答案数据库原理与设计答案如下:1. 数据库的概念和特点:数据库是指按照数据结构的特点和数据间的联系,以及数据库管理系统的要求来组织和存储数据的集合。

数据库的特点包括可共享性、减少数据冗余、数据独立性、可控性和持久性等。

2. 数据库的三级模式和数据模型:数据库的三级模式包括外部模式、概念模式和内部模式。

外部模式是用户对数据库的局部观察,概念模式是数据库的全局逻辑结构,内部模式是数据库在存储媒介上的表示方式。

数据模型是对数据、数据联系、数据语义和一致性约束等进行描述的工具,常见的数据模型包括层次模型、网状模型和关系模型。

3. 关系数据库的基本概念和术语:关系数据库是基于关系模型构建的数据库管理系统。

在关系数据库中,数据以表的形式进行组织和存储,表由行和列组成,行表示记录,列表示字段。

表之间通过主键、外键和关联操作建立联系。

4. 数据库设计的步骤和方法:数据库设计的步骤包括需求分析、概念设计、逻辑设计和物理设计。

需求分析阶段主要确定需求和功能,概念设计阶段主要进行概念模式的设计,逻辑设计阶段主要进行关系模式的设计,物理设计阶段主要确定数据库的物理存储结构和索引策略。

数据库设计的方法包括实体-关系(E-R)模型、范式理论和结构化分析等。

5. 数据库查询语言:数据库查询语言是用户和数据库管理系统进行交互的工具,常见的查询语言有结构化查询语言(SQL)。

SQL语言包括数据定义语言(DDL)用于定义数据库结构,数据操作语言(DML)用于对数据进行操作,数据控制语言(DCL)用于用户权限控制。

6. 数据库事务和并发控制:数据库事务是指由一个或多个数据库操作语句组成的逻辑单位,具有原子性、一致性、隔离性和持久性的特点。

并发控制是指多个事务同时执行时如何保证数据的一致性和完整性,常见的并发控制机制包括锁机制、并发许可控制和时间戳机制。

7. 数据库安全性和备份恢复:数据库安全性是指保护数据库不受非法访问、恶意破坏和数据泄露等威胁的措施。

苏州大学数据结构课程期中考试答案

苏州大学数据结构课程期中考试答案

苏州大学数据结构课程期中考试(共6页)学院运算机专业运算机科学与技术成绩____________________班级11计科学号_____________姓名_____________日期2021.11_一、填空(14*2 分)1x=n;y=0;while (x>=y*y)y=y+1;2、关于顺序存储的栈,因为栈的空间是有限的,在进行入栈运算时,可能发生栈的上溢(overflow),在进行出栈_运算时,可能发生栈的下溢(underflow)。

3、以顺序结构实现的双栈类中,其私有数据成员数组S[0..n-1]寄存两个栈中的所有元素,top1和top2别离指向两个栈的栈顶位置,入栈1时top1由小到大,入栈2时top2由大到小,那么判定双栈栈满的条件是top1+1>=top2 ,双栈栈空的条件是top1==-1 && top2==n。

4、完成链式存储结构下Queue类的append方式,其中front和rear指针别离指示队首和队尾结点:Error_code Queue :: append(const Queue_entry &item){Node *new_rear = new Node(item);if (new_rear == NULL) return overflow;if (rear == NULL) front=rear=new_rear; ;else {rear->next=new_rear; ;rear = new_rear;}return success;}5、若是一个函数直接或间接地挪用自己,那么称那个函数是一个递归函数。

6、在一个长度为n的顺序表中的第position(0≤position<n)个位置删除某个元素时,需移动n-position-1个元素。

7、在线性表改良的单链表实现方式中,咱们概念了一个current指针指向最近访问过的结点,请说明如此做的益处:在对表中元素进行访问时,不需要每次都从头开始,在顺序访问或之前去后的访问中能提供操作效率。

数据库原理教程习题答案解析(全)

数据库原理教程习题答案解析(全)

0000000000第1章数据库系统概述习题参考答案税务局使用数据库存储纳税人(个人或公司)信息、纳税人缴纳税款信息等。

典型的数据处理包括纳税、退税处理、统计各类纳税人纳税情况等。

银行使用数据库存储客户基本信息、客户存贷款信息等。

典型的数据处理包括处理客户存取款等。

超市使用数据库存储商品的基本信息、会员客户基本信息、客户每次购物的详细清单。

典型的数据处理包括收银台记录客户每次购物的清单并计算应交货款。

1.2 DBMS是数据库管理系统的简称,是一种重要的程序设计系统。

它由一个相互关联的数据集合和一组访问这些数据的程序组成。

数据库是持久储存在计算机中、有组织的、可共享的大量数据的集合。

数据库中的数据按一定的数据模型组织、描述和存储,可以被各种用户共享,具有较小的冗余度、较高的数据独立性,并且易于扩展。

数据库系统由数据库、DBMS(及其开发工具)、应用系统和数据库管理员组成。

数据模型是一种形式机制,用于数据建模,描述数据、数据之间的联系、数据的语义、数据上的操作和数据的完整性约束条件。

数据库模式是数据库中使用数据模型对数据建模所产生设计结果。

对于关系数据库而言,数据库模式由一组关系模式构成。

数据字典是DBMS维护的一系列内部表,用来存放元数据。

所谓元数据是关于数据的数据。

1.3 DBMS提供如下功能:(1)数据定义:提供数据定义语言DDL,用于定义数据库中的数据对象和它们的结构。

(2)数据操纵:提供数据操纵语言DML,用于操纵数据,实现对数据库的基本操作(查询、插入、删除和修改)。

(3)事务管理和运行管理:统一管理数据、控制对数据的并发访问,保证数据的安全性、完整性,确保故障时数据库中数据不被破坏,并且能够恢复到一致状态。

(4)数据存储和查询处理:确定数据的物理组织和存取方式,提供数据的持久存储和有效访问;确定查询处理方法,优化查询处理过程。

(5)数据库的建立和维护:提供实用程序,完成数据库数据批量装载、数据库转储、介质故障恢复、数据库的重组和性能监测等。

数据库期中考试题及答案二

数据库期中考试题及答案二

《数据库原理》期中测试题一、单项选择题(本大题共20小题,每小题2分,共40分) 得分在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。

错选、多选或未选均无分。

1. 数据库系统的核心是()A.数据库B.数据库管理系统C.数据模型D.软件工具2.下列四项中,不属于数据库系统的特点的是()A.数据结构化B.数据由DBMS统一管理和控制C.数据冗余度大D.数据独立性高3.概念模型是现实世界的第一层抽象,这一类模型中最著名的模型是()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.己知关系R和S,R∩S等价于()A. (R-S)-SB. S-(S-R)C.(S-R)-RD. S-(R-S)9.用下面的T-SQL语句建立一个基本表:CREATE TABLE Student(Sno CHAR(4) PRIMARY KEY,Sname CHAR(8) NOT NULL,Sex CHAR(2),Age INT)可以插入到表中的元组是()A. '5021','刘祥',男,21B. NULL,'刘祥',NULL,21C. '5021',NULL,男,21D. '5021','刘祥',NULL,NULL10. 下列四项中,不属于数据库系统的主要特点的是()。

大学数据库真题及答案解析

大学数据库真题及答案解析

大学数据库真题及答案解析近年来,数据库技术的发展迅猛,已经成为现代信息技术的重要组成部分。

在大学中,数据库课程也逐渐受到学生的关注和重视。

掌握数据库知识不仅有助于学生在职场中的就业竞争,还能够提高信息处理和数据管理的能力。

因此,大学数据库课程的学习和考试是非常重要的环节。

下面,我们通过一些典型的大学数据库真题来进行答案解析,希望能够帮助学生更好地理解数据库知识。

【题目1】请解释什么是数据库的事务,并列举事务的ACID特性。

【解析】事务是数据库操作的一个逻辑单位,它必须同时满足以下四个属性,这四个属性也被称为ACID特性:1. 原子性(Atomicity):事务是不可分割的工作单位,要么全部执行,要么全部回滚。

如果在事务执行过程中发生错误,系统会回滚到事务开始前的状态,保证数据的一致性。

2. 一致性(Consistency):事务执行前后,数据的完整性必须保持一致。

事务的操作能够满足数据库中定义的各种约束(如关键字、域的约束等)。

3. 隔离性(Isolation):事务的执行是相互隔离的,一个事务在提交前对其他事务是不可见的。

这样可以避免并发操作产生的数据不一致问题。

4. 持久性(Durability):一旦事务被提交,对数据库的修改就是永久性的,即使系统发生故障,也能够恢复到事务提交后的状态。

【题目2】请解释数据库中的主键和外键的概念。

【解析】在关系数据库中,主键和外键是用于建立表与表之间关系的重要概念。

主键(Primary Key)是用来唯一标识一个表中的每一条记录的字段或字段组合。

主键具有唯一性和非空性的特点,它能够确保表中的记录都能被唯一地标识出来。

外键(Foreign Key)是用于在一个表中建立对另一个表中记录的引用。

外键建立了两个表之间的关系,它指向另一个表的主键。

通过外键的使用,可以实现表与表之间的数据完整性和一致性约束。

【题目3】请解释数据库中的范式以及其优缺点。

【解析】范式是一组规范,用于设计关系数据库中的表结构,目的是减少数据冗余、维护数据一致性和完整性。

苏州大学数据库课程期中试卷

苏州大学数据库课程期中试卷

苏州大学《数据库技术与应用》课程期中测试卷2013年11月12日专业________ 学号_______ 姓名_________ 成绩__________一、名词解释(20分,每小题2分)1. 数据2. 数据处理3. 概念模型4. 数据结构5.数据库的三级模式二、选择题(20分,每小题2分)1. 数据库(DB),数据库系统(DBS)和数据库管理系统(DBMS)之间的关系是()。

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

I.人工管理阶段II.文件系统阶段III.数据库阶段A.I 和IIB.只有IIC.II 和IIID.只有I3.数据库系统的数据独立性体现在()。

A.不会因为数据的变化而影响到应用程序B.不会因为数据存储结构与数据逻辑结构的变化而影响应用程序C.不会因为存储策略的变化而影响存储结构D.不会因为某些存储结构的变化而影响其他的存储结构4.关系数据模型是目前最重要的一种数据模型,它的三个要素分别是()。

A.实体完整性、参照完整性、用户自定义完整性B.数据结构、关系操作、完整性约束C.数据增加、数据修改、数据查询D.外模式、模式、内模式5.一个关系只有一个()。

A. 候选码B.外码C.超码D.主码6.SQL语言集数据查询、数据操纵、数据定义和数据控制功能于一体,其中,CREATE、DROP、ALTER语句是实现哪种功能()。

A.数据查询B.数据操纵C.数据定义D.数据控制7.在SQL语言中的视图VIEW是数据库的()。

A.外模式B.模式C.内模式D.存储模式8.设关系数据库中一个表S的结构为S(SN,CN,grade),其中SN为学生名,CN为课程名,二者均为字符型;grade为成绩,数值型,取值范围0-100。

若要把“张二的化学成绩80分”插入S中,则可用()。

数据库期中试卷及参考答案

数据库期中试卷及参考答案

《数据库原理与应用》一.单项选择题(每题1分,共20分)1.目前市场上常见的DBMS 90%以上都是基于( C )数据模型的。

A.层次B.网状C.关系D.面向对象2.E-R图是在数据库设计中用来表示( A )的一种常用方法。

A.概念模型B.逻辑模型C.物理模型D.面向对象模型3.( C )是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。

A.外模式B.内模式C.模式D.概念模式4.( B )也称存储模式,是数据库物理结构和存储方式的描述,是数据在数据库内部的表示方式。

A.外模式B.内模式C.模式D.概念模式5.数据库的概念模型独立于(A )。

A.具体的机器和DBMS B.E-R图C.信息世界D.现实世界6.在数据库中存储的是( C )。

A.数据B.数据库模型C.数据以及数据之间的联系D.信息7.规范化理论是关系数据库进行逻辑设计的理论依据,根据这个理论,关系数据库中的关系必须满足:其每一个属性都是(B )。

A.互不相关的B.不可分解的C.长度可变得D.互相关联的8.在数据模型中有“型”和“值(或实例)”两个对应的概念。

其中数据库的模式是一个(D )的概念,是一个相对()的概念,而数据库在某一时刻的状态则是一个()的概念,是一个相对()的概念。

A.型;变化;值;不变B.值;不变;型;变化C.值;变化;型;不变D.型;不变;值;变化9.关系表A的属性个数为5,元组个数为10;关系表B的属性个数为6,元组个数为20.则A与B的笛卡尔积A×B的属性有( D )个,元组个数有()个。

A.30;200B.11;30 C.30;30D.11;20010.父亲和子女的亲生关系属于( B )的关系。

A.1:1B.1:n C.m:n D.不一定11.在SQL语言中,删除关系表中的一个属性列,要用动词( D ),删除关系表中的一行或多行元组,要用动词()。

A.delete,delete B.drop,drop C.delete,drop D.drop,delete12.在SQL语言中,为关系模式增加一个属性要用动词(B),为关系表增加一行或多行元组要用动词()。

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

苏州大学数据库原理与设计课程期中试卷共7页考试形式闭卷2012 年 4 月院系年级专业学号姓名成绩所有的题目请回答在答题纸上!一、计算题(本题8分)设有关系模式R(A,B,C,D,E,G),其上的函数依赖集F={AB→C,C→A,BC→D, ACD→B, D→EG, BE→C, CG→BD, CE→AG}(1)计算属性集(BD)+。

(2)求F的候选键二、说明下列关系模式最高能到达第几范式,并说明理由。

(12分)1. R={CSZ}, F={(CS)→Z, Z→C}2. R(A, B, C) F= {B→C, AC→B}3. R(A,B,C,D);F={A→C,C→A,B→AC,D→AC}4. R(X, Y, Z) F= {Y→Z, Y→X, X→YZ}三、设计题(15分)设有一个教学管理数据库,其属性为:学号(S#),课程号(C#),成绩(G),任课教师(TN),教师所在的系(D)。

并且存在下列语义:学号和课程号分别与其代表的学生和课程一一对应;一个学生所修的每门课程都有一个成绩;每门课程只有一个任课教师,但是每位教师可以有多门课程;教师中没有重名,每个教师只属于一个系。

(1)根据上述语义,确定函数依赖集(2)如果用上面的所有属性组成一个关系模式Student(S#, C#, G, TN, D),请举例说明进行插入、删除操作时的异常现象。

(3)对于这个教学管理数据库,应该设计为那些表,才能避免插入异常、删除异常和减少数据冗余?一个学生所修的每门课程都有一个成绩,(C#, S#)→G每门课程只有一个任课教师,但是每位教师可以有多门课程,得出C# → TN教师中没有重名,每个教师只属于一个系得出: TN→D所以F = { (C#, S#)→G, C# → TN, TN→D}关系模式为1NF。

该关系模式的候选键为(S#, C#),非主属性有G, TN。

因为在F中,存在C#-->TN, 又由于(S#, C#)是键,所以(S#, C#)→TN,因此非主属性TN对候选关键字存在部分函数依赖,所以不是2nf,只能是1nf。

如果新增一门课程而没有学生选课,则因为缺少关键字S#而无法插入,造成插入异常。

若某个教师辞职,在删除教师名单的时候,会删除掉课程信息也删除,造成删除异常。

R1=(S#, C#, G)R2=(C#, TN)R3=(TN, D)消除传递依赖。

四、设计题(15分)设某汽车运输公司数据库中有3个实体集。

一个是“车队”实体集,属性有车队号、车队名等;二是“车辆”实体集,属性有车牌号、生产厂商、出厂日期等;三是“司机”实体集,属性有司机编号、姓名、电话等。

设车队与司机之间存在“聘用”联系,每个车队可以聘用若干司机,但是每个司机之鞥应聘于1个车队,车队聘用司机有个聘期;车队与车辆之间存在“拥有”联系,每个车队可以拥有若干车辆,但是每个车辆只能属于一个车队;司机与车辆之间存在“使用”联系,司机使用车辆有使用日期和公里数两个属性,每个司机可以使用多个车辆,每个汽车可以被多个司机使用。

(1)试画出ER图,并在图上标明属性、联系的类型、实体标识符、联系的维数(2)将ER图转换为关系模式(即建立数据库表),并说明主键和外键1)我这里用UML来表示,对应的E-R图只是表现形式不同而已。

2.这个做的不正确的同学很多。

我们在从E-R图转换为关系模式时,有下面的规则1)所有的实体单独存放为一个关系,即表。

这里我们有车队、司机、车辆三个实体,所以这三个实体肯定对应三张表。

每个表的字段,包含了所有的属性,因此,根据这步,我们可以得出三个表:车队(车队号,车队名)司机(司机编号,姓名,电话)车辆(车牌号、生产厂商,出厂日期)2)然后分析实体间的联系。

实体间的联系有的要单独存为1个表,有的不需要。

a) 如果实体和实体间是多对1,1对多的联系,不要单独设计1个表。

而是通过在参与联系的多方的实体中,增加1个参与联系的1方的实体的主键作为1列来表示联系。

例如,车队和车辆是1对多的联系,这里,多方是车辆这个实体,1方是车队的实体。

车队的实体的主键是车牌号。

所以,我们应该在多方(车辆)这个表中,增加1方(车队)的主键作为1列来表示联系,所以此时,车辆的关系就变成了车辆(车牌号、生产厂商,出厂日期,车队号)我们就是通过在车辆表中,增加车队号这1列,来表示了那个车辆是属于哪个车队的联系的。

显然,这里车队号是外键。

再接下来,分析车队和司机之间的联系。

这个联系是1对多的联系,所以也不要单独存放一张表。

同样,把1方(车队)的主键车队号放到多方(司机)表中作为1列就可以了。

此时,司机关系就变成了:司机(司机编号,姓名,电话,车队号)但是这个聘用联系是有属性的,有个聘用日期,在这种1多情况下,把联系的属性也放到多方(司机)的表中。

所以,司机表就扩展为了:司机(司机编号,姓名,电话,车队号,聘用日期)b)两个实体间的联系是多对多时,联系要单独存放为1个表。

这个表的主键,是参与联系的两个实体的主键的组合,而联系的属性,作为其它列。

在这里,车辆和司机之间的联系“使用”是多对多的,所以要单独存放为1个表。

使用(车牌号,司机编码,使用日期,公里数)这里车牌号是车辆实体的主键,司机编码是司机实体的主键,而后面两个是联系的属性。

所以,本题的答案是:车队(车队号,车队名)车辆(车牌号、生产厂商,出厂日期,车队号)外键:车队号司机(司机编号,姓名,电话,车队号,聘用日期)外键:车队号使用(车牌号,司机编码,使用日期,公里数)外键:车牌号、司机编码主键用下划线表示了。

五、Sql(30分)。

在教学数据库中,存在3个基本表S(S#, SName, AGE, SEX) 代表学生表,字段是学号、姓名、年龄和性别SC(S#, C#, GRADE) 代表学生选修课程表,字段是学号、课程代码、成绩C(C#, CName, Teacher) 代表课程信息表,字段是课程代码,课程名称,教师名称(1) 写出建立SC表对应的SQL命令,注意要设置主键和外键。

(2) 试用SQL的查询语句完成下面的查询:1)检索至少选修LIU老师所授课程中一门课程的女学生的姓名2)检索W ANG学生不学的课程的课程号3)检索至少选修了两门课程的学生的学号4)检索全部学生都选修的课程的课程号与课程名5)求LIU老师所授课程的每门课程的平均成绩6)把DATABASE课程不及格的成绩全改为60分7)在SC表中,删除所有不及格的女同学的记录Create table sc( SNum varchar(10),CNum varchar(10),Grade money,constraint PK_sc primary key (SNum, CNum),constraint FK_s foreign key (SNum) references S(SNum),constraint FK_C foreign key (CNum) references C(CNum))(2) 试用SQL的查询语句完成下面的查询:检索至少选修LIU老师所授课程中一门课程的女学生的姓名Select sname from S, Sc, CWhere S.S#=Sc.S# and Sc.C#=C.C# and Sex = ‘F’ and Techer = ‘liu’或者Select sname from Sleft join Sc on S.S#= Sc.S#left join C on Sc.C#=C.C#where Sex = ‘F’ and Techer = ‘liu’或者Select SName from SWhere Sex = ‘F’ andS# in ( select S# from ScWhere C# in (select C# from C where Teacher = ‘liu’ ))或者Select SName from SWhere Sex = ‘F’ and Exists ( select * from Sc where Sc.S# = S.S#And Exists( select * from C where c.C# = sc.C#And teacher = ‘liu’))检索W ANG学生不学的课程的课程号Select C# from CWhere not exists ( select * from S , ScWhere S.S#=Sc.S# and Sc.C# = C.C# and SName = ‘wang’)检索至少选修了两门课程的学生的学号Select distinct A.S# from Sc as A, SC as BWhere A.S#= B.S# and A.C# <> B.C#或者Select A.S# from( Select S#, count(CNum) as ct from ScGroup by S# ) as A where A.ct >=2检索全部学生都选修的课程的课程号与课程名这里,给一门课程,假设是k1 , 那么我们可以通过sc表,知道这个课程有那些学生选(A),Select s# from sc where sc.c# = k1我们要判断,这个结果集合是否包含了所有的学生(B)而所有的学生可以通过Select s# from s 来获取A containsB = not exists ( B except A)即not exists (select s# from sexceptselect s# from sc where sc.c#=k1)要判断每一门课程,所以最外层我们从c表中来一个一个判断Select c#, cname from cWhere not exists (select s# from s except select s# from sc where sc.c#=c.c#)下面是错误的。

Select c.c#, ame from c join sc on c.c#=sc.c#Group by c.c#Having count(s#)= (select count(*) from s)求LIU老师所授课程的每门课程的平均成绩Select c.c#, avg(grade)from sc left join c on sc.s#=c.c#Where teache = ‘liu’Group by c.c#把DATABASE课程不及格的成绩全改为60分Update sc set grade = 60 where grade < 60 and c# in (select c# from c where cname = ‘database’)orUpdate sc set grade = 60 where grade < 60 and exists ( select * from c where c.c# = sc.c# and c. cname = ‘database’)在SC表中,删除所有不及格的女同学的记录Delete from sc where grade < 60 and s# in ( select s# from s where sex = ‘F’)或者Delete from sc where grade < 60 and exists ( select * from s where s.s#=sc.s# and s.sex=’F’) (update,delete后只能跟一张表)六、设有如图2.12所示的关系R,S和T,计算下面的关系代数运算结果,用表格形式表示出来。

相关文档
最新文档