导图社区 第2章 关系数据模型
数据模型从抽象层次上描述了系统的静态特征、动态行为和约束条件 在数据库中用数据模型来抽象、表示和处理现实世界中的数据和信息
编辑于2022-04-01 00:09:19这是一篇关于富爸爸穷爸爸 - 财商启蒙经典的思维导图,《富爸爸穷爸爸》是罗伯特·清崎的经典之作,它以清新且极具冲击力的观念,打破了传统对财富认知的桎梏。书中清崎有两个“爸爸”,穷爸爸是他亲生父亲,高学历却一生为钱所困;富爸爸是好友父亲,虽未受高等教育却成为夏威夷的富豪。两种截然不同的财富人生,源于他们迥异的财富观念。穷爸爸认为,稳定的工作是获取财富的可靠途径,他教导清崎要好好学习,找一份好工作。而富爸爸则强调,要让钱为自己工作,要学会驾驭财富而非被财富奴役。在资产与负债的认知上,二者也大相径庭。穷爸爸觉得房子是资产,而富爸爸明确指出,房子如果是自住且需要不断偿还贷款,那便是负债,只有能带来正向现金流的才是资产。这一观点颠覆了很多人对资产的固有理解。富爸爸倡导培养财商,包括会计、投资、市场和法律等多方面知识和能力的综合。他鼓励人们勇于冒险,抓住投资机会,学会分析市场趋势。同时,要克服对损失的恐惧,因为失败是成功路上的必经阶段。这本书告诉我们,财富并非遥不可及,关键在于转变思维,提升财商,学会让钱为自己工作,如此才能踏上通往财富自由的道路。
这是一篇关于雅思政治阅读核心词汇(中文释义)的思维导图,主要内容包括:一、政治体系与制度,二、政治组织与机构,三、政治人物与角色,四、政治活动与行为,五、政治现象与问题,六、法律与权利,七、政治经济关联词汇,八、政治文化与意识形态。
这是一篇关于IELTS Economic Reading Vocabul的思维导图,主要内容包括:1. Basic Economic Concepts,2. Market and Trade,3. Economic Policies and Regulation,4. Economic Phenomena and Trends,5. Impacts and Consequences。
社区模板帮助中心,点此进入>>
这是一篇关于富爸爸穷爸爸 - 财商启蒙经典的思维导图,《富爸爸穷爸爸》是罗伯特·清崎的经典之作,它以清新且极具冲击力的观念,打破了传统对财富认知的桎梏。书中清崎有两个“爸爸”,穷爸爸是他亲生父亲,高学历却一生为钱所困;富爸爸是好友父亲,虽未受高等教育却成为夏威夷的富豪。两种截然不同的财富人生,源于他们迥异的财富观念。穷爸爸认为,稳定的工作是获取财富的可靠途径,他教导清崎要好好学习,找一份好工作。而富爸爸则强调,要让钱为自己工作,要学会驾驭财富而非被财富奴役。在资产与负债的认知上,二者也大相径庭。穷爸爸觉得房子是资产,而富爸爸明确指出,房子如果是自住且需要不断偿还贷款,那便是负债,只有能带来正向现金流的才是资产。这一观点颠覆了很多人对资产的固有理解。富爸爸倡导培养财商,包括会计、投资、市场和法律等多方面知识和能力的综合。他鼓励人们勇于冒险,抓住投资机会,学会分析市场趋势。同时,要克服对损失的恐惧,因为失败是成功路上的必经阶段。这本书告诉我们,财富并非遥不可及,关键在于转变思维,提升财商,学会让钱为自己工作,如此才能踏上通往财富自由的道路。
这是一篇关于雅思政治阅读核心词汇(中文释义)的思维导图,主要内容包括:一、政治体系与制度,二、政治组织与机构,三、政治人物与角色,四、政治活动与行为,五、政治现象与问题,六、法律与权利,七、政治经济关联词汇,八、政治文化与意识形态。
这是一篇关于IELTS Economic Reading Vocabul的思维导图,主要内容包括:1. Basic Economic Concepts,2. Market and Trade,3. Economic Policies and Regulation,4. Economic Phenomena and Trends,5. Impacts and Consequences。
第2章 关系数据模型
数据模型
概念数据模型(Conceptual Data Model,CDM)
面向用户、面向客观世界的模型
用来描述现实世界的概念化结构,与具体DBMS无关
CDM只关心现实世界中的事物、事务特征、联系
CDM是系统分析员、程序设计员、维护人员、用户之间的共同语言
CDM使设计人员在初期集中精力分析数据、数据之间的联系,屏蔽底层技术问题
概念模型必须转换成逻辑数据模型,才能在DBMS中实现
逻辑数据模型(Logical Data Model,LDM)
面向数据库系统的模型
用户从数据库所看到的数据模型
是具体的DBMS所支持的数据模型(网状/层次/关系/面向对象);
既要面向用户,也要面向系统;
LDM表示数据间联系的方法
一般的DBMS支持一种LDM(特殊的DBMS支持多种LDM)
物理数据模型(Physical Data Model,PDM)
面向机器表示的模型
描述数据在存储介质上的组织结构
PDM不仅与具体的DBMS有关,还与操作系统和硬件有关
每一种逻辑模型在实现时都有其对应的物理模型
DBMS为保证其独立性和可以执行,大部分PDM的实现工作由系统自动完成,而设计者只设计索引、聚簇等特殊结构
三要素
数据结构
与数据类型、内容、性质有关的对象,如关系模型中的域、属性、关系等
与数据之间联系有关的对象。
数据结构是对系统静态特征的描述。
数据操作
数据操作是指对数据库中各种对象的实例允许执行的操作的集合,包括操作及有关的操作规则。
数据库主要有检索和更新(包括插入、删除、修改)两大类操作。
数据模型必须定义这些操作的确切含义、操作符号、操作规则(如优先级)及实现操作的语言。
数据操作是对系统动态特性的描述。
数据的约束条件
数据的约束条件是一组完整性规则的集合。
完整性规则是指给定的数据模型中的数据及其联系所具有的制约和依存规则,用以限定符合数据模型的数据库状态及状态的变化,以保证数据的正确、有效、相容。
在关系模型中,任何关系必须满足实体完整性和参照完整性两个条件。
提供定义完整性约束条件的机制,自定义完整性,以反映具体应用所涉及的数据必须遵守的特定的语义约束条件。
例如,在医院的数据库中规定医生的年龄在18到60岁之间。
发展过程
层次模型
层次模型用树形结构来表示各类实体及实体间的联系。
有且只有一个结点没有双亲结点,这个结点称为根结点;
根以外的其他结点有且只有一个双亲结点。
层次模型优点
概念简单
数据库的安全性
数据独立性
数据库完整性
效率高
层次模型缺点
实现复杂
难于管理
缺乏结构独立性
应用程序编写和使用复杂性
实现的限制
缺乏标准
网状模型
满足下面两个条件的基本层次联系的集合称为网状模型:
允许一个以上的结点无双亲
一个结点可以有多于一个的双亲
在网状数据模型中,一个联系可以被称为一个系。每个系至少由两种记录类型组成:
一种等同于层次模型中父节点的首记录,
另一种等同于层次模型中子节点的属记录。
关系模型
网状模型优点
概念简单
数据访问的灵活性
提高了数据库的完整性
数据独立性
符合标准
网状模型缺点
系统复杂性
缺乏结构独立性
关系模型是目前最重要的一种数据模型。关系数据库系统采用关系模型作为数据的组织方式。
E.F.Codd提出的关系模型,开创了数据库关系方法和关系数据理论的研究,为数据库技术奠定了理论基础。
20世纪80年代以来,计算机厂商新推出的关系数据库管理系统几乎都支持关系模型,非关系模型的产品也大都加上了关系接口
面向对象模型
面向对象数据模型至少由以下这些部分组成:
数据模型的对象是真实世界实体或事件的抽象。
属性描述一个对象的特性。
共有一些相似特征的对象被归为一类。类是一组具有共同结构和行为的相近的集合。
类在一个类层次结构中组织起来。类层次结构像一个自顶向下的树,每个类只能有一个父类。
面向对象数据模型优点:
增加了语义内容
可视化表达包含了语义内容
数据库完整性
结构独立性和数据独立性
面向对象数据模型缺点:
面向对象数据模型标准缺乏
复杂的导航式数据访问
过高的系统开销减慢了事物处理的速度
关系数据模型
基本概念
关系实例
关系实例是由命名的若干列和行组成的表格。一般地,关系指代实例。
关系中的行称为元组,类似于文件中的记录,但与文件记录的不同之处是,所有的元组的列数相同,并且一个关系中不存在两个相同的元组。
关系实例中元组的数目称为基数(Cardinality)。
在关系模型中,关系中的列一般都应该被命名。由于关系是元组的集合,所以元组的次序是无关紧要的。
关系模式(Relation Schema),包括如下组成部分
关系名
关系中的属性的名字及相关联的域名
完整性约束
关系必须是规范化的,满足一定的规范条件
最基本的规范条件(第一范式,1NF):关系的每一个分量必须是一个不可分的数据项,即不能表中有表。
关系数据库
关系数据库是关系的有限集合。
因为关系由两部分组成,所以关系数据库也是由两部分组成,即关系模式的集合及对应的关系实例的集合。
关系模式的集合称为数据库模式,对应的关系实例的集合称为数据库实例。
关系模型的数据结构
基本术语:关系(Relation)
关系是笛卡尔积的一个有意义的子集
一个关系就是一张二维表
通常将一个没有重复行、重复列的二维表看成一个关系
每个关系都有一个关系名
二维表存放两类数据
实体本身的数据
实体之间的联系
元组(Tuple)
表中的一行,表示一个实体,关系是由元组组成的。
属性(Attribute)
表中的每一列称为属性,每个属性都有一个属性名,属性值则是各元组属性的取值。
域(Domain)
属性的取值范围称为域。同一属性只能在相同域中取值。例如,性别属性“Psex”的域为“男”和“女”。
分量(Component)
元组中的一个属性值。
键(Key)
关系中能唯一区分不同元组的属性或属性组合,称为关系的一个键,或者称为关键字、码。
关键字的属性值不能取“空值”——实体完整性规则。
候选健(Candidate Key)
凡在关系中能够唯一区分确定不同元组的属性或属性组合,称为候选健。
包括在候选键中的属性成为主属性,不包括在候选键中的属性称为非主属性。
主键(Primary Key,PK)
当一个关系中有多个候选健的时候,从中选定一个作为关系的主键。
每个关系中有且只有一个主键。
外键(Foreign Key,FK)
关系A中某个属性或属性组合是另一个关系B中的主键,称此属性或属性组合为关系A的外键。
关系模式(Relation Schema)
对关系的描述称为关系模式,其格式为:
关系名(属性名l,属性名2,…,属性名n)
例如:患者(编号,姓名,性别,年龄)
关系模型的数据操作
关系数据操作包括两类:
查询
更新 (插入、删除和修改 )
操作语言
用户可以通过关系语言来完成对数据的各种操作
关系语言特点是高度非过程化,即用户只需说明“做什么”而不必说明“怎么做”。
关系模型的数据约束
数据模型中固有的约束,如元组不能重复。
可以在数据模型的模式中直接表述的约束,如数据定义语言(DDL)中指定的完整性约束。
不能在数据模型的模式中直接表述的约束,由应用程序表示和执行。
关系模型的优缺点
关系数据模型的优点:
关系模型与非关系模型不同,它是建立在严格的数学概念的基础上的。
数据结构简单、清晰。
更高的数据独立性,更好的安全保密性。
丰富的完整性。
关系数据模型的缺点:
对“现实世界”实体的表达能力弱。
由于存取路径对用户透明,查询效率往往不如非关系数据模型。
关系模型只有一些固定的操作集。
不能很好的支持业务规则。
关系
域(Domain)
域是一组具有相同数据类型的值的集合。
笛卡尔积(Cartesian Product)
给定一组域D1, D2, … , Dn,这些域中可以有相同的。 D1, D2, … , Dn的笛卡尔积为:
D1D2…Dn={(d1,d2,…,dn)|di∈Di, i=1,2,…,n}
其中:每一个元素(d1, d2, … , dn)叫作一个n元组,元组中每一个值di叫做一个分量。
笛卡尔积举例:给出3个域: D1 = Student = {张同学,李同学} D2 = Advisor = {王老师,赵老师} D3 = Department = {外语系,计算机系} 则D1,D2,D3的笛卡尔积为: D=D1×D2×D3={ (张同学,王老师,外语系), (张同学,王老师,计算机系), (张同学,赵老师,外语系), (张同学,赵老师,计算机系), (李同学,王老师,外语系), (李同学,王老师,计算机系), (李同学,赵老师,外语系), (李同学,赵老师,计算机系)} D的基数为|D1|×|D2|×|D3|=?A:6; B:8; C:9;27
笛卡儿积D1×D2×…×Dn的子集叫做在域D1,D2,…,Dn上的n元关系
用R(D1,D2,…,Dn)表示,R是关系名。
关系中的每个元素是关系中的元组,通常用 t (tuple)表示。
关系是笛卡儿积的有一定意义的、有限的子集,所以关系也是一个二维表。
关系可以有3种类型:
基本关系(又称基本表):实际存在的表,是实际存储数据的逻辑表示
查询表:查询结果对应的表
视图表:由基本表或其它视图标导出的表,虚表,不对应实际存储的数据
Relation 与Relationship的区别?
关系的性质
有一个关系名,并且跟关系模式中所有其他关系不重名;
每一个单元格都包含且仅包含一个原子值;
每个属性都有一个不同的名字(指同一关系中);
同一属性中的各个值都取自相同的域;
各个元组互不相同,不存在重复元组;
属性的顺序并不重要;
理论上讲,元组的顺序并不重要。
关系模式
关系数据库模式S包含关系模式的集合R={R1,R2,…,Rm}和完整性约束的集合IC
例如:HIS={Dept,Doctor,Patient,Diagnosis}
关系操作
关系操作方式:集合操作
操作的对象与结果都是集合。
一次一集合(set at a time)。
查询:选择、投影、连接、除、并、交、差
数据更新:插入、删除、修改
关系数据库语言
关系完整性
关系模型的完整性规则是对关系的某种约束条件,保证数据库中数据的正确性和一致性
三类完整性约束
实体完整性:主码不能取空值
参照完整性:通过外码实现,避免孤子记录
用户定义完整性:各类商业规则
实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称作是关系的两个不变性,应该由关系系统自动支持。
关系代数
集合运算
基本集合运算
并
差
交
笛卡尔积
两个分别为n目和m目的关系R和S的笛卡尔积是一个 (n+m)列的元组的集合。元组的前n列是关系R的一个元组,后m列是关系S的一个元组。
若R有k1个元组,S有k2个元组,则关系R和关系S的笛卡尔积有k1×k2个元组。记为:
专门集合运算
选择运算
投影运算
连接运算
自然连接:
从两个关系的广义笛卡儿积中选取在相同属性列B上取值相等的元组,并去掉重复的行。
R S = { rs | rR sS r[B]=S[B] }
自然连接中相等的分量必须是相同的属性组,并且要在结果中去掉重复的属性,而等值连接则不必。
进行自然连接的步骤如下:
计算R S;
选择同时出现在R和S中属性相等元组;
去掉重复属性。
如果两个关系没有公共属性,自然连接就是笛卡尔积。
各种连接
等值连接(Equijoin)
θ为“=”的连接运算称为等值连接
自然连接(Natural join)
特殊的等值连接
两个关系中进行比较的分量必须是相同的属性组
在结果中把重复的属性列去掉
左连接(Left Join)
R左连接S:所有来自R的元组和那些连接字段相等处的S的元组。
右连接(Right Join)
R右连接S:所有来自S的元组和那些连接字段相等处的R的元组。
除运算
象集Z:
给定一个关系R(X,Z),X和Z为属性组。当t[X]=x时,x在R中的象集(Images Set)为:
Zx={t[Z]|tR, t[X] = x }
象集Z表示R中属性组X上值为x的诸元组在Z上分量的集合。
Zx=a1=?
Zx=a2=?
给定关系R(X,Y)和S(Y,Z),其中X,Y,Z为属性组。R中的Y与S中的Y可以有不同的属性名,但必须出自相同的域集。
R与S的除运算得到一个新的关系P(X),P是R中满足下列条件的元组在X属性列上的投影:元组在X上分量值x的象集Yx包含S在Y上投影的集合。
R÷S = {tr [X] | tr R ∧πY (S) Yx }
其中Yx:x在R中的象集,x = tr[X]
查询优化
将一个关系代数表达式转换为另一个具有较高效率的关系代数表达式的过程称为“查询优化”,但结果等价。
总思想:减少数据量、减少扫描次数
关系代数表达式的优化准则:
提早执行选择运算。
合并笛卡尔积与其后的选择运算为连接运算。
将投影运算与其后的其他运算同时进行,以避免重复扫描关系。
将投影运算和其前后的二目运算结合起来,以避免为去掉某些字段再扫描一遍关系。
执行连接前对关系适当地预处理.就能快速地找到要连接的元组。
存储公共子表达式。
关系演算*
关系演算也是一种对关系数据库内容进行操作的语言
关系演算是非过程的,关系代数用过程化的方式指定了操作序列,但是关系演算仅仅指明获得什么信息而没有指明如何获得信息。
理论上,关系代数和关系演算被证明是完全等价的
关系演算可以分为元组关系演算和域关系演算(QBE,Query By Example)
本章小结
数据模型
三要素:数据结构、数据操作、约束条件
关系数据模型
关系代数运算
基本运算:交、差、并、笛卡尔积
专门运算:选择、投影、连接、除