对以下的关系模式, 分别写出:
(1)码 ,主属性,非主属性?
(2)函数依赖?
(3)属于第几范式?为什么?
(4)有什么问题?
(5)如何分解?分解后能否达到几范式? 原问题是否解决?
ps(函数依赖的方法:

1.先找出码,再写出码函数依赖:码-〉其他属性

2.再写出其他非码的函数依赖

)

1 SCG(Sno, Sname, Sage, Cno, Grade) 
(1)码:(SNO,CNO) 主属性: SNO,CNO
   非主属性:SNAME,SAGE,GRADE
(2)函数依赖:(SNO,CNO)-〉SNAME,(SNO,CNO)-〉SAGE,(SNO,CNO)-〉GRADE
                    SNO-〉SNAME,SNO-〉SAGE
(3)属于第几范式,为什么?
存在非主属性sname部分函数依赖于码,是1范式
(4)有什么问题?
 问题⒈ 数据冗余大 每一个学生的姓名年龄重复出现 浪费大量的存储空间
 问题⒉ 修改困难 例:某学生要修改姓名或年龄,系统必须修改多次
 问题3.插入异常 假设某学生(新生)还未选课,因课号是主属性,按实体完整性约束,该学生的信息无法插入 ----该插入的不能插入
 问题4.删除异常 假定某个学生本来只选修了一门课。现在因身体不适,他连这门程也不选修了,要删除该选课。此操作将导致该学生信息也被删除 -----不该删的删了
 
(5)如何分解?分解后能否达到几范式? 原问题是否解决?
S(SNO,SNAME,SAGE)
SC(SNO,CNO,GRADE)
达到2NF,原问题解决
学生Sname,Sage不重复存储
Sname,Sage的修改只改一次
学生未选课,也能插入到S表
 一个学生选课全删除,学生信息还存在
 
2 SP(SNO, SNAME,SCITY, PNO, PNAME, QTY)
    供应商号,供应商名,供应商城市,零件号,零件名,数量

(1)码:(SNO,PNO) 主属性:SNO,PNO 非主属性:SNAME,SCITY,PNAME,QTY
(2)函数依赖:(SNO,PNO)->SNAME,(SNO,PNO)->SCITY,(SNO,PNO)->PNAME,(SNO,PNO)->QTY,

SNO->SNAME,SNO->SCITY,PNO->PNAME
(3)属于第几范式,为什么?存在非主属性SNAME部分函数依赖于码,是1范式
(4)有什么问题?数据冗余,修改困难,插入异常,删除异常
(5)如何分解?分解后能否达到几范式? 原问题是否解决?
S(SNO,SNAME,SCITY)
P(PNO,PNAME)
SP(SNO,PNO,QTY)
达到2NF,原问题解决

1 SL(SNO,SNAME,SDEPT,SLOC)
 学号, 姓名, 系名, 系住处 ,一个系的学生住处相同

(1)码: SNO 主属性:SNO 非主属性:SNAME,SDEPT,SLOC
 (2)函数依赖:
 Sno→Sdept Sno→Sname Sno→Sloc Sdept→Sloc
 (3)属于第几范式,为什么?存在非主属性SLOC传递函数依赖于码,是2范式
 (4)有什么问题?
 数据冗余度大:每个系的学生都住在同一个地方,关于系的住处的信息却要重复存储与该系学生人数相同的次数。
 修改困难:当学校调整学生住处时,比如信息系的学生全部迁到另一个地方住,由于每个系住处的信息重复存储,修改时必须同时更新该系所有学生的Sloc
 插入异常:如果某个系刚成立,目前暂时没有在校学生,无法把系住处的信息存入数据库。
 删除异常:如果某个系的学生全部毕业了,在删除该系学生信息的同时,把这个系住处的信息也删除了。
 (5)如何分解?分解后能否达到几范式? 原问题是否解决?
 SD(Sno, Sname, Sdept)
 DL(Sdept, Sloc)
  原问题解决
 存储系住处信息不再冗余
 修改系住处容易
 新系成立可以插入
 删除一个系的所有学生,系的信息仍然存在

2职工(职工编号,姓名,基本工资,职务,职务工资 )
   职工编号不重复,每种职务有固定的职务工资

