数据库设计实例—教学管理系统

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据库课程设计报告

教学管理系统

数据库设计

课程设计题目教学管理系统学院软件学院

班级软件技术四班年级2013级

姓名彭超李新徐彤(2014 年11月)

用5行左右的文字对系统进行简要介绍

对教学管理信息统一规范整理,实现各种信息的自动管理。为便于信息的查询,找出各种信息的关联性,根据各种需求设计出合理的报表。

减轻教学日常信息管理的负担,方便学生、教师查询信息和学校对所有信息的管理。以简单便捷的操作获取详尽的信息。

一、数据需求分析

某学校设计学生教学管理系统。学生实体包括学号、姓名、性别、生日、民族、籍贯、简历、登记照,每名学生选择一个主修专业,专业包括专业编号、名称和类别,一个专业属于一个学院,一个学院可以有若干个专业。学院信息要存储学院号、学院名、院长。教学管理还要管理课程表和学生成绩。课程表包括课程号、课程名、学分,每门课程由一个学院开设。学生选修的每门课程获得一个成绩。另外,为了管理教师教学安排,教师包括编号、姓名、年龄、职称,一个教师只能属于一个学院,一名教师可以上若干门课程,一门课程可以有多名老师来上,每个教师所上的每门课都有一个课堂号和课时数。

本系统数据字典如下:

数据项表

数据流

数据流表

二、概念结构设计

1.首先确定系统中的实体

从以上数据需求可以看出,系统共包括5个实体:学生、专业、学院、教师、课程。

2.再确定系统中实体间的关系

根据数据需求描述推出:专业与学生是1对多关系;学生与课程是多对多关系;课程与老师是多对多关系;课程与学院是多对1关系;学院与专业是1对多关系;学院与教师是1对多关系。

3.转化成E-R图

图1 实体-属性图

图2 教学管理ER图

三、逻辑结构设计

在转换为关系模型时,一对多的联系都在相应的多方实体的关系中增加一个外键。本系统由ER模型转换的关系模型是:

学生(学号,姓名,性别,生日,民族,籍贯,专业号,简历,登记照)专业(专业号,专业,专业类别,学院号)

学院(学院号,学院,院长)

课程(课程号,课程名,学分,学院号)

成绩(学号,课程号,成绩)

教师(编号,姓名,年龄,职称)

四、物理结构设计(不写)

五、数据库实施

基于Access的数据库结构设计如下。

指定数据库文件的名称,并为设计好的关系模型设计表结构。

数据库文件保存在“E:\教学管理\”文件夹中,数据库文件名:教学管理.MDB。

表包括:学院、专业、学生、课程、成绩单。对应表结构如表1-2至表1-6所示。

表1-1 学院

表1-2 专业

表1-3 学生

表1-4 课程

表1-5 成绩单

附:教学管理数据库参考数据如表1-1~表1-5所示。

表1-1 学生表

表1-2 学院表

表1-2 专业表

表1-4 课程表

表1-5 成绩单

六、思考题:

当我们进行物理设计时,如果将全校的学生放置在一个关系(表)中,势必带来存储空间大、处理效率低的问题。怎么解决?

由于系统要涉及大量数据的操作,所以索引的建立就成为一种必需。本系统分别在各Course,Student,Teacher,Dept,Score各个表的主键上建立索引。

附录A:

SQL脚本:

1.创建数据库TeachingSystem

GO

CREATE DATABASE TeachingSystem

ON

(NAME=TeachingSystem_dat,

FILENAME="E:\MyProjects\SQL Server\TeachingSystem.Mdf",

SIZE=30,

FILEGROWTH=20%

)

LOG ON

(NAME=StudentSystem_log,

FILENAME="E:\MyProjects\SQL Server\TeachingSystem.Ldf",

SIZE=3,

FILEGROWTH=20%

)

GO

2.创建各主表

GO

CREATE TABLE Dept

(DeptNo varchar(10)NOT NULL

CHECK(DeptNo LIKE'[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'), DeptName varchar(20)NOT NULL,

Info varchar(256)NOT NULL,

PRIMARY KEY(DeptNo)

);

GO

CREATE TABLE Student

(StudentNo varchar(10)NOT NULL

CHECK(StudentNo LIKE'[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'), StudentName varchar(20)NOT NULL,

Gender varchar(4)NOT NULL CHECK(Gender='男'OR Gender='女'), Birthday datetime NOT NULL,

EntryScore float(8)NOT NULL CHECK(EntryScore>= 0),

DeptNo varchar(10)NOT NULL,

PRIMARY KEY(StudentNo),

FOREIGN KEY(DeptNo) REFERENCES Dept(DeptNo)

ON DELETE NO ACTION

ON UPDATE CASCADE

);

GO

CREATE TABLE Teacher

(TeacherNo varchar(10)NOT NULL

CHECK(TeacherNo LIKE'[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'), TeacherName varchar(20)NOT NULL,

Gender varchar(4)NOT NULL CHECK(Gender='男'OR Gender='女'), Birthday datetime NOT NULL,

ProTitle varchar(20)NOT NULL,

Specialized varchar(20)NOT NULL,

DeptNo varchar(10)NOT NULL,

PRIMARY KEY(TeacherNo),

FOREIGN KEY(DeptNo) REFERENCES Dept(DeptNo)

ON DELETE NO ACTION

ON UPDATE CASCADE

);

GO

CREATE TABLE Course

(CourseNo varchar(10)NOT NULL

CHECK(CourseNo LIKE'[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'), CourseName varchar(20)NOT NULL,

相关文档
最新文档