第二章关系数据库的零零散散

一.部分术语概念

1.域、笛卡尔积、关系、元组、属性

(1)域

一组具有相同数据类型的集合。其实就是属性的取值范围,不同属性可以来自同一个域。

栗子:整数集,实数集,也可以一些自定义的用于约束属性的取值的集合…

(2)笛卡尔积
是我无力敲打出来的符号所有域的所有取值的集合,就是自由组合,不可重复,也不可漏掉。

(3)关系
在这里插入图片描述关系就是笛卡尔积的子集。

(4)元组和属性

笛卡尔积中的每一个元素称为一个元组。

关系的逻辑结构是一张二维表,一行表示一个元组,一列表示一个属性。

(5)联系

笛卡尔积是所有域的所有取值的组合。

关系是笛卡尔积的子集。

元组和属性分别是关系的行和列。

(“域”比作x,y的取值范围 , 笛卡尔积就是在取值范围内的所有x,y构成的点(x,y), 而关系就像是某个特定曲线或平面里的满足条件的点…)

2.主码、候选码、外码

(1)候选码

候选码就是可以唯一标识元组的某个属性值,可以有多个。

(2)主码

若一个关系中有多个候选码,选定其中一个为主码。

(3)外码

它的官方定义是这个样子的 ↓
在这里插入图片描述其实就是 不是码的一个属性恰好和别人家(或自己家)的主码对应上了,叫外码,但它还是不算做参照关系的码。

(4)联系

候选码可以唯一标识元组,于是候选,入选了的候选码就是主码。

而外码不是本关系的候选码,本来没有机会,却碰巧与本关系或者其他关系的主码对应上(有后门!!),于是得到了一个新的职称——外码。

3.关系模式,关系,关系数据库

(1)关系模式

关系模式是对关系的描述。
抽象的“型”。

(2)关系

包含具体的“值”。

(3)关系数据库

在一个给定的应用领域中,所有关系的集合构成一个关系数据库。

数据库是数据的集合,关系数据库当然就是关系的集合了。

(4)联系

关系相当于一张二维表。

关系模式就是对关系抽象的描述。
关系数据库就是某一领域所有关系的集合。

二、关系模型的完整性规则

1.实体完整性规则

若属性A是基本关系R的主属性,则属性A不能去空值。

主属性不能为空

主属性是候选码的属性,候选码可以唯一标识元组,所以不能为空。

2.参照完整性规则

在这里插入图片描述
外码要么为空,要么源于被参照关系的主码

在参照完整性中,当空值符合语义要求时,外码可以为空值。

栗子:
(1)
R:公司职员关系(工号,姓名,性别,部门,住址)
其中工号为主码

S:住户关系(住址,户主,人数…)
其中住址为主码

上述R中,“住址”是R 的外码,显然,“住址”不能为空值,没有人没有住处,该码的空值不符合语义要求,所以不可为空。

(2)
R:班级关系(班号,人数,班长,班主任)
S:学生关系(学号,姓名,性别,班号)
其中班长为班级关系的外码,与学生关系的学号来源于同一个域。
班号为学生关系的外码。

班长可以为空值,表示该班级未选出班长,但班号不可为空值,因为每个学生在入学前就已经被分好班级。(emmm…栗子不太恰当,大家凑合着看)

三、章末课后题

(1) Π S N O ( σ J N O = J 1 ( Π S N O , J N O ( S P J ) ) ) \Pi_{SNO}(\sigma_{JNO='J1'}(\Pi_{SNO,JNO}(SPJ)))

(2) Π S N O ( σ P N O = P 1 ( Π S N O , P N O ( σ J N O = J 1 ( S P J ) ) ) ) \Pi_{SNO}(\sigma_{PNO='P1'}(\Pi_{SNO,PNO}(\sigma_{JNO='J1'}(SPJ))))

(3) Π S N O ( σ C O L O R = ( Π P N O , C O L O R ( P ) Π S N O , P N O ( σ J N O = J 1 ( S P J ) ) ) \Pi_{SNO}(\sigma_{COLOR='红'}(\Pi_{PNO,COLOR}(P)\Join \Pi_{SNO,PNO}(\sigma_{JNO='J1'}(SPJ)))

(4) Π J N O ( S P J ) Π J N O ( Π P N O ( σ C O L O R = ( P ) ) Π S N O ( σ C I T Y = ( S ) ) Π S N O , P N O , J N O ( S P J ) ) \Pi_{JNO}(SPJ)-\Pi_{JNO}(\Pi_{PNO}(\sigma_{COLOR='红'}(P))\Join \Pi_{SNO}(\sigma_{CITY='天津'}(S)) \Join \Pi_{SNO,PNO,JNO}(SPJ))

(5) Π J N O , P N O ( S P J ) ÷ Π P N O ( σ S N O = S 1 ( S P J ) ) \Pi_{JNO,PNO}(SPJ) \div \Pi_{PNO}(\sigma_{SNO='S1'}(SPJ))

以上为参照老师博文打出的公式。
以下为手写版作业:

在这里插入图片描述8.

五个基本运算有:

σ \sigma Π \Pi \cup - × \times

其余运算

\cap \Join ÷ \div

将其余运算用基本运算表示:

(1)R \cap S = R ( R S ) R -(R - S)

(2)关系R(A,X),关系S(B,Y)

R A θ B \underset{A θ B}\Join S = σ A θ B ( R × S ) \sigma_{A θ B}(R \times S)

(3)关系R(X,Y),关系S(Y,Z)

R ÷ \div S = Π X Π X ( Π X × Π Y ( S ) R ) \Pi_{X} - \Pi_{X}(\Pi_{X} \times \Pi_{Y}(S) - R)

发布了10 篇原创文章 · 获赞 11 · 访问量 3632

猜你喜欢

转载自blog.csdn.net/fu_GAGA/article/details/104648084