《数据库技术与应用》第3章 习题答案

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第3章关系数据库

1. 试述关系模型的三个组成部分。 解:

关系模型的三个组成部分 (1) 关系数据模型的数据结构 (2) 关系数据模型的操纵与完整性约束 (3) 关系数据模型的存储结构

2. 解释下列术语的含义: ①笛卡尔积;②主码;③候选码;

④外码;⑤关系;⑥关系模式;⑦关系数据库 解:

①笛卡尔积:两个分别为n 目和m 目的关系R 和S 的笛卡尔积是一个(n+m)列的元组的集合。元组的前n 列是关系R 的一个元组,后m 列是关系S 的一个元组。若R 有k 1个元组,S 有K 2个元组,则关系R 和关系S 的笛卡尔积有k 1×k 2个元组。记作:

R ×S ={t r t s ̂|t r ∈R⋀t s ∈S}

②主码:若关系中的某一属性组的值能唯一的标识一个元组,则称该属性组为候选码。若一个关系有多个候选码,则选定其中一个为主码。

③候选码:若关系中的某一属性组的值能唯一的标识一个元组,则称该属性组为候选码。 ④外码:如果关系模式R 中的某属性集是另一个关系模式S 的主码,则该属性集为关系模式R 的外码。

⑤关系:关系是集合论的一个概念,也是关系模型的数据结构,它只包含单一的数据结构——关系。在关系模型中,现实世界的实体以及实体间的各种联系均用关系来表示。在用户看来,一个关系就是一张二维表,这种简单的数据结构能够表达丰富的语义。

⑥关系模式:关系的描述称为关系模式。它可以形式化地表示为R(U ,D ,DOM ,F)其中R 为关系名,U 为组成该关系的属性名集合,D 为属性组U 中属性所来自的域,DOM 为属性向域的映像集合,F 为属性间数据的依赖关系集合。

⑦关系数据库:在关系模型中,实体以及实体之间的联系都是通过关系来表示的。因此,在一个给定的应用领域中,所有实体以及实体之间的联系所对应的关系的集合就构成一个关系数据库。

3. 关系数据库的三个完整性约束是什么?各是什么含义? 解:

关系模式中有3类完整性约束:实体完整性、参照完整性和用户自定义完整性。 实体完整性:若属性(指一个或一组属性)A 是基本关系R 的主属性,则A 不能取空值。 参照完整性:若属性(或属性组)F 是基本关系R 的外码,它与基本关系S 的主码K S 相对应(基本关系R 与S 不一定是不同的关系),则对于R 中每个元组在F 上的值必须为:

• 或者取空值(F 的每个属性值均为空值)。 • 或者等于S 中某个元组的主码值。

用户自定义完整性:用户定义的完整性就是针对某一具体关系数据库的约束条件,它反

映某一具体应用所涉及的数据必须满足的语义要求。

4. 连接运算有哪些?等值连接和自然连接的区别是什么? 解:

连接运算中有两种最为重要、也最为常用的连接:一种是等值连接(Equivalent join),另一种是自然连接(Natural join)。连接运算称为等值连接。

等值连接是从关系R 和S 的笛卡尔积中选取关系A 和关系B 属性值相同的那些元组。 自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉。

5. 对参与并、交、差运算的两个关系R 、S 有什么要求?

答:关系R 和S 具有相同的目n(即两个关系都有n 个属性),其相应的属性取自同一个域。

6. 关系代数运算分为哪两大类?说明每种运算的操作含义。

解:

关系代数的运算根据运算符的不同可分为传统的集合运算和专门的关系运算两大类。 在传统的集合运算将关系看成是元组的集合,它包括集合的并运算、交运算、差运算和笛卡尔积运算。

专门的关系运算除了把关系看成是元组的集合外,还通过运算表达了查询的要求,它包括选择、投影、连接和除运算。

各种运算的操作含义:

(1) 并关系R 与关系S 的并记为:R ∪S ={t|t ∈R⋁t ∈S}。关系R 与关系S 的并由属于R 或属于S 的所有元组组成。

(2) 交关系R 与关系S 的交记为:R ∩S ={t ∈R⋀t ∈S}。关系R 与关系S 的交由属于R 又属于S 的所有元组组成。

(3) 差关系R 与关系S 的差记为:R −S ={t|t ∈R⋀t ∉S}。关系R 与关系S 的差由属于R 而不属于S 的所有元组组成。

(4) 笛卡尔积两个分别为n 目和m 目的关系R 和S 的笛卡尔积是一个(n+m)列的元组的集合。元组的前n 列是关系R 的一个元组,后m 列是关系S 的一个元组。若R 有k 1个元组,S 有K 2个元组,则关系R 和关系S 的笛卡尔积有k 1×k 2个元组。记作:R ×S ={t r t s ̂|t r ∈R⋀t s ∈S}

(5) 选择选择运算是一个单目运算,它是在关系r 中查找满足给定谓词(即选择条件)的所有元组,记作:

σF (R )={t|t ∈R⋀F (t )=′真′}

(6) 投影投影运算也是一个单目运算,它是从一个关系R 中选取所需要的列组成一个新关系,记作:

πA (R )={t[A]|t ∈R}

(7) 连接连接运算是一个二目运算,它是从二个关系的笛卡儿积中选取满足一定连接条件的元组,记作:

R ⋈S AθB

={t r t s ̂

|t r ∈R⋀t s ∈S⋀t r [A]θt s [B]} (8) 除给定关系R(X ,Y)和S(Y ,Z),其中X 、Y 、Z 为属性组。R 中的Y 与S 中的Y 可以有不同的属性名,但必须出自相同的域集。R 与S 的除运算得到一个新的关系P(X) ,P 是R 中满足下列条件的元组在X 属性列上的投影:元组在X 上的分量值x 的像集Y X 包含S

在Y上投影的集合。记作

R÷S={t r[X]|t r∈R⋀πr(S)⊆Y x}

7.设有一零件供应关系数据库,它包括S,P,J,SPJ四个关系模式:

供应商表:S(Sno(供应商代码),Sname(供应商名),Status(供应状态),City(供应商所在城市))。

零件表:P(Pno(零件代码),Pname(零件名),Color(颜色),Weight(重量)。

工程项目表:J(Jno(工程项目代码),Jname(工程项目名),City(工程项目所在的城市)。

零件供应情况表:SPJ(Sno(供应商代码),Pno(零件代码),Jno(工程项目代码),QTY(供应数量))。

今有数据如下表S,P,J,SPJ所示:

试分别用关系代数、元组演算和域演算表示如下查询:

①找出供应工程J1零件的供应商号。

②找出供应工程J1零件P1的供应商号。

③找出供应工程J1红色零件的供应商号。

④找出没有使用杭州供应商生产的绿色零件的工程号。

⑤找出用了S2供应商所供应的全部零件的工程号。

⑥找出供应红色的P1零件且其供应量大于200的供应商号。

相关文档
最新文档