数据库设计概述
数据库第五章课堂笔记。
- 数据库设计:对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使得有效地存储数据,满足用户需求。
- 信息需求:数据库内容以及结构要求,静态(数据库里面存放什么数据)
- 处理需求:数据库姚进行的数据处理,动态(前台相应,处理时间)
- 结构设计/行为设计
- 结构设计:数据分析->概念模型设计->逻辑数据库设计->物理数据库设计->子模式设计->建立数据
- 行为设计:功能分析->功能模型->事物设计->程序说明->应用程序设计->程序编码调试
- 数据库设计方法:
- 直观设计
- 规范设计(视图概念)
- 计算机辅助设计(借助第三方软件)
- 自动化设计
- 要背的数据库设计的基本步骤
- 需求分析:基础,对现实情况分析。分析信息需求操作需求
- 概念结构设计:图形化工具表示,ER模型。方便我们理解,计算机不理解。
- 逻辑结构设计:数据模型,方便计算机理解。概念模型->数据模型。还要设计子模式(视图)。优化。
- 物理结构设计:选择合适的物理结构存放。交给DBMS。
- 数据库实施:建立数据库
- 运行维护:根据运行记录对DB进行评价。
需求分析
信息要求、处理要求、安全性与完整性要求、需求的优先级(比如学校的选课系统容纳不行)
需求分析是设计数据库当中最重要的阶段。
用户需要参与。
业务流程图->业务范围图->数据流图->数据字典(说明数据流图)
- 数据流图(DFD)
顶层数据流图(0层数据流图)->一层数据流图(很多张)->二层数据流图(对一层加工圈细化,可拆分的加工圈都能画成二层数据流图)
磁盘文件和加工圈之间的箭头要注意。
加工框要编号,编号表明所处的层次以及上下层关系。任何一个数据流子图要和她上一层的加工对应,两者输入数据流和输出数据流要保持一致。
- 数字字典(DD)
- 数据项(不可再分):类似于属性列。
- 数据结构:若干数据项组合。学生(学号,姓名···)
- 数据流:来源去向高峰值数据量
- 数据存储:双横线,磁盘上的文件,哪些数据流操作它。记录存取量
- 处理过程:对应加工圈
概念结构设计
-
-
二元多元、一对一一对多多对多
扇形陷阱:某些实体之间存在着多条通路;
断层陷阱:某些实体类型之间存在着联系,但是不存在通路;(不同顾客在不同商家订购多种菜品,但是商家和菜品之间的关系并不能从ER图获得)
-
-
逻辑结构设计
- 化为某个具体的DBMS支持的数据类型
- 适当的调整和优化
- 设计出用户子模式
-
-
-
教师管理班级=>管理(教师号,班级号)
或者一方的码换到另一方的码=>教师(职工号,教师姓名,班级号)类似于外码
-
-
-
使用更加符合用户习惯的别名
提高了安全性
简化 用户对系统的使用