数据库设计之我见

 

首先,要调查实际的处理流程和数据,包括所用报表和相应的处理流程, 比如, 报销把报销单装订成册保存在文件柜内三年, 等等这类细节也不要漏掉;

 
然后,把搜集到的材料整理成流程图(即物理流程图),和数据列表,到目前为止都要严格按照实际情况来做, 不需要考虑, 数据库系统的问题;

接下来,把物理流程图中的实体概念, 如报销单,文件夹等, 抽象成数据集,存储单元等逻辑概念, 并对流程处理作优化, 即在保证功能的前提下, 使用尽量少的处理步骤;


再之,核对数据列表, 对于意义相同的数据进行合并, 并按照机能的要求分组。 分组完成后,作ER图,并做正规化,针对每一机能, 对所做的表结构作模拟试验(在纸面上用假代码写出处理过程并预想处理结果), 根据结果对表结构作调整, 并完成机能设计书。

 

注意:各个表之间关连要好,不要有多余的列.模糊的列.

各个表之间的关系最好深度不要达到2层以上,否则对程序员写sql,
理解库表造成难度.

提倡“按需设计”,在经过详细有效的分析之后,在数据表中只放置必要的字段,而不要留出大量的备用字段。

当需要增加相关的信息的时候,就要具体情况具体分析:

如果数量很少,而且信息的性质与原表密切相关,那么就可以直接在原表上增加字段,并将相关的数据更新进去。

如果数量较大,或者并非是原表对象至关重要的属性,那么就可以新增一个表,然后通过键值连接起来。

对于表的数据的存储位置所导致的性能问题,我们可以通过在特定时间对数据库的数据进行重组来解决,而这项工作对于长期运行的数据库来说,也是需要定期进行的。

 

 

项目开发周期

数据库设计

需求分析

分析客户的业务和数据处理需求。

1.         收集信息(不怕多,但怕漏);

2.         标识对象;

3.         标识对象的属性;

4.         标识对象之间的关系;

概要设计

设计数据库的E-R图,确认需求信息的正确和完整;

拆分 n: n关系(不合理)的表;

详细设计

E-R图转换为多张表,进行逻辑设计,并应用三大范式进行审核;

代码编写

选择具体数据库进行物理实现,并编写代码实现前端应用;

软件测试

添加测试数据进行项目测试;

安装部署

对数据库进行封装;

 

部分函数依赖:非主键列只依赖组合键中的一部分;

传递函数依赖:列A依赖列B,而列B依赖主键列,即:列A间接依赖主键列;

 

三大范式1NF键;2NF全部键;3NF仅仅是键):

1NF:有主键,列不能再拆分;

2NF:满足1NF。若没有组合键则直接满足2NF;若有组合主键则保证没有部分函数依赖;

3NF:满足2NF。去除传递函数依赖;

 

衡量数据库性能的唯一标准:数据查询的速度。

反范式:为了数据规范化与数据库性能衡。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值