数据库实验八综合试验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
淮海工学院计算机工程学院实验报告书
课程名:《数据库原理及应用》
题目:综合实验
班级:D计算机101
学号:
姓名:
实验报告要求
1.目的与要求
初步掌握数据库设计的基本方法,进一步提高同学分析与解决问题的综合能力。
2.实验内容
(1)需求分析
(2)概念结构设计
(3)关系模式设计
(4)数据库的物理设计与实现
(5)数据库是实施与运行
3.实验步骤
1、需求分析
通过对数据库用户(教务办老师)的调查,对用户的需求进行分析得知:
学生成绩管理系统包含的信息有:学生信息,教师信息,成绩信息,教师上课信息和课程信息。
学生信息有学号、姓名、性别,出生日期,班级,系别。
教师信息有编号,教师姓名,部门,性别,职称,讲授的课程。一个教师可以讲授多门课,一门课可有多个老师讲授。
成绩信息有选该门课学生学号、课程号和成绩等。一个学生可以选多门课,一门课可以让多个学生选。
课程信息应包括课程号,对应的课程名称。
教师上课信息有某个教师上哪些课,或哪门课被哪些教师讲授。
2、概念结构设计
概念结构设计阶段是整个数据库设计的关键,它通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型。
E-R图如下:
3、关系模式设计
根据前面设计的概念模型,按照E-R概念模型想关系模型转换的规则,课有如下的关系模式(其中带下划线的为主键,斜体字为外键):
课程(课程编号,课程名称)
学生(学号,姓名,性别,出生日期,班级,系别)
成绩(学号,课程编号,成绩)
教师(教师编号,姓名,性别,部门,讲授课程,职称)
1、约束关系
(1)实体完整性
(2)参照完整性
(3)用户的自定义完整性
要求如下:
成绩在0到100之间
性别只能是男或女
2、关系结构描述
Student表
表1 学生表的结构
Course表
Grade表
Teacher表
4、数据库的物理设计与实现
这里给出的学生成绩管理系统数据库的物理设计与实现,实际上就是数据库模式到内模式(数据库的存储模式)的映射。
1.用SQL Server 2008创建上述的数据库
2.数据主文件为:ddm_data.mdf,存储在“D:\data”,存储空间初始值为5MB,最大空间为100MB,文件增量15%。日志文件为:ddm _log.idf,存储在“E:\data”,存储空间初始值为5MB,最大空间为200MB,文件增量5MB。
图2
图3
图4
3.创建表,根据上述的关系结构,建立表,并设置实体完整性、参照完整性及自定义完整性。
学生表的创建:
学号char(8)primary key, primary key主键为实体完整性,
性别char(2)check(性别='男'or ssex='女'), check(ssex='男'or ssex='女')约束为自定义完整性。
图5
课程表的创建
图6
成绩表的创建
Check(grade>=0 and grade<=100),用户的自定义完整性,成绩在0到100之间
图7
教师表的创建:
图8
4.创建视图
查询所有学生选课的信息,包括学号、姓名、课程号、课程名、成绩
SELECT dbo.student.学号, dbo.student.姓名, dbo.course.课程编号, dbo.course.课程名称, dbo.grade.成绩
FROM dbo.student CROSS JOIN
dbo.course CROSS JOIN
dbo.grade
图9
5.创建索引
为学号,课程号创建非聚簇、惟一索引,升序。
create unique clustered index idx_学号 on student (学号 asc); create unique clustered index idx_课程编号 on course (课程编号asc);
图10
为教师姓名创建一个聚簇索引。
create clustered index idx_姓名on teacher (姓名);
图11
图12
5、数据库是实施与运行
1. 录入数据
利用企业管理器,将上述的示例数据输入到相应的表中。
1.数据查询
查询每个学生的学号,姓名,选修的课程名及成绩
Select student.学号,姓名,课程名称,成绩from course,grade,student
图13
2.建立触发器
限制删除course表中成绩不及格学生的修课记录。
CREATE TRIGGER tri_del_成绩
《数据库原理及应用》实验报告- 8-
ON grade FOR DELETE
AS
IF EXISTS(SELECT*FROM DELETED
WHERE成绩< 60)
ROLLBACK
图14
图15
4.结果分析与实验体会
这次实验刚开始的时候的确不知道怎么下手,后来经过仔细研究做了出来,把前面的实验综合起来了,因为前面做的实验都有印象,所以完成的过程还算顺利,希望自己再接再厉吧。