DBMS的三个层次:
- 外部层次External Lever=用户层次User Lever:某一用户能够看到与处理的数据,全局数据的映射,全局数据的某一个部分
- 全局层次=概念层次Conceptual Lever=逻辑层次Logic Lever:从全局角度理解/管理的数据,含相应的关联约束
- 内部层次Internal Lever=物理层次Physical Lever:存储在介质上的数据,含存储路径、存储方式、索引方式等
数据与模式(Schema):
模式是对数据库中数据进行结构性的描述 所观察到的数据的结构信息
视图是某一种表现形式下表现出来的数据库中的数据
三级模式(三级视图):
External Schema —— (External) View
某一用户能看到与处理的数据的结构描述
(Conceptual) Schema —— Conceptual View
从全局角度理解、管理的数据的结构描述。含相应的关联约束,体现在数据之间的内在本质联系
Internal Schema —— Internal View
存储在介质上的数据的结构描述,含存储路径、存储方式、索引方式
两层映像:
E-C Mapping:将外模式映射为概念模式,从而支持实现概念视图向外部视图的转换
便于用户的观察和使用
C-I Mapping:将概念模式映射为内部模式,从而支持实现概念视图向外部视图的转换
便于计算机进行存储和处理
三层模式、两层映像是数据库管理系统的标准结构
DBMS实际上就是让用户去定义三层模式,自身自动去生成两层映像
应用程序是基于外部视图进行开发的(根据概念视图可生成不同的外部视图)
为什么要按照标准结构进行数据库系统的抽象呢?
要谈到两个独立性:
- 逻辑数据独立性:当概念模式发生变化的时,可以不改变外部模式(只需要改变E-C Mapping)
- 物理数据独立性:当内部模式发生变化时,可以不改变概念模式(只需要改变C-I Mapping)
两个独立性最大限度的避免了应用程序的不断更改
数据模式与数据模型:
数据模型:规定模式统一描述方式的模型,包括数据结构、操作和约束
数据模式是对数据结构形式的抽象,数据模型就是对数据模式本身结构的抽象
数据的结构的结构就是数据模型
如:模式1:学生登记表(学号 char(8),姓名 char(10),性别 char(2),出生年月datetime, 入学时间 datetime,家庭住址char(40));
模式2:学生成绩单(学号 char(8),姓名char(10),班级 char(6),课程 char(40),学期 char(4),成绩 numberi)
模式1和模式2可以抽象为关系模型,所有模式可抽象为表的形式[数据结构],而每一个具体的模式都是拥有不同列名的具体的表,对这种表形式的数据有一些[操作]和[约束]
三大经典数据模型:
-
关系模型:
关系模型的数据:学生登记信息 表格+数据
关系模型的数据模式:学生登记表(学号 char(8),姓名 char(10),性别 char(2),出生年月datetime, 入学时间 datetime,家庭住址char(40))
关系模型:表格的形式
-
层次模型:基于树的结构
树的形式:实体型和系型 即记录和两条记录之间的联系(由指针建立的)
层次模型的数据模式:由数据抽象出来的不同的具体实体型和他们之间不同的具体联系(系型)的描述
-
网状模型:基于图的结构
图的形式:实体型和系型
网状模型的数据模式:由数据抽象出来的不同的具体实体型和他们之间不同的具体联系(系型)的描述
层次模型和网状模型数据库是第一代数据库,关系数据库是第二代数据库
层次模型和网状模型数据库:
- 数据之间的关联关系由复杂的指针系统来维系,结构描述复杂
- 数据检索操作系统依赖于指针系统指示的路径
- 逐一记录操作,不能有效支持记录集合的操作
关系数据库:
- 数据之间的关联关系由Table中属性来表征,结构描述简单
- 数据检索操作不依赖于路径信息或过程信息,支持非过程化的数据操作
- 有效支持记录集合的操作
- 较为完善的理论基础
- 消除了指针
由关系数据库到对象关系数据库、面向对象数据库
- 按行按列形式组织数据:关系(数据项)不可再分(关系的第1范式)[关系数据库不允许复合属性、多值属性的出现]
- 关系运算:关系代数、元组演算、域演算
- 关系数据库的设计理论
复合属性:在一个数据项(属性)内部又可以分出两项(两者可并存)
多值属性:在一行记录中某个属性有多个值
对象-关系数据库:
- 可有效支持不满足关系第1范式的数据项
- 以对象来封装需分解的数据项
- 行对象与列对象;聚集对象与结构对象
面向对象数据库:
- 面向对象技术与集合/聚集操作技术(SQL)的结合
- 支持复杂的数据类型,数据封装与抽象数据结构
- 支持面向对象的一些特征:类、继承、封装、多态...
XML数据库:
- 是数据库的另一种形式,被称为半结构化数据库
- 数据与数据的语义合并在一起进行存储和处理
- 面向数据交换提出,在互联网世界得到广泛应用
由多种多样的数据库到多数据库开放式互连:
ODBC JDBC
由普通数据库到与各种先进技术结合所形成的新型数据库