数据库系统 关系数据库的设计

本文探讨了关系数据库设计的重要性,详细解释了无损分解和有损分解的概念,强调了无损分解在消除冗余和保持数据完整性的关键作用。同时,介绍了原子域和第一范式,以及函数依赖的理论和应用,包括如何通过函数依赖判断关系模式是否满足BCNF和3NF。最后,讨论了分解算法和多值依赖,以及它们在数据库设计中的角色。
摘要由CSDN通过智能技术生成

数据库第八章 关系数据库设计

无损分解&有损分解

一个数据库的好坏主要取决于ER图的设计质量

该数据表:

存在数据的冗余,且如果一个系没有教师,则无法表示该系的信息(dept_name,building,budget)

因此可以考虑将其进行分解:

分解为 teacher(ID,name,salary,dept_name) dept(dept_name,building,budget)

该分解可以解决冗余问题,但是否分解总是好的?

考虑将employee(ID, name, street, city, salary) 分解为employee1 (ID, name) 和 employee2 (name, street, city, salary) ,则会产生数据关系的丢失。因为如果存在同名的情况,则自然连接两个表时将导致部分数据错误的连接,因此失去了一些信息。

有损分解 lossy decomposition: 无损分解指的是对关系模式分解时,原关系模型下任一合法的关系值在分解之后不能通过自然联接运算恢复起来

无损分解 lossless decomposition: 无损分解指的是对关系模式分解时,原关系模型下任一合法的关系值在分解之后应通过自然联接运算恢复起来

原子域&第一范式

如果一个域的元素是不可分的单元,则该域是原子的(atomic)

如果一个关系模式R的所有属性的域都是原子的,则称该关系模式满足第一范式(1NF)

函数依赖

R的子集K是r(R )的超码的条件:在关系r(R )的任意合法实例中,对于r的实例中的所有元组对t1和t2总满足:若t1≠t2,则t1[K]≠t2[K] . 也就是说不同元组的K是不同的,即K唯一标识

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值