软件设计师-基础知识科目-数据库技术基础识9

九、数据库技术基础识:

数据库设计阶段:

  • 需求分析阶段 -> 确定系统边界。
  • 逻辑设计阶段 -> 关系规范化分。

数据库三级模式和两层映射:

三级模式:

  • 外模式、概念模式(也称模式)、内模式(也称存储模式)。
  • 视图对应外模式、基本表对应模式、存储文件对应内模式。
  • 一个数据库可以有多个外模式,只能有一个内模式。

两级映像:

  • 模式/内模式映像:该映像存在于概念级和内部级之间,实现了概念模式到内模式之间的相互转换。
  • 外模式/模式映像:该映像存在于外部级和概念级之间,实现了外模式到概念模式之间的相互转换。
  • 两级映像功能保证了数据的独立性。数据独立性包括数据的物理独立性(模式/内模式映像)和数据的逻辑独立性(外模式/模式映像)。

五种基本的关系代数运算:

  • 并集:∪ 交集:∩ 广义笛卡尔积:x 投影:π 选择:σ
  • 投影:展示一个属性列或多个属性列数据。
  • 选择:展示一行或多行数据。 选择条件是中文时,有单引号。σ name='张三'
  • 链接:S1与S2合并,相同属性列合并。
  • 笛卡尔积与连接的区别:不会去掉重复的列。
  • 逻辑运算符要知道。
  • Tips:除不考。

链接:

  • 自然连接:是一种特殊的等值连接,它要求两个关系中,进行比较的分量必须是相同的属性组,并且在结果集中将重复的属性列去掉。
    • {(2,1,4,8) , (3,4,4,4)}
  • 左外连接:是取出左侧关系中,所有与右侧关系中任一元组都不匹配的元组,用空值 NULL 充填所有来自右侧关系的属性,构成新的元组,将其加入自然连接的结果中。
    • {(1,2,3,null) , (2,1,4,8) , (3,4,4,4) , (4,6,7,null)}
  • 右外连接:是取出右侧关系中,所有与左侧关系中任一元组都不匹配的元组,用空值 NULL 充填所有来自左侧关系的属性,构成新的元组,将其加入自然连接的结果中。
    • {(1,9,1,null) , (2,1,4,8) , (3,4,4,4) , (4,8,3,null)}
  • 全外连接:完成左外连接和右外连接。即填充左侧关系中与右侧关系中任一元组都不匹配的元组,并填充右侧关系中所有与左侧关系中任一元组都不匹配的元组,将产生的新元组加入自然连接的结果中。
    • {(1,2,3,null) , (1,9,1,null) , (2,1,4,8) , (3,4,4,4) , (4,6,7,null) , (4,8,3,null)}

码:

  • 候选码:属性或属性组合,值可以唯一标识一个元组。有多个候选码时,选择一个即可。
  • 全码(All-key):关系模式的所有属性组合构成主键。

属性闭包计算:

例1:

  • 如何挑选关键字,判断候选码:
    • step1:找出F函数中,箭头右边的所有元素,它们都是被决定(下图中:B、D、H、E);
    • step2:与U属性集的元素做差集,剩余的元素一定是候选码的一部分(A、C);
    • step3:对差集部分元素,做属性闭包计算,看是否可以推导出全部元素;
    • step4:不能完全推导,增加元素后,继续做闭包计算

例2 例3:

范式:

判断非主属性对码的部分函数依赖技巧:

  • 考题中,一般都已经满足第一范式,是原子的和不可再分。
  • 首先找出候选码。
  • 考题中,如果存在如下关系,是存在部分函数依赖,即不满足第二范式。
    • EM:为候选码。E->N、M->L

判断非主属性对码的传递函数依赖技巧:

  • 合并规则、伪传递率、分解规则
  • 先找候选码,如果符合3条推理规则,证明非主属性对码存在传递函数依赖。

E-R图:

  • 属性冲突:是指属性值的类型,取值范围或取值集合不同。比如:“零件号”有的定义为字符型,有的为数值型。
  • 命名冲突:就是不同的意义对象名称相同。或者,相同的意义不同的名称。
  • 结构冲突:是指同一对象在不同应用中具有不同的抽象。比如,“课程”在某一局部应用中被当做实体,而在另一局部应用中被当做属性。

数据库小点:

  • 数据库视图,在数据字典中存储的是视图的定义。
  • Armstroog 公理:

相关推荐

  1. 科目三)数据库基础知识

    2024-04-13 05:06:03       52 阅读
  2. 软件设计师笔记-计算机系统基础知识

    2024-04-13 05:06:03       26 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-13 05:06:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-13 05:06:03       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-13 05:06:03       82 阅读
  4. Python语言-面向对象

    2024-04-13 05:06:03       91 阅读

热门阅读

  1. 大模型日报2024-04-12

    2024-04-13 05:06:03       47 阅读
  2. Kafka

    Kafka

    2024-04-13 05:06:03      25 阅读
  3. props组件传值(子串子)

    2024-04-13 05:06:03       32 阅读
  4. postgresql命令

    2024-04-13 05:06:03       32 阅读
  5. SQL Server详细使用教程

    2024-04-13 05:06:03       40 阅读
  6. 干货分享|TensorFlow构建神经网络

    2024-04-13 05:06:03       39 阅读
  7. hive sql一直跑到reduce=100%,然后挂掉重新跑

    2024-04-13 05:06:03       94 阅读
  8. 【CMake】CMake打包Dll

    2024-04-13 05:06:03       34 阅读
  9. python内置函数compile(),complex()详解

    2024-04-13 05:06:03       33 阅读