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

一.部分术语概念

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))) ΠSNO(σJNO=J1(Π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)))) ΠSNO(σPNO=P1(ΠSNO,PNO(σ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))) ΠSNO(σCOLOR=(ΠPNO,COLOR(P)ΠSNO,PNO(σ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)) ΠJNO(SPJ)ΠJNO(ΠPNO(σCOLOR=(P))ΠSNO(σCITY=(S))Π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)) ΠJNO,PNO(SPJ)÷ΠPNO(σSNO=S1(SPJ))

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

在这里插入图片描述8.

五个基本运算有:

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

其余运算

∩ \cap ⋈ \Join ÷ \div ÷

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

(1)R ∩ \cap S = R − ( R − S ) R -(R - S) R(RS)

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

R ⋈ A θ B \underset{A θ B}\Join AθB S = σ A θ B ( R × S ) \sigma_{A θ B}(R \times S) σAθB(R×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) ΠXΠX(ΠX×ΠY(S)R)

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值