三级模式两级映射


两级映射:
外模式和概念模式映射 也就是如果表发生改变我们只需要改视图而不需要改应用程序
概念模式和内模式映射 也就是如果存储结构发生了改变我们只需要改变这种映射关系不需要修改应用程序
三级模式:
物理数据库:就是电脑中的一个文件
内模式:我们如何存储数据 以什么格式存储在物理数据库中 如何优化
概念模式:就是用数据库中的表
外模式:对应的是数据库中的视图 视图方便了表的使用 表中的几个列组成了视图

E-R模型

关系代数

两个表中相同的元素只显示一次 不相同的还会保留

只显示两个表中相同的元素

例如S1-S2表 就是显示S1中有S2中没有的

笛卡尔积 ×

投影(选列)

除了图中这样写 图中的等价形式是 π1,2(S1)

选择(选行)

选择一样是这样的等价形式

链接


一般不写条件的(图中就是)就是自然链接 也就是数据相同的链接在一起
大多数是会写值的例如S1.Sno = S2.Sno

规范化关系模式的作用

解决 数据冗余 更新异常 插入异常 删除异常的问题

超键

唯一标识的元组

候选键

是消除了多余属性的超键
例如 学号 姓名 性别
学号可以唯一确定性别
学号和姓名的组合键可以唯一确定性别
所以学号是超键也是候选键 但是学号和姓名的这个组合键就只是超键 不是候选键

主键

候选键和主键的区别就是 候选键可以由多个 而主键只能有一个 主键是候选键中选的一个
例如 学号和身份证号都是唯一标识一个人的 这两个都是候选键 这两个都有资格作为主键 但是只能选一个作为主键 不能同时为主键

快速找出候选键

例1(找入度为0)

先找入度为0的 也就是没有指向他的 图一中是A1 如果从他能遍历整个图 则他是候选键

例2(组合键为候选键)

一定要注意ABD的画法 不能单独指向 答案是ABCD的组合键是候选键

例3(没有入度为0的怎么办)

若没有入度为0的节点 或者入度为0的节点不能遍历图中所有节点 则尝试一些既有入度又有出度的节点 答案A和B

范式


原子值:属性不能被拆分为其他属性

第一范式

只有原子值

图中那个就不是第一范式 因为高级职称人数就不是原子值 可以分为教授和副教授 如果把高级职称人数删掉就是第一范式

第二范式

在第一范式的前提下每一个非主属性完全依赖主键(不存在部分依赖)

CREDIT是学分 GRADE是成绩 CNO是课程号 SNO是学号
学号和课程号的组合键决定成绩
课程号决定学分
主属性是课程号和学号的组合键 但是学分部分依赖于课程号 所以如果把学分删掉 才是第二范式

部分依赖

通过AB能得出C,通过A也能得出C,通过B也能得出C,那么说C部分依赖于AB。
如果只有单主键 也就是没有组合键为主键 则不可能有部分依赖

完全依赖

通过AB能得出C,但是AB单独得不出C,那么说C完全依赖于AB.

非主属性

不包含在任何一个候选码中的属性称为非主属性。非主属性是相对与主属性来定义的。

主属性

在一个关系中,如果一个属性是构成某一个候选关键字(候选码)的属性集中的一个属性,则称它为主属性

第三范式


在第二范式的前提下 没有非主属性传递依赖

传递依赖

通过A得到B,通过B得到C,但是C得不到B,B得不到A,那么成C传递依赖于A

BC范式


简单来说就是把所有函数依赖写出来 左边那部分都是主属性
图中SJ是可以是候选键 ST也可以是候选键 所以S和J和T都是主属性
但是把函数依赖写出来 SJ->T T->J SJ是主属性 但是T不是

模式分解

有损无损分解

有损:不能还原
无损:可以还原

这是无损分解 可以通过连接操作还原原来的表

用表还原表


a的意思就是拆分后的成绩关系模式有学号这个字段 a1的意思是第一列
b代表这个关系模式没有这个字段 数字一样代表行列
如果像第二行 有两个连续的a 而另外一行有一个a一个b 例如成绩和学生那两行的学号和姓名 就说明可以将学生关系模式和成绩关系模式做一个连接 可以将b12变成a2
如果一行都是a则代表无损

