当前位置: 首页 > news >正文

mysql逻辑模型_数据库逻辑模型设计.ppt

数据库逻辑模型设计

例如: 给定F = {A ? C, AB ? C } B 在AB ? C 中是无关紧要的, 因为A ? C 逻辑蕴含AB ? C. 例如: 给定 F = {A ? C, AB ? CD} C 在AB ? CD 中是无关紧要的, 因为即使删除C 也能推出A ? C First Normal Form 1NF Second Normal Form 2NF Third Normal Form 3NF Boyce-Codd Normal Form BCNF 基于数据依赖和函数依赖: 关系范式: 第一范式 如果域中元素被认为是不可分的, 则域称为是原子的 非原子域的例子: 名字集合, 复合属性 象CS101之类的标识号可以分成若干部分 如果关系模式R的所有属性的域都是原子的, 则R称为属于第一范式 非原子值存储复杂并易导致数据冗余 E.g. 每个客户的账户集合, 以及每个账户的拥有者集合 我们假定所有关系都属于第一范式 2NF:若R是1NF,且每个非键属性完全依赖于候选键,则称R为2NF(消除非键属性对候选键的部分依赖)。 例:关系模式S(SNO , SN , SD , DEAN , CNO , G) (SNO, CNO)为候选键,SNO?SN,SNO?SD,存在部分依赖,非2NF,则会有以下问题: 插入异常:如果学生没有选课,关于他的个人信息及所在系的信息就 无法插入。 删除异常:如果删除学生的选课信息,则有关他的个人信息及所在 的信息也随之删除了。 更新异常:如果学生转系,若他选修了k门课,则需要修改k次。 数据冗余:如果一个学生选修了k门课,则有关他的所在系的信息重 复。 可将S分解为:SC(SNO , CNO , G) S_SD(SNO , SN , SD , DEAN) 第三范式 关系模式R 属于第三范式 (3NF) 当且仅当对所有F+中依赖: ? ? ? 下列条件中至少一个成立: ? ? ? 是平凡的 (i.e., ? ? ?) ? 是R 的超键 ? – ? 中的每个属性A 包含在R 的某个候选键中. (注: 各属性可能包含在不同候选键中) 或: 非主属性既不部分依赖也不传递依赖于R的候选键,则称R是第三范式。 S_SD(SNO , SN , SD , DEAN) : SNO ?SD, SD ?DEAN STUDENT(SNO , SN , SD) DEPT(SD , DEAN) Boyce-Codd 范式: ?? ? ? 是平凡的 (i.e., ? ? ?) ? 是R的超键 具有函数依赖集合F 的关系模式R 属于BCNF当且仅当对F+中所有函数依赖??? ?, 下列两条件至少一个成立: 或: 如果关系模式R是1NF,且每个属性都不部分依赖于候选键也不传递依赖于候选键,那么称R是BC范式。 SPC(SNO , PNO , CNO) : PNO?CNO (SNO,CNO)?PNO 每位老师只教授一门课;某学生选定一门课,就对应一位老师 (SNO,PNO)?CNO (SNO,CNO)?PNO,(SNO,PNO),(SNO,CNO)为候选键。所有属性为键属性,为第三范式,但非BCNF SP(SNO,PNO),PC(PNO,CNO) 因3NF的冗余引起的问题 R = (J, K, L)F = {JK ? L, L ? K} J j1 j2 j3 null L l1 l1 l1 l2 K k1 k1 k1 k2 属于3NF但不属于 BCNF的模式有下面的问题 信息重复 (e.g., 联系l1, k1) 需要使用空值 (e.g., 表示联系l2, k2 , 这里没有对应的J 值). 多属性依赖集候选关键字求法: 输入:关系模式R及其函数依赖集F 输出:R的所有候选关键字。 方法: (1)将R的所有属性分为四类: L类:仅出现在F的函数依赖左部的属性; R类:仅出现在F的函数依赖右部的属性; N类:在F的函数依赖左右两边均未出现的属性; LR类:在F的函数依赖左右两边均出现的属性; 并令X代表L、N类,Y代表LR类; (2)求X+,若包含了R的所有属性,则X即为R的唯一候选关键字,转(5),否则转(3); (3)在Y中取一属性A,求(XA)+,若它包含了R的所有属性,则转(4),否则,调换一属性反复进行这一过程,直到试完所有Y中的属性; (4)如果已找出所有的候选关键字,则转(5),否则在Y中依此取两个、三个,…,求他们的属性闭包,直到其闭包包含R的所有的属性。 (5)停止,输出结果。 (1)R=(W,X,Y,Z),F={X→Z, WX→Y} Candidate Key {W,X},1NF. (2) R(U,F),U=

