数据库的简介与类型

1.1 什么是数据库?

简单的说,数据库(英文Dtabase)就是一个存放数据的仓库,这个仓库是按照一定的数据结果(数据结构是指数据的组织形式或数据之间的联系)来组织、存储的、我们可以通过数据库提供的多种方法来管理数据库里的数据更简单的形象理解,数据库和我们生活中存放杂物的仓库性质一样,区别只是存放的东西不同。

1.2 数据库的种类

早期比较流行的数据库模型有三种,分别为层次式数据库、网络式数据库和关系型数据库。而在当今的互联网中,最常用的数据库模型主要是两种,即关系型数据库和非关系型数据库。

1.3 关系型数据库介绍

(1)关系型数据库由来

网络数据库和层次数据库很好地解决了数据的集中和共享问题,但是在数据独立性和抽象级别上仍有很大欠缺。用户对这两种数据库进行存取时,依然需要明确数据的存储结构,支出存储路径。而关系数据库就可以较好地解决这些问题

(2)关系型数据库介绍

关系型数据库模型是把复杂的数据结构归结为简单的二元关系(即二维表格形式)。

Oracle 在数据库领域里上升到了霸主地位,形成每年高达数百亿美元的庞大市场,而MySQL也是不容忽视的数据库,以至于被Oracle重金收购

1.4关系型数据库小结

  1. Mysql和Oracle数据库,互联网运维最常用的是MySQL
  2. 通过SQL结构化查询语句存储数据
  3. 保持数据一致性方面很强,ACID理论

1.5 非关系型数据库介绍

非关系型数据库主要是基于“非关系模型”的数据库(由于关系型太大,所以一般用“非关系型”来表示其他类型的数据库),非关系型数据库也被成为NoSQL数据库,NOSQL的本意是“Not Olnly SQL” 
    指的是非关系型数据库,而不是“No SQL”的意思,因此,NoSQL的产生并不是要彻底地否定非关系型数据库,而是作为传统关系型数据库的一个有效补充。NOSQL数据库在特定的场景下可以发挥出难以想象的高效率和高性能。

1.6 非关系型数据库诞生背景

随着互联网Web2.0网站的星期,传统的关系型数据库在应付web2,0网站,特别是对于规模日益扩大的海量数据,超大规模和高并发的微博、微信、SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题。

例如:传统的关系型数据库IO瓶颈、性能瓶颈都难以有效突破,于是出现了大批针对特定场景,以高性能和使用便利为目的功能特异化的数据库产品。NOSQL(非关系型)类的数据就是在这样的情景下诞生并得到了非常迅速的发展

高性能、高并发、对数据一致性要求不高

开源的NoSQL体系,如Facebook的Cassandra,Apache的HBase,也得到了广泛认同,Redis,mongb也逐渐越来越受到各类大中小型公司的欢迎和追捧

1.7 NOSQL非关系型数据库小结:

1、NOSQL不是否定关系数据库,而是作为关系数据库的一个重要补充

2、NOSQL为了高性能、高并发而生,忽略影响高性能,高并发的功能

3、NOSQL典型产品memcached (纯内存),redis(持久化缓存),mongodb(文档的数据库)

1.8 非关系型数据库种类

(1)键值(Key-Value)存储数据库

k1—>数据

k2—>数据

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

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

典型产品:Memcached、Redis、MemcacheDB、BerkeleyDB

(2)列存储(Column-oriedted)数据库 ======>了解即可,一般公司用不到

列存储数据库将数据库存储在列族(column family)中,一个列族存储经常被一起查询的相关数据。举个例子,如果我们有一个Person类,我们通常会一起查询他们的姓名和年龄而不是薪资。这种情况下,姓名和年龄就会被放入一个列族中,而薪资则在另一个列族中。

这部分数据库通常用来分布式存储的海量数据,键仍然存在,但是他们的特点是指向了多个列。

典型产品:Cassandra,HBase

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

面向文档数据库会将以文档的形式存储。每个文档都是自包含的数据单元,是一系列数据项的集合。每个数据项都有一个名称与对应的值,值既可以是简单的数据类型,如字符串、数字和日期等;也可以是复杂的类型,如有序列表和关系对象。数据存储的最小单位是文档,同一个表中存储的文档属性可以是不同的,数据可以使用XML、JSON或者JSONB等多种形式存储

典型产品:MorgoDB、CouchDB

(4)图形(Graph)数据库

原文地址:https://www.cnblogs.com/ranyonsue/p/10329951.html

时间: 2024-10-30 05:04:21

数据库的简介与类型的相关文章

