数据库认证实验答案.docx
- 文档编号:3504145
- 上传时间:2022-11-23
- 格式:DOCX
- 页数:10
- 大小:226.62KB
数据库认证实验答案.docx
《数据库认证实验答案.docx》由会员分享,可在线阅读,更多相关《数据库认证实验答案.docx(10页珍藏版)》请在冰豆网上搜索。
数据库认证实验答案
实验二数据库设计方法
为一个综合性运动会建立数据库,涉及的实体如下:
实验要求1:
设计概念模型的E-R图。
实验要求2:
推出关系数据库。
关系模式:
代表团(代表团编号,代表团名称,团长姓名)
运动员(运动员编号,姓名,性别,年龄,代表团编号)
参赛项目(项目编号,项目名称,比赛时间,比赛地点)
参赛(运动员编号,项目编号,参赛成绩)
实验思考
1、简述E-R图的构成三要素。
实体、属性、联系
2、简述关系的性质。
关系中不允许出现相同的元组
关系中元组的顺序(即行序)可任意
关系中属性的顺序可任意
同一属性名下的各个属性值必须来自同一个域,必须是同一类型的数据
关系中各个属性必须有不同的名字,不同的属性可来自同一个域,即它们的分量可以取自同一个域。
关系中每一个分量必须是不可分的数据项,或者说所有的属性值都是原子的,即是一个确定的值,而不是值的集合
3、实体之间的联系有哪几种,并简述之。
一对一、一对多、多对多
4、试举出三个实例,要求实体型之间分别有一对一、一对多、多对多的联系。
一对一:
班级与班长之间的联系:
一个班级只有一个正班长
一个班长只在一个班中任职
一对多:
班级与学生之间的联系:
一个班级中有若干名学生,
每个学生只在一个班级中学习
多对多:
课程与学生之间的联系:
一门课程同时有若干个学生选修
个学生可以同时选修多门课程
实验四表的管理
实验内容:
1、使用企业管理器按下表结构创建表
createdatabaseCourse_Class_Student
useCourse_Class_Student;
createtableCourse
(
CourseIDintprimarykey,
CourseNamevarchar(20)notnull,
Categorychar(8),
Periodsmallint,
Credittinyint
)
useCourse_Class_Student;
createtableClassInfo
(
ClassIDintnotnull,
ClassNamevarchar(20)notnull,
)
2、使用T-SQL语句按下表结构创建表
useCourse_Class_Student
createtablestudent
(
StudentNumchar(9)primarykeynotnull,
StudentNamevarchar(8)notnull,
Sexbit,
Birthdaysmalldatetime,
ClassIDint
)
4、使用T-SQL语句修改表的结构
altertablestudentaddNationvarchar(20)
altertablestudentaddStatureint
5、使用企业管理器实现对数据的操作
insertintoCoursevalues(1,'哲学','公共',36,2)
insertintoCoursevalues(2,'实用英语
(1)','公共',72,3)
insertintoCoursevalues(3,'实用英语
(2)','公共',72,3)
insertintoCoursevalues(4,'计算机应用基础','公共',102,5)
insertintoCoursevalues(5,'C语言程序设计','专业基础',102,5)
insertintoCoursevalues(6,'关系数据库技术基础','专业基础',102,5)
6、使用T-SQL语句实现对数据的操作
(1)使用INSERT语句向Course表中添加记录:
(计算机网络,专业基础,72,4)
insertintoCoursevalues(7,'计算机网络','专业基础',72,4)
(2)使用UPDATE语句将Course表中的“计算机应用基础”课的学时数改为106。
updateCoursesetPeriod=106whereCourseName='计算机应用基础'
(3)使用DELETE语句将Course表中的公共课全部删除。
deletefromCoursewhereCategory='公共'
7、使用T-SQL语句按下表结构创建表(在创建表时定义约束)
createtableGrade(
StudentNumchar(9)NOTNULL,
CourseIDintNOTNULL,
DailyGradedecimal(5,1)CHECK(DailyGradeBETWEEN0AND20),
PracticeGradedecimal(5,1)CHECK(PracticeGradeBETWEEN0AND30),
TestGradedecimal(5,1)CHECK(TestGradeBETWEEN0AND50)
)
8、使用T-SQL语句修改表的结构
(1)为班级表ClassInfo添加入学时间EnrollDate字段,并定义入学时间不小于2001年9月1日。
ALTERTABLEClassInfo
addEnrollDateDATETIMECHECK(EnrollDate>=2001-09-01)
(2)为班级表ClassInfo定义主键约束,定义班级号ClassID为主键。
AltertableClassInfoaddprimarykey(ClassID)
9、使用企业管理器定义约束
(1)为学生表Student定义外键约束,使ClassID参照班级表ClassInfo中的ClassID,并为约束设置级联更新。
(2)为班级表ClassInfo的ClassName定义唯一约束。
10、默认值对象的创建与使用
(1)使用T-SQL语句创建名为DF_GRADE的默认值对象,值为0。
createdefaultDF_GRADEAS0
(2)使用企业管理器将DF_GRADE绑定到成绩表Grade中的DailyGrade、PracticeGrade和TestGrade字段上。
execsp_bindefault'DF_GRADE','grade.DailyGrade'
execsp_bindefault'DF_GRADE','grade.PracticeGrade'
execsp_bindefault'DF_GRADE','grade.TestGrade'
(3)使用sp_unbindefault存储过程将DF_GRADE从DailyGrade、PracticeGrade和TestGrade字段上解除。
execsp_unbindefault'grade.DailyGrade'
execsp_unbindefault'grade.PracticeGrade'
execsp_unbindefault'grade.TestGrade'
(4)删除DF_GRADE默认值对象。
DROPDEFAULTdf_grade
实验思考:
1、删除表的命令是什么?
要将实验中的Student表删除,命令应怎样写?
droptabletableName
droptableStudent
2、要将Course表中的学分字段删除,相应的SQL语句怎么写?
altertableCourse
dropcolumnCredit
3、若要删除第9题
(1)中所建立的外键约束,使用企业管理器应怎么做?
使用T-SQL语句应怎么做?
数据库关系图->新建数据库关系图->将相关的列属性进行连接
T-SQL语句:
altertablestudentaddconstraintFK_student_classIdforeignkey(classId)referencesClassInfo(classId)
4、默认值约束和默认值对象是一回事吗?
不是一回事,
实验七索引
实验内容:
1、使用企业管理器为学生表stud_info创建一个以stud_id为索引关键字的惟一聚簇索引。
USEstudent
GO
CREATEINDEXold_indexONstud_info(stud_id)
2、将上一步所建立的索引名称修改为new_index。
execsp_rename'old_index','new_index';
3、将前述所建立的new_index索引删除。
dropindexstudent.new_index
4、使用T-SQL语句为教师表teacher_info创建一个名为Teacher_Index的惟一非聚簇索引,索引关键字为教师编号teacher_id,降序,填充因子为80%。
CREATEUNIQUENONCLUSTEREDINDEXTeacher_IndexONteacher_info(teacher_id)
ASCWITH
PAD_INDEX,FILLFACTOR=80,
5、使用T-SQL语句将教师表中的Teacher_Index删除。
dropindexteacher.Teacher_Index
6、为stud_info表创建一个基于“入学成绩mark,学号stud_id”组合列的非聚集、复合索引cj_xh_index。
USEstudent
GO
CREATEINDEXcj_xh_ihdexONstud_info(mark,stud_id)
7、为lesson_info创建一个基于“课程号course_id,课程类型course_type”组合列的惟一、聚集、复合索引kc_lx_index。
USEstudent
GO
CREATEUNIQUECLUSTEREDINDEXkc_lx_indexONlesson_info(course_id,course_type)
WITH
PAD_INDEX,FILLFACTOR=80,
实验九存储过程
实验内容:
1、创建一个名为“proc_1”的存储过程,用于查看学生表的所有信息。
然后调用该存储过程。
2、创建一个名为“proc_2”的存储过程,用于向学生表的所有字段添加一条记录,记录内容由调用时决定。
然后调用该存储过程。
3、创建一个名为“proc_3”的存储过程,用于删除学生表中指定学号的记录,具体学号由调用时决定。
然后调用该存储过程。
4、修改存储过程“proc_4”,用于查询不小于指定成绩的学生的基本信息,具体
成绩由调用时决定。
5、创建一个名为“proc_5”的存储过程,用于求一个3位整数的反序数。
例如123的反序数为321。
createprocproc_4
@aint
as
declare@bint,@cint,@tint,@sint
begin
set@t=@a%10
select@b=@a/10,@b=@b%10
set@c=@a/100
set@s=@t*100+@b*10+@c
select@s
end
go
execproc_4123
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 认证 实验 答案
![提示](https://static.bdocx.com/images/bang_tan.gif)