一:软件开发周期
1:需求分析阶段
需求分析师去做,分析客户的业务和数据处理需求(需求规格说明书)。
2:概要设计阶段
设计数据库的E-R模型图(概念模型图),确认需求信息的正确和完整。
将E-R图转换为多张表(物理模型图),进行用数据库的三大范式逻辑设计。
3:详细设计阶段
相关包结构,类结构。
4:代码编写阶段
选择具体数据库进行物理实现,并编写代码实现前端应用。
5:软件测试阶段
6:安装部署
二:设计概念模型图
使用PowerDesigner工具,ctrl+n开始创建:
开始画图:
code表示实体类名称,工具默认code会跟着Name变化,可以在工具的Tools>General Options>Dialog>Name to Code mirroring取消选中标记,修改设置。Comment表示注释,在导入数据库生成表时,会自动导入。
M表示非空,P表示主键,D表示是否在图中显示。
画好之后开始建立关系,关系有三种,一对一,一对多,多对多,实体之间的关系通过实体属性间的对应数目决定。
建立好关系之后呢,保存文件,概念模型图就画好了。
生成对应数据到数据库
应用确定后生成物理模型图:
右键点击出现如下菜单
出现相应sql语句
当然,可以直接生成表到数据库
脚本过大时应使用数据库命令导入,而不是拖过去,因为记事本打开过大的文件是会卡住,相应命令:
在oracle中,oracle关键字默认带有双引号,必须去除
选中物理模型图 —数据库—edit current dbms — script —sql — format — case sensitivity usingquote —勾选no
三种关系在数据库中的体现:
一对一:在任何一张表中添加对方的主键作为外键,并在外键列上加唯一约束。
一对多:在多的一方的表中添加对方的主键作为外键。
多对多:产生一张新表,新表中存在两个字段。这两个字段就是两张表的主键(联合组建)
在oracle中可以不用生成脚本,配好数据源,直接导入:
添加oracle数据源(window7中mysql数据源需自己下载):
然后就可以直接生成了
这个时候最好不在选中check model ,有时候会莫名其妙报错:
这个时候就生成到数据库中了。
三范式:
1:数据库中的每一列都是不可再分的最小单元。
2:在满足第一范式的情况下,表中所有的列都要直接或间接依赖主键(一张表只描述一件事)
3:一个表中不能包含其他表中的非主键列。
数据库设计时要考虑数据库查询时尽可能的减少关联查询,所以也会有不满足第三范式的表设计。