数据库的设计规范

数据库的设计规范​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)
上一篇 2022年7月4日 下午3:36
下一篇 2022年7月4日 下午3:36


相关推荐

  • 详解Element.scrollIntoView()

    详解Element.scrollIntoView()Element.scrollIntoView()方法让当前的元素滚动到浏览器窗口的可视区域内。语法element.scrollIntoView();//等同于element.scrollIntoView(true)element.scrollIntoView(alignToTop);//Boolean型参数element.scrollIntoView(scrollIntoViewOptions);//Object型参数参数alignToTop可选一个Boolean值

    2022年6月18日
    37
  • 共享打印机无法连接到打印机0x00000bcb_共享打印机错误为0X0000011b

    共享打印机无法连接到打印机0x00000bcb_共享打印机错误为0X0000011b  有不少用户遇到了网络共享打印机无法连接的问题,尤其是Win10最常遇见,打印机后提示“windows无法连接到打印机0x0000011b”错误。下面系统之家小编给大家带来0x0000011b共享打印机无法连接解决方法。一起来看看吧。  0x0000011b共享打印机无法连接解决方法  卸载补丁  打开设置——>更新和安全—->Windows更新—->“查看更新历史记录—->卸载更新  Win10更新2021年9月补丁后导致的,共享打印机.

    2025年9月7日
    8
  • reduce用法解析

    reduce用法解析reduce 能够处理当做 for 循环 有时候 foreach 也能够处理 还可以筛选删除 属实逼格有点高 1 语法 arr reduce callback initialValue reduce 为数组中的每一个元素依次执行回调函数 不包括数组中被删除或从未被赋值的元素 接受四个参数 初始值 或者上一次回调函数的返回值 当前元素值 当前索引 调用 reduce 的数组 callback 执行数组中每个值的函数 包含四个参数 1 previousValu 上一次调用回调返回的值 或

    2026年3月18日
    3
  • Windows Mobile 6.1 on T-Mobile MDA Pro 1970

    Windows Mobile 6.1 on T-Mobile MDA Pro 1970

    2022年3月12日
    49
  • [Python]OpenClaw金融AI助手实战:10个必备Skills与ClawHub一键部署指南

    [Python]OpenClaw金融AI助手实战:10个必备Skills与ClawHub一键部署指南

    2026年3月13日
    2
  • 补码运算溢出判断方法是_一个8位二进制整数采用补码表示

    补码运算溢出判断方法是_一个8位二进制整数采用补码表示溢出判断方法一  用Xf和Yf表示被加数和加数补码的符号位,Zf为补码和的符号位。当出现Xf=Yf=0两数同为正,而Zf为负,即Zf=1时,有上溢。当出现Xf=Yf=1两数同为负,而Zf为正,即Zf=0时,有下溢。溢出判断方法二  当数值最高位有进位位C1=1,符号位没有进位C0=0时,或当数值最高位没有进位位C1=0,符号位有进位C0=1时,结果有溢出。溢出判断方法

    2026年2月18日
    3

发表回复

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

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