数据库的设计规范

数据库的设计规范​1.为什么需要数据库设计2.范式在关系型数据库中,关于数据表设计的基本原则、规则就称为范式。可以理解为,一张数据表的设计结构需要满足的某种设计标准的级别。要想设计一个结构合理的关系型数据库

大家好,又见面了,我是你们的朋友全栈君。

​1.为什么需要数据设计

<span role="heading" aria-level="2">数据库的设计规范

<span role="heading" aria-level="2">数据库的设计规范

2.范式

在关系型数据库中,关于数据表设计的基本原则、规则就称为范式。可以理解为,一张数据表的设计结 构需要满足的某种设计标准的 级别 。要想设计一个结构合理的关系型数据库,必须满足一定的范式。

2.1键和相关属性的概念

<span role="heading" aria-level="2">数据库的设计规范

第一范式

确保数据表中每个字段的值必须有原子性

每个字段的值为不可再次拆分的最小数据单元

原子性是主观的,取决于具体应用和需求,决定是否继续拆分为细粒度。

第二范式

满足数据表里的每一条数据记录都是可唯一表示的,所有非主键字段,都必须完全依赖主键,不能只依赖主键的一部分。

如果存在不完全依赖,那么这个属性和主关键字的这一部分应该分离出来形成一个新的实体,新实体与元实体之间是一对多的关系

第三范式

要求数据表中的所有非主键字段不能依赖于其它非主键字段。

2NF和3NF概括——每个非主键属性依赖于主键,依赖于整个主键,并且除了主键别无他物。

第三范式通常被认为在性能、扩展性和数据完整性方面达到了最好的平衡

 

没有完美的设计,只有合适的设计。

3.反范式化

有些数据看似冗余,其实对业务来说十分重要,这时候就要遵循业务优先的原则,首先满足业务需求。

数据库性能和规范化数据的矛盾,和现实世界一致。

4.E-R模型

什么是E-R模型?

实体关系模型

什么时候要用E-R模型?

在开发基于数据库的信息系统的设计阶段,通常用ER模型来描述信息需求和信息特征,帮助理清业务逻辑,从而设计出优秀的数据库。特别是对于大型复杂的项目。

ER模型包括哪些要素?

<span role="heading" aria-level="2">数据库的设计规范

关系的类型?
<span role="heading" aria-level="2">数据库的设计规范

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/154336.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • pytest的assert_assert中文

    pytest的assert_assert中文前言断言是写自动化测试基本最重要的一步,一个用例没有断言,就失去了自动化测试的意义了。什么是断言呢?简单来讲就是实际结果和期望结果去对比,符合预期那就测试pass,不符合预期那就测试failed

    2022年7月31日
    2
  • Java实现国密算法SM2,SM3,SM4,并且实现ECB和CBC模式

    Java实现国密算法SM2,SM3,SM4,并且实现ECB和CBC模式代码中实现了电码本ECB模式和密文分组连接CBC模式,SM3.java和SM4.java为算法实现类,utils的都是根据实现类写的工具,可以根据需要调用杂凑算法SM3的杂凑功能获得杂凑值。SM4.java中sm4_crypt_ecb(SM4_Contextctx,byte[]input)ECB模式加解密方法,根据密钥判断加解密功能sm4_crypt_cbc(…

    2022年9月23日
    0
  • Linux基础之正则表达式

    Linux基础之正则表达式正则表达式:又称规则表达式。(英语:RegularExpression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。正则表达式是对字符串(包括普通字符(例如,a到z之间的字母)和特殊字符(称为“元字符”))操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符…

    2022年7月13日
    18
  • pytorch lstm时间序列预测问题踩坑「建议收藏」

    这里写目录标题1.做时间序列问题2.问题1.数据集自己做,为多个输入对应多个或一个输出2.损失函数注意:不能用交叉熵nn.CrossEntropyLoss()3.准确率1.做时间序列问题2.问题1.数据集自己做,为多个输入对应多个或一个输出2.损失函数注意:不能用交叉熵nn.CrossEntropyLoss()nn.CrossEntropyLoss()要求target目标值即真实值是标签,是torch.int64类型数据,即整数,不允许小数,如果输入小数会强行取整,应该用nn.MSELo

    2022年4月16日
    42
  • Response.ContentType详细说明

    Response.ContentType详细说明不同的ContentType会影响客户端所看到的效果.默认的ContentType为text/html也就是网页格式.代码如:显示的为网页,而则会显示html原代码.以下为一些常用的ContentTypeGIFimagesJPEGimagesTIFFimagesMICR

    2022年7月19日
    40
  • 使用Zookeeper实现选举

    使用Zookeeper实现选举

    2021年6月7日
    213

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号