数据库原理及应用-数据模型之关系数据模型

2018-02-04 23:03:28

一、关系数据模型

关系型数据模型的基本的数据结构只有一种:表(relation)。在关系数据模型中将现实世界中的实体以及实体的联系都用表来表达,而层次数据模型中是用记录来表示实体,PCR表示关系,网状数据类型中是用记录来表示实体,系来表示关系,关系型数据模型将两者统一采用表来表达,这是一个很大的区别。

关系模型的特性:

  • 基于集合论的知识,有更高的抽象级别
  • 屏蔽掉底层的实现算法,容易理解
  • 引入关系代数系统
  • 引入结构化的查询语言
  • Soft link,软连接,通过建立对照表替代了指针

1、属性(Attributes)和域(Domain)

在现实世界中,描述一个事物,常常取其若干特征来描述,这些类型称为属性,属性的取值范围称为域。

在传统的关系数据模型中对域还加上了一个限制,就是所有的域都得是原子数据,也就是只能是基本的数据类型,不能出现表中套表的情况。允许出现空值。这称为一范式

2、关系(Relation)和元组(Tuple)

将现实世界中的实体或者联系可以建立一张表或者多张表。

关系可以看成定义在其所有属性域上的多元关系,这称为关系的模式,n是属性的个数,也被称为关系的目

对于关系的实例可以这样定义:

3、主键(Primary Key)

主键是一组属性集。主键(集)可以唯一确定一条元组,并且其任意子集无法做到这一点。如果不满足后一条我们称之为超键(super key)。比如id可以唯一确定一个人,{id,age}也可以唯一确定一条元组,但是其子集id也可以唯一确定一条元组,因此这被称为超键。

如果一个表中有多个主键,那么可以选择其中一个作为主键,其他的作为候补键(alternate key)

如果主键由所有属性组成,则称之为全键(all key)

4、外键(Foreign Key)及引用完整性

外键是一组属性集。外键(集)用来引用其他表中的元组,并且这个属性在被引用的表中得是主键。其实就是软连接。

引用完整性:如果把外键当作逻辑指针,那么它指向的元组必须是存在的,得非空。

5、其他的完整性约束

1)域完整性约束(Domain integrity constraint):值域得满足约束

2)实体完整性约束(Entity integrity constraint):主键的值不允许为空

二、关系代数

关系代数是关系数据模型的理论基础。

下面例子中使用的表:

  • Projection

投影操作就是挑选表中需要的列,将不需要的列的去除掉。投影操作应该要去重(去除重复元组),因为如果两条元组所有属性值都相等是没有意义的。但实际应用中,一般来说不会自动去重。

  • Selection

将所有满足条件的元组挑选出来。

  • Union, Intersection, Set-Difference

集合的并交差操作,执行集合的这些操作需要满足并兼容条件属性个数相同且属性的类型相同。

  • Cross-Product

笛卡尔乘积将两个表进行拼接,具体过程是元组之间两两组合,如果遇到属性重名的情况,需要对属性进行重命名。

  • Join

单纯的笛卡尔乘积是没有什么意义的,我们真正想要的是Join,也就是连接操作。

1)条件连接(Condition Join):先笛卡尔乘积,再选择操作(Sometimes called a theta-join)

2)等值连接(Equi-Join):条件连接中的C只有相等条件,将满足属性值相等的筛选出来

3)自然连接(Natural Join):在笛卡尔乘积上的所有公共属性上做等值连接,最常用。

  • Division

虽然不是基本的操作,但是很常用。主要适用于回答类似这种问题:Find sailors who have reserved all boats.

  • Outer Joins

外连接就是自然连接的扩展。首先进行自然连接,然后将不符合条件的补空值保留下来。外连接又分左外连接,右外连接和全外连接。

  • Outer Unions

外并操作就是把两个不满足并兼容的表进行合并。结果的属性集是两张表的属性的并集,元组是每张表的元素加上不存在属性补上空值。

三、关系演算

除了使用关系代数来表示关系操作外,还可以使用谓词演算来表达关系的操作,这称为关系演算。用关系代数来表达关系操作需要表明操作之间的次序,因此关系代数是一种过程性语言。用关系演算表示关系的操作,只要说明需要得到的结果,而不必表明操作的过程,因此这是一种非过程语言。目前SQL语言的就是以关系演算作为基础的。

关系演算随着所用变量的不同又可分为一下两种,这两种的本质是一样的:

1)元组关系演算(Tuple Relational Calculus,TRC)

2)域关系演算(Domain Relational Calculus,DRC)

  • 域关系演算

所谓域关系演算就是变量是表中的各个属性,结果就是使谓词逻辑为真的元组组成的表。

另外,值得一提的是在使用谓词演算的时候要防止不安全的查询,不安全查询是指结果元组是无穷多个的查询。例如:

就是要查询所有不在Sailors这张表里的元素,这里的查询结果就是无穷多个,是个不安全的查询。

  • 元组关系演算

元组关系演算和域关系演算的本质上一样的,只是在变量的选择上有一点差别,元组关系演算顾名思义变量选择的是元组。

四、ER图

E-R图也称实体-联系图(Entity Relationship Diagram),提供了表示实体类型、属性和联系的方法,用来描述现实世界的概念模型。

它是描述现实世界关系概念模型的有效方法。是表示概念关系模型的一种方式。用“矩形框”表示实体型,矩形框内写明实体名称;用“椭圆图框”表示实体的属性,并用“实心线段”将其与相应关系的“实体型”连接起来;

用”菱形框“表示实体型之间的联系成因,在菱形框内写明联系名,并用”实心线段“分别与有关实体型连接起来,同时在”实心线段“旁标上联系的类型(1:1,1:n或m:n)。

