type
status
date
slug
summary
tags
category
icon
password
😀
这里写文章的前言: 一个简单的开头,简述这篇文章讨论的问题、目标、人物、背景是什么?并简述你给出的答案。
可以说说你的故事:阻碍、努力、结果成果,意外与转折。
 

📝 软考专项:上午题 #6 数据库

  • 数据库的六个设计步骤
    • 需求分析,得出数据流图DFD、数据字典DD
    • 概念设计,设计E-R图
    • 逻辑设计,设计关系模式,规范化
    • 物理设计,设计数据存储结构、索引
    • 实施和优化,数据装载
    • 运行和维护

一、概念数据模型

  • 是独立于计算机系统的模型,完全不涉及信息在系统中的表示,只是用来描述某个特定组织所关心的信息结构,即按照用户的观点来对数据和信息剑魔,一般采用实体-联系方法(E-R图)。常用术语如下
    • 实体:客观存在并可以相互区别的事物称为实体
    • 属性:描述实体的特征称为属性,一个实体可以由若干个属性来刻画,如学生实体用若干属性(学号、姓名等)
    • 码:唯一标识实体的属性称为码,如学生的学号
    • 域:属性的取值范围称为该属性的域,如性别的域为(男、女)
    • 实体型:具有相同属性的实体必然具有共同的特征和性质,用实体名及其属性名集合来抽象和刻画同类实体,如学生(学号,姓名,性别,班级)
    • 实体集:同型实体的集合称为实体集,如全体学生就是一个实体集
    • 联系:实体之间的对应关系称为联系

二、结构数据模型

  • 结构数据模型主要包括:层次、网状、关系、面向对象模型
notion image

三、数据库的三级模式结构

三级模式和两级映像

notion image
  • 概念模式:基本表
    • 也称为模式
  • 外模式:视图
    • 也称为用户模式,子模式
  • 内模式:存储文件
    • 也称为存储模式

两级映像

  • 模式/内模式映像 里
    • 概念级和内部级之间,实现了概念模式和内模式之间的相互转换,提现了较高的物理独立性
    • 保证物理独立性就需要修改概念模式和内模式之间的映像
  • 外模式/模式映像 外
    • 外部级和概念级之间,实现了外模式和概念模式之间的相互转换,体现了较高的逻辑独立性
    • 保证逻辑独立性就要修改外模式和概念模式之间的映像

四、关系运算

笛卡尔积

  • RxS相当于 R的每一个元祖与S的每一个元组组合
notion image

选择、投影

  • 投影运算是从关系的垂直方向进行运算,在关系R中选出若干属性列A组成新的关系,记
notion image
  • 上面这张图的R是选中的R的所有行和列,因为投影是垂直方向的运算,所以取A,C列的属性组成新的关系
  • 选择运算是从关系的水平方向进行运算,是从关系R中选择满足给定条件的元祖,记作
notion image
  • 上面这种图的S是选中的S的所有行和列,因为选择是水平方向的运算,所以选择条件B列等于5的行
    • 注意,1='5'和B='5'等价
    • 如果条件F不是B='5',而是1=3,那么就是取第一列和第三列属性相当的行,即取第一行2 3 2,数值需要加上''
    • notion image

连接

  • 连接分为θ连接、等值连接和自然连接3种,连接运算是从两个关系R和S的笛卡尔积中选择满足条件的元祖。因此可以认为笛卡尔积是无条件连接,其他的连接认为是有条件连接。

θ连接

  • 从R和S的笛卡尔积中选择属性间满足一定条件的元祖,记作
notion image
  • 运算方式:先求笛卡尔积,再根据条件选择满足的行,水平运算

等值连接

  • θ是“=”时,叫等值连接,运算方式一样

自然连接

  • 自然连接是除去重复属性的等值链接,它是连接运算的一个特例,是最常用的连接运算(考的最多)
  • 自然连接没有θ,运算方式:先求笛卡尔积,然后再选择公共属性列相等的行,最后去除后面那张表重复的属性
notion image

自然连接解题方法

  • 一般题目是两个关系模式,R和S,直接看R和S有几个共同属性列,然后从R的第一行与S的每一行去比较哪些共同属性列相同,相同就取这一行,并去掉后面的重复列

外连接

  • 外连接是连接运算的扩展,可以处理由于连接运算而确实的信息
notion image
  • 外连接分为左外连接,右外连接和全外连接

