3 数据库设计
3.1 数据库概念结构设计
概念结构设计是将系统需求分析得到的用户需求抽象为反映用户观点的信息结构的过程。概念结构设计的结果是数据库的概念模型,即即E-R模型。由于它是从现实世界的角度进行抽象和描述,所以它与计算机硬件、数据库逻辑结构和支持数据库的DBMS无关。在数据库设计中应重视概念结构设计,它是整个数据库设计的关键,是为计算机存储数据做准备工作。
该系统面向的对象是高中学生和物理教师,所以在需求分析时主要考虑这两个方面的需求。对于广大学生来说,最重要的是方便浏览到自己想要的资料和与教师交流;其次,对于教师来说,主要负责上传课程资源和答疑解惑。为了及时更新系统的资源,在后台中设置了管理员角色,其重要工作是对课程进行统一管理,以及对所有教师和学生的信息进行维护。根据以上需求确定了系统的实体包括课程、教师、学生、教学资源、学生问题、问题回复,各实体属性图如图3.1-3.6所示。
图 3.1 教师信息的实体属性图 图 3.2 教学资源的实体属性图
图3.3 学生信息的实体属性图 图3.4 课程信息的实体属性图
图3.5 学生问题信息的实体属性图 图3.6 问题回复信息的实体属性图
根据各部分实体属性图和他们之间的关系,得到系统总体E—R图,如图3.7所示:
图3.7 系统总体E—R图
3.2 数据库逻辑结构设计
E-R图表示的概念模型是用户数据要求的形式化。E-R图是独立于任何一种数据模型的概念信息结构,也不为任何一个DBMS所支持。逻辑结构设计的任务就是把概念结构设计好的基本E-R图转换为与选用的某个具体的DBMS所支持的数据模型相符合的逻辑结构,设计的结果是一组关系模式。
在本系统中将图3.7中数据库E-R图转换成为关系模型如下:
课程(课程编号,课程名,课程简介,教学大纲,教师编号)
教师(教师编号,姓名,性别,职称,手机号,电子邮箱,地址,)
学生(学生编号,姓名,性别,手机号,电子邮箱,入学日期)
教学资源(资源编号,资源名称,资源内容,课程编号,教师编号,上传日期)
学生问题(问题编号,标题,内容,课程编号,学生编号,提问日期)
问题回复(回复信息编号,回复内容,问题编号,教师编号,回复日期)
3.3 数据库物理结构设计
数据库的物理结构主要指数据库在物理设备上的存储结构与存取方法,它依赖于给定的计算机系统。设计的任务是选择合适的存储结构和存取路径,也就是设计数据库的内模式。
内模式和逻辑模式不一样,不直接面向用户,一般的用户不一定、也不需要了解内模式的设计细节。内模式的设计可以不考虑用户理解的方便,其主要的设计目标有两个:其一提高数据库的性能,特别是满足主要应用的性能要求;其二能够有效地利用存储空间。
根据数据库物理结构设计理论,将该系统逻辑结构转换为物理结构,如表4.1-4.6所示:
(1)教师信息表
教师信息表(teacher)主要存放教师基本信息,如表4.1所示。
表3.1 教师信息表
字段 | 数据类型 | 长度 | 允许为空 | 说明 |
---|---|---|---|---|
tno | nchar | 11 | 否 | 教师编号 |
tname | varchar | 20 | 否 | 姓名 |
tsex | varchar | 20 | 否 | 性别 |
level | varchar | 10 | 否 | 职称 |
tphone | nchar | 11 | 否 | 手机号码 |
tmail | varchar | 20 | 否 | 电子邮箱 |
taddress | varchar | 30 | 否 | 地址 |
(2) 学生信息表
学生信息表(student)主要存放学生基本信息,如表3.2所示。
表3.2 学生信息表
字段 | 数据类型 | 长度 | 允许为空 | 说明 |
---|---|---|---|---|
sno | nchar | 11 | 否 | 学生编号 |
sname | varchar | 20 | 否 | 姓名 |
ssex | char | 4 | 否 | 性别 |
smail | varchar | 20 | 是 | 电子邮箱 |
saddress | varchar | 100 | 否 | 地址 |
sphone | nchar | 11 | 否 | 手机号码 |
sdate | date | 否 | 入学日期 |
(3)课程信息表
课程信息表(course)主要存放课程信息,如表3.3所示。
表3.3 课程信息表
字段 | 数据类型 | 长度 | 允许为空 | 说明 |
---|---|---|---|---|
cno | nchar | 11 | 否 | 课程编号 |
cname | varchar | 20 | 否 | 课程名 |
intro | text | 是 | 课程简介 | |
outline | text | 是 | 教学大纲 | |
ctno | nchar | 11 | 否 | 任课教师编号 |
(4)教学资源表
教学资源表(resource)主要存放教学资源信息,如表3.4所示。
表3.4 教学资源表
字段 | 数据类型 | 长度 | 允许为空 | 说明 |
---|---|---|---|---|
rno | nchar | 11 | 否 | 资源编号 |
rname | varchar | 255 | 否 | 资源名 |
cno | nchar | 11 | 否 | 课程编号 |
tno | nchar | 11 | 否 | 教师编号 |
upload | date | 否 | 上传日期 | |
rcontent | text | 是 | 资源内容 |
(5)学生问题表
学生问题表(question)主要存放学生提出的问题信息,如表3.5所示。
表3.5 学生问题表
字段 | 数据类型 | 长度 | 允许为空 | 说明 |
---|---|---|---|---|
qno | nchar | 11 | 否 | 问题编号 |
title | varchar | 255 | 否 | 问题标题 |
qcontent | text | 是 | 问题内容 | |
cno | nchar | 11 | 否 | 课程编号 |
sno | nchar | 11 | 否 | 学生编号 |
qdate | date | 否 | 提问日期 |
(6)问题回复表
问题回复表(answer)主要存放答疑信息),如表3.6所示。
表3.6 问题回复表
字段 | 数据类型 | 长度 | 允许为空 | 说明 |
---|---|---|---|---|
ano | nchar | 11 | 否 | 回复信息编号 |
acontent | text | 否 | 回复内容 | |
qno | nchar | 11 | 否 | 问题编号 |
tno | int | 11 | 否 | 教师编号 |
adate | date | 否 | 回复日期 |