MySQL数据库之简介和安装

一.基础部分 1.数据库是简介     之前所学,数据要永久保存,比如用户注册的用户信息,都是保存于文件中,而文件只能存在于某一台机器上. 如果我们不考虑从文件中读取数据的效率问题,并且假设我们的程序所有的组件都运行在一台机器上,那么用文件存取数据,并没有问题 但需要考虑的问题是:程序的执行效率依赖于承载它的硬件,而一台机器机器的性能总归是有限的,受限于目前的硬件水平,垂直扩展是有极限的.于是我们只能通过水平扩展来增强我们系统的整体性能,这就需要我们将程序的各个组件分布于多台机器去执行. 需要注

关系型数据库与非关系型数据库的简介、对比、说明

关系型数据库与非关系型数据库的简介.对比和说明!!! 分类专栏:数据库 数据库MySQL的系列知识 关系型数据库: Oracle SQLServer Sybase Informix Access DB2 mysql vfp Ingers FoxPro 非关系型数据库:关系型数据库与非关系型数据库的对比 MongoDB Cassandra CouchDB Hypertable Redis Riak Neo4j Hadoop HBase Couchbase MemcacheDB REVENDB Vo

关于数据库中varchar/nvarchar类型数据的获取注意事项

当在页面后台获取数据库表中某字段的数据时,需注意该数据的类型.防止因实际数据的字符长度因达不到指定数据类型规定的字符长度而导致空格的占位符. 比如: MSSQL中某一表的结构如下:   表中的数据: 当从表中获取某一个用户名(userName)或密码(userPwd)时,如果取出的数据作为条件进行判断是,需注意获取处的数据最好进行Trim()处理,去除数据两边的空格占位符 比如: 没有对数据进行Trim()处理前,从数据库中获取的数据因为原本的数据长度不够而导致空格占位符 对数据进行Trim()

DB2数据库表示时间的类型

天王盖地虎,宝塔镇河妖,春雷一声吼,码农满街走! 这是菜鸟级码农人生的第一篇博客,来谈谈我在工作中遇到的问题:DB2数据库表示时间的类型,这是我今天在工作中遇到的一个比较2的问题, 由于我比较菜,当时没有第一时间找到问题处在哪儿,首先我先谈一谈我遇到的问题,在Dao层的实现中对DB2数据库进行数据插入的时候, 我定义的Date类型是这样的 DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss") 然而它进入数据库的时

SQL server数据库中的DateTime类型出现的问题

我们知道这个SQL server数据库中的DateTime类型是数据库应用开发中经常用到的一种数据类型,而C#语言中也有DateTime类型,虽然二者都是用来描述时间的,但是它们的默认值是不同的,这点必须注意,在开发过程中,二者之间相互适应关系处理不当,可能会产生不必要的麻烦,就等于浪费时间,所以记住.举个例子看看: 创建一个windows应用程序,创建一个用户信息实体类UserInfo.代码如下: 注意的是:用户信息类中的“操作日期”属性是日期类型. 再创建一个业务操作类,UserInfoOp

数据库里面DataTime时间类型字段,如果为null时

tran.TransactionTime = bet.CreationDate.ToString() == "0001/1/1 0:00:00" ? DateTime.Now : bet.CreationDate; 数据库里面DataTime时间类型字段,如果为null时,查询出来时间值为"0001/1/1 0:00:00" 这是一个溢出SqlDateTime超出范围的时间值,将它再插入数据库时会报错的 数据库里面DataTime时间类型字段,如果为null时,布布

Oracle数据库中的blob类型解析

Oracle的Blob字段比较特殊,他比long字段的性能要好很多,可以用来保存例如图片之类的二进制数据. 写入Blob字段和写入其它类型字段的方式非常不同,因为Blob自身有一个cursor,你必须使用cursor对blob进行操作,因而你在写入Blob之前,必须获得cursor才能进行写入,那么如何获得Blob的cursor呢? 这需要你先插入一个empty的blob,这将创建一个blob的cursor,然后你再把这个empty的blob的cursor用select查询出来,这样通过两步操作

采用struts2+hibernate实现保存文件到Oracle数据库&&并附下载代码【导入即可用】;数据库中保存blob类型的二进制文件

原文:采用struts2+hibernate实现保存文件到Oracle数据库&&并附下载代码[导入即可用]:数据库中保存blob类型的二进制文件 源代码下载地址:http://www.zuidaima.com/share/1550463402478592.htm

mysql数据库中的boolean类型

mysql数据库中没有boolean类型,用tinyint类型代替,1代表true,0代表false