数据库系统的一个主要目的是给用户提供数据的抽象视图,也就是说,系统隐藏关于数据存储和维护的某些细节
由于数据库系统的用户并未受过计算机专业训练,系统开发人员通过下面的层次上的抽象来对用户屏蔽复杂性,以简化用户与系统的交互
物理层 physical level
最低层次的抽象,描述数据实际上是怎样存储的。物理层详细描述复杂的底层数据结构
逻辑层 logical level
比物理层层次稍高的抽象,描述数据库中存储什么数据以及这些数据间存在什么关系。这样逻辑层就通过少量相对简单的结构描述了整个数据库
视图层
最高层次的抽象,只描述整个数据库的某个部分,尽管在逻辑曾使用了比较简单的结构,但是由于一个大型数据库所存的信息多样,仍存在一定程度的复杂性。
数据库系统的很多用户并不需要关心所有的信息,而只需要访问数据库的一部分,视图层抽象的定义正是为了使这样的用户与系统的交互简单。
这三层抽象的相互关系:
实例和模式
随着时间的推移,信息会被插入或删除,数据库也就发生了改变。
特定时刻存储在数据库中的信息的集合称为数据库的一个实例(instance)。
而数据库的总体设计称作数据库模式(schema),数据库模式即使发生变化,也不频繁
数据库模式:可以给它理解为程序设计语言里面的变量声明
实例:每个变量在特定的时刻会有特定的值,程序中变量在某一时刻的值对应于数据库模式的一个实例
数据模型
数据库结构的基础是数据模型(data model)
数据模型是一个描述数据、数据联系、数据语义以及一致性约束的概念工具的集合
数据模型可分为四类:
关系模型 (relational model)
关系模型用表的集合来表示数据和数据间的联系。每个表有多个列,每列有唯一的列名。关系模型是基于记录的模型的一种。基于记录的模型的名称的由来是因为数据库是由若干种固定格式的记录来构成的。
每个表包含某种特定类型的记录
每个记录类型定义来固定数目的字段
表的列对应于记录类型的属性
关系数据模型是使用最广泛的数据模型,当今大量的数据库系统都基于这种关系模型
实体-联系模型(entity-relationship model)
实体-联系(E-R)数据模型基于对现实世界的这样一种认识:现实世界由一组称作实体的基本对象以及这些对象间的联系构成。实体是现实世界中可区别于其他对象的一件事情或一个物体
广泛用于数据库设计
基于对象的数据模型(object—based data model)
面向对象的数据模型可以看成是E-R模型增加来封装、方法(函数)和对象标识等概念后的扩展
半结构化数据模型(semistructured data model)
半结构化数据模型允许那些相同类型的数据项含有不同的属性集的数据定义。可扩展标记语言(eXtensible Markup Language,XML)被广泛的用来表示半结构化数据