学生选课系统的数据库设计与实现.doc

上传人:b****1 文档编号:236751 上传时间:2022-10-07 格式:DOC 页数:11 大小:154KB
下载 相关 举报
学生选课系统的数据库设计与实现.doc_第1页
第1页 / 共11页
学生选课系统的数据库设计与实现.doc_第2页
第2页 / 共11页
学生选课系统的数据库设计与实现.doc_第3页
第3页 / 共11页
学生选课系统的数据库设计与实现.doc_第4页
第4页 / 共11页
学生选课系统的数据库设计与实现.doc_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

学生选课系统的数据库设计与实现.doc

《学生选课系统的数据库设计与实现.doc》由会员分享,可在线阅读,更多相关《学生选课系统的数据库设计与实现.doc(11页珍藏版)》请在冰豆网上搜索。

学生选课系统的数据库设计与实现.doc

数据库系统概论

实验报告

学号:

姓名:

提交日期:

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)

insertcla

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > IT认证

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1