数据模型
Posted wangrui1587165
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据模型相关的知识,希望对你有一定的参考价值。
数据模型
模型是对现实世界的抽象。在数据库技术中,我们用模型(data model)的概念描述数据库的结构和语义,对现实世界的数据进行抽象。从现实世界的信息到数据库存储的数据以及用户使用的数据是一个逐步抽象的过程,根据抽象的级别定义了四种模型:
概念数据模型、逻辑数据模型、外部数据模型和内部数据模型。
1、概念模型
● 定义:
表达用户需求观点的数据全局逻辑结构的模型
● 特点:
概念模型表达了数据的整体逻辑结构,它是系统用户对整个应用项目涉及的数据的全面描述;从用户需求观点出发,对数据建模;独立于硬件和软件;是数据库设计人员与用户之间进行交流的工具。
● 主要方法:
采用的是实体联系(ER)模型,ER模型主要用ER图来表示。ER图中把研究的对象分成实体和联系两大类。简单,容易理解,真实地反应用户的需求。
2、逻辑模型
● 定义:
表达计算机实现观点的DB全局逻辑结构的模型,选定DBMS (Database Management System)后,根据选定的DBMS的特点从概念模型转换成逻辑模型。
● 特点:
逻辑模型表达了DB的整体逻辑结构。它是设计人员对整个应用项目数据库的全面描述;从数据库实现的观点出发,对数据建模;独立于硬件,依赖于软件;是数据库设计人员与应用程序员之间交流的工具。
● 分类:
① 层次模型(Hierarchical model):
用树形结构表示实体类型及实体间联系的数据模型。树的节点是数据类型,每个非根节点有且只有一个父节点,只能表示1:N联系。记录之间通过指针来实现,查询效率较高。由于层次顺序的严格和复杂,引起数据的查询和更新操作很复杂,因此编写程序也很复杂。
② 网状模型(Network model)
用有向图结构表示实体类型及实体间联系的数据模型。记录之间的联系通过指针实现,M:N也较容易实现,查询效率较高。数据结构复杂和编程复杂。
③ 关系模型(Relational Model)
用二维表结构表示实体类型及实体间联系的数据模型。通过二维表间的公共属性组成集合。记录之间的联系采用关键码实现,表格简单,用户易懂;用查询语句就可以实现对数据库操作,不设计存储结构和访问技术。复杂的数据结构,如多媒体数据、多维表格数据存储不尽如人意。
3、外部模型
表达用户使用观点的DB局部逻辑结构的模型。外部模型是逻辑模型的一个逻辑子集;外部模型独立于硬件,依赖于软件;外部模型反映了用户使用数据库的观点。外部模型是对概念模型的支持。
4、内部模型
DB物理结构的模型。又称为物理模型,是数据库最底层的抽象,它描述数据在磁盘或磁带上的存储方式,存取设备和存取方法。内部模型是与硬件和软件紧密相连的;内部模型反映了数据库的底层实现细节。
ER(实体/联系)
基本的ER模型包含三类元素:实体、关系、属性
用矩形表示实体类型,菱形表示联系类型,椭圆形表示属性,实体标识符用属性下的一根下划线表示。
实体(Entities):实体是首要的数据对象,常用于表示一个人、地方、某样事物或某个事件。一个特定的实体被称为实体实例(entity instance或entity occurrence)。实体用长方 形框表示,实体的名称标识在框内。一般名称单词的首字母大写。
关系(Relationships):关系表示一个或多个实体之间的联系。关系依赖于实体,一般没有物理概念上的存在。关系最常用来表示实体之间,一对一(1:1),一对多(1:N),多对多(N:N)的对应。用来表现数据对象与数据对象之间的联系,例如学生的实体和成绩表的实体之间有一定的联系,每个学生都有自己的成绩表,这就是一种关系,关系用菱形来表示。
属性(Attributes):属性为实体提供详细的描述信息。一个特定实体的某个属性被称为属性值。即数据对象所具有的属性,例如学生具有姓名、学号、年级等属性,用椭圆形表示,属性分为唯一属性( unique attribute)和非唯一属性,唯一属性指的是唯一可用来标识该实体实例或者成员的属性,用下划线表示,一般来讲实体都至少有一个唯一属性。
强实体与弱实体:强实体内部有唯一的标识符。弱实体(weak entities)的标识符来自于一个或多个其它强实体。弱实体用双线长方形框表示,依赖于强实体而存在。
复合实体:复合实体也称联合实体或桥接实体,常常用于实现两个或多个实体间的M:N联系,它由每个关联实体的主码组成,用长方体内加一个菱形来表示。
用户和商品两个实体是M:N的关系,中间有订单这个实体联系,因此订单这个实体是一个复合实体,如果用户实体不存在,就没有订单实体的存在,因此对于用户实体来讲订单是弱实体,同理商品实体如果不存在,同样不存在订单实体,因此对商品实体而言订单是弱实体
三层模式和两级映射
在用户到数据库之间,DB的数据结构有三个层次外部模型、逻辑模型和内部模型,这个三个层次使用数据定义语言(Data Definition Language,DDL)定义以后就称为模式(Schema),即外模式、逻辑模式和内模式。数据库的数据结构描述有三个层次:
① 外模式:是用户与数据库系统的接口,是用户用到的那部分数据的描述。外模式由若干个。
② 逻辑模式是数据库中全部数据的整体逻辑结构的描述。他由若干个逻辑类型组成,还包括记录间联系,数据的完整性、安全性等要求。
③ 内模式是数据库在物理存储方面的描述。
用户使用数据库的数据操纵语言(Data Manipulation Language,DML)语句对数据库进行操作,实际上是对外模式的外部记录进行操作;逻辑模式必须不涉及到存储结构、访问技术等细节;内模式并不涉及到物理设备的约束。
由于三层模式的数据结构可能不一致,即记录类型、字段类型的命名和组成可能不一样,因此需要三层模式之间的映像来说明外部记录、逻辑记录、内部记录之间的对应性。三层模式之间存在两级映像:
④ 外模式/逻辑模式映像存在于外模式和逻辑模式之间,用于定义外模式和逻辑模式之间的对应性,这个映像一般放在外模式中描述。
⑤ 逻辑模式/内模式映像存在于逻辑模式和内模式之间,用于定义逻辑模式和内模式之间的对应性,这个映像一般放在内模式中描述。
抽象的过程,即数据库设计的过程:
第一步:根据用户需求,设计数据库的概念模型<概念设计>。
第二部:然后,根据转换规则,把概念模型转换成数据库的逻辑模型。
第三步:最后,根据用户的业务特点,需根据逻辑模型设计不同的外部模型,给程序员使用,外部模型与逻辑模型之间的对应性称为映像<逻辑设计>。
第四步:数据库实现时,要根据逻辑模型设计其内部模型。内部模型与逻辑模型之间的对应性称为映像<物理设计>。
内容来源于网络。
以上是关于数据模型的主要内容,如果未能解决你的问题,请参考以下文章