左外连接(保留左侧表的属性,然后进行自然连接,对于不满足自然连接的行,右侧表属性填null,左外连接前面的行都是自然连接,末尾是左外连接多出来的行)

  • 取出左侧关系中与右侧关系中任一元祖都不匹配的元祖,用空值null充填所有来自右侧关系的属性,构成新的元祖,将其假如自然连接的结果中
notion image

右外连接(保留右侧表的属性,然后进行自然连接,对于不满足自然连接的行,左侧表属性填null,右外连接前面的行都是自然连接,末尾是右外连接多出来的行)

notion image

全外连接(前面全是自然连接,后面的行是左外连接和右外连接的结果。)

notion image

疑难点

  • 对于查询效率的提升,一般先进行选择再求笛卡尔积,这样表的元祖会尽可能少一点

五、视图

  • 视图是从一个或者多个基本表或视图中导出的表,其结构和数据是建立在对表的查询基础上的。视图不是真实存在的基本表,而是一个虚拟表,它的数据列和数据行来源于其所引用的表。
  • 其作用如下
    • 可以使用视图集中数据、简化和定制不同用户对数据库的不同数据要求
    • 使用视图可以屏蔽数据的复杂性,用户不必了解数据库的结构,就可以方便的使用和管理数据,简化数据权限管理和重新组织数据以便输出到其他应用程序中。
    • 视图可以使用户只关心他感兴趣的某些特定数据和他们所负责的特定任务,而那些不需要的或者无用的数据则不在视图中显示。
    • 视图大大地简化了用户对数据的操作
    • 视图可以让不同的用户以不同的方式看到不同或者相同的数据集
    • 在某些情况下,由于表中数据量太大,因此在设计表时常将表进行水平或者垂直分割,以免表的结构的变化对应用程序产生不良的影响。
    • 视图提供了一个简单而有效的安全机制。
  • 视图的创建
    • CREATE VIEW 视图名 (列表名) AS SELECT 查询子句
    • notion image
  • 视图的删除
    • DROP VIEW 视图名
  • 对视图进行插入时会对基本表产生影响

六、索引

  • 数据库的索引与书籍中的索引类似,在一本书中,利用索引可以快速的查找所需信息,而无需阅读整本书。在数据库中,索引使数据库程序无需对整个表进行扫描,就可以在其中找到所需数据。
  • 数据库中的索引是某个表中一列或者若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单
  • 索引的作用如下
    • 可以创建唯一索引,保证数据记录的唯一性
    • 可以大大加快数据的检索速度
    • 可以加速表与表之间的链接,这一点在实现数据的参照完整性方面特别有意义。
    • 在使用order by 和 group by 子句中进行检索数据时,可以显著减少查询中分组和排序的时间
    • 使用索引可以在检索数据的过程中使用优化隐藏器,提高系统性能。
  • 索引分为聚集索引和非聚集索引,聚集索引是指索引表中索引项的顺序与表中记录的物理顺序一致
  • 内模式
    • 也称存储模式,是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式,定义所有的内部记录类型,索引和文件的组织方式,以及数据控制方面的细节。

七、关系模式

  • R<U,F>
    • R是关系名
    • U是一组属性
    • F是属性组U的一组数据依赖
      • A—》B A决定B或者B依赖于A
      • notion image

属性闭包计算

  • 寻找不能被决定的属性,候选键一般就包含这些不能被决定的属性(它们往往能决定其他属性),主键从候选键中选
  • 包含在候选关键字里面的属性都是主属性

第一范式

  • 设R是一个关系模式,R属于第一范式当且仅当R中每一个属性A的值域只包含原子项,即不可分割的数据项
  • 1NF不能排除数据冗余和更新异常等问题,因为其中可能存在部分函数依赖

第二范式和消除部分函数依赖

第三范式和消除传递函数依赖

消除主属性对候选码的部分、传递依赖

判断部分函数依赖技巧

  • 先找出候选码,如果候选码是多个属性组成的,那么就可能存在部分依赖,之后就去看一下是否有非主属性依赖于候选码中的属性(主属性)
  • 如果是单属性的话,那么肯定不存在部分函数依赖
 
相关文章
实习专项----超体日记
Lazy loaded image
Java专项----面试题篇
Lazy loaded image
软考专项:下午题 #1 试题一 数据流图
Lazy loaded image
软考专项:上午题 #8 设计模式
Lazy loaded image
软考专项:上午题 #7 面向对象
Lazy loaded image
软考专项:上午题 #5 知识产权
Lazy loaded image
软考专项:上午题 #7 面向对象软考专项:上午题 #5 知识产权
Loading...