数据库系统的结构抽象与演变

数据库的标准结构

DBMS管理数据的三个层次

1.External Level = User Level
某一用户能够看到与处理的数据,全局数据中的某一部分
2.Conceptual Level = Logic Level
从全局角度理解/管理的数据,含相应的关联约束
3.Internal Level = Physical Level
存储在介质上的数据,含存储路径、存储方式、索引方式等

数据与数据的结构--模式

模式(Schema)
对数据库中数据所进行的一种结构性的描述
所观察到数据的结构信息
视图(View)/数据(Data)
某一种表现形式下表现出来的数据库中的数据

三级模式两层映像

三级模式(三级视图)

External Schema ---- (External)View
某一用户能够看到与处理的结构描述
(Conceptual)Schema ---- Conceptual View
从全局角度理解/管理的数据结构描述,含相应的关联约束体现在数据之间的内在本质联系
Internal Schema ---- Internal View
存储在介质上的数据的结构描述,含存储路径、存储方式、索引方式等
模式默认指概念模式,视图默认指外部视图

两层映像

E-C Mapping:External Schema-Conceptual Schema Mapping
将外部模式映射为概念模式,从而支持实现数据概念视图向外部视图的转换
便于用户观察和使用
C-I Mapping:Conceptual Schema-Internal Schema Mapping
将概念模式映射为内模式,从而实现数据概念视图向内部视图的转换
便于计算机进行存储和处理

两个独立性

逻辑数据独立性
当概念模式改变时,可以不改变外部模式(只需改变E-C Mapping),从而无需改变应用程序
物理数据独立性
当内部模式改变时,可以不改变概念模式(只需改变C-I Mapping),从而无需改变外部模式

数据模型

数据模型、数据模式、数据的区别

什么是数据模型
1.规定模式统一描述方式的模型,包括:数据结构、操作和约束
2.数据模型是对模式本身结构的抽象,模式是对数据本身结构形式的抽象
比如:
关系模型:所用模式都可以为抽象表(Table)的形式[数据结构],而每一个具体的模式都是拥有不同列名的具体的表。对这种表形式的数据有哪些操作和约束。
(个人理解:关系模型规定了数据的表现结构和所有可能的操作,如并、交等等,还有模型上数据的约束,而关系模型的模式则是关系模型的具体表现,但又不是完整的数据,它只规定了数据有哪些属性)
数据模型是对数据模式的抽象,数据模式是对数据的抽象,所以说数据模型是数据的结构的结构。

三大经典数据模型

关系模型:表的形式组织数据
层次模型:树的形式组织数据
网状模型:图的形式组织数据

数据库系统的演变与发展

简要发展史:四个阶段

第一阶段:数据库系统技术探索阶段(59-65/67)
1.研制成功格式文件系统
2.正式提出“Data Base“并开始进行研究
第二阶段:数据库技术确立阶段(65/68-75)
1.三大数据库:层次、网状及关系数据库相机提出并进行了深入研究
2.商用数据库出现并应用,但多为网状及层次型系统
3.数据库研究形成理论基础:关系数据库理论
第三阶段:数据库技术成熟阶段(76-80s前期)
1.提出了标准化数据库系统结构模型
2.关系DB系统迅速发展:如SQL,QBL,System R,ingres等
3.关系理论日臻完善,包括规范化理论,关系语言,RDB的设计与实现,新型关系模型等
4.数据库应用已十分普及,渗透到社会各个方面,出现众多DB的技术分支,DB走向全面成熟,人称70年代为“数据库的年代”
第四阶段:数据库技术深化发展阶段(85年以来)
1.数据库方法逐步理论化、数据库设计理论不断完善
2.新型数据模型、专用数据模型,专用型、新型数据库系统,不断涌现
3.数据库技术+其他计算机技术结合==面向各行各业的专用数据库。

几个重大发展

由文件系统到数据库

