动力节点旗下在线教育品牌  |  咨询热线:400-8080-105 学Java全栈,上蛙课网
首页 > 文章

数据库分类之速成篇

06-17 18:54 375浏览
举报 T字号
  • 大字
  • 中字
  • 小字

数据库是我们学习java甚至是所有计算机语言所必须要打交道的,是一个系统和项目的各种各样的数据存放之所。数据库是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。掌握数据库的分类是学习数据库必不可少的一课。

数据库是一个按数据结构来存储和管理数据的计算机软件系统。根据早期的数据库理论数据通常分为层次式数据库、网络式数据库和关系式数据库三种。它们的分类是通过数据库按不同的数据结构来联系和组织来区分的。然而时过境迁,在当今的互联网中,最常见的数据库模型主要是两种,即关系型数据库和非关系型数据库。

一、关系型数据库

虽然网状数据库和层次数据库已经很好的解决了数据的集中和共享问题,但是在数据库独立性和抽象级别上仍有很大欠缺。用户在对这两种数据库进行存取时,依然需要明确数据的存储结构,指出存取路径,这就带来了更多的时间和工作损耗。由此关系型数据库诞生了。关系型数据库模型是把复杂的数据结构归结为简单的二元关系(即二维表格形式)。在关系型数据库中,对数据的操作几乎全部建立在一个或多个关系表格上,通过对这些关联的表格分类、合并、连接或选取等运算来实现数据库的管理。我们熟悉的关系型数据库包括:OracleDB2Microsoft SQL ServerMicrosoft AccessMySQL等。

  • 非关系型数据库

NoSQL,泛指非关系型的数据库。随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。NoSql数据库在特定的场景下可以发挥出难以想象的高效率和高性能,它是作为对传统关系型数据库的一个有效的补充。NoSQL(NoSQL = Not Only SQL ),意即“不仅仅是SQL”,而是一项全新的数据库换新运动,早期就有人提出,发展至2009年趋势越发高涨。NoSQL的拥护者们提倡运用非关系型的数据存储,相对于铺天盖地的关系型数据库运用,这一概念无疑是一种全新的思维的注入。非关系型数据库包括:MembaseMongoDBHypertableApache CassandraCouchDBHBase等。其分为以下几个数据库:

1)键值存储数据库(key-value

键值数据库就类似传统语言中使用的哈希表。可以通过key来添加、查询或者删除数据库,因为使用key主键访问,所以会获得很高的性能及扩展性。

键值数据库主要使用一个哈希表,这个表中有一个特定的键和一个指针指向特定的数据。Key/value模型对于IT系统来说的优势在于简单、易部署、高并发。例如MemcachedRedisMemcacheDB

2)列存储(Column-oriented)数据库

列存储数据库将数据存储在列族中,一个列族存储经常被一起查询的相关数据,比如人类,我们经常会查询某个人的姓名和年龄,而不是薪资。这种情况下姓名和年龄会被放到一个列族中,薪资会被放到另一个列族中。这种数据库通常用来应对分布式存储的海量数据。比如CassandraHBase

3)面向文档(Document-Oriented)数据库

文档型数据库的灵感是来自于Lotus Notes办公软件,而且它同第一种键值数据库类似。该类型的数据模型是版本化的文档,半结构化的文档以特定的格式存储,比如JSON。文档型数据库可以看作是键值数据库的升级版,允许之间嵌套键值。而且文档型数据库比键值数据库的查询效率更高。面向文档数据库会将数据以文档形式存储。每个文档都是自包含的数据单元,是一系列数据项的集合。每个数据项都有一个名词与对应值,值既可以是简单的数据类型,如字符串、数字和日期等;也可以是复杂的类型,如有序列表和关联对象。数据存储的最小单位是文档,同一个表中存储的文档属性可以是不同的,数据可以使用XMLJSONJSONB等多种形式存储。其代表产品有MongoDBCouchDB

4)图形数据库

图形数据库允许我们将数据以图的方式存储。实体会被作为顶点,而实体之间的关系则会被作为边。比如我们有三个实体,Steve JobsAppleNext,则会有两个“Founded by”的边将AppleNext连接到Steve Jobs。同样也有其所属的数据库Neo4JInforGrid

熟练掌握数据库的分类不仅能够知道系统所需要对应的最适合的数据库结构,还能在遇到数据库的时候能够准确判断其所属的数据库类型,从而使系统更加完善,数据存储和调用更加方便和合理化。

2人推荐
共同学习,写下你的评论
0条评论
呵呵呀
程序员呵呵呀

3篇文章贡献11902字

作者相关文章更多>

推荐相关文章更多>

MySQL开发规范

达芬奇09-04 11:38

必须掌握的30种SQL语句优化

不写代码你养我啊08-23 11:30

ES(Elasticsearch)支持PB级全文搜索引擎入门教程

HelloWorld09-29 17:28

Java面试中的hadoop面试题及答案整理

兔子06-15 17:15

数据库分类之速成篇

呵呵呀06-17 18:54

发评论

举报

0/150

取消