学生选课系统的数据库设计与实现.docx
- 文档编号:30679632
- 上传时间:2023-08-19
- 格式:DOCX
- 页数:12
- 大小:109.03KB
学生选课系统的数据库设计与实现.docx
《学生选课系统的数据库设计与实现.docx》由会员分享,可在线阅读,更多相关《学生选课系统的数据库设计与实现.docx(12页珍藏版)》请在冰豆网上搜索。
学生选课系统的数据库设计与实现
数据库系统概论
实验报告
学号:
姓名:
提交日期:
2010-12-15
成绩:
【实验名称】
学生选课系统的数据库设计与实现
【实验内容】
1、熟悉数据库设计方法;
2、熟悉E-R图到关系模式的转换;
3、掌握SQLServer2005数据库的创建SQL语句,理解数据库文件组、文件逻辑名和物理名称的具体含义;
4、掌握SQLServer2005中用SQL语句建立数据库表,设置数据库完整性约束;
5、掌握用SQLServer2005建立表的关系图,清楚的表示各表之间的联系。
【实验步骤】
一、数据库的逻辑设计
图
(一)班级、学生、课程实体类型及联系型的ER图
图
(二)班级实体的分ER图
图(三)课程实体的分ER图
图(四)学生实体的ER图
将上述的E-R图转换为关系模型,关系的主键用下横线标出。
学生(学号,姓名,性别,年龄,班级号)
课程(课程号,课程名,课时,学分)
班级(班级号,班级名,人数,专业)
选课(课程号学号,成绩)
二、数据库的物理设计
1.建表语句:
本数据库共创建了四张表,其建表语句如下
1.班级表
createtableclass
(classNointnotnullprimarykey,
classNamechar(20),
sdeptchar(20),
numberint)
2.学生表
createtablestudent
(studentNointnotnullprimarykey,
studentNamechar(20),
sexchar(20),
ageint,
classNoint)
3.课程表
createtablecourse
(courseNointnotnullprimarykey,
courseNamechar(20),
gradeint)
4.选课表
createtablechoice
(studentNoint,
courseNoint。
resultint,
primarykey(studentNo,courseNo))
2.说明外码语句
altertablechoice
addforeignkey(studentNo)referencesstudent(studentNo),
foreignkey(courseNo)referencescourse(courseNo)
altertablestudent
addforeignkey(classNo)referencesclass(classNo)
3.记录插入语句:
(1)class表:
insertclassvalues(40801,'yyy','os',35)
insertclassvalues(40802,'xx','ad',45)
insertclassvalues(40803,'rr','cs',36)
insertclassvalues(40804,'yy','os',35)
insertclassvalues(40805,'ee','ry',78)
insertclassvalues(40806,'yyy','os',35)
insertclassvalues(40807,'xg','ad',45)
insertclassvalues(40808,'ry','cs',36)
insertclassvalues(40809,'yd','os',65)
insertclassvalues(408010,'eg','ry',48)
(2)student表:
insertstudentvalues(10001,'aa','f',23,40801)
insertstudentvalues(10002,'df','f',23,40802)
insertstudentvalues(10003,'adf','f',22,40802)
insertstudentvalues(10004,'gh','m',23,40803)
insertstudentvalues(10005,'dc','f',24,40804)
insertstudentvalues(10006,'sd','m',23,40802)
insertstudentvalues(10007,'dfc','f',23,40803)
insertstudentvalues(10008,'xc','m',25,40805)
insertstudentvalues(10009,'sd','f',23,40806)
insertstudentvalues(100010,'cv','f',27,40806)
(3)course表:
insertcoursevalues(1,'operating',48,8)
insertcoursevalues(2,'computer',24,4)
insertcoursevalues(3,'music',56,12)
insertcoursevalues(4,'compile',48,8)
insertcoursevalues(5,'oracle',32,6)
insertcoursevalues(6,'sql',48,8)
(4)choice表:
insertchoicevalues(10001,1,80)
insertchoicevalues(10001,2,85)
insertchoicevalues(10002,3,86)
insertchoicevalues(10002,5,45)
insertchoicevalues(10003,1,80)
insertchoicevalues(10004,2,87)
insertchoicevalues(10004,6,89)
insertchoicevalues(10005,1,90)
insertchoicevalues(10005,4,100)
insertchoicevalues(10006,1,60)
insertchoicevalues(10006,3,49)
insertchoicevalues(10007,5,70)
insertchoicevalues(10008,1,70)
insertchoicevalues(10008,6,78)
insertchoicevalues(10009,2,80)
insertchoicevalues(100010,3,78)
insertchoicevalues(100010,1,80)
insertchoicevalues(100010,2,78)
insertchoicevalues(100010,4,89)
insertchoicevalues(100010,5,45)
4、查询记录:
1.选择输出学号、姓名满足性别为女,年龄小于25
selectstudentNo,studentName
fromstudent
wheresex='f'andage<25
5.创建视图
创建视图:
选择班级人数>50的班级输出其班级号和人数
createviewNum
as
selectclassNo,number
fromclass
wherenumber>50
查询语句
select*fromNum
6.插入数据
插入数据:
插入student表中一个学生,学生名为newstudent,性别为女,年龄34,班级号为40806
insertstudentvalues(100011,'newstudent','f',24,40806)
三、利用SQLServer2005的ManagementStudio来创建表的关系图,创建好的关系图如下所示:
四.实验体会
通过这次实验,让我对sqlserver2005的使用更加熟悉了,同时也加深了我对课本上数据库知识的理解,这次实验可以说是我第一次完成的一个整体的数据库实验。
此次实验中,我完成了从概念设计到逻辑设计,也就是完成了ER图的设计并完成了向关系模型的转换,完成了数据库的建立、表的建立、视图的创建,最后还完成了表之间的关系图。
一个数据库的创建首先要对客户的需求进行充分的分析,找出创建数据库所需的实体和实体间的关系画出E-R图,确定要创建的表的数量和每张表的属性、主键和外键。
在动手实验的过程中我遇到很多困难,比如如何删除表中的数据但不保留到日志文件中,数据的不普遍性所造成的查询等操作的空表等等,但是正是这些问题才让我学到了更多,同时也享受到了解决问题后的喜悦。
更重要的是,我对数据库产生了浓厚的兴趣,相信以后会把学到的东西应用到实践中去的。
五.附录(SQL语句)
--班级表
createtableclass
(classNointnotnullprimarykey,
classNamechar(20),
sdeptchar(20),
numberint)
----学生表
createtablestudent
(studentNointnotnullprimarykey,
studentNamechar(20),
sexchar(20),
ageint,
classNoint)
createtablecourse
(courseNointnotnullprimarykey,
courseNamechar(20),
courseTimeint,
gradeint)
createtablechoice
(studentNoint,
courseNoint,
resultint,
primarykey(studentNo,courseNo))
altertablechoice
addforeignkey(studentNo)referencesstudent(studentNo),
foreignkey(courseNo)referencescourse(courseNo)
altertablestudent
addforeignkey(classNo)referencesclass(classNo)
insertclassvalues(40801,'yyy','os',35)
insertclassvalues(40802,'xx','ad',45)
insertclassvalues(40803,'rr','cs',36)
insertclassvalues(40804,'yy','os',35)
insertclassvalues(40805,'ee','ry',78)
insertclassvalues(40806,'yyy','os',35)
insertclassvalues(40807,'xg','ad',45)
insertclassvalues(40808,'ry','cs',36)
insertclassvalues(40809,'yd','os',65)
insertclassvalues(408010,'eg','ry',48)
select*fromstudent
insertstudentvalues(10001,'aa','f',23,40801)
insertstudentvalues(10002,'df','f',23,40802)
insertstudentvalues(10003,'adf','f',22,40802)
insertstudentvalues(10004,'gh','m',23,40803)
insertstudentvalues(10005,'dc','f',24,40804)
insertstudentvalues(10006,'sd','m',23,40802)
insertstudentvalues(10007,'dfc','f',23,40803)
insertstudentvalues(10008,'xc','m',25,40805)
insertstudentvalues(10009,'sd','f',23,40806)
insertstudentvalues(100010,'cv','f',27,40806)
insertcoursevalues(1,'operating',48,8)
insertcoursevalues(2,'computer',24,4)
insertcoursevalues(3,'music',56,12)
insertcoursevalues(4,'compile',48,8)
insertcoursevalues(5,'oracle',32,6)
insertcoursevalues(6,'sql',48,8)
insertchoicevalues(10001,1,80)
insertchoicevalues(10001,2,85)
insertchoicevalues(10002,3,86)
insertchoicevalues(10002,5,45)
insertchoicevalues(10003,1,80)
insertchoicevalues(10004,2,87)
insertchoicevalues(10004,6,89)
insertchoicevalues(10005,1,90)
insertchoicevalues(10005,4,100)
insertchoicevalues(10006,1,60)
insertchoicevalues(10006,3,49)
insertchoicevalues(10007,5,70)
insertchoicevalues(10008,1,70)
insertchoicevalues(10008,6,78)
insertchoicevalues(10009,2,80)
insertchoicevalues(100010,3,78)
insertchoicevalues(100010,1,80)
insertchoicevalues(100010,2,78)
insertchoicevalues(100010,4,89)
insertchoicevalues(100010,5,45)
select*fromstudent
select*fromchoice
select*fromclass
select*fromcourse
selectstudentNo,studentName
fromstudent
wheresex='f'andage<25
createviewNum
as
selectclassNo,number
fromclass
wherenumber>50
select*fromNum
select*fromstudent
insertstudentvalues(100011,'newstudent','f',24,40806)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 选课 系统 数据库 设计 实现