相关文章:

  • win7mysql安装未响应_求助啊 WIN7下安装mysql出问题 老是说未响应~!!
  • sql2008能否打开mysql数据库_将MySQL数据库转移到SqlServer2008数据库
  • 从源码安装mysql_从源码安装MySQL
  • wp mysql替换内容_WordPress查找和替换数据库内容插件:Better Search Replace
  • 什么时候用到全排列_全排列问题 与 组合排列问题
  • gis怎么提取水系_ArcGIS水文分析实战教程(7)细说流域提取
  • ios long转float_iOS设计中字符串NSString与int及float之间的转换
  • mysql show命令用不了_MySQL SHOW 命令的使用
  • php和mysql的英文文献_毕业论文通过PHP访问MySQL外文文献
  • java字符相似_java字符串相似度算法
  • java反编译工具jadclipse_java反编译工具jad及jadclipse
  • java watch service_Java WatchService API 教程
  • deepin 15.4 mysql_Deepin 15.4 编译安装 LNMP(PHP 5.6.31 + Nginx 1.12.1 + MySQL 5.6.36)
  • java if else嵌套_替代嵌套If Else语句
  • oom java问题_Java OOM问题如何排查
  • 【译】理解JavaScript:new 关键字
  • AzureCon上微软宣布了哪些容器相关的重磅消息
  • codis proxy处理流程
  • Consul Config 使用Git做版本控制的实现
  • eclipse的离线汉化
  • ERLANG 网工修炼笔记 ---- UDP
  • hadoop入门学习教程--DKHadoop完整安装步骤
  • js作用域和this的理解
  • Mocha测试初探
  • MySQL用户中的%到底包不包括localhost?
  • Perseus-BERT——业内性能极致优化的BERT训练方案
  • ReactNativeweexDeviceOne对比
  • Redis中的lru算法实现
  • Redux系列x:源码分析
  • 阿里研究院入选中国企业智库系统影响力榜
  • 个人博客开发系列:评论功能之GitHub账号OAuth授权
  • 海量大数据大屏分析展示一步到位:DataWorks数据服务+MaxCompute Lightning对接DataV最佳实践...
  • 基于MaxCompute打造轻盈的人人车移动端数据平台
  • 开源中国专访:Chameleon原理首发,其它跨多端统一框架都是假的?
  • 聊聊spring cloud的LoadBalancerAutoConfiguration
  • 名企6年Java程序员的工作总结,写给在迷茫中的你!
  • 如何使用 JavaScript 解析 URL
  • 如何使用 OAuth 2.0 将 LinkedIn 集成入 iOS 应用
  • 一个普通的 5 年iOS开发者的自我总结,以及5年开发经历和感想!
  • media数据库操作,可以进行增删改查,实现回收站,隐私照片功能 SharedPreferences存储地址:
  • 微龛半导体获数千万Pre-A轮融资,投资方为国中创投 ...
  • ​LeetCode解法汇总2670. 找出不同元素数目差数组
  • # 手柄编程_北通阿修罗3动手评:一款兼具功能、操控性的电竞手柄
  • #NOIP 2014#day.2 T1 无限网络发射器选址
  • $.ajax中的eval及dataType
  • (16)UiBot:智能化软件机器人(以头歌抓取课程数据为例)
  • (动手学习深度学习)第13章 计算机视觉---图像增广与微调
  • (附源码)spring boot公选课在线选课系统 毕业设计 142011
  • (附源码)计算机毕业设计ssm本地美食推荐平台
  • (牛客腾讯思维编程题)编码编码分组打印下标(java 版本+ C版本)
  • (原创)Stanford Machine Learning (by Andrew NG) --- (week 9) Anomaly DetectionRecommender Systems...
  • (转)机器学习的数学基础(1)--Dirichlet分布
  • (转载)虚函数剖析
  • (最简单,详细,直接上手)uniapp/vue中英文多语言切换
  • .【机器学习】隐马尔可夫模型(Hidden Markov Model,HMM)