社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
目录
对于一位专注于软件开发的工程师而言,优秀的数据库设计无疑会使得整个软件开发更加高效、更加稳定、性能也更加出色;同时也是软件工程师向软件架构师转型的必备技能。今天博主已一个小白的身份来大致介绍数据库设计的整个流程及要点。(话说这方面的主题博客似乎很少)
从总体来看数据库的设计流程分为以下几个大步骤:
设计工具Power Designer
***DFD(Data Flow Diagram)流图:通过系列符号及其组合来描述系统功能的输入、输出、处理或加工构造。
****数据字典: 用来说明数据流图中出现的所有元素的详细的定义和描述,包括数据流、加工处理、数据存储、数据的起点和终点或外部实体等。具体步骤如下:
1. 数据流
表8. 1 P3中数据流的描述
序号 | 数据流名 | 来源 | 流向 | 组成 | 说明 |
1 | (学生)教学计划查询请求 | 需要选课的学生 | P3.1 | 班级号或学号 | 注意查询类别的区别 |
2 | 教学计划数据 | S2教学计划信息 | P3.1 | 班级号+课程编号+开课学年+开课学期 |
|
3 | 学生课程选择数据 | P3.2 | S5学生选课信息 | 课程编号+年号+学期号 |
|
4 | 选课信息查询 | 教务员 | P3.3 | 班级号+课程号+学年+学期 |
|
2. 数据存储
表8. 2 P3中数据存储的描述
序号 | 数据文件 | 文件组成 | 关键标识 | 组织 |
1 | S2教学计划信息 | 班级号+课程编号+开课学年+开课学期 | 全部 | 按开课学年,学期,班级降序 |
2 | S3学生选课信息 | 学号+课程编号+开课学年+开课学期 | 全部 | 按开课学年,学期,班级降序 |
3 | S5课程数据清单 | 课程编号+课程名称+课程说明 | 课程编号 | 课程编号排序 |
3. 处理过程逻辑
表8. 3 P3中处理过程逻辑的描述
序号 | 处理过程 | 编号 | 输入 | 输出 | 处理逻辑 |
1 | 查询教学计划 | P3.1 | 学生选课查询请求+教学计划数据 | 针对的教学计划 | 针对选课请求进行查询 |
2 | 选课信息录入 | P3.2 | 针对的教学计划 | 学生课程选择数据 | 根据学生对应的教学计划选择课程 |
3 | 选课信息查询 | P3.3 | 选课信息查询+选课数据 | 没经确认的选课 | 根据班级和课程号检查对应的未确认的选课清单清单 |
4 | 选课信息确认 | P3.4 | 选课审核+没经确认的选课 | 经确认的选课信息 | 选择选课清单进行确认 |
4.数据项
表8. 4 P3中数据项的说明
序号 | 数据项 | 数据对象说明 | 数据构成 |
1 | 学号 | 1{英文|数字}10 | 入学年号+班级序号+顺序号 |
2 | 选课时间 | 4{数字}-2{数字}-2{数字} | 年+月+日 |
3 | 课程名称 | 1{汉字|英文|数字}20 |
|
4 | 班级号 | 1{英文|数字}6 |
|
5 | 教师编号 | 1{英文|数字}10 |
|
6 | 开课学年 | 4{数字} |
|
7 | 开课学期 | {1|2} |
|
8 | 课程说明 | 0{汉字|英文|数字}100 |
|
英文=[‘a’…’z’|’A’…’Z’] | |||
数字=[‘0’…’9’] |
设计工具Power Designer
*****E-R图(实体联系模型):关键是确定E-R图的各种结构,包括实体、属性和联系。
E-R图到关系模式转换:获得关系模式(关系型DBMS产品支持的数据模型)。例如:
教师(教师编号,教师姓名,性别,职称,电话,系编号)
课程(课程编号,课程名称,课程学分,课时)
讲授(教师编号,课程编号,课程编号,开课年度,开课学期)
关系模式的规范及调整:这里要根据具体情况使用范式(一般3NF),但并不是范式越高越好,要结合具体情况具体对待。
数据表结构设计:设计出具体的数据表,附带上文档说明。
谢谢阅读 ----知飞翀
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!