您的位置:首页 > 数据库

数据库引擎开发以及常见数据库内部原理学习(1)

2014-09-02 00:00 309 查看
数据库引擎开发

学习王涛老师的数据库引擎课程已经是很久之前的事情了,限于当时自身的能力,特别是对数据库的理解方面的欠缺,当时可以说是囫囵吞般的学习,尽管如此,当时学习的收获依旧非常之大,而时至今日,自认为自身对数据库的理解更上一层楼,也因为相对复杂多变的现代数据库,这个数据库模型相对于其他数据库来说简单得多,所以重新翻出来,再次学习,试图在源码层面理清楚各种数据库的架构!

因为是笔记类型的博文,所以会不断更新。

[b]线索
[/b]

数据库发展

关系型数据库理论

NoSQL数据库的介绍

[b]1.记录:
[/b]

谈谈数据库的本质

数据库是一个提供存取服务的软件

提供网路服务

提供高可用

提供高性能

提供通用化的接口,减少各种各种数据库的学习成本

为什么需要数据库

数据库访问的统一标准,给各种语言接口

提供可靠的数据服务

提供高性能的数据库访问性能

数据管理历史

最开始用卡孔片把数据保存起来

磁带保存(1951)

磁盘保存(1956 IBM 5MB)

数据库管理系统

网状数据库(IDS)

层次数据库(IBM的IMS)

关系数据库(Oracle,DB2,MySQL)(1970提出关系型数据库理论基础模型,1974辩论关系型数据库,1979 Oracle V2发布,世界上第一个被商用的数据库,1983支持事务,db2 1981年才发布商用,1991年才移植到通用平台)

非关系型数据库(对象模型,XML存储,图存储)

关系型数据库理论过于苛刻,它兴盛于硬件性能的提升,无力处理大数据,nosql开始兴盛。

数据库依赖的技术

操作系统

存储

网络

数据库的应用场景

处于应用的底层的底层

关系模型的理论基础

所有信息都表示为关系中的

数据值。所以,关系变量在设计时刻是相互无关联的;反而,

设计者在多个关系变量中使用相同的域,如果一个属性依赖于

另一个属性,则通过参照完整性来强制这种依赖性。

NoSQL类型

key-value键值对

通过简化数据的操作,达到数据的飞跃提升

Big-Table

Document文档

最靠近关系型的NoSQL

核心在于关系嵌套化

Graph图形

SNS类型的系统

文档型数据库模型

解决关系模型过于理想化

关系型模型难以维护

半结构化适合xml,json,rest服务

简单易学

非固定字段,非定长数据,非固定方式访问

[b]2.简化:
[/b]

数据库的本质就是一个提供数据存取服务的软件

数据库提供高可用,高性能的存取服务,提供统一化各语言平台的开发接口

关系型的数据库是一种具有非常完美数学理论的数据库,兴盛于硬件性能的大幅度提升,在硬件出现瓶颈的时候无力处理超过规模的数据。跨服务器join操作成本非常巨大。以及理论的完美性造成数据模型耦合度大,模型变更非常困难,业务变更复杂度也非常高

NoSQL类型

key-value数据库

bigTable数据库

文档型数据库

图形数据库

文档型数据库

最接近关系型数据库的NoSQL数据库,其核心为关系JOIN变成嵌套化

以半结构化的数据存储例如xml,json,能够非常便利的提供rest服务

简单易学,非常灵活多变的业务模型

非固定字段,非定长度数据,非固定方式访问

[b]3.背诵:
[/b]

数据库是一个提供高可用,提供统一化各个语言平台开发接口的高性能存取服务的软件。

关系型数据库的在分布式数据库中,主要成本在于跨服务器join的网络成本非常之大,而join本身是关系型数据库最大特性之一。

文档型数据库是一种半结构化的数据库,它的核心就是关系JOIN嵌套化,而且因为其存储如xml,json这样的半结构化数据,所以能够非常便利的提供rest服务。

[b]4.思考:
[/b]

任何优点都是有代价的

不存在银弹,一种方案可以解决所有问题,特别是在硬件条件限制下

关系型数据库的优缺点是一个值得深入思考的问题,只有解决了这个问题才能真正知道什么时候用NoSQL,不过我这个系列的笔记博文主要是用来学习数据库原理,这不是重点,将来也许会发各种NoSQL的笔记博文。

5.复习:
[b]总结
[/b]

关系型数据库在大数据的情况下具有局限性

文档型数据库是一种半结构化的数据库

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