九、数据库技术基础识:
数据库设计阶段:
- 需求分析阶段 -> 确定系统边界。
- 逻辑设计阶段 -> 关系规范化分。
数据库三级模式和两层映射:
三级模式:
- 外模式、概念模式(也称模式)、内模式(也称存储模式)。
- 视图对应外模式、基本表对应模式、存储文件对应内模式。
- 一个数据库可以有多个外模式,只能有一个内模式。
两级映像:
- 模式/内模式映像:该映像存在于概念级和内部级之间,实现了概念模式到内模式之间的相互转换。
- 外模式/模式映像:该映像存在于外部级和概念级之间,实现了外模式到概念模式之间的相互转换。
- 两级映像功能保证了数据的独立性。数据独立性包括数据的物理独立性(模式/内模式映像)和数据的逻辑独立性(外模式/模式映像)。
五种基本的关系代数运算:
- 并集:∪ 交集:∩ 广义笛卡尔积: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 公理: