MOOC 数据库系统笔记(二):数据库系统的基本结构及其演变发展
数据库系统的结构抽象与演变
数据库的标准结构
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.支持面向对象的一些特性:类、继承、封装、多态。。。
由多种多样的数据库到多数据库的开放互连
由普通数据库到与各种先进技术结合所形成的新型数据库。
MOOC 数据库系统笔记(二):数据库系统的基本结构及其演变发展的更多相关文章
- 【Unity Shaders】学习笔记——SurfaceShader(二)两个结构体和CG类型
[Unity Shaders]学习笔记——SurfaceShader(二)两个结构体和CG类型 转载请注明出处:http://www.cnblogs.com/-867259206/p/5596698. ...
- C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | IT宅.com
原文:C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | IT宅.com C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | I ...
- muduo学习笔记(二)Reactor关键结构
目录 muduo学习笔记(二)Reactor关键结构 Reactor简述 什么是Reactor Reactor模型的优缺点 poll简述 poll使用样例 muduo Reactor关键结构 Chan ...
- amazeui学习笔记二(进阶开发1)--项目结构structure
amazeui学习笔记二(进阶开发1)--项目结构structure 一.总结 1.项目结构:是说的amazeui在github上面的项目结构,二次开发amazeui用 二.项目结构structure ...
- Oracle数据库基础入门《二》Oracle内存结构
Oracle数据库基础入门<二>Oracle内存结构 Oracle 的内存由系统全局区(System Global Area,简称 SGA)和程序全局区(Program Global Ar ...
- 《CMake实践》笔记二:INSTALL/CMAKE_INSTALL_PREFIX
<CMake实践>笔记一:PROJECT/MESSAGE/ADD_EXECUTABLE <CMake实践>笔记二:INSTALL/CMAKE_INSTALL_PREFIX &l ...
- Mastering Web Application Development with AngularJS 读书笔记(二)
第一章笔记 (二) 一.scopes的层级和事件系统(the eventing system) 在层级中管理的scopes可以被用做事件总线.AngularJS 允许我们去传播已经命名的事件用一种有效 ...
- webpy使用笔记(二) session/sessionid的使用
webpy使用笔记(二) session的使用 webpy使用系列之session的使用,虽然工作中使用的是django,但是自己并不喜欢那种大而全的东西~什么都给你准备好了,自己好像一个机器人一样赶 ...
- java jvm学习笔记十三(jvm基本结构)
欢迎装载请说明出处:http://blog.csdn.net/yfqnihao 这一节,主要来学习jvm的基本结构,也就是概述.说是概述,内容很多,而且概念量也很大,不过关于概念方面,你不用担心,我完 ...
随机推荐
- Java请求Http
一.工具类,直接粘贴调用即可 package cn.com.service.httpReq; import java.io.BufferedReader;import java.io.IOExcept ...
- Ubuntu Server : 自动更新
Ubuntu(16.04/18.04) 默认会每天自动安装系统的安全更新,但是不会自动安装包的更新.本文梳理 Ubuntu 16.04/18.04 系统的自动更新机制,并介绍如何配置系统自动更新所有的 ...
- 大白话5分钟带你走进人工智能-第36节神经网络之tensorflow的前世今生和DAG原理图解(4)
目录 1.Tensorflow框架简介 2.安装Tensorflow 3.核心概念 4.代码实例和详细解释 5.拓扑图之有向无环图DAG 6.其他深度学习框架详细描述 6.1 Caffe框架: 6.2 ...
- CSS文本超出用省略号代替的方法
{ white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
- 随笔编号-10 window环境下,命令行导入sql脚本详解
目标:使用window命令行(DOS)导入sql脚本(适用于数据量很大的脚本). 执行步骤: 1 找到mysql bin 文件所在之目录: 2 打开dos命令行界面,win+r 组合键打开运行对话 ...
- Python 基础1 - 位运算符
引言 本文主要介绍位运算符,实际上Python有以下7类运算符: [赋值运算符].[比较运算符].[算术运算符].[逻辑运算符].[身份运算符].[成员运算符].[位运算符] 位运算符 按位运算符是把 ...
- 前端利器躬行记(3)——webpack基础
webpack是一个静态模块打包器,此处的模块可以是任意文件,包括Sass.TypeScript.模板和图像等.webpack可根据输入文件的依赖关系,打包输出浏览器可识别的JavaScript.CS ...
- Java并发编程实战.笔记十一(非阻塞同步机制)
关于非阻塞算法CAS. 比较并交换CAS:CAS包含了3个操作数---需要读写的内存位置V,进行比较的值A和拟写入的新值B.当且仅当V的值等于A时,CAS才会通过原子的方式用新值B来更新V的值,否则不 ...
- (五十八)c#Winform自定义控件-管道阀门(工业)
前提 入行已经7,8年了,一直想做一套漂亮点的自定义控件,于是就有了本系列文章. GitHub:https://github.com/kwwwvagaa/NetWinformControl 码云:ht ...
- 成功项目管理与PMP认证2017
http://study.163.com/course/courseLearn.htm?courseId=1064005#/learn/video?lessonId=1003778171&co ...