(1)码: 职工编号 主属性:职工编号  非主属性: 姓名,基本工资,职务,职务工资
 (2)函数依赖:
 职工编号->姓名, 职工编号->基本工资, 职工编号->职务, 职工编号->职务工资
 职务->职务工资
 (3)属于第几范式,为什么?

存在非主属<职务工资>性传递函数依赖于码,是2范式
 (4)有什么问题?
 职务工资数据冗余,每个职务的工资会多次出现。
 修改职务工资困难,想要修改相应职务的工资需要修改多次。
 插入异常,如果有一个新职务,但没有职工获得这个职务,该职务便无法插入。
 删除异常,删除一个职务的所有职工会删除这个职务的信息。
 (5)如何分解?分解后能否达到几范式? 原问题是否解决?
 职工(职工编号,姓名,基本工资,职务 )
 职务(职务,职务工资 )
 原问题解决

3销售发票(发票号,商品号,商品名,数量,销售单价,日期)
   发票号不重复,每个商品号有一个商品名[10分]

(1)码: 发票号 主属性: 发票号 非主属性:商品号,商品名,数量,销售单价,日期  
 (2)函数依赖:
 发票号->商品号,发票号->商品名,发票号->数量,发票号->销售单价,发票号->日期 
 商品号->商品名
 (3)属于第几范式,为什么?

存在非主属<商品名>性传递函数依赖于码,是2范式  
 (4)有什么问题?  
 商品名数据冗余,每个商品的商品名会多次出现。

修改商品名困难,要修改商品名要修改多次。

如有新商品,但没有卖出去开不出发票,商品名便无法插入。

删除一个商品名的所有发票会删除这个商品的信息
 (5)如何分解?分解后能否达到几范式? 原问题是否解决?  
 销售发票(发票号,商品号,数量,销售单价,日期)
 商品(商品号,商品名)
 原问题解决

1 关系模式 STC(S,T,C)
           S学生,T教师,C课程。
(1)每一位教师仅教一门课,每门课有若干个教师教

(2)某个学生选定一门课后,就对应一个确定的教师(不能重复选同一门课)

(3)某个学生选定一个教师后,就对应一门确定的课程
 
 (1)码:(S,C),(S,T) 主属性:S,C,T,非主属性:无
  (2)函数依赖?
 T->C,(S,C)->T ,(S,T)->C
 (3)属于第几范式?为什么?
  函数依赖T->C左边不含有码,存在主属性对码的部分函数依赖,达不到BCNF, 但又不存在非主属性对码传递依赖和部分函数依赖,是3范式
 (4)有什么问题?
 数据仍有许多冗余。教师上课的信息与学生选此课的人数一样多。
 更新异常:某教师上课的信息要修改,要改多行。
 插入异常:当某门课本学期不开,自然就没有学生选修。没有学生选修,教师上该课程的信息就无法插入到数据库中。
 删除异常:当学生修完某课程,则把此学生记录删除的同时,也删除了教师开该课程的信息。
 (5)如何分解?分解后能否达到几范式? 原问题是否解决?
  ST(S,T)
  TC(T,C)
 达到BCNF,问题解决

转载于:https://www.cnblogs.com/wkfvawl/p/11107022.html

