数据库原理课程设计.

  • 格式:doc
  • 大小:52.50 KB
  • 文档页数:7

数据库原理课程设计
一、系统名称
高校学生课程管理及学生选课系统
二、系统设计要求
在本系统中,要求根据各学期所开设的课程(教学任务),由不同院(系)的教学秘书为本院(系)的各年级的学生选择必修课,由学生自主选择选修课。

在所有课程结束之后,由教师分别对学生的各门成绩进行成绩录入。

另外,教学任务来自于各院(系)的教学计划。

三、系统相关名词说明
实体:客观存在并相互区别的事物称为实体;
属性:实体所具有的某一特性称为属性;
关系:一个关系对应通常所说的一张表;表中的一行为一个元组,每一列为一个属性。

关系模式:各个实体和实体之间的联系构成关系模式
实体完整性:简单的说就是主属性不能取空值。

四、需求分析
首先,我们应该了解学生的基本信息情况,学生作为一个实体应该具备哪些基本属性;
其次,我们应该对学生所学课程的数据结构加以描述,如课程号、课程名、选修/必修、课程教师号等;
再次,我们还应该了解教学秘书、教师的基本信息。

最后,我们应该解决各个实体之间的关系。

系统实体属性定义:
学生(学号,姓名,年龄,系名,系别号)
课程(课程号,课程名,课程类别,系别号)
选课表(学号,课程号,成绩,教师号)
教学秘书(姓名,系别,系别名)
教师(教师号,姓名,年龄,系别)
五、概念结构设计
先将各个子需求中的实体化成E-R图,如下所示:
根据相关实体之间的基本关系构造分E-R图:
根据系统要求合并E-R图:
说明:在合并分E-R图时,不能简单将各个分E-R图合并到一起,而是必须在这里消除各个分E-R图中的不一致,已形成一个能为全系统中所有用户共容理解和接受的统一的概念模型,合理消除各个分E-R图的冲突。

还应注意消除不必要的冗余,概念设计完成后,我们便进入逻辑结构设计阶段。

六、建立表示实体的表
1、关系表如下
教学秘书教师
课程
学生选课表
2、表的创建
A 创建教学秘书表
Create table Secretary (Sname char(20) NOT NULL,Sdept char(15),
Sno int UNIQUE);
B 创建课程表
Create table Course (Cname char(20),Cno int UNIQUE,
Ctype (可选,必选),Sno,int);
C 创建学生表
Create table Student (Sdno int UNIQUE, Sdname char (20),
Sdage int,Sdept char(15),Sno int UNIQU);
D 创建教师表
Create table Teacher (Tno int UNIQUE,Tname char(20),
Tage int,Tdept char(15));
E 创建选课表
Create table ChoiceCourse (Sdno int UNIQUE,Cno int UNIQUE,
Score float,Tname char(15));
七、程序设计
1 编程思路
a 为每一个打开的数据库文件提供一个数据对象
b生成对象集对象-CdaoRecordset
c 使用DAO当中的表结构信息对象CdaoTableInfo及字段定义对象CdaoFiledinfo串进行操作获得或改变数据库表结构的工作,用到的类有
CdoDatabase,CdaoRecordset,CdaoTableRefInfo 等。

2 编程步骤
a 运用Appwizard建立一基于单文档的程序,在第二步中选中“Database view without file support”然后单击
Data source按钮。

选择Dao数据文件,在随后的“select Database Table”中选择student表格。

b 创建资源
c 用classwizard添加工具条上各按钮的消息处理函数。

3 模块的划分原则
创建数据库之后,要进行数据库恢复,并发控制及安全性控制。

模块之间相关性要小。

当多个事件并发时,主要采用的技术是封锁。

信号的安全性是通过授权不同的用户不同的权限,并通过用户标志及口令进入系统。

八、程序的设计思想
1 软件工程的重要性
进行系统分析,构造E-R图,以及创建实体时要利用软件工程的思想:
即需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库实施、数据库运行与维护。

2 用户至上原则
我们在进行系统设计时,首先要考虑到用户的需求,要以用户的需求为主要目的。

九、心得体会
通过本次设计,我学到了很多的知识,同时也巩固了很多知识,我对数据库的基本原理以及数据库的设计有了更全面的认识和了解,使我的所学真正与实践结合到了一起。

此外,软件工程
的分析方法和理论在此次设计中发挥了重要的作用,使我进一步软件工程的重要性,加深了对软件工程学的认识。

在以后的课程设计当中,我将积极总结本次设计的优点和缺点,并将自己的经验运用到课程设计当中。