数据库系统概念-第八章 关系数据库设计

关系数据库设计

8.1 好的关系设计的特点

函数依赖:

有损分解与无损分解:

8.2 原子域 与 第一范式

  • 域是原子的:
    域的元素被认为是不可分的单元

  • 关系R属于第一范式:
    R的所有属性的域都是原子的。存在组合属性、多值属性的关系不符合第一范式

  • 如何处理非原子值:
    对于组合属性:让每个子属性本身成为一个属性
    对于多值属性:为多值集合中的每个项创建一条元组

  • 原子性 实际上是由域元素在数据库中如何被使用决定的

8.3 使用函数依赖进行分解

  • 属性集:

    用希腊字母表示属性集例如 α \alpha α

    小写的r表示有可能是模式也可能不是模式的属性集
    大写的R是简化的表示用法

  • 关系模式:

    r ( R), 表示关系r,属性集R

  • 当属性集是一个超码:

    用K表示,K是r ( R )的超码

  • 超码:
    可以唯一标识关系中一条元组的一个或多个属性的集合

  • 使用函数依赖表示不能用超码表示的约束:

  • 函数依赖是平凡的:
    函数依赖,在所有关系中都满足则称为平凡的(trivial)

  • 给定函数依赖集F

F集合的闭包:

即能从给定F集合推到出的所有函数依赖的集合

8.3.2 Boyce-Codd 范式

模式分解

将inst_dept (ID, name, dept_name, salary, building, budget)分解为:
instructor (ID, name, dept_name, salary)
department (dept_name, building, budget)

原模式®的所有属性都必须出现在分解后的( R 1 R_1 R1, R 2 R_2 R2)中:R= R 1 R_1 R1 R 2 R_2 R2

  • 分解不属于BCNF的模式 的一般规则:

    当分解不属于BCNF的模式时,产生的模式中可能有一个或多个不属于BCNF。需要进一步分解,最终结果是一个BCNF模式集合

8.3.3 BCNF和保持依赖

表达数据库一致性约束的方式:

主码约束、函数依赖、check约束、断言和触发器

8.3.4 第三范式

BCNF要求:所有非平凡函数依赖都形如 α → β \alpha \rightarrow \beta αβ,其中一个 α \alpha α为超码。

3NF条件:

  • α → β \alpha \rightarrow \beta αβ是一个平凡的函数依赖
  • α \alpha α是R的一个超码
  • β − α \beta - \alpha βα 中的每个属性A都包含于R的一个候选码中

8.4 函数依赖

8.4.1 逻辑蕴涵的函数依赖

Armstrong公理

8.4.2

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值