背景
关系完整性
- 关系(Relation):D1×D2×…×Dn的子集叫做在域D1,D2,…Dn上的关系,表示为R(D1,D2,…Dn)。R表示关系的名字,n是关系的目或度(degree),假设有k条记录,则k为关系R的基维(cardinality)。关系中的每一个元素是关系中的元组(tuple)。
- 关系模型中有三类完整性约束:实体完整性、參照完整性、用户定义的完整性。当中实体完整性和參照完整性是关系模型必须满足的完整性约束条件。被称作是关系的两个不变性。应该由关系系统自己主动支持。
用户定义的完整性是应用领域须要遵循的约束条件。体现了详细领域中的语义约束。 - 实体完整性规则:若属性(指一个或一组属性)A是基本关系R的主属性,则A不能取空值。依照实体完整性的规则的规定,基本关系的主码都不能取控制。假设主码由若干属性组成,则全部这些主属性都不能取空值。
对于实体完整性规则说明:
- 实体完整性规则是针对基本关系而言的。一个基本表通常相应现实世界的一个实体集。如学生关系相应于学生的集合。
- 现实世界中的实体是可区分的。即他们具有某种唯一性标识。比如每一个学生都是独立的个体,是不一样的。
- 关系模型中以主码作为唯一性标识。
- 主码中的属性,即主属性不能取空值。假设主属性取空值。就说明存在某个不可标识的实体,即存在不可区分的实体,这与(2)相矛盾,因此这个规则称为实体完整性。
- 參照完整性:设F是基本关系R的一个或一组属性,但不是关系R的码。K是基本关系S的主码。假设F与K相相应,则称F是R的外码(foreign key)。参照完整性指对于R中每个元组在F上的值必须为 a) F的每个属性值均为空值,b)F等于S中某个元素的主码值。
基本关系R为參照关系,基本关系S为被參照关系。外码并不一定要与相应的主码同名。若属性(或属性组)F是基本关系R的外码。它与基本关系S的主码K相相应(基本关系R与S不一定是不同的关系)。
关系范式
关系代数
连接
笛卡尔积 x (Cartesian Product)
θ连接 θ−join(inner join)
先给EMP表增加两条记录如下左图。
注意,这里没有出现E9 和E10,因为这些员工在ASG表中没有。同时,E2和E3出现了多次。
如果连接的条件是两个不同的属性名称,比如R.A=S.B ,那最终结果R.A和S.B都会保留下来。
自然连接 Natural Join (inner join)
与等值连接的区别:等值连接必须有等值条件,两个关系可以没有相同的属性列
自然连接必须由相同的属性列才能连接,可以把自然连接当成一种特殊的等值连接
左外连接 left outer join
对比等值连接那幅图,这里的E9 和 E10 都是有的,即使它们在ASG表中没有数据。反之不会
右外连接 Right outer join
参考左外连接,就是在ASG表中有,而EMP表中没有的,也会在结果中出现。反之不会。
全外连接 full outer join
参考前面两个,就是其中一个表中有的都会在结果集中出现。
半连接 semijoin
半连接的定义:
翻译过来就是说,半连接就是一种inner join ,但是join的对象不是符号右边那个表S的全部属性,而是S与R的共同属性。相当于先对S做了Projection生成SS,然后R与SS作下自然连接。
分布式数据库管理系统(DDBMS)架构
数据库管理系统(DBMS)的标准
ANSI/SPARC Architectural Model
Internal Schema
INTERNAL_REL EMPL{
INDEX ON E# CALL EMINX
FIELD = {
HEADER : BYTE(1)
E# : BYTE(9)
ENAME : BYTE(15)
TIT : BYTE(10)
}
}
Conceptual Shema
RELATION EMP{
KEY = {ENO}
ARRTRIBUTES ={
ENO : CHAR(9)
ENAME : CHAR(15)
TITLE : CHAR(10)
}
}
External Schema
CREATE VIEW BUDGET(PNAME,BUD) AS SELECT PNAME, BUDGET FROM PROJ
分布式数据库管理系统(DDBMS)的架构模型
分布式(Distribution)
分类
- Non-distributed
- client/server
- p2p
异构性(Heterogeneity嗨特肉鸡尼尔啼)
方面
- 数据模型(data model)
- 查询语言(query language)
- 事务管理算法(transaction management algorithms)
分类
- 同构性(Homogeneous 侯莫鸡鸟丝)
- 异构型(Heterogeneous 嗨特肉鸡鸟丝)
自治性(Autonomy)
维度
- 设计自治性(Design autonomy):决定自己设计的问题
- 通信自治性(Communication autonomy):决定是否以及如何与其它DBMS系统沟通
- 执行自治性(Execution autonomy):可以以任何它想要的方式执行本地的操作
分类
- Tight integration:单个镜像对所有用户完全可用,在用户来看是一个单一的系统(没啥自治性)。
- Semiautonomous:本地操作独立,但由一个联邦决定数据是否共享
- Total isolation:完全独立,不知道其它DBMS的存在,也不知道如何其它DBMS沟通
DDBMS Architectural
Client/server (Ax, D1, Hy)
多客户端/单服务器
- 最好的性价比
- 单点瓶颈
- 单点故障
- 难以扩展
多客户端/多服务器
p2p distributed DBMS (A0, D2, H0)
- LIS:local internal schema
- GCS:global conceptual schema
- LCS:local conceptual schema
- ES:external schema
GCS -> LCS
multidatabase system (A2, Dx, Dy)
Mediator/Wrapper Architecture
中介程序
全局目录问题
可能的目录管理策略
按照三个维度进行组合。
作业
什么是分布式数据库,为什么要提出分布式数据库?
-
分布式数据库是指数据在物理上分布而在逻辑上集中管理的数据库系统。物理上分布是指数据分布在物理位置不同并由网络连接的节点或站点上;逻辑上集中是指各数据库节点之间的逻辑上是一个整体,并由统一的数据库管理系统管理。不同的节点分布可以跨不同的机房、城市甚至国家。
-
随着计算机和信息技术的迅猛发展,行业应用系统的规模迅速扩大,行业应用所产生的数据量呈爆炸式增长,动辄达到数百TB甚至数百PB的规模,已远远超出单个服务器的处理能力,集中式数据库面对大规模数据处理逐渐表现出其局限性,甚至根本无法运行。而大数据中含有小数据集无法发现的潜在价值,因此,人们希望寻找一种能快速处理大数据和及时响应用户访问的方法,也希望对数据进行集中分析、管理和维护。这种迫切的需求推动着分布式数据库的诞生与发展。
请分别给出分布式数据库管理系统(DDBMS)的a)四层模式结构图和b)功能部件图。
四层模式结构图
功能部件图
请对分布式数据库系统(DDBS)同多数据库系统(MDBS)从设计方法、视图、DBMS本身等几方面进行比较,完成下表。
| MDBS | DDBS |
---|---|---|
Design | 自下而上 | 自上而下 |
GCS | 由LCS共享的部分形成GCS | 系统由GCS表述,向下映射到LCS |
ES | 拥有LES以及GES | 只有ES(GES) |
Individual DBMS | 多数据库管理系统是完全独立、自治的,不知道其它数据库的存在以及如何与它们通话 | 分布式管理系统的自治性是紧密集成的,对外是一个整体的,单一的系统。 |
假设我们有如下两个关系EMP和PAY,请给出下列操作的结果:
a) EMP x PAY (仅需列出结果关系的前6个元组和后六个元组,中间可省略)
b) EMP ∞EMP.TITLE=PAY.TITLE PAY
c) EMP ∞TITLEPAY
d) EMP∝EMP.TITLE=PAY.TITLE PAY
e) PAY∝PAY.TITLE=EMP.TITLE EMP
a)
ENO | ENAME | EMP.TITLE | PAY.TITLE | SAL |
---|---|---|---|---|
E1 | J.Doe | Elect.Eng. | Elect.Eng. | 55000 |
E1 | J.Doe | Elect.Eng. | Syst.Anal. | 70000 |
E1 | J.Doe | Elect.Eng. | Mech. Eng. | 45000 |
E1 | J.Doe | Elect.Eng. | Programmer | 60000 |
E2 | M.Smith | Syst.Anal. | Elect.Eng. | 55000 |
E2 | M.Smith | Syst.Anal. | Syst.Anal. | 70000 |
… | … | … | … | … |
E7 | R.Davis | Mech. Eng. | Mech.Eng. | 45000 |
E7 | R.Davis | Mech. Eng. | Programmer | 60000 |
E8 | J.Jones | Syst.Anal. | Elect.Eng. | 55000 |
E8 | J.Jones | Syst.Anal. | Syst.Anal. | 70000 |
E8 | J.Jones | Syst.Anal. | Mech. Eng. | 45000 |
E8 | J.Jones | Syst.Anal. | Programmer | 60000 |
b)
c)
d)
e)
参考
- The Principles of Distributed Database Systems, Third Edition