数据库面试题:三大范式——详解

三大范式

概念解释: 三大范式其实就是数据库建表的规范。

  • 第一范式:要求一张表中的数据每一列都是不可分割的原子项数据
  • 第二范式:消除部分依赖,要求一张表中的每一列都完全依赖于主键(针对于组合主键),也就是不会出现某一列只和部分主键相关
  • 第三范式:消除传递依赖,要求一张表中的每一列都和主键是直接依赖的,不是间接依赖。

举例分析:

第一范式:要求一张表中的数据每一列都是不可分割的原子项数据

例如下面的这张表就是不符合第一范式的,因为家庭信息和学校信息中的数据都不是原子项数据。
在这里插入图片描述
修改之后:此时所有的数据就是原子项数据
在这里插入图片描述

第二范式:消除部分依赖

例如下图:这是订单表,由于同一订单中会出现不同的产品,所以将订单号与产品号作为组合主键,但是我们可以看到其中的产品数量,产品折扣和产品价格与主键中的订单号,产品号都有关,而订单时间与订单金额只与订单号有关,这就导致了部分依赖。
在这里插入图片描述
修改之后:为了消除部分依赖,所以应该分表!
在这里插入图片描述

第三范式:消除传递依赖

举例:下表中的所有属性的确都完全依赖于学号,但是实际上班主任性别与班主任年龄确是直接依赖于班主任姓名的,而不是直接依赖于学号,这样就导致了传递依赖!
在这里插入图片描述
修改之后:此时就不会产生传递依赖的问题了!
在这里插入图片描述

此文章参照于https://www.cnblogs.com/wsg25/p/9615100.html

  • 6
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
估算系统的最大并发数是为了评估系统在同时处理大量请求时的性能和稳定性。下面是如何估算系统的最大并发数的几个步骤: 1. 了解系统架构和设计:首先需要了解系统的架构和设计,包括系统的组件和模块、数据库设计、网络通信等方面。这有助于确定系统在处理请求时的瓶颈和限制。 2. 识别关键路径:通过分析系统的关键路径,确定在高并发情况下可能出现的瓶颈点。例如,网络延迟、数据库连接和查询、IO操作等可能成为系统性能瓶颈的地方。 3. 进行压力测试:使用工具如JMeter、LoadRunner等进行压力测试,模拟系统在高并发情况下的负载。通过逐渐增加并发用户数,观察系统的性能表现和响应时间。根据测试结果,判断系统的瓶颈和最大并发数。 4. 考虑系统资源:除了性能和响应时间,还需要考虑系统的资源使用情况。例如,内存、CPU、带宽等。如果系统运行过程中资源消耗过大,可能会导致性能下降甚至崩溃。 5. 进行容量规划:根据压力测试结果和资源考虑,进行容量规划。根据系统的最大并发数,确定服务器数量和配置,以及网络带宽等需求。这有助于确保系统在高负载和高并发情况下的稳定性和性能。 总而言之,估算系统的最大并发数需要深入了解系统架构和设计,并通过压力测试等手段评估系统的性能和稳定性。这可以帮助调整系统配置和进行容量规划,以满足用户需求并确保系统的正常运行。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值