什么是传统的数据模型?

什么是传统的数据模型?,第1张

传统的基本数据模型有以下三种:

1、层次模型

层次模型是一种树结构模型,它把数据按自然的层次关系组织起来,以反映数据之间的隶属关系。层次模型是数据库技术中发展最早、技术上比较成熟的一种数据模型。它的特点是地理数据组织成有向有序的树结构,也叫树形结构。结构中的结点代表数据记录,连线描述位于不同结点数据间的从属关系(一对多的关系)。

2、网状数据模型

网状模型将数据组织成有向图结构,图中的结点代表数据记录,连线描述不同结点数据间的联系。这种数据模型的基本特征是,结点数据之间没有明确的从属关系,一个结点可与其它多个结点建立联系,即结点之间的联系是任意的,任何两个结点之间都能发生联系,可表示多对多的关系。

3、关系数据模型

由于关系数据库结构简单, *** 作方便,有坚实的理论基础,所以发展很快,80年代以后推出的数据库管理系统几乎都是关系型的。涉及到的基础知识有:关系模型的逻辑数据结构,表的 *** 作符,表的完整性规则和视图、范式概念。

关系模型可以简单、灵活地表示各种实体及其关系,其数据描述具有较强的一致性和独立性。在关系数据库系统中,对数据的 *** 作是通过关系代数实现的,具有严格的数学基础。

mogodb是非关系型(NoSQL)数据库,它文档型数据库。

我用过mongodb做了个小项目练习,我简单说说(因为我也了解不深)它与传统数据库的区别吧:

最基本的区别就是数据模型的区别:

传统数据库 从大到小为数据库,表,行。而mongodb是:数据库,集合,文档,BSON(类似json的二进制数据)。

传统数据库需要预定义表结构(一经定义,不能改变),而mongodb不需要,而且文档结构可变化(比如说用来相关的文档是放在同一个集合的,但同一个集合的文档不一定结构都是相同的)

应该还有,想不起来了。

数据模型不同,对应的查询方式也不同。传统的数据库查询方式都是sql,而mongodb的查询方式和sql完全不一样。

还有其他的,如提高可靠性的方案,原子 *** 作的级别等等也不一样。

传统数据库的一些概念在mongodb是不存在的。

设计数据库的时候也不一样,传统数据库在设计时会进行范式化规范化,而mongodb数据库进行设计时候往往会反范式。

下面是从百度百科拿来的:

对于NoSQL并没有一个明确的范围和定义,但是他们都普遍存在下面一些共同特征:

不需要预定义模式:不需要事先定义数据模式,预定义表结构。数据中的每条记录都可能有不同的属性和格式。当插入数据时,并不需要预先定义它们的模式。

无共享架构:相对于将所有数据存储的存储区域网络中的全共享架构。NoSQL往往将数据划分后存储在各个本地服务器上。因为从本地磁盘读取数据的性能往往好于通过网络传输读取数据的性能,从而提高了系统的性能。

d性可扩展:可以在系统运行的时候,动态增加或者删除结点。不需要停机维护,数据可以自动迁移。

分区:相对于将数据存放于同一个节点,NoSQL数据库需要将数据进行分区,将记录分散在多个节点上面。并且通常分区的同时还要做复制。这样既提高了并行性能,又能保证没有单点失效的问题。

异步复制:和RAID存储系统不同的是,NoSQL中的复制,往往是基于日志的异步复制。这样,数据就可以尽快地写入一个节点,而不会被网络传输引起迟延。缺点是并不总是能保证一致性,这样的方式在出现故障的时候,可能会丢失少量的数据。

BASE:相对于事务严格的ACID特性,NoSQL数据库保证的是BASE特性。BASE是最终一致性和软事务。

NoSQL数据库并没有一个统一的架构,两种NoSQL数据库之间的不同,甚至远远超过两种关系型数据库的不同。可以说,NoSQL各有所长,成功的NoSQL必然特别适用于某些场合或者某些应用,在这些场合中会远远胜过关系型数据库和其他的NoSQL。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6686818.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-26
下一篇 2023-03-26

发表评论

登录后才能评论

评论列表(0条)

保存