当前位置:文档之家› 学生选课管理系统

学生选课管理系统

数据库原理课程设计报告——学生选课管理系统学院:班级:计科80901学号:姓名:指导老师:完成时间:一、系统功能学生选课管理系统的设计为选课及成绩管理提供了一个良好的工具,有插入、查询、修改和删除学生的基本信息、课程基本资料,管理(插入、查询、修改和删除)学生所选课程成绩等基本功能。

二、系统设计系统的模块划分为如图所示,分别为:学生信息管理、课程信息管理、选课成绩管理3个模块。

每个模块负责相应的功能。

使用SQL Server 2000 作为后台数据库。

·SQL Server 2000 数据库简介SQL Server是大型的关系数据库,适合重型企业使用。

它建立于Windows 的可伸缩性和可管理性之上,提供功能强大的客户/服务器平台。

随着SQL Server 产品性能的不断扩大和改善,已经在数据库系统领域占有非常重要的地位。

SQL Server使用Transact SQL语言来维护,实现和访问数据库,Transact SQL是SQL 的一个子集标准。

SQL Server有多种实现程序允许用户来访问它的服务,用户可以用这些实用程序对SQL Server进行本地管理或远程管理。

SQL Server 2000是建立在SQL Server 7.0 在可伸缩性、易用性、可管理性和数据仓库成功的基础上,并且引入了针对电子商务的重要新功能。

在高性能和企业级可伸缩性领域,SQL Server 2000 设计成功利用Windows 2000 对更多处理器、更大的系统内存的支持,最终达到支持64 位硬件平台。

在不断提升可用性的努力过程中,SQL Server 2000 采用Windows 2000 四路群集,提供了大大改进的群集支持。

SQL Server 7.0 已经在可管理性和易用性方面在行业内领先,SQL Server 2000 通过与Windows 2000 活动目录紧密结合进一步改进了这些功能。

而且,SQL Server 2000 还包含对现有管理工具和实用程序的重大改进,并引入更具自我调节和自我管理的引擎功能。

通过与OLAP 服务、数据转换服务、存储库和英文查询的紧密结合,SQL Server 7.0 代表了行业内最全面的数据仓库和决策支持平台。

SQL Server 2000 继续了这种创新,在整个系统内进行了重要的改进。

特别重要的是,SQL Server 2000 关系引擎增加了实质化的视图,改善了在特大型数据库环境中执行复杂查询的性能。

同时,SQL Server 2000 引入了新的数据挖掘功能,可自动发现在大量数据之间隐藏的关系并可基于历史数据做出预测。

这些数据挖掘功能将要实施,以向最终用户隐藏这种尖端技术的复杂性,并允许开发人员将第三方的数据挖掘产品轻松地集成到客户的应用程序中。

最后,在电子商务领域,SQL Server 2000 高度集成了对XML 和通过Web 访问数据库的支持。

1.学生信息管理模块学生信息管理模块,用于管理学生的基本信息,所包括的字段有:学号、姓名、性别、年龄、班级,提供对学生信息的插入、查询、修改和删除的操作。

2.课程信息管理模块课程信息管理模块用于管理课程的信息,所包含的字段有:课程号、课程号、先行课和学分,提供对课程信息的插入、查询、修改和删除的操作。

3.选课成绩管理模块选课成绩管理模块用于管理学生的选课与成绩,所包含的字段有:学号、课程号和成绩,提供对选课成绩信息的插入、查询、修改和删除的操作。

