我养了一只猫,她小的时候喜欢睡在我的拖鞋里(冬天的那种毛绒拖鞋)
一天我不在家,我舅舅来我家,穿了我的拖鞋……
晚上睡觉的时候,小猫照例躲到拖鞋里,没过多久就爬了出来,灰常纠结的绕着拖鞋叫…
从此,她再也不在那双拖鞋里睡觉了…
模型是对现实世界的抽象,在数据库技术中,我们用数据模型的概念描述数据库的结构和语义,对现实世界的数据进行抽象。从现实世界的信息到数据库存储的数据以及用户使用的数据是一个逐步抽象的过程,有如下四种:概念数据模型、逻辑数据模型、外部数据模型、和内部数据模型。
1、 概念模型
a) 定义:表达用户需求观点的数据全局逻辑结构的模型
b) 特点:
i. 概念模型表达了数据的整体逻辑结构,它是系统用户对整个应用项目涉及的数据的全面描述;
ii. 概念模型是从用户需求观点出发,对数据建模;
iii. 概念模型独立于硬件和软件;
iv. 概念模型是数据库设计人员与用户之间进行交流的工具。
c) 主要方法:概念模型主要采用的是实体联系(ER)模型,ER模型主要用ER图来表示。
d) ER图:ER图中把研究的对象分成实体和联系两大类,用矩形表示实体类型,菱形表示联系类型,椭圆形表示属性,实体标识符用属性下的一根下划线表示。
e) 优点:
i. 简单,容易理解,真实地反应用户的需求;
ii. 是与计算机无关,用户容易接受。
2、 逻辑模型
a) 定义:表达计算机实现观点的DB全局逻辑结构的模型,选定DBMS后,根据选定的DBMS的特点从概念模型转换成逻辑模型。
b) 特点:
i. 逻辑模型表达了DB的整体逻辑结构,它是设计人员对整个应用项目数据库的全面描述;
ii. 逻辑模型是从数据库实现的观点出发,对数据建模;
iii. 逻辑模型独立于硬件,依赖于软件;
iv. 逻辑模型是数据库设计人员与应用程序员之间交流的工具。
c) 分类:
i. 层次模型(Hierarchical model)
1. 定义:用树形结构表示实体类型及实体间联系的数据模型。
2. 数据联系:指针
3. 数据结构:树结构
4. 优点:记录之间通过指针来实现,查询效率较高
5. 缺点:只能表示1:N联系;由于层次顺序的严格和复杂,引起数据的查询和更新操作很复杂,因此编写程序也很复杂
6. 代表:IMS
7. 盛行:20世纪70年代
ii. 网状模型(Network model)
1. 定义:用有向图结构表示实体类型及实体间联系的数据模型
2. 数据联系:指针
3. 数据结构:有向图结构
4. 优点:记录之间的联系通过指针实现,M:N也较容易实现,查询效率较高
5. 缺点:数据结构复杂和编程复杂
6. 代表:IDS,IMAGE/3000,IDMS,TOTAL
7. 盛行:20世纪70-80年代中期
iii. 关系模型(Relational Model)
1. 定义:用二维表结构表示实体类型及实体间联系的数据模型
2. 数据联系:通过二维表间的公共属性
3. 数据结构:二维表
4. 优点:记录之间的联系采用关键码实现,表格简单,用户易懂;用查询语句就可以实现对数据库操作,不设计存储结构和访问技术
5. 缺点:更复杂的数据结构,如多媒体数据、多维表格数据显得力不从心
6. 代表:Oracle,Sybase,DB2,SQL Server,Infomix
7. 盛行:20世纪80年代到现在
3、 外部模型
a) 定义:表达用户使用观点的DB局部逻辑结构的模型。根据业务的特点划分成若干业务单位,每个业务单位都有特定的约束和需求
b) 特点:
i. 外部模型是逻辑模型的一个逻辑子集;
ii. 外部模型独立于硬件,依赖于软件;
iii. 外部模型反映了用户使用数据库的观点。
c) 优点:
i. 简化了用户的观点;
ii. 有助于数据库的安全性保护;
iii. 外部模型是对概念模型的支持。
4、 内部模型
a) 定义:表达DB物理结构的模型。又称为物理模型,是数据库最底层的抽象,它描述数据在磁盘或磁带上的存储方式,存取设备和存取方法。
b) 特点:
i. 内部模型是与硬件和软件紧密相连的;
ii. 内部模型反映了数据库的底层实现细节。
5、 三层模式和两级映射
a) 三层模式的定义:在用户到数据库之间,DB的数据结构有三个层次外部模型、逻辑模型和内部模型,这个三个层次使用数据定义语言(Data Definition Language,DDL)定义以后就称为模式(Schema),即外模式、逻辑模式和内模式。数据库的数据结构描述有三个层次:
i. 外模式是用户与数据库系统的接口,是用户用到的那部分数据的描述
ii. 逻辑模式是数据库中全部数据的整体逻辑结构的描述
iii. 内模式是数据库在物理存储方面的描述。
b) 三层模式体系结构的特点:
i. 用户使用数据库的数据操纵语言(Data Manipulation Language,DML)语句对数据库进行操作,实际上是对外模式的外部记录进行操作;
ii. 逻辑模式必须不涉及到存储结构、访问技术等细节;
iii. 内模式并不涉及到物理设备的约束。
c) 两级映射的定义:由于三层模式的数据结构可能不一致,即记录类型、字段类型的命名和组成可能不一样,因此需要三层模式之间的映像来说明外部记录、逻辑记录、内部记录之间的对应性。三层模式之间存在两级映像:
i. 外模式/逻辑模式映像存在于外模式和逻辑模式之间,用于定义外模式和逻辑模式之间的对应性,这个映像一般放在外模式中描述
ii. 逻辑模式/内模式映像存在于逻辑模式和内模式之间,用于定义逻辑模式和内模式之间的对应性,这个映像一般放在内模式中描述
d) 飞
6、 数据抽象的过程(即数据库设计的过程)
a) 根据用户需求,设计数据库的概念模型<概念设计>
b) 根据转换规则,把概念模型转换成数据库的逻辑模型
c) 根据用户的业务特点,需根据逻辑模型设计不同的外部模型,给程序员使用,外部模型与逻辑模型之间的对应性称为映像<逻辑设计>