建立数据库系统离不开数据模型,本文介绍了常用的数据模型。重点介绍了关系数据模型的数据结构、数据操作、数据约束。
由于计算机不可能直接处理现实中的具体事物,所以人们必须事先把具体事物转换成计算机能够处理的数据。在数据库中用数据模型这个工具来抽象、表示和处理现实世界中的数据和信息。通俗的说,数据模型就是对现实世界的模拟、描述、表示。数据模型应该满足以下三个要求:
1、比较真实地描述现实世界
2、易为用户所理解
3、易于在计算机上实现
为什么需要数据模型?
由于数据的定义与操作从应用程序中剥离出来,交由DBMS来统一管理。于是DBMS需要采用某种数据结构来定义、存储所要管理的数据。这种狭义的数据结构类似于DBMS的数据模型。
数据模型含有哪些内容?
数据模型含有数据的静态结构、数据的动态操作(增删改查)、数据的完整性约束(描述数据、数据之间的联系、数据语义及完整性限制)。
1、数据结构
用于描述系统的静态特性,数据结构不仅要描述数据本身,还要描述数据之间的联系。数据结构是刻画一个数据模型性质最重要方面
2、数据操作
用于描述系统的动态特性。包括操作及有关的操作规则。数据库的主要操作:增删改查
3、数据的约束条件
是一组完整性规则的集合。完整性规则是数据模型中的数据及其联系所具有的约束规则,用来限定数据库状态以及状态的变化, 以保证数据的正确。
实体联系数据模型的地位与作用:
实体联系模型(Entity Relationship Model,ERM)是用得最多且最成熟的概念数据模型。
数据模型是用来描述数据的一组概念和定义,是描述数据的手段。
概念数据模型:面向用户、面向现实世界。它是按用户的观点对数据和信息建模。与DBMS无关,如E-R模型。
逻辑模型:用户从数据库管理系统看到的数据模型。与DBMS有关,如层次数据模型、网状数据模型、关系数据模型。它是按计算机系统的观点对数据建模
物理模型:是对数据最底层的抽象,描述数据在系统内部的表述方式和存取方法。,在磁盘或磁带上的存储方式和存取方法。
逻辑模型和物理模型都属于数据模型。概念数据模型只用于数据库设计,数据模型用于DBMS的实现。
数据模式是对数据结构、联系和约束的描述。数据模型是描述数据的手段,而数据模式是用给定的数据模型对数据的具体描述。
信息世界中的基本概念:
(1) 实体(Entity):客观存在并可相互区别的事物称为实体。可以是具体的人、事、物体或抽象的概念。
(2) 属性(Attribute):实体所具有的某一个特性称为属性。一个实体可以由若干个属性来刻画
(3) 键(Key)或称为码:唯一标识实体的属性集称为码
(4) 域(Domain):属性的取值范围称为该属性的域
(5) 实体型(Entity Type):用实体名及其属性名集合来抽象和刻画同类实体称为实体型
(6) 实体集(Entity Set):同一类型实体的集合称为实体集
(7) 联系(Relationship):现实世界中事物内部以及事物之间的联系在信息世界中反映为实体内部的联系和实体之间的联系。实体内部的联系通常是指组成实体的各属性之间的联系实体之间的联系通常是指不同实体集之间的联系。
概念模型的表示方法:实体-联系方法,该方法用E-R图来描述现实世界的概念模型。
实体型:用矩形表示,矩形框内写明实体名
属性:用椭圆表示,并用无向边将其与相应的实体连接起来。
联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1:1,1:n或m:n)
键:用下划线表示。
最常用的数据模型
非关系模型
层次模型:层次数据模型用树形结构表示各类实体以及实体之间的联系。现实世界中许多实体之间的联系就呈现出一种很自然的层次关系。如:行政机构、家庭关系等。层次模型是以记录为结点的有向树。
满足以下两个条件称为层次模型:
(1) 有且仅有一个结点无双亲。这个结点称为“根节点”
(2) 其它节点有且仅有一个双亲,但可以有多个后继
网状模型:用层次模型表示非树形结构很不直接,网状模型可克服这一弊病。网状模型比层次模型更具普遍性。它去掉了层次模型的两个限制,允许结点有多个双亲结点。比层次模型更能直接地描述现实世界。
网状结构特点:
(1) 允许一个以上的结点无双亲;
(2) 一个结点可以有多于一个的双亲,也可以有多个后继。两个结点间可有两种或多种联系(复合联系)。可能有回路存在。
关系数据模型:简称关系模型,关系模型中的所谓“关系”是有特定含义的。广义地说,任何数据模型都描述一定事物数据之间的关系。层次模型描述数据之间的从属层次关系,网状模型描述数据之间的多种从属的网状关系。
关系数据模型的数据结构:
关系(Relation):一个关系对应通常说的一张表
元祖(Tuple):表中的一行即为一个元祖
属性(Attribute):表中的一列即为一个属性。给每一个属性起一个名称即属性名。
主码(Key):表中的某个属性组,它可以唯一确定一个元祖。
域(Domain):属性的取值范围
分量:元祖中的一个属性值
关系模式:对关系的一个属性值。关系名(属性1,属性2,……,属性n)
关系数据模型的操作主要包括:查询、插入、删除、更新
关系的完整性约束条件:实体完整性、参照完整性、用户定义完整性