首页

文章

详细说明数据库规范的三个范式 ??

发布网友 发布时间:2022-03-28 17:54

我来回答

4个回答

热心网友 时间:2022-03-28 19:23

第三范式的要求如下: 1,每一列只有一个值 2,每一行都能区分。 3,每一个表都不包含其他表已经包含的非主关键字信息。 实质上,设计范式用很形象、很简洁的话语就能说清楚。这里将对范式进行通俗地说明,以一个简单论坛的数据库为例讲解怎么样将这些范式应用于实际工程.范式说明 第一范式(1NF):数据库表中的字段都是单一属性的,不可再分。这个单一属性由基本类型构成,包括整型、实数、字符型、逻辑型、日期型等。 例如,符合第一范式: 字段1 字段2 字段3 字段4 不符合第一范式: 字段1 字段2 字段3 字段4 字段3.1 字段3.2 很显然,在当前的任何关系数据库管理系统(DBMS)中,傻瓜也不可能做出不符合第一范式的数据库,因为这些DBMS不允许你把数据库表的一列再分成二列或多列。因此,你想在现有的DBMS中设计出不符合第一范式的数据库都是不可能的。 第二范式(2NF):数据库表中不存在非关键字段对任一候选关键字段的部分函数依赖(部分函数依赖指的是存在组合关键字中的某些字段决定非关键字段的情况),也即所有非关键字段都完全依赖于任意一组候选关键字。 假定选课关系表为SelectCourse(学号, 姓名, 年龄, 课程名称, 成绩, 学分), 关键字为组合关键字(学号, 课程名称),因为存在如下决定关系: (学号, 课程名称) → (姓名, 年龄, 成绩, 学分) 这个表不满足第二范式,因为存在如下决定关系: (课程名称) → (学分) (学号) → (姓名, 年龄) 即存在组合关键字中的字段决定非关键字的情况。 由于不符合2NF,这个选课关系表会存在如下问题: (1) 数据冗余: 同一门课程由n个学生选修,"学分"就重复n-1次;同一个学生选修了m门课程, 姓名和年龄就重复了m-1次。 (2) 更新异常: 若调整了某门课程的学分,数据表中所有行的"学分"值都要更新,否则会出现 同一门课程学分不同的情况。

热心网友 时间:2022-03-28 20:41

满足最低程度要求的范式属于第一范式,简称1NF;在第一范式中进一步满足非主属性对主属性完全依赖要求的关系属于第二范式,在第二范式中进一步满足非主属性对主属性没有传递依赖要求的关系属于第三范式。这些范式是递进的,范式越高、规范化程度越高。但数据库设计中并不能一味追求高范式,因为高范式往往意味着查询效率的降低(虽然冗余减少了,但有时为了效率,应当留部分冗余的),因此数据库设计中,往往在效率与冗余中寻找折中或者平衡。

热心网友 时间:2022-03-28 22:32

  关系数据库中的关系要满足一定的要求。若关系满足不同程度的要求,就称它属于不同的范式(Normal Form)。范式也叫关系范式,因为范式存在于关系中。范式是关系模式满足不同程度的规范化要求的标准。满足最低程度要求的范式属于第一范式,简称1NF;在第一范式中进一步满足一些要求的关系属于第二范式,简称2NF,依次类推,还有3NF、BCNF、4NF、5NF,这些都是关系范式。
  对关系模式的属性间的函数依赖加以不同的*就形成了不同的范式。这些范式是递进的,即如果是一个关系是1NF的,它比不是1NF的关系要好;同样,2NF的关系比1NF的关系要好等等,范式越高、规范化程度越高,关系模式就越好。
  