软件设计师教程-数据库相关推荐

  1. 软件设计师教程(十三)计算机系统知识-软件系统分析与设计

    软件设计师教程 软件设计师教程(一)计算机系统知识-计算机系统基础知识 软件设计师教程(二)计算机系统知识-计算机体系结构 软件设计师教程(三)计算机系统知识-计算机体系结构 软件设计师教程(四)计算 ...

  2. 《软件设计师教程》阅读小结

    周围同学都是"工程师",像"网络工程师"."数据库工程师"等,整个学校就是"工程师"的聚集地.当然,我也不能落后.于是, ...

  3. 软件设计师考c语言,软件设计师教程考点精讲之C语言三大定律

    2016下半年软考软件设计师报名即将开始,同学们是否在学习过程中遇到了一些困难,下面由希赛软考学院为打算参加下半年考试的你们准备了一些软件设计师教程考点精讲之Java编程性能措施,希望对大家有所帮助. ...

  4. c语言综合知识,软件设计师教程综合知识集锦之C语言编程风格

    2016下半年软考软件设计师报名已经陆续开始了,同学们要开始备考了哦,希赛小编为打算参加下半年考试的你们准备了一些软件设计师教程综合知识集锦,希望对大家有所帮助. C语言的编程风格 缩进格式 Tab是 ...

  5. 软件设计师教程(九)计算机系统知识-软件工程基础知识

    软件设计师教程 软件设计师教程(一)计算机系统知识-计算机系统基础知识 软件设计师教程(二)计算机系统知识-计算机体系结构 软件设计师教程(三)计算机系统知识-计算机体系结构 软件设计师教程(四)计算 ...

  6. 软件设计师教程(四)程序设计语言基础知识

    软件设计师教程 软件设计师教程(一)计算机系统知识-计算机系统基础知识 软件设计师教程(二)计算机系统知识-计算机体系结构 软件设计师教程(三)计算机系统知识-计算机体系结构 程序设计语言知识 软件设 ...

  7. 软件设计师教程中常用公式汇总

    前言,本文章所有内容均摘录自<软件设计师教程(第5版)> 第1章 计算机系统知识 1.1机器字长为n时各种码制表示的带符号数的范围 码制 定点整数 定点小数 原码 −(2n−1−1)∼+( ...

  8. 软件设计师教程(二)计算机系统知识-计算机体系结构

    软件设计师教程 软件设计师教程(一)计算机系统知识-计算机系统基础知识 计算机体系结构 软件设计师教程 计算机体系结构的发展 计算机系统结构概述 计算机体系结构分类 指令系统 指令集体系结构的分类 C ...

  9. 软件设计师教程(五)计算机系统知识-数据结构

    软件设计师教程 软件设计师教程(一)计算机系统知识-计算机系统基础知识 软件设计师教程(二)计算机系统知识-计算机体系结构 软件设计师教程(三)计算机系统知识-计算机体系结构 软件设计师教程(四)程序 ...

最新文章

  1. linux命令--cp
  2. 单选按钮带文字_计算机二级MS office高级应用历年真题操作题文字解析
  3. android 代码设置居右_Android 开发实现EditText 光标居右显示
  4. C/C++轻松写可塞满硬盘的程序
  5. dababase 差异
  6. git不区分文件名大小写这种坑当然要跳出来
  7. python语言中print函数的作用_python中print()方法有什么
  8. SpringBoot整合quartz的一个例子
  9. sqoop-1.4.7安装
  10. Synopsys VCS vY-2006.06
  11. 在腾讯云开通短信验证服务并完成群发消息测试
  12. python问题解答网站_python问题解答网站
  13. 一文读懂什么是ICT
  14. element el-table表格数据合并
  15. 机械制造业信息化的基础是管理变革
  16. 2009年中国直销业9大主旋律
  17. 走着瞧Anbsp;Talenbsp;ofnbsp;Twonbsp;Donkeysnbsp;(200…
  18. 页面操作时显示“处理中,请稍候。。。”
  19. LSR and DLSR
  20. sql查询ID=1与数据后几条,并且将查询的两个数据显示在一个查询窗口中

热门文章

  1. 什么是深度学习以及它是如何工作的?
  2. MCE | 靶向相分离 小分子药物研发
  3. 重要的 SQL Server 函数 - 日期函数
  4. Vivado调节代码字体大小
  5. 一个MLDN学习的博客
  6. 时间敏感网络(TSN)关键协议的介绍
  7. java.io.FileNotFoundException关于使用Intellij Idea时系统找不到指定文件的解决方案
  8. 正排索引和倒排索引的区别
  9. Arcmap加载在线地图的方法总结
  10. C语言程序设计-1024 科学计数法