8、关系型数据库设计:规范化与优化策略

关系型数据库设计:规范化与优化策略

在关系型数据库设计中,目标是生成一组关系模式,既能无冗余地存储信息,又能方便地检索信息。接下来将深入探讨数据库设计的多个关键方面,包括第一范式、函数依赖、分解、各种范式等内容。

第一范式

第一范式对关系提出了基本要求,即关系中所有属性的域都必须是原子的。原子域意味着域中的元素被视为不可分割的单位。例如,整数通常被认为是原子的,所以整数集合是原子域;而整数集合的集合则不是原子域。

若关系模式中包含非原子域的属性,就不满足第一范式。比如,员工关系模式中若有“子女”属性,其域为姓名集合,该模式就不符合第一范式。再如,复合属性(如包含“街道”和“城市”子属性的“地址”属性)的域也不是原子的。

使用非原子属性可能导致数据冗余和不一致。例如,数据库设计者可能会为每个账户存储一个所有者集合,为每个客户存储一个账户集合。这样在创建账户或更新账户所有者集合时,需要在两个地方进行更新,若不进行这两个更新操作,可能会使数据库处于不一致状态。

数据库设计的难点

在数据库设计中,可能会出现信息重复和无法表示某些信息的问题。以银行贷款示例的修改设计为例,将贷款信息存储在一个关系“empréstito”中,其模式为(分行名称,分行城市,资产,客户姓名,贷款编号,贷款金额)。

当添加新贷款时,需要重复分行的资产和城市数据。这种信息重复不仅浪费空间,还会使数据库更新变得复杂。例如,当分行的资产发生变化时,需要修改多个元组。

此外,该设计还存在无法直接表示分行信息的问题,除非该分行至少有一笔贷款。解决这个问题可以引入空值,但空值处理起来较为困难。

函数依赖
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值