精华内容
下载资源
问答
  • 关系模型数据结构非常简单,只包含单一的数据结构---关系 关系有3种类型:基本关系(通常又称基本表或者基表)、查询表和视图表 1、基本表示实际存在的表,实际存储数据的逻辑表示 2、查询表查询结果对应的...

    关系模型的数据结构非常简单,只包含单一的数据结构---关系

    关系有3种类型:基本关系(通常又称基本表或者基表)、查询表和视图表

    1、基本表示实际存在的表,是实际存储数据的逻辑表示

    2、查询表是查询结果对应的表

    3、视图表是由基本表或者其他视图表导出的表,续表,不对应实际存储的数据。

     

    前面说了,关系完整性由包括3个方面:实体完整性、参照完整性和用户定义完整性(前2个是任何关系数据库系统必须支持的,也是关系模型必须满足的,被称为2个不变性)

    1、实体完整性

    指一个或者一组属性A是基本关系R的主属性,那么A不能为空。(为空说明该实体不可标志,不可区分,实体不完整)

    2、参照完整性

    若属性F是基本关系R的外码(外键),它与基本关系S的主码K对应(R和S不一定是不同的关系),对于R中每个元组在F上的值必须为空或者是S上某个元组的主码值

    3、用户定义完整性

    针对某一具体关系数据库的约束条件,反映某一具体的应用所涉及的数据必须满足的定义。如:某个非主属性也不能为空,某个属性必须取惟一值等。

     

    关系代数:

    是一种抽象查询语言,,用对关系的运算来表达查询。

    传统的集合运算

    并(Union)、差(Except)、交(Intersection)、笛卡尔积(Cartestion Product)

    专门关系运算

    选择(Selection)、投影(Projection)、连接(Join)、除运算(Division)

     

    展开全文
  • 本节书摘来华章计算机《数据库技术原理与应用教程》一书...关系一种数学理论,运用这种理论所得到的逻辑模型称关系模型关系模型由关系数据结构、关系操纵及关系约束三部分组成。 1 关系数据结构 (1)表结构关系模...

    本节书摘来华章计算机《数据库技术原理与应用教程》一书中的第3章 ,第3.5.3节,徐洁磐 操凤萍 编著更多章节内容可以访问云栖社区“华章计算机”公众号查看。

    3.5.3关系模型的数据结构、操纵和约束

    关系是一种数学理论,运用这种理论所得到的逻辑模型称关系模型,关系模型由关系数据结构、关系操纵及关系约束三部分组成。

    1 关系数据结构
    (1)表结构
    关系模型统一采用二维表结构。二维表由表框架(frame)及表元组(tuple)组成。表框架由n个命名的属性组成,n称为属性元数(arity),每个属性有一个取值范围(即值域)。
    在表框架中可以按行存放数据,每行数据称为一个元组,或称表的实例(instance)。实际上,一个元组由n个元组分量组成,每个元组分量是表框架中每个属性的投影值。一个表框架可以存放m个元组,m称为表的基数(cardinality)。
    一个n元表框架及框架内m个元组构成了一个完整的二维表。表34给出了二维表的一个例子,这是一个有关学生(S)的二维表。
    表3-4二维表的一个实例


    image

    二维表一般满足下面七个性质:

    • 二维表中元组个数是有限的——元组个数有限性。
    • 二维表中元组均不相同——元组的唯一性。
    • 二维表中元组的次序可以任意交换——元组的次序无关性。
    • 二维表中元组的分量是不可分割的基本数据项——元组分量的原子性。
    • 二维表中属性名各不相同——属性名唯一性。
    • 二维表中属性与次序无关——属性的次序无关性(但属性次序一经确定就不能更改)。
    • 二维表中属性列中分量具有与该属性相同值域——分量值域的同一性。

    (2)关系
    关系(relation) 是二维表的一种抽象,它是关系模型的基本数据单位。具有n个属性的关系称n元关系,n=0时称空关系。每个关系有一个名称(即关系名),关系名及关系中的属性构成了关系框架。设关系名为R,其属性为a1, a2, …, an,则该关系的框架是:
    R(a1, a2, …,an)
    表34所示的关系框架可以表示成:
    S(sno,sn,sd,sa)
    每个关系有m个元组,设关系的框架为R(a1, a2,…, an),则其元组必具有下面的形式:
    (a11, a12, … , a1n)
    (a21, a22, … , a2n)

    (am1, am2, … , amn)
    其中aij(i∈{1,2,…,n},j∈{1,2,…,m})为元组分量。
    按关系框架所组成的关系元组集合可构成一个关系。如表34所示的关系R可表示为:R={(98001,张曼英,CS,18),(98002,丁一明,CS,20),(98003,王爱国,CS,18),(98004,李强,CS,21)}。
    一个语义相关的关系集合构成一个关系数据库(relational database)。而语义相关的关系框架集合则构成关系数据库模式(relational database schema),简称关系模式(relational schema)。
    关系模式支持子模式,关系子模式是关系数据库模式中用户所见到的那部分数据描述。关系子模式也是二维表结构,它对应着用户数据库,即视图(view)。
    关系与二维表是一个概念的两种不同表示形式,一般在理论研究中用关系讨论而在实际应用中则用二维表表示,在本书中基本上按此方法但并不严格区分。
    (3)键
    键是关系模型中的一个重要概念,它具有标识元组、建立元组间联系等重要作用。

    • 键(key):二维表中凡能唯一最小标识元组的属性集称为该表的键。
    • 候选键(candidate key):二维表中可能有若干个键,它们称为该表的候选键。
    • 主键(primary key):从二维表的所有候选键中选取一个作为用户使用的键称为主键。主键一般也简称键。
    • 外键(foreign key):若表A中的某属性集是表B的键,则称该属性集为A的外键。

    表一定有键,因为如果表中所有属性子集均不是键则至少表中属性全集必为键,因此也一定有主键。
    (4)关系与ER模型
    虽然关系的结构简单,但它的表示范围广,ER模型中的属性、实体(集)及联系均可用它表示,表35给出了ER模型与关系间的比较。

    image

    在关系模型中,关系既能表示实体集又能表示联系。表36给出了某公司职工间上下级联系的关系表示。

    image

    2关系操纵
    关系模型的数据操纵就是建立在关系上的一些操作,一般有查询、删除、插入及修改四种操作。
    (1)数据查询
    用户可以查询关系数据库中的数据,它包括一个关系内的查询以及多个关系间的查询。
    1)一个关系内查询的基本单位是元组分量,其基本过程是先定位后操作。所谓定位,包括纵向定位与横向定位,纵向定位就是指定关系中的一些属性(称列指定),横向定位就是选择满足某些逻辑条件的元组(称行选择)。通过纵向与横向定位后就可确定一个关系中的元组分量了。在定位后即可进行查询操作,即将定位的数据从关系数据库中取出并放入至指定内存。
    2)多个关系间的数据查询可分为3步进行。第1步将多个关系合并成一个关系,第2步对合并后的一个关系进行定位,最后进行查询操作。其中,第2步与第3步可看作一个关系内的查询,故我们只介绍第1步。多个关系的合并可分解成两个关系的逐步合并,如果有3个关系R1、R2与R3,那么合并过程是先将R1与R2合并成R4,然后再将R4与R3合并成最终结果R5。
    因此,对关系数据库的查询可以分解成三个基本定位操作与一个查询操作:

    • 一个关系内的属性指定。
    • 一个关系内的元组选择。
    • 两个关系的合并。
    • 查询操作。

    (2)数据删除
    数据删除的基本单位是元组,用于将指定关系内的指定元组删除。它也分为定位与操作两部分,其中定位部分只需要横向定位而无需纵向定位,定位后即是执行删除操作。因此,数据删除可以分解为两个基本操作:

    • 一个关系内的元组选择。
    • 关系中元组的删除操作。

    (3)数据插入
    数据插入仅用于一个关系,即在指定关系中插入一个或多个元组。插入数据时不需定位,只需将元组插入关系。因此,数据插入只有一个基本操作:
    关系中的元组插入操作。
    (4)数据修改
    数据修改是在一个关系中修改指定的元组与属性值。数据修改不是一个基本操作,它可以分解为两个更基本的操作:先删除需修改的元组,然后插入修改后的元组。
    (5)关系操作小结
    以上四种操作的对象都是关系,而操作结果也是关系,因此它们都是建立在关系上的操作。这四种操作可以分解成6种基本操作。这样,关系模型的数据操纵可以总结如下:
    1)关系模型数据操纵的对象是关系,而操纵结果也是关系。
    2)关系模型基本操作有如下六种(其中三种为定位操作,三种为查询、插入及删除操作):

    • 关系属性的指定。
    • 关系元组的选择。
    • 两个关系合并。
    • 关系的查询操作。
    • 关系中元组的插入操作。
    • 关系中元组的删除操作。

    (6)空值处理
    在关系元组的分量中允许出现空值(null value)以表示信息的空缺,空值的含义如下:

    • 未知的值。
    • 不可能出现的值。

    在出现空值的元组分量中一般可用NULL表示。目前的关系数据库系统都支持空值,但是它们都具有如下两个限制:
    1)关系的主键中不允许出现空值。因为主键是关系元组的标识,如主键为空值则失去了其标识的作用。
    2)需要定义有关空值的运算。在算术运算中如果出现空值则其结果为空值,在比较运算中如果出现空值则其结果为F(假)。此外,在统计时,如果SUM、AVG、MAX、MIN中有空值输入,其结果也为空值,而在作COUNT时如有空值输入则其值为0。
    3 关系中的数据约束
    关系模型允许定义三类数据约束,分别是实体完整性约束、参照完整性约束以及用户定义的完整性约束。此外,关系的安全性约束、故障恢复与多用户的并发控制实际上也是数据约束,其具体说明可见第5章。

    展开全文
  • 关系模型由关系模型数据结构关系模型的操作集合和关系模型的完整性约束三部分组成,这三部分也称为关系模型的三要素。 数据结构 关系数据模型源于数学,它用二维表来组织数据,而这个二维表在关系数据库中称为...

    关系数据模型

    关系数据模型

    关系模型由关系模型的数据结构、关系模型的操作集合和关系模型的完整性约束三部分组成,这三部分也称为关系模型的三要素

    数据结构

    关系数据模型源于数学,它用二维表来组织数据,而这个二维表在关系数据库中称为关系。关系数据库就是表或者说是关系的集合。

    数据操作

    关系数据模型给出了关系操作的能力,包括。

    1. 传统的运算关系:并(union)、交(intersection)、差(difference)、广义迪卡尔积(extended cartesian product)
    2. 专门的关系运算:选择(select)、投影(project)、连接(join)、除(divide)
    3. 有关的数据操作:查询(query)、插入(insert)、删除(delete)、更改(update)

    关系模型中的操作对象是集合(或表),而不是单个数据行,也就是说,关系模型中操作的数据以及操作的结果都是完整的集合(或表),这些集合可以只包含一行数据,也可以不包含任何数据。

    完整性约束

    在数据库中数据的完整性是指保证数据正确的特征,数据完整性是一种语义概念,它包括两个方面:

    1. 与现实世界中应用需求的数据的相容性和正确性。
    2. 数据库内数据之间的相容性和正确性。

    完整性约束在关系型数据库中一般分为三类,实体完整性(主键)、参照完整性(外建)、用户定义完整性

    关系型数据库的基本术语

    基本术语

    1. 关系(表)

      通俗地讲,**关系(relation)**就是二维表,二维表的名字就是关系的名字。

    2. 属性(列)

      二维表中的每一个称为属性(attribute),没一个属性有一个名字,称为属性名。n列就是n元。

    3. 值域(取值范围)

      二维表中属性的范围称为值域(domain)。如性别只能‘男’或‘女’。

    4. 元组(行)

      二维表中的一行数据称为一个元组(tuple)

    5. 分量(元组中每个属性的值)

      元组中的没一个属性值称为元组的一个分量(component),n元关系的每个元组有n个分量。

    6. 关系模式(表结构、表头)

      二维表的结构称为关系模式(relation schema),或者说关系模式就是二维表的表框架或表头结构。设有关系名R,属性分别是a、b、c、d,则关系模式可以表示为:R(a,b,c,d)。如果将关系模式理解为数据类型,则关系就是该数据类型的一个具体值。

    7. 关系数据库

      对应于一个关系模型的所有关系的集合称为关系数据库(relation database)

    8. 候选键

      如果一个属性或属性集(可以有多个候选键)的值能够唯一标识一个关系的一个元组而又不包含多余的属性,则称该属性或属性集为候选键(candidate key),如学号、身份证。候选键又称为候选关键字或候选码。

    9. 主键

      当一个关系中有多个候选键时,可以从中选择一个作为主键(primary key)。每个关系只能有一个主键。主键也称为主码或关键字,是表中的属性或属性组,用于唯一地确定一个元组。

    10. 主属性与非主属性

      包含在任意候选键中的属性称为主属性(primary attribute);不包含任一候选键的属性为非主属性(nonprimary attribute)

    术语对比表:

    关系术语 一般的表格属于
    关系名 表名
    关系模式 表头(表中所含列的描述)
    关系 (一张)二维表
    元组 记录或行
    属性
    分量 一条记录中的某个列的值

    对关系的限定

    关系可以看成二维表,但并不是所有二维表都是关系。关系数据库对关系有一些限定,如:

    1. 关系中的每个分量都必须是不可再分的最小数据。
    2. 表中列的数据类型是固定的,即列中的内一个分量都是相同类型的数据,来自相同的值域。
    3. 不同列的数据可以取自相同的值域,每个列称为一个属性,每个属性有不同的属性名。
    4. 关系表中列的顺序不重要,即列的次序可以任意交换,不影响其表达的语义。
    5. 行的顺序也不重要,交换行数据的顺序也不影响其内容。
    6. 同一个关系中的元组不能重复,即在一个关系中,不能有两个元组的值完全相同相同。

    关系代数

    关系代数是关系操作语言的一种传统的表示方式,它是一种抽象的查询语言,是一种单次关系(或者说是集合)语言。包括运算对象、运算符和运算结果。

    关系代数可分为两大类:

    1. 传统集合运算:这类运算完全把关系看作元组的集合,包括广义迪卡尔积运算、并运算、交运算、差运算
    2. 专门的关系运算:这类关系除了把关系看作元组的集合以外,还通过运算表达了查询的要求,包括选择、投影、连接、除运算

    传统关系运算

    1. 并运算

      设关系R与S均是n目关系,关系R与S的并记为:

      RS={ttRtS}R \cup S = \{t|t \in R \lor t\in S\}

      其结果仍是n目关系,由属于R或S的元组组成。

    2. 交运算

      设关系R与S均为n目关系,关系R与S的交记为:

      RS={ttRtS}R \cap S = \{ t| t\in R \land t \in S \}

      其结果仍是n目关系,由属于R也属于S的元组组成。

    3. 差运算

      设关系R与S均为n目关系,关系R与S的差运算记为:

      RS={ttRtS}R-S = \{t| t\in R \land t \notin S\}

      其结果仍是n目关系,由属于R且不属于S的元组组成。

    4. 广义迪卡尔积

      广义迪卡尔积不要求参加运算的两个关系具有相同的目数。

      两个分别为m目和n目的关系R和S的广义迪卡尔积是一个有 m+n 个列的元组的集合。元组的前m列是关系R的一个元组,后n个是关系S的一个元组。若R有K1个元组,S有K2个元组,则R和S的广义迪卡尔积有 K1*K2个元组,记为:

      R×S={trts^trRtsS}R \times S = \{ \hat{t_r t_s} | t_r \in R \land t_s \in S \}

      其中,trts^\hat{t_r t_s}表示有两个元组前后有序连接成的一个元组。

    专门的关系运算

    1. 选择

      选择是指从指定的关系中选出满足给定条件的元组而组成的一个新的关系。表示为:

      KaTeX parse error: Undefined control sequence: \and at position 28: …= \{t | t\in R \̲a̲n̲d̲ ̲F(t)= true\}

      其中 σ\sigma 是选择运算符,R是关系名,t是元组,F是逻辑表达式。

      如:σSdept=(Student)\sigma_{Sdept='计算机'}(Student)

    2. 投影

      投影运算是从关系R中选取若干列,并用这些属性组成一个新的关系。表示为:

      A(R)=t.AtR\prod_A(R) = {t.A | t\in R}

      其中, \prod是投影运算符,R是关系名,A是被投影的属性或属性组。t.A 表示t这个元组中相应于属性A的分量,也可以表示为t[A]。

      投影运算一般由两步完成:

      1. 选出指定的属性,形成一个可能含有重复行的新关系。
      2. 删除重复行,形成结果关系。

      如:Sname,Sdept(Student)\prod_{Sname,Sdept}(Student)

    3. 连接

      连接运算用来连接相互之间有联系的两个关系,从而产生一个新关系。这个过程通过连接属性来实现。连接运算主要有一下几种:

      1. θ\theta 连接(θ\theta 是比较运算符)

        表示为{trts^trRtrStr[A]θts[B]}\{\hat{t_r t_s}|t_r \in R \land t_r \in S \land t_r[A] \theta t_s[B]\}

        其中A和B分别是关系R和S上语义相同的属性或属性组,$\theta $是比较运算符

      2. 等值连接(θ\theta 连接的特例)

        θ\theta连接一致,是当θ\theta为=时的情况

      3. 自然连接

        自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性或属性组,并且在连接结果中去掉重复的列,使公共属性列只保留一个。

        自然连接与等值连接的区别:

        1. 自然连接要求相等的分量必须有共同的属性名,等值连接则不要求
        2. 自然连接要求吧重复的属性名去掉,等值连接不要求
      4. 外部连接

        如果希望不满足连接条件的元组也出现在连接结果中,则可以通过外连接(outer join)操作实现。外连接有三种形式:左外连接、右外连接、全外连接。含义是将指定一边(如左连接就是左边的关系)中不满足的元组也保留到连接后的结果中,并在结果中将另一关系各属性置为空(NULL)值。

      5. 半连接

      1. 除法的描述:

        设关系S的属性是关系R的属性的一部分,则R÷SR \div S为这样一个关系:

        此关系的属性是由属于R但不属于S的所有属性组成$R \div S $ 的任一元组都是R中某元组的一部分。但必须符合下列要求,即任取属于 $R \div S $ 的一个元组 t,则t与S任一元组连接后,都为 R 中原有的元组。

      2. 除法的一般形式

        设关系R(X,Y)和S(Y,Z),其中X、Y、Z为关系的属性组,则:

        R(X,Y)÷S(Y,Z)=R(X,Y)÷Y(S)R(X,Y) \div S(Y, Z) = R(X, Y) \div \prod_Y(S)

    展开全文
  • 其实层次数据模型就是的图形表示就是一个倒立生长的树,基本数据结构中的树(或者二叉树)的定义可知,每棵树都有且仅有一个根节点,其余的节点都是非根节点。每个节点表示一个记录类型对应与实体的概念,记录类型的...

    本文转载自:http://www.cnblogs.com/yue-blog/p/6010527.html

    一、层次数据模型

    定义:层次数据模型是用树状结构来组织数据的数据模型。

    其实层次数据模型就是的图形表示就是一个倒立生长的树,由基本数据结构中的树(或者二叉树)的定义可知,每棵树都有且仅有一个根节点,其余的节点都是非根节点。每个节点表示一个记录类型对应与实体的概念,记录类型的各个字段对应实体的各个属性。各个记录类型及其字段都必须记录。

    特征:树的性质决定了树状数据模型的特征

    1. 整个模型中有且仅有一个节点没有父节点,其余的节点必须有且仅有一个父节点,但是所有的节点都可以不存在子节点;

    2. 所有的子节点不能脱离父节点而单独存在,也就是说如果要删除父节点,那么父节点下面的所有子节点都要同时删除,但是可以单独删除一些叶子节点;

    3. 每个记录类型有且仅有一条从父节点通向自身的路径;

    实例:

    如图1,以学校某个系的组织结构为例,说明层次数据模型的结构。

    1.  记录类型系是根节点,其属性为系编号和系名;

    2.  记录类型教研室和学生分别构成了记录类型系的子节点,教研室的属性有教研室编号和教研室姓名,学生的属性分别是学号、姓名和成绩;

    3.  记录类型教师是教研室这一实体的子节点,其属性由教师的编号,教师的姓名,教师的研究方向。

    优点:

    1. 层次数据模型的结构简单、清晰、明朗,很容易看到各个实体之间的联系;

    2. 操作层次数据类型的数据库语句比较简单,只需要几条语句就可以完成数据库的操作;(百度百科)

    3. 查询效率较高,在层次数据模型中,节点的有向边表示了节点之间的联系,在DBMS中如果有向边借助指针实现,那么依据路径很容易找到待查的记录;

    4. 层次数据模型提供了较好的数据完整性支持,正如上所说,如果要删除父节点,那么其下的所有子节点都要同时删除;如图1,如果想要删除教研室,则其下的所有教师都要删除;

    缺点:

    1.结构呆板,缺乏灵活性。

    2. 层次数据模型只能表示实体之间的1:n的关系,不能表示m:n的复杂关系,因此现实世界中的很多模型不能通过该模型方便的表示;

    3.查询节点的时候必须知道其双亲节点的,因此限制了对数据库存取路径的控制。

    efdcccbfb84c0f0b88da88763d978534.png

    二、网状数据模型

    定义:用有向图表示实体和实体之间的联系的数据结构模型称为网状数据模型。

    其实,网状数据模型可以看做是放松层次数据模型的约束性的一种扩展。网状数据模型中所有的节点允许脱离父节点而存在,也就是说说在整个模型中允许存在两个或多个没有根节点的节点,同时也允许一个节点存在一个或者多个的父节点,成为一种网状的有向图。因此节点之间的对应关系不再是1:n,而是一种m:n的关系,从而克服了层次状数据模型的缺点。

    特征:

    1. 可以存在两个或者多个节点没有父节点;

    2. 允许单个节点存在多于一个父节点;

    网状数据模型中的,每个节点表示一个实体,节点之间的有向线段表示实体之间的联系。网状数据模型中需要为每个联系指定对应的名称。

    实例:

    同样是以教务管理系统为例,下面说明了院系的组成中,教师、学生、课程之间的关系。

    9254ea61ff81dbbd5f25ed081d3b780b.png

    图 2. 院系的教务管理系统

    由上图中可以看出课程(实体)的父节点由专业、教研室、学生。以课程和学生之间的关系来说,他们是一种m:n的关系,也就是说一个学生能够选修多门课程,一门课程也可以被多个学生同时选修。

    优点:

    1. 网状数据模型可以很方便的表示现实世界中的很多复杂的关系;

    2. 修改网状数据模型时,没有层次状数据模型的那么多的严格限制,可以删除一个节点的父节点而依旧保留该节点;也允许插入一个没有任何父节点的节点,这样的插入在层次状数据模型中是不被允许的,除非是首先插入的是根节点;

    3. 实体之间的关系在底层中可以借由指针指针实现,因此在这种数据库中的执行操作的效率较高;

    缺点:

    1. 网状数据模型的结构复杂,使用不易,随着应用环境的扩大,数据结构越来越复杂,数据的插入、删除牵动的相关数据太多,不利于数据库的维护和重建。

    2. 网状数据模型数据之间的彼此关联比较大,该模型其实一种导航式的数据模型结构,不仅要说明要对数据做些什么,还说明操作的记录的路径;

    三、关系型数据模型

    关系型数据模型对应的数据库自然就是关系型数据库了,这是目前应用最多的数据库。

    定义:使用表格表示实体和实体之间关系的数据模型称之为关系数据模型。

    关系型数据库是目前最流行的数据库,同时也是被普遍使用的数据库,如MySQL就是一种流行的数据库。支持关系数据模型的数据库管理系统称为关系型数据库管理系统。

    特征:

    1. 关系数据模型中,无论是是实体、还是实体之间的联系都是被映射成统一的关系---一张二维表,在关系模型中,操作的对象和结果都是一张二维表;

    2. 关系型数据库可用于表示实体之间的多对多的关系,只是此时要借助第三个关系---表,来实现多对多的关系,如下例子中的学生选课系统中学生和课程之间表现出一种多对多的关系,那么需要借助第三个表,也就是选课表将二者联系起来;

    3. 关系必须是规范化的关系,即每个属性是不可分割的实体,不允许表中表的存在;

    实例:

    下面以学生选课系统为例进行说明。学生选课系统的实体包括:学生、教师、课程;其联系一般为学生与课程之间是一种多对多的关系,教师与课程之间是多对多的关系。学生可以同时选择多门课程,一门课程也可以同时被多个学生同时选择;一位教师可以教授多门课程,一门可能可以由多个教师教授。因此他们之间的联系如下:

    8cc2df110443733f943706e15a73a808.png

    图 3 学生选课系统示意图

    将该图映射为关系数据模型中的表格为图4。从中可以看到学生与课程之间的联系以及教师和课程之间的多对多联系都被映射成了表格。其中选课表中的sut_id和cour_id分别是引用学生表和课程表的cour_id的外键;教课表也是如此。

    b8588c9cb0226e2801f3402914fead18.png

    图 4 关系数据模型的表格

    优点:

    1. 结构简单,关系数据模型是一些表格的框架,实体的属性是表格中列的条目,实体之间的关系也是通过表格的公共属性表示,结构简单明了;

    2. 关系数据模型中的存取路径对用户而言是完全隐蔽的,是程序和数据具有高度的独立性,其数据语言的非过程化程度较高;

    3. 操作方便,在关系数据模型中操作的基本对象是集合而不是某一个元祖;

    4. 有坚实的数学理论做基础,包括逻辑计算、数学计算等;

    缺点:

    1. 查询效率低,关系数据模型提供了较高的数据独立性和非过程化的查询功能(查询的时候只需指明数据存在的表和需要的数据所在的列,不用指明具体的查找路径),因此加大了系统的负担;

    2. 由于查询效率较低,因此需要数据库管理系统对查询进行优化,加大了DBMS的负担;

    关系数据模型的三种约束完整性:

    关系数据模型定义了三种约束完整性:实体完整性、参照完整性以及用户定义完整性。

    实体完整性:实体完整性是指实体的主属性不能取空值。实体完整性规则规定实体的所有主属性都不能为空。实体完整性针对基本关系而言的,一个基本关系对应着现实世界中的一个主题,例如上例中的学生表对应着学生这个实体。现实世界中的实体是可以区分的,他们具有某种唯一性标志,这种标志在关系模型中称之为主码,主码的属性也就是主属性不能为空。

    参照完整性:在关系数据库中主要是值得外键参照的完整性。若A关系中的某个或者某些属性参照B或其他几个关系中的属性,那么在关系A中该属性要么为空,要么必须出现B或者其他的关系的对应属性中。如上表中的选课关系的stu_id和cour_id分别是参考学生和课程的外键,那么对于现实的系统而言,stu_id和cour_id必须分别出现在学生和课程关系中,这就是外键参考的完整性,同时删除的时候根据设置的不同有不同的处理方式。

    用户定义完整性:用户定义完整性是针对某一个具体关系的约束条件。它反映的某一个具体应用所对应的数据必须满足一定的约束条件。例如,某些属性必须取唯一值,某些值的范围为0-100等。

    展开全文
  • 数据库以某种数据模型所确定的数据结构方式来组织和存储某个组织(或部门)相互关联的...数据模型主要由数据结构、数据操作、数据完整性规则三个部分组成。数据结构描述了组成数据库的基本成分;数据操作描述了对数据
  • 层次数据模型     定义:层次数据模型是用树状<...其实层次数据模型就是的图形表示就是一个倒立生长的树,基本数据结构中的树(或者二叉树)的定义可知,每棵树都有且仅有一个根节点,其余的...
  • 数据模型 ...数据模型通常由数据结构,数据操作和完整性约束条件三部分组成. 数据结构 数据库描述数据库的组成对象以及数据对象之间的关系. 数据操作 数据操作指对数据库中的对象或者数据的允许的...
  •  其实层次数据模型就是的图形表示就是一个倒立生长的树,基本数据结构中的树(或者二叉树)的定义可知,每棵树都有且仅有一个根节点,其余的节点都是非根节点。每个节点表示一个记录类型对应与实体的概念,记录...
  • 传统关系数据库中所存储的数据通常为结构数据。...XML数据模型由表示XML文档的结点标记树、结点标记树之上的操作和语义约束组成。XML结点标记树中包括不同类型的结点。其中文档结点树的根结点,XML文
  • 关系数据库采用的数据结构是什么?二叉树吗? 关系模型的具体存储方式:  (1)数值存储方式 地理实体以数值存储模型存放时,空间数据存储在几何表中,特征表的几何列存储指向几何表的指针。每一个地理实体的空间...
  • 关系模型

    千次阅读 2018-07-11 18:31:41
    关系模型 关系模型组成的三要素 关系数据结构 ...什么关系模式 关系模式(Relation Schema)...实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称作关系的两个不变性,应该关系系统自动...
  • 关系模型是1970年E.F.Codd提出的,用以表示实体和实体间联系的数据模型。关系就是包含行与列表,会随时间变化而变化,一个若干个表可组成关系数据库;而关系模型是符合一定条件的相对固定的关系模式。关系模型...
  • 1、关系数据库系统支持关系模型的数据库系统。关系模型由IBM的E.F.Codd提出。E.F.Codd因此获得Turing奖。目前全球的数据库几乎都为关系数据库。第1章初步介绍了关系模型及其基本术语,本章将稍微深入地介绍关系...
  • 关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。 关系 1、域:域一组具有相同数据类型的值的集合。 例如,自然数、整数、实数、长度小于25字节的字符串集合、(0,1)、(男,女)、大于等于0且...
  • 关系数据模型由三部分组成,分为关系数据结构关系操作、关系完整性约束。 一、关系数据结构 1、基本概念定义 域 域一组具有相同数据类型的值的集合 关系 关系是多种域的笛卡尔积的子集,关系的每一行对应一个...
  • ​ 按照数据模型的三个要素,关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成 1.1 关系 域:一组具有相同数据类型的集合 笛卡儿积: 笛卡尔乘积指在数学中,两个集合X和Y的笛卡尓积...
  • 关系模型,三级模式结构和完整性约束0.学习前言1.关系模型关系模型里的基本...在用户观点下,关系模型数据的逻辑结构是一张二维表,它行和列组成。 关系模型里的基本概念 (1)关系:一个关系对应通常说的一张表 (2
  • 实体-关系模型(或ER模型)描述特定知识领域中相关的事物。基本的ER模型实体类型(对感兴趣的事物进行分类)和指定实体之间可能存在的关系(那些实体类型的实例)组成。在软件工程中,为了执行业务流程,ER模型通常用于...
  • 关系模型和关系运算

    千次阅读 2015-11-09 22:52:54
    一、关系模型 为什么学习关系模型? 我们可以通过关系模型这种简单的数据结构能够描述出现实世界的实体及实体间的...关系模型是1970年E.F.Codd提出的。 它和层次、网状模型相比,有以下特点: 1.数据结构简单
  • 关系,关系模式,关系模型区别和联系

    千次阅读 多人点赞 2019-12-18 09:40:11
    关系模型:关系模型由关系数据结构,关系操作集合,关系完整性约束三部分组成. 关系和关系模式的区别 关系模式型,关系值,关系模式对关系的描述 关系关系模式在某一个时刻的状态或者内容,关系模式静态的,稳定...
  • 根据数据模型的三个要素,关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。 域 域一组具有相同数据类型的值的集合。 笛卡儿积 1、笛卡儿积所有域的所有取值的一个组合,不能重复。 2、n...
  • 第三章 关系模型.关系数据模型之前较老的数据模型有:层次模型和网络模型。...关系模型中用于描述数据的主要结构是关系。一个关系关系模式和关系实例共同组成。关系模式需要给出关系名,每个字段(称之为列或...
  • 计算机系统中的数据分为结构数据、半结构数据和非结构数据。 ...结构数据的一种形式,虽不符合关系型数据库或其他数据表的形式关联起来的数据模型结构,但包含相关标记,用来分隔语义元...
  • 关系模型数据结构是:二维表结构,它关系型数据库的基础。 关系数据模型关系数据结构、关系操作和关系完整性约束三部分组成。 关系必须规范化的,满足一定的规范条件。 关系数据库必须满足1NF范式,即...
  • (网上说)数据结构是用来反映一个数据的内部构成,即一个数据哪些成分数据构成,以什么方式构成。数据结构有逻辑上的数据结构和物理上的数据结构之分。逻辑上的数据结构反映成分数据之间的逻辑关系,而物理 上的...
  • 表:也称为关系一个二维的数据结构表名、列、若干行数据组成。每个表都有唯一的表名,表中每一行数据描述一条具体的记录值。关系的三种类型:基本关系表(实表)、查询表和视图表(虚表) 列:也称为字段或...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,392
精华内容 556
关键字:

关系模型是由数据结构

数据结构 订阅