首页 > 编程知识 正文

数据库设计文档,数据库设计三个步骤

时间:2023-05-05 01:40:18 阅读:138339 作者:2191

数据归一化设计一、数据归一化仅靠良好的RDBMS还不足以避免数据冗余,必须建立数据库设计的表格结构

Dr E.F.codd最初定义了正规化的3个水平,正规化是具有最小冗长性的表格结构

这些范式如下

1、第一范式(1st NF -First Normal Fromate ) )。

2、第二范式(2nd NF-Second Normal Fromate ) )。

3、第三范式(3rd NF- Third Normal Fromate ) )。

第一范式 (1st NF):

第一范式的目标是确保各列的原子性

如果各列是不可再分割的最小数据单位(也称为最小原子单位),则满足第一范式(1NF )

第二范式 (2nd NF):

如果某个关系满足1NF,且主键以外的列依赖于该主键,则满足第二正则表达式(2NF )

在第二范式中,每个表只需要陈述一件事

第三范式 (3rd NF):

如果某个关系满足2NF,且非主键列不传递依赖于主键的列,则满足第三正则表达式(3NF )

二、规范化实例假设某建筑公司设计数据库,公司业务规则概述如下。

1、公司承担了多个工程项目,各项工程有工程编号、工程名称、施工人员等

2、公司有多名员工,每个员工都有员工编号、姓名、性别、职称(工程师、技术人员)等

3、公司根据工时和小时工资率支付工资,小时工资率由员工职务决定(

工程师不同)

4、公司定期编制工资报告

如图所示(工资表) :

如图所示(工时表) :

表中包含很多冗馀,数据可能会异常。

更新异常 :

------例如,如果要修改员工编号=1001的职务,则必须修改所有员工编号=1001的行

添加异常:

------要增加新员工,必须先给该员工分配工程。 或者,要添加新员工的数据,请先将虚拟项目分配给该员工。 (因为主关键字不能为空)

删除异常:

------例如,1001号员工要离职,必须删除所有员工编号=1001的数据行。 这样删除操作很可能会丢失其他有用的数据

用这种方法设计表的结构,可以很容易地制作工资清单,但是每个员工每次分配项目时,都必须重复输入大量的数据。 这种重复的输入操作很可能导致数据不一致。

应用范式规范化设计

一张表上记载了多件事

应用第二范式规范化

应用第三范式规范化

四.规范化与性能的关系1、为了满足某些业务目标,数据库的性能比规范化数据库更为重要

------通过在特定表格中添加其他字段,大大减少了必须搜索信息的时间

------通过在给定的表中插入成绩总分等计算列,方便查询

2、在进行规范的同时,要综合考虑数据库的性能

感谢所有认真阅读我文章的人!

如果能得到以下资料,你可以直接拿走。

1、自学开发或测试所需的完整项目来源和环境

2、测试工作中的所有模板(测试计划、测试用例、测试报告等)。

3、软件测试经典问题

4、Python/Java自动化测试实战. pdf

5、Jmeter/postman接口测试全套视频获取

我个人整理了这几年软件测试生涯中整理的技术资料。 包括电子书、简历模块、各种工作模板、面试宝典、自学项目等。 如果在学习或工作中遇到问题,请直接单击此链接与组联系。 小组里有大神帮助解答。 也可以手动添加组编号743262921备注222

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。