模型是对现实世界特征的模拟和抽象,数据模型也是一种模型。在数据库技术中,用数据模型对现实世界数据特征进行抽象,来描述数据库的结构与语义。
数据模型分类
目前广泛使用的数据模型有两种:
-
概念数据模型
:简称为概念模型,它表示实体类型及实体间的联系,是独立于计算机系统的模型。概念模型用于建立信息世界的数据模型,强调其语义表达功能,要求概念简单、清晰,易于用户理解,它是现实世界的第1层抽象,是用户和数据库设计人员之间进行交流的工具。 -
结构数据模型
:简称为数据模型,它是直接面向数据库的逻辑结构,是现实世界的第2层抽象。数据模型涉及计算机系统和数据库管理系统,如层次模型、网状模型、关系模型等。
概念模型
概念模型
是对信息世界的建模,它应当能够全面、准确地描述信息世界,是信息世界的基本概念。
概念模型的表示方法很多,其中最为著名和使用最为广泛的是P.P.Chen于1976年提出的E-R模型
(Entity-Relationship)。E-R模型直接从现实世界中抽象出实体类型及实体间的联系,是对现实世界的一种抽象,它的主要成分是实体、联系和属性。利用E-R模型进行数据库的概念设计,可以分为3步:首先设计局部E-R模型,然后把各个局部E-R模型综合成一个全局E-R模型,最后对全局E-R模型进行优化,得到最终的E-R模型。
E-R图通用的表示方式如下:
-
用矩形框表示实体型,在框内写上实体名。
-
用椭圆形框表示实体的属性,并用无向边把实体和属性连接起来。
-
用菱形框表示实体间的联系,在菱形框内写上联系名,用无向边分别把菱形框与有关实体连接起来,在无向边旁注明联系的类型。
E-R模型有两个明显的优点:接近于人的思维,容易理解;与计算机无关,用户容易接受。
E-R方法是抽象和描述现实世界的有利工具。用E-R图表示的概念模型与数据模型相互独立,是各种数据模型的共同基础,因而比数据模型更一般、更抽象、更接近现实世界。
数据模型的要素和种类
数据模型是严格定义的一组概念的集合,这些概念精确地描述了系统的静态特征、动态特征和数据约束条件,这是数据模型的三要素。
-
数据结构:用于描述系统的静态特征,是所研究的对象类型的集合,这些对象是数据库的组成部分,包括两个方面。
-
数据本身:数据的类型、内容和性质等。
-
数据之间的联系:数据之间是如何相互关联的。
-
-
数据操作:是对数据库中的各种对象的实例允许执行的操作集合。数据操作包括操作对象有关的操作规则,主要有检索和更新(包括插入、删除和修改)两类。
-
数据约束条件:是一组完整性规则的集合。完整性规则是给定数据模型中的数据及其联系所具有的制约和依存规则,用以限定符合数据模型的数据库状态及其状态的变化,以保证数据的正确、有效和相容。
数据模型是数据库系统的一个关键概念,数据模型不同,相应的数据库系统就完全不同,任何一个数据库管理系统都是基于某种数据模型的。数据库管理系统支持的数据模型分为4种:
-
层次模型:用“树”结构来表示数据之间的关系。
-
网状模型:用“图”结构来表示数据之间的关系。
-
关系模型:用“表”结构来表示数据之间的关系。在层次模型、网状模型、关系模型三种数据模型中,关系模型结构简单、数据之间的关系容易实现,因此关系模型是目前广泛使用的数据模型,并且关系数据库也是目前留下的数据库。
-
关系对象模型:一方面对数据结构方面的关系结构进行改进;另一方面,人们对数据操作引入了对象操作的概念和手段。
关系模型
关系模型是目前最重要的一种数据模型,关系数据库系统采用关系模型作为数据的组织方式。关系模型是在20实际70年代初由美国IBM公司的E.F.Codd提出的,为数据库技术的发展奠定了理论基础。
关系模型与以往的模型不同,它是建立在严格的数据概念基础上的。关系模型中数据的逻辑结构是一张二维表,它由行和列组成。下面分别介绍关系模型中的相关术语:
-
关系
(Relation):一个关系就是一张二维表。 -
元组
(tuple):也称记录,关系表中每行对应一个元组,组成元组的元素称为分量。数据库中的一个实体或实体之间的一个联系均使用一个元组来表示。 -
属性
(Attribute):表中的一列即为一个属性,给每个属性取一个名称为属性名。属性具有型和值两层含义:属性的型是指属性名和属性值域;属性的值是指属性具体的取值。 -
域
(Domain):属性的取值范围。 -
分量
(Component):元组中的一个属性值。 -
候选码
(Candidate Key):若关系中的某一属性或属性组的值能唯一标识一个元组,且从这个属性组中去除任何一个属性,都不再具有这样的性质,则称该属性或属性组为候选码,简称为码。 -
主码
(Primary Key):若一个关系中有多个候选码,则选定其中一个为主码。 -
全码
(All Key):在最简单的情况下,候选码只包含一个属性;在最极端的情况下,关系模式的所有属性都是这个关系模式的候选码,称为全码。全码是候选码的特例。 -
主属性
(Prime Attribute)和非主属性
(Non-prime Attribute):在关系中,候选码中的属性称为主属性,不包含在任何候选码中的属性称为非主属性。 -
关系模式
(Relation Schema):关系的描述称为关系模式,它可以形式化地表示为R(U, D, Dom, F)
。其中,R为关系名;U为组成该关系的属性的集合;D为属性组U中的属性来自的域;Dom为属性向域的映像集合;F为属性间数据依赖关系的集合。关系模式通常可以简记为R(U)
或R(A1, A2, ..., An)
。其中R为关系名,A1, A2, …, An为属性名。而域名及属性向域的映像常直接称为属性的类型及长度。关系是关系模式在某一时刻的状态或内容,关系模式是静态的、稳定的,而关系是动态的、随时间不断变化的,因为关系操作在不断地更新着数据库中的数据。
关系的性质
-
同一属性的数据具有同质性,即每一列中分量是同一类型的数据,它们来自同一个域。
-
同一关系的属性名具有不可重复性,即同一关系中不同属性的数据可出自同一个域,但不同属性的属性名不能相同。
-
关系中列的为止具有顺序无关性,即列的次序可以任意交换、重新组织。
-
关系具有元组无冗余性,即关系中的任意两个元组不能完全相同。
-
关系中元组的位置具有顺序无关性,即元组的顺序可以任意交换。
-
关系中每个分量必须取原子值,即每个分量都必须是不可分的数据项。
关系模型要求关系必须是规范化的,即要求关系模式必须满足一定的规范条件,这些规范条件中最基本的一条就是关系的每个分量必须是一个不可分割的数据项。规划化的关系简称范式
(Normal Form)。
关系的完整性
关系模型的完整性规则是对关系的某种约束条件。关系模型中允许定义3类完整性约束:实体完整性、参照完整性和用户自定义的完整性。其中实体完整性和参照完整性是关系模型必须满足的完整性约束条件,称为两个不变性,应该由关系系统自动支持;用户自定义的完整性是应用领域需要遵循的约束条件,体现了具体领域中的语义约束。
实体完整性(Entity Integrity)
# 实体完整性规则
若属性A是基本关系R的主属性,则属性A不能取空值。
实体完整性规则规定基本关系的所有主属性都不能取空值,而不仅是指主码不能取空值。对于实体完整性规则说明如下:
-
实体完整性规则是针对基本关系而言的
-
信息世界中的实体是可区分的
-
关系模型中以主码作为唯一性标识
-
主属性不能取空值
参照完整性(Referential Integrity)
在信息世界中,实体之间往往存在某种联系,在关系模型中,实体及实体间的联系都是用关系来描述的,这样就自然存在关系与关系间的引用。
参照完整性规则定义了外码与主码之间的引用规则。
若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S有可能是同一关系),则R中每个元组在F上的值必须为以下值之一:
-
取空值(F的每个属性值均为空值)
-
等于S中某个元组的主码值
用户自定义的完整性(User-Defined Integrity)
用户自定义的完整性就是针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。
(最近更新:2019年09月03日)