- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
下面是对三范式的简单理解?第一范式:每列具有不可再分割的原子性
第二范式:每表必须有主键列,且其余各列均必须与该主键列具有内在的逻辑关系
第三范式:当建立表间关系时,子表中有且只有主键列作为父表的外键列
下图是我对三范式的简单理解:??????
?
??????? 第一范式(1NF):要求关系模式R的所有属性都是不可分的基本数据项,指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。
????? “地址”这个属性,本来直接将“地址”属性设计成一个数据库表的字段就行。但是如果系统经常会访问“地址”属性中的“城市”部分,那么就非要将“地址”这个属性重新拆分为省份、城市、详细地址等多个部分进行存储,这样在对地址中某一部分操作的时候将非常方便。这样设计才算满足了数据库的第一范式,如下表所示。
用户信息表
?
编号 姓名 性别 年龄 联系电话 省份 城市 详细地址 1 张红欣 男 26 0378河南 开封 朝阳区新华路23号 2 李四平 女 32 0751广州 广东 白云区天明路148号 3 刘志国 男 21 0371河南 郑州 二七区大学路198号 4 郭小明 女 27 0371河南 郑州 新郑市薛店北街218号 上表所示的用户信息遵循了第一范式的要求,这样在对用户使用城市进行分类的时候就非常方便,也提高了数据库的性能。
??????? 第二范式(2NF)是在第一范式(1NF)的基础上建立起来的,即满足第二范式(2NF)必须先满足第一范式(1NF)。第二范式(2NF)首先要求数据库表中首先必须有主键。为实现区分通常需要为表加上一个列,以存储各个实例的唯一标识。其次要求实体的属性完全依赖于主关键字。所谓完全依赖是指不能存在仅依赖主关键字一部分的属性,如果存在,那么这个属性和主关键字的这一部分应该分离出来形成一个新的实体,新实体与原实体之间是一对多的关系。采用投影分解法将一个1NF的关系分解为多个2NF的关系,可以在一定程度上减轻原1NF关系中存在的插入异常、删除异常、数据冗余度大、修改复杂等问题。
??????? 比如要设计一个订单信息表,因为订单中可能会有多种商品,所以要将订单编号和商品编号作为数据库表的联合主键,如下表所示。
订单信息表
?
订单编号 商品编号 商品名称 数量 单位 商品价格 001 1 挖掘机 1 台 1200000¥ 002 2 冲击钻 8 个 230¥ 003 3 铲车 2 辆 980000¥ ??????? 这样就产生一个问题:这个表中是以订单编号和商品编号作为联合主键。这样在该表中商品名称、单位、商品价格等信息不与该表的主键相关,而仅仅是与商品编号相关。所以在这里违反了第二范式的设计原则。
而如果把这个订单信息表进行拆分,把商品信息分离到另一个表中,就非常完美了。如下面这两个所示。
订单信息表
?
订单编号 商品编号 数量 001 1 1 002 2 8 003 3 2 商品信息表
?
商品编号 商品名称 单位 商品价格 1 挖掘机 台 1200000¥ 2 冲击钻 个 230¥ 3 铲车 辆 980000¥ 这样设计,在很大程度上减小了数据库的冗余。如果要获取订单的商品信息,使用商品编号到商品信息表中查询即可。
??????? 第三范式3NF是第二范式(2NF)的一个子集,即满足第三范式必须满足第二范式。第三范式需要确保数据表中的每一列数据都和主键直接相关,而不能间接相关,即任何非主属性不得传递依赖于主属性。简而言之,就是要求一个关系中不包含已在其它关系已包含的非主关键字信息。(不满足时常采用投影分解法解决)
??????? 比如在设计一个订单数据表的时候,可以将客户编号作为一个外键和订单表建立相应的关系。而不可以在订单表中添加关于客户其它信息(比如姓名、所属公司等)的字段。如下面这两个表所示的设计就是一个满足第三范式的数据库表。
订单信息表
?
订单编号 订单项目 负责人 业务员 订单数量 客户编号 001 挖掘机 刘明 李东明 1台 1 002 冲击钻 李刚 霍新峰 8个 2 003 铲车 郭新一 艾美丽 2辆 1 客户信息表
?
客户编号 客户名称 所属公司 联系方式 1 李聪 五一建设 2 刘新明 个体经营 ??????? 这样在查询订单信息的时候,就可以使用客户编号来引用客户信息表中的记录,也不必在订单信息表中多次输入客户信息的内容,减小了数据冗余。
您可能关注的文档
最近下载
- GB50709-2011 钢铁企业管道支架设计规范.pdf VIP
- 压力性损伤护理与管理能力提升题库答案-2025年华医网继续教育.docx VIP
- 基因多态性与疾病易感性-洞察及研究.docx VIP
- 三位一体煅烧炉生产无水氟化铝工艺说明 .pdf VIP
- 卵巢囊肿蒂扭转急诊护理查房.pptx VIP
- 《中华人民共和国国歌》PPT课件.ppt VIP
- 2025年航空货运行业市场规模及未来五到十年发展趋势报告.docx
- 初中八年级全套体育教案(共36课).docx VIP
- 50045 GBJ45-82 高层民用建筑设计防火规范.pdf VIP
- 股市主力操盘盘 口摩斯密码(原创内容,侵权必究).pptx
文档评论(0)