转换BCNF

可算是大概懂了些如何分解为BC范式,推论是可以用的!

转换成BCNF的保持无损连接的分解

算法1:

      

例3: 关系模式R<U,F>,其中U={C,T,H,R,S,G},

F={CS→G,C→T,TH→R,HR→C,HS→R},将其分解成BCNF并保持无损连接。

 

 

 

     

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

      解:

      ① 令ρ={R(U,F)}。

      ② ρ中不是所有的模式都是BCNF,转入下一步。

      ③ 分解R:R上的候选关键字为BE(因为所有函数依赖的右边没有BE)。考虑A→C函数依赖不满足BCNF条件(因A不包含候选键BE),将其分解成R1(AC)、R2(ABDE)。计算R1和R2的最小函数依赖集分别为:F1={A→C},F2={B→D,DE→D,BE→A}。其中B→D是由于R2中没有属性C且B→C,C→D;DE→D是由于R2中没有属性C且DE→C,C→D;BE→A是由于R2中没有属性C且B→C,CE→A。又由于DE→D是蕴含关系,可以去掉,故F2={B→D,BE→A}。

      分解R2:R2上的候选关键字为BE。考虑B→D函数依赖不满足BCNF条件,将其分解成R21(BD)、R22(ABE)。计算R21和R22的最小函数依赖集分别为:F21={B→D},F22={BE→A}。

      由于R22上的候选关键字为BE,而F22中的所有函数依赖满足BCNF条件。故R可以分解为无损连接性的BCNF如:ρ={R1(AC),R21(BD),R22(ABE)}

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
第一章 1 数据管理技术的发展经历了人工管理、文件系统、数据库和高级数据库四个阶段 2 文件系统的三个缺陷:数据冗余、数据不一致、数据联系弱 3 在文件系统阶段,程序设计处于主导地位;在数据库阶段,数据占据了中心位置 4 数据库管理系统(DBMS)的类型:(1) 层次型[1:N] (2) 网状型[M:N] (3) 关系型 (4) 面向对象型 5 数据描述的三个阶段:(1) 概念设计 (2) 逻辑设计 (3) 物理设计 6 数据联系的三种类型:(1) 一对一联系 (2) 一对多联系 (3) 多对多联系 7 根据数据的抽象级别定义的四种模型: (1) 概念模型:表达用户需求观点的模型,抽象级别最高,主要是ER模型 (2) 逻辑模型:表达计算机实现的模型,主要有层次、网状和关系模型三种,其中关系模型 是主流 (3) 外部模型:表达用户使用观点的模型,供程序使用 (4) 内部模型:表达DB物理结构的模型,与软硬件紧密联系,由DBMS自动实现 8 从用户[应用程序]到数据库之间,DB的数据结构描述有三个层次: (1) 外部模式[型]:用户与数据库系统的接口 (2) 逻辑模式[型]:数据库全部数据和整体逻辑结构的描述 (3) 内模式[型]:数据库在物理存储方面的描述 9 三层模式之间存在着两级映像: (1) 外模式/逻辑模式映像:定义外模式和逻辑模式之间的对应性 (2) 逻辑模式/内模式映像:定义逻辑模式和内模式之间的对应性 10 数据独立性是指应用程序和数据库的数据结构之间相互独立,包括: 1) 物理数据独立性 - 对内模式的修不影响逻辑模式,只修逻辑模式/内模式映像即可 2) 逻辑数据独立性 - 对逻辑模式的修不影响外模式,只修外模式/逻辑模式映像即可 11 DBMS的主要功能 (1) 数据库的定义 - 提供的DDL语句 (2) 数据库的操纵 - 提供的DML语句 (3) 数据库的保护:a) 数据库的恢复 b) 数据库的并发控制 c) 数据的完整性 d) 数据的安全性 (4) 数据库的维护:提供的各种工具 (5) 数据字典:存放三级结构定义 12 DBA的主要职责 1) 定义逻辑模式 2) 定义内模式 3) 定义外模式 4) 定义安全性规则 5) 定义完整性规则 6) 数据库的转储与恢复 第二章 1 数据库系统生存期 1) 从软件的规划、研制、实现、投入运行后的维护,直到它被新的软件所取代的整个期间 2) 数据库系统的生存期分为七个阶段: (1) 规划阶段:系统调查、可行性分析、确定总目标 (2) 需求分析阶段:分析业务流程[业务流程图]、确定系统边界、分析数据处理过程[数 据流图]、生成数据字典 (3) 概念设计阶段:概念模型独立于计算机硬件和软件,主要有三个步骤 a 进行数据抽象,设计局部概念模型 b 将局部概念模型综合成全局模型 c 评审 (4) 逻辑设计阶段:把概念模型转换为DBMS可以处理的逻辑模型,主要有五个步骤 a 将概念模型(ER模型)转换为逻辑模型(关系模型) b 设计外模型 c 设计应用程序与数据库的接口 d 评价模型 e 修正模型 (5) 物理设计阶段:完全依赖于给定的硬件环境和数据库产品 (6) 实现阶段:定义数据库结构;数据装载;编制与调试应用程序;数据库运行 (7) 运行维护阶段:主要由DBA完成 2 ER模型到关系模型的转换 1) 实体类型转换:将实体转换为关系模式,实体属性即为关系模式的属性,实体的标识符 为关系模式的键 2) 二元联系类型转换 (1) 1:1联系:在任意一个关系模式中加入另一个关系模式的键[作为外键]和联系类型的 属性 (2) 1:N联系:在N端的关系模式加入1端的键[作为外键]和联系类型的属性 (3) M:N联系:将联系类型转换为关系模式,其属性为两个实体的键和联系类型的属性 第三章 1 FD推理规则:1) 自反性 2) 增广性 3) 传递性 2分解是解决冗余的主要方法。分解之后,能否表示同样的数据,用"无损分解"特性表示 ;能否保持原来的函数依赖关系,用"保持FD"特性表示 3 关系模式的分解标准 "范式 "特点 "分解特征 " " " "无损分解 "保持FD " "1NF "字段是不可再分的原子值 " " " "2NF "非主键字段完全依赖主键 "是 "是 " "3NF "非主键字段不能相互依赖 "是 "是 " "BCNF "主键之间不能相互依赖 "是 "不一定 " "4NF "消除多值依赖 "是 "不一定 " 第四章 1 基本符号 "操作 "传统 "并( )、交( ) 、差(-)、笛卡尔积(×) " " "扩充 "投影(π)、选择(σ)、连接( )、除(÷) " "运算符 "比较 ">、 、<、 、=、 " " "逻辑 " (与)、 (或)、 (非) " 2 假设数据库
"《数据库原理与应用》课程实验第 2 次实验报告 " "实验内容及基本要求: " "实验项目名称:小型数据库设计 " "实验类型: 设计 " "每组人数: 1 " "实验内容及要求: " "按照数据库设计流程开发实现一个小型的数据库应用系统 " "实验结果: " "建立"手机销售网站"数据库 " "设计内容概述 " "网站设计实验中我做了"数码产品销售网站的设计",主要是手机一类的销售" "、查询等情况的设计,其中需要用到数据库,类似其他电子商务网站一样," "需要有用户信息、产品信息、订单、查询的相应操作来是网站实现动态传递" "数据,才能发布为真正的交互式网站。 " " " "需求分析 " "通过自己浏览其他电子商务网站的体验经历以及对普通用户的调查访问,得" "到如下的需求分析内容: " "用户方面 " "(1)信息需求——用户登录网站,需要了解手机产品的各种信息(如外观图 " "片、品牌、基本性能、价格等),这需要将产品的相应信息放置在数据库中" ",以便用户能够查询出; " "(2)处理需求——网站的设计主要要实现的功能有"商品查询、用户登录/注 " "册、订购"等,这些都需要产品、用户的数据信息,以确定哪位用户订购了 " "哪件商品。 " " " "开发者方面 " "(1)信息需求——开发者需要将网站会员的信息、库存商品(在售商品)的 " "信息等进行网站内部的储备,通过这些可以进一步的导出顾客的浏览偏好、" "购买意向等,从而能够进一步对网站进行优化; " "(2)处理需求——开发者要有后台对已售商品、新注册用户等进行相应的处 " "理(如添加删除或是更商品信息、及时管理用户等); " " " " " " " " " " " " " " " " " "数据流图如下: " " " " " " " "概念模型(E—R图) " " " "用户:用户编号、用户名、用户密码 " " " " " " " "产品:产品编号、产品名称、品牌、颜色、价格、详细信息 " " " " " "订单:用户编号、产品编号、产品名称、数量 " " " " " "总的E—R图—— " " " " " " " " " "关系模式 " "用户(用户编号、用户名、密码) " "产品(产品编号、产品名称、品牌、颜色、价格、详细信息) " "订单(用户编号、产品编号、产品名称、数量) " " " " " "规范化过程 " "用户——R(u_id, u_name, psd), F(u_id u_name, u_name psd) " "码(u_id), " "没有主属性对码的部分和传递函数依赖,属BCNF " " " "产品——R(product_id, product_name, brand, colour, price, detail), " "F(product_id produce_name, product_id brand, producr_id colour, " "product_id price, product_id detail, prouct_name brand) " "码(product_id), " "没有非主属性对码的部分函数依赖,属2NF " " " "订单——R(product_id, u_id, product_name, number) " "F(product_id & u_id product_name, product_id & u_id number) " "码(u_id, product_id, number), " "没有主属性对码的部分和传递函数依赖,属BCNF " " " " " "逻辑模型 " "将概念结构转换为一般的关系模型 " "得到——用户(用户编号、用户名、密码) " "产品(产品编号、产品名称、品牌、颜色、价格、详细信息) " "订单(用户编号、产品编号、产品名称、数量) " " " "将转换来的关系模型向特定DBMS支持下的数据模型转换 " "这里没有用到相应的转换。 " "对数据模型进行优化 " "确定数据依赖(如规范化过程中所述); " "对于各个关系模式之间的数据依赖进行极小化处理,消除冗余关系; " "按照数据依赖的理论对关系模式逐一进行分析(确定的结果如规范化过程中" "所述); " "按照需求分析阶段得到的处理要求,确定不用进行进一步的合并或者分解了" "。 " " " " " "SQL实现 " "首先,建立数据库digital " " " " " " " " " " " " " " " " " " " " " "再建立数据表u,product,buy " "如:建立product—— " " " "结果为—— " "U表 " " " " " " " " " " " " "

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值