数据库——关系数据库规范化习题相关推荐

  1. 【数据库学习笔记】Day06 - 关系数据库规范化理论

    [数据库学习笔记]Day06 - 关系数据库规范化理论 目录 一.关系数据库中存在的数据冗余问题 二.函数依赖 三.关系规范化 一.关系数据库中存在的数据冗余问题: 以学生信息表为例: 该关系模式存在 ...

  2. 独立于计算机系统的是 用户模式,第6章 数据库技术基础习题

    一.判断题(该题若正确,则在括号内画Ö,若错误,则在括号内画´.) 1. 任何一个二维表就是一个关系.( ) 2. 在关系中元组的顺序是无关紧要的.( ) 3. 关系模型的完整性规则是对关系的约束条件 ...

  3. 计算机三级数据库备考,2017年计算机三级数据库技术备考习题及答案

    2017年计算机三级数据库技术备考习题及答案 平时的练习对我们的考试来说十分重要,练习做得多了自然熟能生巧.下面是百分网小编为大家收集整理的2017年计算机三级数据库技术备考习题及答案,希望对大家学习 ...

  4. mysql数据库设计学习---数据库设计规范化的五个要求

    一:表中应该避免可为空的列: 二:表不应该有重复的值或者列: 三: 表中记录应该有一个唯一的标识符  在数据库表设计的时候,数据库管理员应该养成一个好习惯,用一个ID号来 唯一的标识行记录,而不要通过 ...

  5. 数据库数据规范化看不懂_数据库管理系统中的规范化

    数据库数据规范化看不懂 DBMS中的规范化 (Normalization in DBMS) Every table must have a single idea. The method by whi ...

  6. 数据库设计规范化的5个要求

    通常情况下,可以从两个方面来判断数据库是否设计的比较规范.一是看看是否拥有大量的窄表,二是宽表的数量是否足够的少.若符合这两个条件,则可以说明这个数据库的规范化水平还是比较高的. 当然这是两个泛泛而谈 ...

  7. 数据库设计-规范化规则

    SQL反模式一书在附录章节给出了设计关系数据库的规范化规则,一个简明的规范化规则清单. 关系是什么 在规范化之前,我们先要理解下关系. 数学中关系定义:两个不同数据域上的值的集合,通过一个条件得到的一 ...

  8. (数据库系统概论|王珊)第七章数据库设计:习题

    名词解释 数据库设计(database design):数据库设计是指对于一个给定的应用环境,构造(设计)优化的数据库逻辑模式和物理结构,并据此建立数据库及其应用系统,使之能够有效地存储和管理数据,满 ...

  9. 数据库-------关系数据库标准语言SQL

    结构化查询语言Structured Query Language :数据查询.数据定义.数据操纵. 数据控制 3. SQL语言是一种面向集合的语言,每个命令的操作对象是一个或多个关系,结果也是一个关系 ...

  10. 数据库系统概论第五版第(第 4 章数据库安全性)习题答案

    目录 1. 什么是数据库的安全性? 2. 数据库安全性和计算机系统的安全性有什么关系? 3.试述信息安全标准的发展历史... 4. 试述实现数据库安全性控制的常用方法和技术. 5. 什么是数据库中的自 ...

最新文章

  1. python3-泊松分布
  2. [Leetcode][第98 450 700 701题][JAVA][二叉搜索树的合法性、增、删、查][递归][深度遍历]
  3. vscode python环境配置_用VScode配置Python开发环境
  4. 大佬教你如何写出更好的CSS,分享web前端资料
  5. SAP License:再论分摊与分配(含实例)
  6. [转]通达信主图指标--13日黄金K线
  7. [leetcode]831. 隐藏个人信息
  8. 解决python3报错UnicodeDecodeError: 'ascii' codec can't decode byte 0xaa in position 1: ordinal not in ra
  9. cocostudio html5,Cocostudio的简单使用:
  10. 台达变频器485通讯接线图_台达PLC与变频器用485通讯怎样实现启动、停止和频率给定,程序怎样做。谢谢!...
  11. 微信语音怎么转发给别人听_新版微信语音转发方法(微信语音怎么转发给别人听)...
  12. golang实现微信模板消息推送
  13. 如何一键重装Win10系统图文教程
  14. EDA笔记(4)--语言要素
  15. linux 下oracle11g卸载干净,linux系统Oracle11g R2完整卸载教程
  16. 知云文献翻译打不开_学用系列|自带翻译功能的PDF文献阅读器——知云文献翻译3.0...
  17. vue实例和组件的区别
  18. 工作中千万不要去做的事:9个需要马上改掉的坏习惯
  19. 孤立词语音识别(1)——利用HMM-GMM模型实现数字识别(完整收发系统)
  20. linux 原始套接字 绑定网卡,Linux网络数据捕获之原始套接字

热门文章

  1. excel如何去重统计户数_excel表格单一数据统计-Excel如何去重,然后统计数据?...
  2. 5G网络规划解决方案
  3. nyoj592 蛇形填数
  4. 有人说做运营死路一条,但他没搞清运营是做什么的!
  5. 发送短信工具类(亿美短信平台接口)
  6. 热搜大事记【2018-11-05-2018-11-11】
  7. 51单片机电子制作DIY-----交通灯控制器
  8. rk356x-Android 刷机
  9. SEO优化外包 避坑指南
  10. 北美票房:奥斯卡提名影片票房回春