操作系统管理数据的方法是文件系统:
文件系统的优点:用户(程序)不必考虑文件存储的物理细节,解脱了对物理设备存取的复杂性处理的负担。
文件系统的不足:数据与程序紧密结合,数据的组织及语义紧密依赖于处理该文件的应用程序,数据结构发生改变则必须修改应用程序,文件之间无联系,文件的记录之间无联系,共享性差,冗余度搞,不一致性高。
重要发展:由文件系统到数据库
数据库系统:
1.由DBMS统一存取、维护数据组织形式及语义,可较强地独立于应用程序(数据的物理独立性和逻辑独立性)
2.把数据及数据结构的定义和描述从应用程序中分离出去,交给DBMS,使得多个应用程序课共享数据及数据结构的操作,数据存取可以记录为单位,也可以以数据项和记录集合为单位
3.统一的数据控制功能,数据共享程度高:系统可自动检查安全性、完整性和并发正确性
4.整体数据结构化,文件(Table)之间、记录之间相互有关联,数据的冗余度小,容易扩充
5.独立于应用程序的高效率查询/统计操作。

由层次模型数据库、网状模型数据库到关系模型数据库

层次模型数据库与网状模型数据库
1.数据之间的关联关系由复杂的指针系统来维系,结构描述复杂
2.数据检索操作依赖于由指针系统指示的路径
3.逐一记录的操作,不能有效支持集合的操作
关系数据库
数据之间的关联关系由Table中属性的值来表征,结构描述简单:Table/relation
数据检索操作不依赖于路径信息或者过程信息,支持非过程化的数据操作
有效支持记录集合的操作
较为完善的理论基础

由关系数据库到对象关系数据库、面向对象数据库

关系数据库
1.按行按列形式组织数据:关系的第1范式
2.数据项的不可再分特性
3.关系运算:关系代数、元组演算、域演算--》标准SQL
4.关系数据库设计理论
对象-关系数据库
1.可有效支持不满足关系第1范式的数据项
2.以对象来封装需分解的数据项
3.行对象与列对象:聚集对象与结构对象
面向对象数据库
1.面向对象技术(O-O)与几何/聚集操作(SQL)技术的结合
2.支持复杂的数据类型,数据封装与抽象数据结构
3.支持面向对象的一些特性:类、继承、封装、多态。。。

由多种多样的数据库到多数据库的开放互连

由普通数据库到与各种先进技术结合所形成的新型数据库。

最新文章

  1. ae GP制作缓冲区分析
  2. TFS二次开发系列:五、工作项查询
  3. 利用ASP.NET加密和解密Web.config中连接字符串
  4. AWstat(linux下)
  5. git 记录
  6. Ubuntu 12.04下搭建Qt开发环境
  7. C++默认构造函数的一点说明
  8. Codeforces Round #246 (Div. 2)
  9. cp的用法
  10. 使用Mapper专用的MyBatis Generator插件
  11. matlab 曲线拟合小记
  12. 将对象序列化成XML字符串
  13. 19. Remove Nth Node From End of List (JAVA)
  14. 阿里云api调用做简单的cmdb
  15. Laravel5 (cli)命令行执行脚本及定时任务
  16. Lucene最重要的功能是对一段话的分析
  17. Nagios服务器端配置文件详解
  18. Java 多线程编程知识详解
  19. kafka 的quick start(windows平台)
  20. Android onKeyDown、onKeyUp、dispatchKeyEvent的区别

热门文章

  1. vue 异步加载远程组件(支持编译less语法)
  2. 敏捷社区--敏捷与OKR
  3. [SCOI2009]粉刷匠(动态规划,序列dp,背包)
  4. Appium+Python API相关知识了解
  5. c++的构造和析构
  6. copy好文“IT34岁危机破解心法”
  7. ajax后台处理响应(java)
  8. centos7配置JDK
  9. JDBC、Tomcat为什么要破坏双亲委派模型?
  10. js 前端实现打印功能