1)基数比约束

2)参与度约束

可以进一步的约束每个实体参与联系的最小最大次数称为参与度约束。可以用括号给出。

五、传统数据模型的弊端

我们将层次,网状和关系数据模型称为传统数据模型,传统数据模型有如下的弊端和局限:

  • 适合OLTP(On-Line Transaction Processing)联机事务处理的应用,是一种结构化数据的处理
  • 基于记录,不能很好的面向用户和应用
  • 缺乏基本的语义信息,无法直观的看出各个表之间的联系

六、其他数据模型

  1. Logic-based data model ,基于逻辑的数据模型:支持递归查询,提升DBMS的推理能力;
  2. Temporal data model,时态数据模型:有时间线信息
  3. Spatial data model,空间数据模型:更好的表达空间物体的关系
  4. XML data model

原文地址:https://www.cnblogs.com/TIMHY/p/8414745.html

时间: 2024-08-09 20:59:56

数据库原理及应用-数据模型之关系数据模型的相关文章

概念模型、数据模型、关系数据模型

概念模型和数据模型 数据模型的定义 关系数据模型

初学数据库——数据模型之关系数据模型

有几个基本概念:属性,阈,元组 关系数据库可以类比一个二维表,表的每一列对应属性的阈,表的每一行对应元组,关系则相当于这个表格,同时,关系并不完全等于这个表格,应该加以适当限制

逻辑数据模型之层次数据模型、网状数据模型和关系数据模型

上一篇文章简单介绍了概念数据模型.逻辑数据模型.物理数据模型的基本概念.特性以及三者所对应的数据库的开发阶段.现在针对逻辑数据模型中所用到的三种数据模型---层次数据模型.网状数据模型以及关系数据模型做一个相信的介绍与对比分析. 一.层次数据模型 定义:层次数据模型是用树状<层次>结构来表示实体类型和实体间联系的数据模型.(来自百度百科) 其实层次数据模型就是的图形表示就是一个倒立生长的树,由基本数据结构中的树(或者二叉树)的定义可知,每棵树都有且仅有一个根节点,其余的节点都是非根节点.每个节

概念数据模型、逻辑数据模型、物理数据模型(转)

最近在系统的学习数据库存储方面的知识加上在公司经常听同事们说起CDM,结合前段时间对MySQL的使用的心得将概念数据模型(Concept Data Model,CDM).逻辑数据模型(Logical Data Model,LDM).物理数据模型(Physical Data Model,PDM)做个简单的介绍.本文将介绍这三种模型的基本概念以及他们之间的不同. 在讨论三种数据模型之前,我们首先学习一下所谓的数据模型.数据模型由三部分组成:数据结构.数据操作和数据约束. 数据结构:数据结构主要描述数

数据库原理-几种数据模型

数据库应用系统中三种不同的数据模型 概念模型(E-R模型):为了实现用户的需求定义的模型,主要是初步表达用户需求 逻辑模型:按照用户观点对数据进行建模,主要用于数据库设计. 逻辑模型具体包括:层次模型.网状模型.关系模型.面向对象数据模型.对象关系数据模型.半结构化模型等. 物理模型:表示数据在系统内部的表示方法和存取方法,实现数据的物理存储.包括数据的存储位置,索引存放位置,存储文件位置和存储策略等存储细节问题. 数据模型的组成要素:数据结构.数据操作.数据完整性约束条件 数据结构 数据结构指

PowerDesinger:实体关系图-&gt;物理数据模型(关系表)-&gt;sql语句-数据库

之前参加项目的时候,就听说过PowerDesinger,但一直都没有用到过,这次通过接手基础的选课模块终于有机会通过powerDesinger的CDM模型创建数据库了. PowerDesinger中存在几种数据模型分别是:M----Model, 概念数据模型(CDM)Conceptual Diagram Model 逻辑数据模型(LDM) 物理数据模型(PDM)Physical Diagram Model 面向对象模型(OOM) 业务流程模型(BPM) 抽象程度(依次降低): CDM->LDM-

数据库原理及应用-数据模型之层次与网状模型

2018-01-22 20:55:42 一.层次模型 最先出现的数据模型,因为现实世界中的很多数据本身就存在层次关系,层次模型将客观世界描述成树状结构. 由IBM于1968年推出的IMS(Information Management System)数据库管理系统是第一个层次模型数据库管理系统,也是最典型的一个. 1.记录(record)和字段(field) 记录是用来描述某个事物或者事物间关系的可命名的数据单位.它包含若干字段,每个字段也是可命名的,字段只能是简单的数据类型,比如整形,字符串类型

.NET - EntityFramework 实体关系数据模型

EntityFramework 实体关系数据模型(DO.NET Entity Framework) ADO.NET Entity Framework 是微软以 ADO.NET 为基础所发展出来的对象关系对应 (O/R Mapping) 解决方案.该框架曾经为.NET Framework的一部分,但version 6之后从.NET Framework分离出来. 在项目中使用Entity Framework 要得到最高版本的Entity Framework 程序包,可以通过扩展与更新或者右击项目-引

关系数据模型

一.数据结构 关系数据模型是有若干个关系模式组成的集合.关系模式的实例成为关系.每个关系可看为一个二维表,表的行称为元组,用来标识实体集中的一个实体:表的列称为属性,列名即为属性名,属性名不能相同. 关系的描述称为关系模式(Relation Schema)它可以形式化地表示为: R(U,D,dom,F) 其中R为关系名,U为组成该关系的属性名集合,D为属性组U中属性所来自的域,dom为属性向域的映象集合,F为属性间数据的依赖关系集合. 通常简记为: R(U)或R(A1,A2,…,An) 其中R为