三、数据库详细设计:1 .数据库列表:2 .数据库E-R 图完整图如下(包含属性)3. 关系模式学生(学号,姓名,年龄,性别,系名)课程(课程号,课程名,先行课,学分)选课(学号,课程号,分数)4. 各表的简单介绍和创建代码:●创建学生表TABLE1CREATE TABLE [Table1] ([SNO] [char] (6) COLLATE Chinese_PRC_CI_AS NOT NULL ,[SNAME] [char] (8) COLLATE Chinese_PRC_CI_AS NULL ,[AGE] [smallint] NULL ,[SEX] [char] (1) COLLATE Chinese_PRC_CI_AS NULL ,[DNAME] [varchar] (12) COLLATE Chinese_PRC_CI_AS NULL , CONSTRAINT [PK_Table1] PRIMARY KEY CLUSTERED([SNO]) ON [PRIMARY]) ON [PRIMARY]GO如下:查询学生信息SELECT * FROM TABLE1 WHERE 学号=’Sno’;(按学号查询)SELECT * FROM TABLE1 WHERE 姓名=’Sname’;(按姓名查询)删除学生信息DELETE FROM TABLE1 WHERE 姓名=’Sname’;添加学生记录INSERT INTO TABLE1 VALUES (‘Sno’,’Sname’,’Ssex’,Sage,’Sd name’);修改学生记录UPDATE TABLE1 SET 姓名=’Sname’ ,性别=’Ssex’, 年龄=Sage, 所在系=’Sd nameWHERE 学号=’Sno’;●具体代码与结果(1)数据的插入INSERT INTO TABLE1(SNO,SNAME,AGE,SEX,DNAME)VALUES(‘10’,’刘海’,19,’M’,’计算机’)插入结果:(2)数据的删除DELETEFROM TABLE1WHERE SNO='S10'(3)视图的定义CREATE VIEW TABLE1_VIEW AS SELECT *FROM TABLE1WHERE DNAME='计算机'(4)视图的查询SELECT *FROM TABLE1_VIEWWHERE AGE<18结果:(5)视图的更新UPDATE TABLE1_VIEWSET SNAME='李冰冰' WHERE SNO='01'●创建课程表 TABLE2CREATE TABLE [Table2] ([CNO] [char] (8) COLLATE Chinese_PRC_CI_AS NOT NULL ,[CNAME] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,[PRE_CNO] [char] (6) COLLATE Chinese_PRC_CI_AS NULL ,[TEACHER] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,CONSTRAINT [PK_Table2] PRIMARY KEY CLUSTERED([CNO]) ON [PRIMARY]) ON [PRIMARY]GO查询课程信息SELECT * FROM TABLE2 WHERE 课程号=’Cno’;(按课程号查询) SELECT * FROM TABLE2 WHERE 课程名=’Cname’;(按课程名查询)删除课程信息DELETE FROM TABLE2 WHERE 课程号=’Cname’;添加课程记录INSERT INTO TABLE2 VALUES (‘Cno’,’Cname’,’Cp re_cno’,Ccredit);修改课程记录UPDATE TABLE2 SET 课程名=’Cname’, 先行课=’C pre_cno’, 学分=CcreditWHERE 课程号=’Cno’;●创建选课表TABLE3CREATE TABLE [Table3] ([SNO] [char] (6) COLLATE Chinese_PRC_CI_AS NOT NULL ,[CNO] [char] (8) COLLATE Chinese_PRC_CI_AS NOT NULL ,[SCORE] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,CONSTRAINT [FK_Table3_Table1] FOREIGN KEY([SNO]) REFERENCES [Table1] ([SNO]) ON UPDATE CASCADE ,CONSTRAINT [FK_Table3_Table2] FOREIGN KEY([CNO]) REFERENCES [Table2] ([CNO]) ON UPDATE CASCADE) ON [PRIMARY]GO查询选修课成绩SELECT sc.学号,student.姓名,sc.课程号,course.课程名,sc.成绩FROM table1,table2,table3WHERE student.学号=sc.学号AND course.课程号=sc.课程号AND sc.课程号='Cno'AND sc.学号='Sno';";五、总结经过几天的课程设计,我所做的学生选课管理系统能基本实现最基础的功能,例如查询、修改、删除、插入、更新等等,但是由于课程设计时间较短,所以该功能模块还有许多不尽如人意的地方,比如有的功能还不具备、出错处理不够全面等。

这些都有待于进一步去改善。

这次课程设计一如既往的是我独自完成,在开始的时候,总会遇到这样或那样的问题,在做的过程中,慢慢摸索和研究,把其中的一个个问题逐个解决。

为了更好地完成课程设计,我在课程设计之前把课本浏览了一遍,把实验部分着重的看了一下,这样我在课程设计过程中减少了不少空白。

课程设计的过程是艰苦的,但我从这个过程中,学到了很多的东西。

不但可以巩固我的数据库应用方面的知识,我又学会了一门新的语言。

提高了自己动手实践的能力,把书本的知识转化为实际应用中去,丰富了自己的实践经验,同时也提高了我的编程思想和应用能力。

通过这次课程设计,我掌握了数据库系统开发工具——后台数据库管理系统SQL Server 2000,它能够针对用户的需要开发出功能强大的应用程序,使用结构化的查询技术,能够从大量的数据中快速查询需要的信息。

这是我收获最大的地方,而且,我明白了遇到困难永不放弃的重要性,我领悟了只有坚持不懈才会取得胜利。

这次数据库课程设计给我的最大印象就是如果自己有了兴趣,就动手去做,困难在你的勇气和毅力下是抬不了头的。

最后,谢谢学校给了我们这次实践的机会,让我们学生有了一个共同学习,增长见识,开拓视野的机会。

我会继续努力学习计算机方面的知识,古语说得好,学无止境!。

相关主题