重点分为以下两点:
第一, 项目开发的基本步骤
第二, E-r图与模型
在实际的项目的基本步骤:
- 获取需求
- 需求分析
- 软件设计
- 程序编码
- 软件测试
- 运行维护
整个项目,最可怕的是需求变更。这样后期维护是很大的。
收费,是根据功能来报价。
做网站的人,做主网不需要主动报价。根据需求文档就能作出项目来了。也就是人人可以自己组队做项目。
投钱给做需求分析是很重要的。
软件设计里,除了数据库那块,还有包含UI设计,接口设计,业务设计。
E-R图的描述:
要做数据库设计,要做e-r图。
概念模型的最重要的是实体关系模型。
数据库设计范式是进行合理数据库设计而提出的理论依据,而事实上运行的项目不可能完全按要求去做。
那什么是范式?
要理解,就一定写过代码,有一定的项目开发,才了解什么是范式。
第一范式:数据表中的每个字段都是不可再分原子数据项,不能是数组、集合等复合属性,只能是数字、字符、日期时间、LOB等数据类型。就是划分到不能划分。
第二范式:数据库表中不存在非关键字段对任意一候选关键字的部分函数依赖。
那怎么理解这句话。
首先要知道什么是函数依赖?
百度上有人给这么一个回复: 所谓函数依赖是指关系中一个或一组属性的值可以决定其它属性的值。函数依赖正象一个函数 y = f(x) 一样,x的值给定后,y的值也就唯一地确定了。
使用复合主键就会出现以下情况:
数据冗余:同一商品被不同顾客购买,那商品就会重复n-1次,同样,如果一个顾客购买多个商品,那么顾客信息也就重复m-1次
更新异常:如果要更新一个商品单价,就要对应的所有数据的行的商品的单价都要被更新,否则就出现价格不统一。
增加异常:如果现在某一件商品从未被顾客购买过,那么这件商品的信息就无法在数据库中保存。
删除异常:如果购买记录过多,或者某些顾客已经长时间不来购买商品了,那么当清除这些购买的记录的时候有可能会将某些商品的信息也同时清楚掉,这样在进行数据增加时就出现异常。
第三范式:在第二范式的基础上,每个非关键字列都独立于其他非关键字列,并依赖于关键字,第三范式指数据库中不能存在传递函数依赖关系。
第三设计范式是一对多的体现,而在开发之中,是用的最多。
多对多的操作是比较麻烦。
这个要是会,需要反复体会。
BCNF范式:在第三范式上,消除字段依赖。比如”教师-学生-课程“。多两张表”教书—课程“、”学生-课程“。
最终要避免复杂查询。
要求做过东西,再考虑设计。
网络老师推荐《java web 实际开发经典》视频