第一范式

  定义 设 R 是一个关系模式,如果 R 中的每一个属性 A 的值域中的每个值都是不可分解的,则称 R 是属于第一范式的,记作 R ∈ 1NF。
  例如:在关系 SA(姓名,工资)中,属性“工资”还可再分为基本工资,奖金还有补贴 3 个数据项,这违背了第一范式中元组的每个属性不可再分的原则,所以它不满足第一范式。
  将非第一范式的关系转换为第一范式的关系非常简单,只需要将所有数据项都分解成不可再分的最小数据项就可以了。例如上面的关系改为 SA(姓名,基本工资,奖金,补贴)即可。
  
第二范式

  定义 如果关系 R ∈ 1NF,并且 R 中每一个非主属性完全函数依赖于任一个候选码,则 R ∈ 2NF。
  从定义可以看出,若某个 1NF 的关系的主码只由一个列组成,那么这个关系就是 2NF 关系。但是,如果主码是由多个属性列共同组成的复合主码,并且存在非主属性对属性的部分函数依赖,则这个关系不是 2NF 关系。
  例如:在关系 SB(学号,姓名,系名,系主任,课号,成绩)中,、
  非主属性“姓名”仅函数依赖于“学号”,也就是“姓名”部分函数依赖于主码(学号,课号)而不是完全依赖;
  非主属性“系名”仅函数依赖于“学号”,也就是“系名”部分函数依赖于主码(学号,课号)而不是完全依赖;
  非主属性“系主任”仅函数依赖于“学号”,也就是“系主任”部分函数依赖于主码(学号,课号)而不是完全依赖。
  所以 SB 不满足第二范式,不是 2NF 关系。可以用模式分解的方法将非 2NF 的关系模式分解为多个 2NF 的关系模式。去掉部分函数依赖关系的分解过程如下:
  1. 用组成主码的属性集合的每一个子集作为主码构成一个表。
  2. 对于每个表,将依赖于此主码的属性放置到此表中。
  例如:将 SB 分解为两个关系模式
  SC(学号,课号,成绩),主码为(学号,课号)
  SD(学号,姓名,系名,系主任),主码为 学号。
  
第三范式

  定义 如果关系 R ∈ 2NF,并且 R 中每一个非主属性对任何候选码都不存在传递函数依赖,则 R ∈ 3NF 。
  从定义中可以看出,如果存在非主属性对主码的传递依赖,则相应的关系模式就不是 3NF。
  接着上面的例子,关系模式 SC 和 SD 均是 2NF 的,但在关系 SD(学号,姓名,系名,系主任)中,存在如下函数依赖:
  学号 → 系名
  系名 → 系主任
  系名 -\→ 学号
  那么,存在着一个传递函数依赖“学号 → 系主任”成立。
  从上面的分析可以知道,因为在 SD 中存在传递函数依赖,所以 SD 不满足 3NF。因此需要对其进行下一步的分解。去掉传递函数依赖的分解过程如下:
  1. 对于不是候选码的每个决定因子,从关系模式中删除依赖于该决定因子的属性。
  2. 新建一个关系模式,新的关系模式中应包含在原表中所有依赖于该决定因子的属性。
  3. 将决定因子作为新关系模式的主码。
  例如:将 SD 分解为
  SE(学号,姓名,系名)
  SF(系名,系主任)
  这两个关系模式不再存在传递依赖,它们均为第三范式。在通常的数据库设计中,一般要求要达到 3NF。3NF 是一个实际可用的关系模式应满足的最低范式。

热心网友 时间:2022-03-29 00:40

