软件设计师 上午题 数据库
软件设计师 上午题 数据库
一、数据库的三级模式结构
尽管数据库的产品很多,但其体系结构基本上都具有相同的特征,都采用“三级模式和两级映像”。

数据按外模式的描述提供给用户,按内模式的描述存储在磁盘上,而概念模式提供了连接这两级模式的相对稳定的中间层,并使得两级中任意一级的改变都不受另一级影响。
Ⅰ 概念模式
概念模式也称模式,是在逻辑层上对数据进行抽象,是数据库中全部数据的逻辑结构和特征的描述。起到了基本表的作用(基本表是实际存在的表,是实际存储数据的逻辑表示)。
Ⅱ 外模式
外模式也称用户模式或者子模式,是在视图层上对数据进行抽象。它可以作用户与数据库系统的接口,起到了视图的作用。
Ⅲ 内模式
内模式也称存储模式,是在物理层上对数据进行抽象。它起到了存储文件的作用。
Ⅳ 两级映像
数据库系统在三级模式之间提供了两级映像:模式/内模式映像,外模式/模式映像。两级映像的确立使得数据具有了独立性:
- 数据的物理独立性:内模式发生改变时数据库的逻辑模式不需改变,只需修改模式/内模式映像即可。
- 数据的逻辑独立性:用户的应用程序和数据库的逻辑结构是相互独立的,只需修改模式/外模式映像即可。
二、关系代数
Ⅰ 完整性约束
完整性规则提供了一种手段来保证用户对数据库做修改时不会破坏数据的一致性,关系的完整性一共分为三类:
- 实体完整性:关系中主键的值不能为空或部分为空。
- 参照完整性:如果关系R2的外键X与关系R1的主键相对应,则外键X的每个值必须在关系R1中主键的值中找到,或者为空值。
- 用户定义完整性:针对某一具体的关系数据库的约束条件,由应用的环境决定。例如人的年龄规定必须大于等于0,小于等于200。
Ⅱ 关系运算

以关系R和关系S为例:

1. 笛卡尔积
两个关系R(m个属性n个元组)和S(k个属性p个元组)的笛卡尔积记为R×S,结果是一个新关系:
- 包含m+k个属性(先R的所有数据,后S的所有属性)
- 包含n×p个元组(每个R的元组与每个S的元组组合一次)

2. 投影
投影是从关系的垂直方向进行运算,在关系R中选出若干属性列A组成新的关系,记作$\pi _A\left( R \right) $。

3. 选择
选择是从关系的水平方向进行运算,在关系R中选择满足给定条件的诸元组,记作$\sigma _F\left( R \right) \sigma _{1\ge 6}\left( R \right) $表示选取R关系中第1个属性值大于等于第6个属性值的元组。

4. 连接
连接运算是从两个关系R和S的笛卡尔积中选取满足条件的元组。因此,可以认为笛卡尔积是无条件连接,其它连接认为是有条件连接。
i. $\theta $连接
$\theta $连接是从R×S中选取属性间满足一定条件的元组。

ii. 等值连接
等值连接是特殊的$\theta $连接,其中的比较符号只能为"="。
iii. 自然连接
自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并在结果集中将重复属性列去掉。
自然连接可以记为。

需要注意的是,自然连接不仅要在垂直方向上运算,也要在水平方向上运算。
连接类型 | 条件 | 结果属性 | 重复列 |
---|---|---|---|
θ连接 | 任意比较条件 | 全部保留 | 保留 |
等值连接 | 等号条件 | 全部保留 | 保留 |
自然连接 | 同名属性自动匹配 | 去重 | 不保留 |
5. 外连接
外连接是连接运算的扩展,可以处理由于连接运算而丢失的信息。

如上图所示,中就丢失黎明、赵国庆等人的信息,而外连接就可以用来处理这种情况。
i. 左外连接
左外连接是取出左侧关系中所有与右侧关系中任一元组都不匹配的元组,用空值null来填充所有来自右侧关系的属性,并构成新的元组。

ii. 右外连接
右外连接和左外连接正相反,它是取出右侧关系中所有与左侧关系中任一元组都不匹配的元组,并用null替代后组成新的元组。

iii. 全外连接
可以理解为在进行完一次左外连接之后再进行一次右外连接。

Ⅲ 真题赏析

D,应该优先执行选择运算,这样一来可以大幅缩减笛卡尔积得到的结果,增加查询效率。

- C,由题意可得投影中的第一列为员工工号,第二列为姓名,也就是说第一张表的第一二列分别为员工工号、姓名,因此第一张表为E。此外,中文需要使用单引号包括。
- B。同理,第二张表为C。虽然最后不用查询商品号,但为了使用商品号属性和EC连接,在投影时还需要先包括这一列。
- C。同理,第三张表为EC。