- 数据库系统的分层抽象
-
- DBMS 数据的三个层次
- 从 数据 到 数据的结构----模式
- 数据库系统的三级模式(三级视图)
- 数据库系统的两层映像
- 数据库系统的两个独立性
- 数据库系统的标准结构
- 数据模型
-
- 从 模式 到 模式的结构----数据模型
- 三大经典数据模型
- 数据库的演变与发展
-
- 由文件系统到数据库
-
- 由层次模型数据库、网状模型数据库到关系数据库
-
- 由关系数据库到对象关系数据库、面向对象数据库
-
- XML 数据库
- 由多种多样的数据库到多数据库开放式互连
-
- 由普通数据库到与各种先进技术结合所形成的新型数据库
-
- 内容回顾
- 练习
【重点与难点】
- 一组概念的区分:三级模式两层映像,物理独立性 和 逻辑独立性
- 一组概念的区分:数据、模式、数据模型
- 几种数据模型的差异:网状/层次模型、关系模型、OO数据模型
数据库系统的分层抽象
怎么抽象一个数据库系统呢?
- 假设我们现在有一个数据库,
- 然后有一个管理这个数据库的数据库管理系统,
- 然后我们有不同的应用程序,
- 可以给多个用户使用。
DBMS 数据的三个层次
DBMS 管理数据可以分为三个层次。
- External Level = User Level;
外部/用户 层次:某一 用户 能够看到与处理的数据, 全局数据中的某一部分(不同用户看到某一部分,局部);
- Conceptual Level = Logic level;
概念/逻辑 层次:从 全局 角度理解/管理的数据, 含相应的 关联约束;
- Internal Level = Physical level;
内部/物理 层次:存储在介质上的数据,含存储路径、存储方式 、索引方式等;
从 数据 到 数据的结构----模式
- 数据(Data)/视图(View):某一种表现形式下 表现出来的 数据库中的数据。
展现的数据----视图:
- 模式(Schema):对数据库中数据所进行的一种 结构性的描述,是所观察到 数据的结构 信息。
数据的结构----模式:
学生登记表(
学号 char(8),
姓名 char(10),
性别 Char(2),
出生年月 datetime,
入学日期 Datetime,
家庭住址 Char(40)
)
数据库系统的三级模式(三级视图)
从结构角度,称为模式;从数据角度,称为视图。
- External Schema(外模式) ---- External View(外部视图);
某一用户能够看到与处理的 局部数据的结构描述。
- Conceptual Schema(概念模式)---- Conceptual View(概念视图);
从全局角度理解/管理的 全局数据的结构描述,含相应的关联约束。体现在数据之间的内在本质联系。
- Internal Schema(内模式)---- Internal View(内部视图);
存储在介质上的 数据的结构描述,含存储路径、存储方式 、索引方式等。
如果简单地说“模式”,就是指全局模式;
如果简单地说“视图”,说指外部视图(因为展现给用户);
数据库系统的两层映像
(1)E-C Mapping:External Schema-Conceptual Schema Mapping
将外模式映射为概念模式,从而支持实现 数据概念视图向外部视图的转换;
便于 用户 观察和使用。
(2)C-I Mapping:Conceptual Schema-Internal Schema Mapping
将概念模式映射为内模式,从而支持实现 数据概念视图向内部视图的转换;
便于 计算机 进行存储和处理。
数据库系统的两个独立性
当概念模式变化时,可以不改变外部模式(只需改变 E-C Mapping),从而无需改变应用程序。
当概念模式发生变化时,外部模式是可以不发生变化的,而 应用程序是根据外部视图来开发的,所以不会影响外部应用程序。
例如,如果数据库的字段名称发生了变化,或者数据库的字段类型发生了变化,用户的应用程序不需要做出任何修改就可以继续使用数据库,因为数据库管理系统会负责将旧的字段名称和字段类型映射到新的字段名称和字段类型。
即使全局模式重新组织、重新设计了,也只需要修改 E-C Mapping。
当内部模式变化时,可以不改变概念模式(只需改变 C-I Mapping) ,从而不改变外部模式。
例如,如果数据库的存储方式发生了变化(例如从磁盘存储转移到云存储),可以不改变概念模式,也不会影响到外部模式,用户的应用程序不需要做出任何修改就可以继续使用数据库。
因为数据库管理系统会负责将数据从旧的存储方式迁移到新的存储方式,而用户的应用程序只需要访问数据库的逻辑结构,并不关心数据的物理存储方式。
物理独立性和逻辑独立性可以提高数据库系统的灵活性和可扩展性,使数据库系统更加易于维护和管理。
数据库系统的标准结构
数据库系统的标准结构:三级模式 + 两层映像。
如下图所示,
- 不同的用户有不同的用户视角,他们根据需要看到或处理数据库中不同部分的数据(外模式/外部视图);
- 所有用户视角的并集就是全局视角能够看到的数据,也就是数据库中所有的数据(概念模式/全局视图);
- 然后数据库中所有的数据存放在存储介质上(内模式/物理视图)。
当开发应用程序时,不是基于全局视图来开发的,而是基于某一个外部视图来开发。
数据模型
规定模式统一描述方式的模型,包括:数据结构、操作和约束。
模式是对数据本身结构形式的抽象,数据模型是对模式本身结构的抽象。
从 模式 到 模式的结构----数据模型
假如有以下两个模式:模式1 和 模式2。
模式1:
学生登记表(
学号 char(8),
姓名 char(10),
性别 Char(2),
出生年月 datetime,
入学日期 Datetime,
家庭住址 Char(40)
)
模式2:
学生成绩单(
学号 char(8),
姓名 char(10),
班级 Char(6),
课程 char(40),
学期 Char(4),
成绩 Number
)
那么对模式1和模式2可以抽象出其模式的结构:关系模型,即
Table/Relation
Relation Calculation
Constraints about Table
关系模型:所有模式都可为抽象表(Table)的形式[数据结构],而每一个具体的模式都是拥有不同列名的具体的表,对这种表形式的数据有哪些[操作]和[约束]。
三大经典数据模型
数据库的演变与发展
由文件系统到数据库
文件系统
- 文件存储空间的管理、目录管理、文件读写管理、文件保护、向用户提供操作接口;
- 提供了不同的存取方法(索引文件、链接文件、直接存取文件、倒排文件等), 支持对文件的基本操作(增、删、改、查等), 数据存取基本上以 记录 为单位。
【优点】用户(程序)不必考虑文件存储的物理细节, 解脱了对物理设备存取复杂性处理的负担。
【不足】数据与程序紧密结合,数据的组织及语义紧密依赖于处理该文件的应用程序,数据结构发生改变则必须修改应用程序,文件之间无联系,文件的记录之间无联系,共享性差,冗余度大,不一致性高。
数据库系统
- 由 DBMS 统一存取、维护数据组织形式及语义,可较强地独立于应用程序(数据的物理独立性和逻辑独立性) ;
- 把数据及数据结构的定义和描述从应用程序中分离出去,交给 DBMS, 使得多个应用程序可共享数据及数据结构的操作, 数据存取可以 记录 为单位,也可以以 数据项 和 记录集合 为单位;
- 统一的数据控制功能,数据共享程度高: 系统可自动检查安全性、完整性和并发正确性;
- 整体数据结构化,文件(Table)之间、记录之间相互有关联,数据的冗余度小,易扩充;
- 独立于应用程序的高效率查询/统计操作。
由层次模型数据库、网状模型数据库到关系数据库
层次模型与网状模型数据库
- 数据之间的关联关系由复杂的指针系统来维系,结构描述复杂;
- 数据检索操作依赖于由指针系统指示的路径;
- 逐一记录的操作,不能有效支持记录集合的操作;
关系模型数据库
- 数据之间的关联关系由 Table 中属性的值来表征,结构描述简单:Table/relation;
- 数据检索操作不依赖于路径信息或过程信息,支持非过程化的数据操作;
- 有效支持记录集合的操作;
- 较为完善的理论基础。
由关系数据库到对象关系数据库、面向对象数据库
关系数据库
- 按行按列形式组织数据:关系的第1范式
- 数据项的不可再分特性
- 关系运算: 关系代数、元组演算、域演算–>标准SQL
- 关系数据库设计理论
对象-关系数据库
- 可有效支持不满足关系第1范式的数据项
- 以对象来封装需分解的数据项
-行对象与列对象;聚集对象与结构对象
XML 数据库
- 是数据库的另一种形式, 被称为半结构化数据库;
- 数据 与 数据的语义 合并在一起进行存储和处理;
- 面向数据交换而提出, 在互联网世界得到广泛应用。
<data>
<person id=“o555” >
<name> Mary name>
<address>
<street>Maplestreet>
<no> 345 no>
<city> Seattle city>
address>
person>
<person>
<name> John name>
<address>Thailand
address>
<phone>23456phone>
person>
data>
由多种多样的数据库到多数据库开放式互连
多种多样的数据库
- Oracle
- Sybase
- Ingres
- DB 2
- MS Access
- Informix
- ……
开放互连多种多样的数据库
由普通数据库到与各种先进技术结合所形成的新型数据库
新型数据库
- OA:DB + Management Information System
- Database Machine <- DB + Computer Architecture
- Intelligent Database <- DB + Artificial Intelligence
- Distributed Database(DDB) <- DB + Computer Network
- Image Database / Multimedia Database <- DB + Image processing / Multimedia processing
- Temporal Database <- DB + 时态技术处理
- Mobile Database <- DB + 移动计算技术
- Active Database <- DB + 产生式规则/触发器技术
- Fuzzy Database <- DB + 模糊处理技术
- Real-Time Database <- DB + 实时处理技术
- Engineering Database <- DB + CAD/CAPP/CAM技术
- Geographical Databas和空间数据库(Spacial Database) <- DB + 数字地图、全球定位、空间分析技术
- Statistical Database <- DB + 统计学
- Internet Database <- DB + Internet/WWW(网页/HTML文档)
- Data Warehouse/Data Mining <-DB + OLAP + 统计学
- NoSQL
内容回顾
练习
- 数据库系统的三级模式是指__________。
A. 用户模式、局部模式和全局模式
B. 外模式、概念模式和逻辑模式
C. 外模式、内模式和存储模式
D. 用户模式、概念模式和存储模式
正确答案:D
- 在三级模式两层映像结构中,“模式”是指__________。
A. 外模式
B. 内模式
C. 存储模式
D. 概念模式
正确答案:D
- 在三级模式两层映像结构中,“物理模式”是指__________。
A. 外模式
B. 全局模式
C. 用户模式
D. 存储模式
正确答案:D
- 在三级模式两层映像结构中,“全局模式”是指__________。
A. 外模式
B. 用户模式
C. 内模式
D. 概念模式
正确答案:D
- 在三级模式两层映像结构中,“局部模式”是指__________。
A. 概念模式
B. 内模式
C. 逻辑模式
D. 外模式
正确答案:D
- 关于三级模式,下列说法不正确的是___ _______。
A. 概念模式又称为全局模式
B. 概念模式又称为逻辑模式
C. 内模式又称为存储模式
D. 内模式又称为局部模式
正确答案:D
- 关于数据独立性,下列说法正确的为___ _______。
A. 外模式到概念模式的映像实现了数据的物理独立性
B. 外模式到内模式的映像实现了数据的物理独立性
C. 概念模式到内模式的映像实现了数据的物理独立性
D. 以上说法均不正确
正确答案:C
- 关于数据独立性,下列说法正确的为___ _______。
A. 外模式到概念模式的映像实现了数据的逻辑独立性
B. 外模式到内模式的映像实现了数据的逻辑独立性
C. 概念模式到内模式的映像实现了数据的逻辑独立性
D. 以上说法均不正确
正确答案:A
- 数据库系统的数据独立性是指_______________。
A. 不会因为数据的变化而影响应用程序
B. 不会因为系统数据存储结构与数据逻辑结构的变化而影响应用程序
C. 不会因为存储策略的变化而影响存储结构
D. 不会因为某些存储结构的变化而影响其他的存储结构
正确答案:B
- 下列说法不正确的是_______________。
A. 模式是对数据的抽象,数据的结构性描述称为模式
B. 数据模型是对模式的抽象,模式的结构性描述称为数据模型
C. 一个数据库是由一系列模式及其数据构成的
D. 模式是对数据模型的抽象,数据模型的结构性描述称为模式
正确答案:D
- 第一代数据库系统是指_______________。
A. 文件系统
B. 基于XML模型的数据库系统
C. 基于关系模型的数据库系统
D. 基于网状模型或层次模型的数据库系统
正确答案:D
- 第二代数据库系统是指_______________。
A. 基于文件的数据库系统;
B. 基于XML模型的数据库系统
C. 基于网状模型或层次模型的数据库系统
D. 基于关系模型的数据库系统
正确答案:D
- 数据库系统与文件系统的主要差别在_______________。
A. 数据的组织是否依赖于具体的应用程序
B. 数据存取是否可以记录或记录的集合为单位进行操作
C. 不同文件之间以及不同记录之间是否有联系
D. 包括其他全部选项
正确答案:D
- 关系数据库系统对层次/网状数据库系统的重大改进是_______________。
A. 消除了由用户建立指针的弊端
B. 将逐一记录的操作改进为支持记录集合的操作
C. 数据检索操作不依赖于路径信息或过程信息,即非过程化的操作
D. 包括其他全部选项
正确答案:D
- 面向对象数据库系统对关系数据库系统的重大改进是_______________。
A. 允许复杂的数据类型存在
B. 突破了关系模型第一范式的限制
C. 既支持记录集合的操作,又支持面向对象的操作
D. 包括其他全部选项
正确答案:D