• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
LvGJ
沉迷学习不秃头
博客园    首页    新随笔    联系   管理    订阅  订阅
数据库转化为3NF以及BCNF

数据库转化为3NF以及BCNF

转换为3NF保持函数依赖

例题:关系模型R<U,F>,U={A,B,C,D,E},F={A→BC,ABD→CE,E→D}

  1. 首先最小化处理得到\(F=A\rightarrow B,A\rightarrow C,AD\rightarrow E,E\rightarrow D\)
  2. 合并\(R_1={ABC},R_2={ADE},R_3={ED}\)

转换为3NF保持函数依赖和无损性

例题:关系模型R<U,F>,U={A,B,C,D,E},F={A→BC,ABD→CE,E→D}

  1. 首先根据上面得到的\(R_1,R_2,R_3\)

  2. 计算出R的候选码为AD,AE,生成两个新的关系\(R_4{AD},R_5{AE}\)

  3. 下一步就是看包括关系,明显\(R_3,R_4,R_5\)包括在\(R_2\)里面所以得到\(R_1,R_2\)

转换为BCNF

例题:关系模式R<U,F>,其中:U={A,B,C,D,E},F={A→C,C→D,B→C,DE→C,CE→A},将其分解成BCNF并保持无损连接。

A:LR

B:L

C:LR

D:LR

E:L

计算BE的闭包得到ABCDE所以候选码为BE

  1. 对于A→C不符合BCNF所以分离出来,\(R_1\) ={AC},\(R_2\)={ABDE}(去除C),这时\(F_2\) = {B→D,DE→D,BE→A},删除DE→D,得到\(F_2\) =
  2. 对于\(R_2\)其中B→D中的B是决定因素但是不是码(码是BE),所以分离
  3. 得到\(R_3= {ABE},R_2 = {BD},R_1 = {AC}\)
posted on 2020-03-21 17:21  LvGJ  阅读(1707)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3