通俗理解
1、不可分(原子性)
2、一表一事(每个字段都跟主键有关系)
3、直接相关(每个字段跟主键都是之接相关而不是间接相关)
华硕笔记本电脑触摸板怎么开笔记本电脑触摸板怎么开启和关闭_百度知 ... 陕西职务侵占案立案准则 结婚后我的恋情维系了十年,怎么做到的? 玉米仁子饭产自哪里 中国期货交易所的交易品种有哪些? 历史要怎么读,有啥诀窍 高中历史诀窍 年终会活动策划方案 深度解析:第一财经回放,探索财经新风向 逆水寒手游庄园怎么邀请好友同住 逆水寒手游 逆水寒不同区可以一起组队吗? 逆水寒手游 逆水寒怎么进入好友世界? 逆水寒手游 逆水寒怎么去别人的庄园? 使用puppeteer实现将htmll转成pdf 内卷时代下的前端技术-使用JavaScript在浏览器中生成PDF文档 【译】将HTML转为PDF的几种实现方案 变形金刚08动画怎么样 变形金刚08动画的问题 变形金刚08动画日语版剧情介绍 高分!换显卡nvidia控制面板被我卸了,重新安装显卡驱动后没了nvidia控... 我的nvidia控制面板被卸载了 怎么找回啊 卸载后 这个画面看着很奇怪_百 ... 李卓彬工作简历 林少明工作简历 广东工业职业技术学院怎么样 郑德涛任职简历 唐新桂个人简历 土地入股的定义 ups快递客服电话24小时 贷款记录在征信保留几年? 安徽徽商城有限公司公司简介 安徽省徽商集团新能源股份有限公司基本情况 安徽省徽商集团有限公司经营理念 2019哈尔滨煤气费怎么有税? 快手删除的作品如何恢复 体育理念体育理念 有关体育的格言和理念 什么是体育理念 万里挑一算彩礼还是见面礼 绿萝扦插多少天后发芽 绿萝扦插多久发芽 扦插绿萝多久发芽 炖牛排骨的做法和配料 网络诈骗定罪标准揭秘 “流水不争先”是什么意思? mc中钻石装备怎么做 为什么我的MC里的钻石块是这样的?我想要那种。是不是版本的问题?如果是... 带“偷儿”的诗句 “君不见巴丘古城如培塿”的出处是哪里 带“奈何”的诗句大全(229句) 里翁行()拼音版、注音及读音 腾讯客服人工服务电话多少? 如何简单通俗地理解数据库的1NF 2NF 3NF 三个范式?初学者 苹果11来信息闪光灯怎么设置 请教数据库中如何理解“范式”这个词? 如何通俗地理解MySQL的三个范式 数据库中的三大范式是什么? 数据库知识?什么是1NF,2NF,3NF? 我的信用卡都到农行了是待领卡状态,工作人员拒绝... 我的信用卡昨天显示网点待领卡,但是也没电话或者... 工行卡已制作成功请等待领卡是什么意思 社保卡待领状态该咋办 中国银行志愿者证借记卡5月就一直显示制卡完成,7... 工商银行信用卡申请进度为待领卡需要多久才能领上卡 我的工行贷记卡办理进度变成了待领卡,是什么意思... 由于建设银行卡消磁,在网上办理换卡,办卡进度显... 我在网上申请农业银行信用卡显示:待领卡,是不是... 农行信用卡进度查已到网点等待领卡什么意思 工行信用卡查询是待领卡是制卡成功么 查农行信用卡进度显示已到网点等待领卡是什么意思呢? 网上申请信用卡的。面签也签过了 提示待领卡 这种... 如何能够打通腾讯客服人工服务电话? 腾讯qq24小时人工热线? qq人工服务投诉电话是什么? 腾讯人工台电话是多少 请问腾讯没有人工服务吗? QQ的投诉电话是多少?人工的! 腾讯客服人工服务电话 腾讯客服人工电话多少 腾讯人工客服都没有吗? 腾讯人工客服电话多少啊? 请达人通俗易懂的说明一下数据库的第一、第二、第三范式是什么意思?最好有例子。。 银行卡里的钱无缘无故被转走,请问还能追回来吗? 银行卡的钱被转走能追回来吗 银行卡钱被转走能追回吗 银行卡上的钱被快捷支付转走了还能追回来吗? 银行卡钱被转走了报警可以追回来吗 卡里的钱💰被不知道的情况下转走了怎么办? 钱被转走了 怎么追回来? 钱转走了能追回来吗 银行卡上的钱被快捷支付转走了还能追回来吗
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com