学生基本信息管理系统数据库设计参考资料
1. 需求分析
在软件工程中,需求分析指的是在建立一个新的或改变一个现存的电脑系统时描写新系统的目的、范围、定义和功能时所要做的所有的工作。需求分析是软件工程中的一个关键过程。在这个过程中,系统分析员和软件工程师确定顾客的需要。只有在确定了这些需要后,他们才能够分析和寻求新系统的解决方法。需求分析阶段的任务是确定软件系统功能。
2. E-R 图
E-R 图也称实体-联系图(Entity Relationship Diagram),提供了表示实体类型、属性和联系的方法,用来描述现实世界的概念模型。
在 E-R 图中有如下四个成分:
- 矩形框:表示实体,在框中记入实体名。
- 菱形框:表示联系,在框中记入联系名。
- 椭圆形框:表示实体或联系的属性,将属性名记入框中。对于主属性名, 则在其名称下划一下划线。
- 连线:实体与属性之间、实体与联系之间、联系与属性之间用直线相连, 并在直线上标注联系的类型。对于一对一联系,要在两个实体连线方向各写1;对于一对多联系,要在一的一方写 1,多的一方写 N;对于多对多关系,则要在两个实体连线方向各写 N,M。
实体-联系数据模型中的联系型,存在 3 种一般性约束:一对一约束(联系)、一对多约束(联系)和多对多约束(联系),它们用来描述实体集之间的数量约束:
一对一联系(1:1)
对于两个实体集 A 和 B,若 A 中的每一个值在 B 中至多有一个实体值与之对应,反之亦然,则称实体集 A 和 B 具有一对一的联系。例如:一个学校只有一个正校长,而一个校长只在一个学校中任职,则学校与校长之间具有一对一联系。
图 4-1 一对一联系
一对多联系(1:N)
对于两个实体集A 和B,若 A 中的每一个值在B 中有多个实体值与之对应,反之 B 中每一个实体值在 A 中至多有一个实体值与之对应,则称实体集 A 和 B 具有一对多的联系。例如:一个学院中有若干名学生,而每个学生只在一个学院中学习,则学院与学生之间具有一对多联系。
图 4-2 一对多联系
多对多联系(M:N)
对于两个实体集 A 和 B,若 A 中每一个实体值在 B 中有多个实体值与之对应,反之亦然,则称实体集 A 与实体集 B 具有多对多联系。例如:表示学生与课程间的联系“选修”是多对多的,即一个学生可以学多门课程,而每门课程可以有多个学生来学。联系也可能有属性。例如,学生“选修”某门课程所取得的成绩,既不是学生的属性也不是课程的属性。由于“成绩”既依赖于某名特定的学生又依赖于某门特定的课程,所以它是学生与课程之间的联系“选修”的属性。
图 4-3 多对多联系
3. 数据库三大范式
3.1 第一范式(1NF)
数据库表中的字段都是单一属性的,不可再分。
例如:某留言系统需要留言人的地址(所在省、市)进行统计、分类。
显然上面的表设计无法满足需求,进行更改如下:
3.2 第二范式(2NF)
数据库表中不存在非关键字段对任一候选关键字段的部分函数依赖(部分函数依赖指的是存在组合关键字中的某些字段决定非关键字段的情况),也即所有非关键字段都完全依赖于任意一组候选关键字。
例如:某酒店的房间订单表
如某人订了很多间房间,该人的联系信息就会出现冗余的情况。如联系人的联系电话变更,则需要将该人的所有订单数据更新。应该将联系人单独建表,房间订单表中的联系人信息关联联系人表。
3.3 第三范式(3NF)
在第二范式的基础上,数据表中如果不存在非关键字段对任一候选关键字段的传递函数依赖则符合第三范式。所谓传递函数依赖,指的是如果存在“A→B
→C”的决定关系,则 C 传递函数依赖于 A。因此,满足第三范式的数据库表应该不存在如下依赖关系:
关键字段 → 非关键字段 x → 非关键字段 y
假定学生关系表为 Studen(t 学号, 姓名, 年龄, 所在学院, 学院地点, 学院电
话),关键字为单一关键字“学号”,因为存在如下决定关系:
(学号)→(姓名, 年龄, 所在学院, 学院地点, 学院电话)
这个数据库是符合 2NF 的,但是不符合 3NF,因为存在如下决定关系:
(学号)→(所在学院)→(学院地点, 学院电话)
即存在非关键字段“学院地点”、“学院电话”对关键字段“学号”的传递函数依赖。
它也会存在数据冗余、更新异常、插入异常和删除异常的情况。把学生关系表分为如下两个表:
学生:(学号, 姓名, 年龄, 所在学院);学院:(学院, 地点, 电话)。
这样的数据库表是符合第三范式的,消除了数据冗余、更新异常、插入异常和删除异常。
4. 在SQL Developer 中建立关系模型
以实验一中导入的 4 张表(BONUS、DEPT、EMP 和 SALGRADE)为例, 在 SQL Developer 中为这 4 张表建立关系模型的方法如下:
(1) 打开 Data Modeler 的浏览器
图 4-4 打开Data Modeler 的浏览器
(2) 新建一个关系模型
图 4-5 新建关系模型
(3) 打开新建的关系模型窗口
图 4-6 打开关系模型窗口
(4) 将 BONUS 表、DEPT 表、EMP 表和 SALGRADE 表依次拖入关系模型窗口,并调整其布局,获得完整的表结构及其关系模型。
图 4-7 建立多张表的关系模型
参考资料,设计的学生基本信息管理系统数据库如下:https://blog.csdn.net/Robert_30/article/details/126808115