35-数据库1【介绍与分类】

一、数据库介绍

1.1、介绍

  简单的说,数据库就是一个存放计算机数据的仓库,这个仓库是按照一定的数据结构(数据结构是指数据的组织形式或数据之间的联系)来对数据进行组织和存储的,我们可以通过数据库提供的多种方法来管理其中的数据。

1.2、种类

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

1.3、关系型数据库介绍

关系型数据库由来

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

关系型数据库介绍

  关系型数据库模型是把复杂的数据结构归结为简单的二元关系(即二维表格形式)在关系型数据库中,对数据的操作几乎全部建立在一个或多个关系表格上,通过这些关联的表格分类、合并、连接或选取等运算来实现数据的管理。

  关系型数据库诞生距今已有40多年了,从理论产生到发展到实现产品,例如:常见的MySQL和Oracle数据库,oracle在数据库领域里上升到了霸主地位,形成每年高达数百亿美元的庞大产业市场,而MySQL也是不容忽视的数据库,以至于被Oracle重金收购了。

1.4、关系型数据库表格之间的关系举例

表1:学生表

学号    姓名    年龄

S001    张三    16

S002    李四    17

S003    王五    18

S004    赵六    19


表2:课程表

课程号    课程名    学分

C1001    语文        5

C1002    数学        5

C1003    外语        5

C1004    物理        4


表3:学生选课表

学号    课程号    成绩

S001    C1001    80

S002    C1002    90

S003    C1003    60

S004    C1004    66

1.5、关系型数据库知识和特点小结:

①关系型数据库在存储数据时实际就是采用的一张二维表(和Word和excell里表格几乎一样)。

②市场占有量较大的是MySQL和Oracle数据库,而互联网场景最常用的是MySQL数据库

③它通过SQL结构化查询语言来存取、管理关系型数据库的数据

关系型数据库在保持数据安全和数据一致性方面很强,遵循ACID理论。

二、非关系型数据库介绍

2.1、非关系型数据库诞生的背景

  非关系型数据库也被称为NoSQL数据库,NoSQL的本意是“Not Only SQL”,指的是非关系型数据库,而不是“No SQL”的意思(没有SQL语句?),因此,NoSQL的产生并不是要彻底否定关系型数据库,而是作为传统关系型数据库的一个有效补充。NoSQL数据库在特定的场景下可以发挥出难以想象的高效率和高性能。

  随着互联网web2.0(以前的基本上是静态网页,而现在是交互的网站)网站的兴起,传统的关系型数据库在应付web2.0网站,特别是对于规模日益扩大的海量数据,超大规模和高并发的微博、微信、SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,例如:传统的关系型数据库IO瓶颈、性能瓶颈都难以有效突破,于是开始出现了大批针对特定场景,以高性能和使用便利为目的的功能特异化的数据库产品,NoSQL(非关系型)类的数据库就是在这样的情景中诞生并得到了非常迅速的发展。NoSQL不将数据的一致性作为重点,或者是作为次重点。

  NoSQL是非关系型数据库的广义定义。它打破了长久以来关系型数据库与ACID理论大统一的局面。NoSQL数据存储不需要固定的表结构,通常也不存在连接操作。在大数据存取上具备关系型数据库无法比拟的性能优势。该术语(NoSQL)在2009年初得到了广泛认同。当今的应用体系结构需要数据存储在横向伸缩性上能够满足需求。而NoSQL存储就是为了实现这个需求而诞生的。

当今的应用体系结构需要数据存储在横向伸缩性上能够满足需求。而NoSQL存储就是为了实现这个需求而诞生的。Google的BigTableAmazon的Dynamo是非常成功的商业NoSQL实现。一些开源的NoSQL体系,如Facebook的Cassandra,Apache的HBase,也得到了广泛认同,redis,mongodb也逐渐的越来越受到各类大中小型公司的欢迎和追捧。

2.2、NOSQL非关系型数据库小结

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

NOSQL数据库为了灵活及高性能、高并发而生,忽略影响高性能、高并发的功能。

③在NOSQL数据库领域,当今的最典型产品为Redis(持久化缓存)、Mongodb、Memcached(纯内存)等

NOSQL数据库没有标准的查询语言(SQL),通常使用REST式的数据接口或者查询API

2.3、非关系型数据库种类

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

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

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

典型产品:Memcached、Redis、MemcacheDB、Berke ley DB。

列存储(Column-oriented)数据库

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

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

典型产品:Cassandra,HBase

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

  文档型数据库的灵感是来自于Lotus Notes办公软件的,而且它同第一种键值存储相类似。该类型的数据模型是版本化的文档,半结构化的文档以特定的格式存储,比如JSON。文档型数据库可以看作是键值数据库的升级版,允许之间嵌套键值。而且文档型数据库比键值数据库的查询效率更高。

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

典型产品:MongDB、CouchDB

图形(Graph)数据库

  图形数据库允许我们将数据以图的方式存储。实体会被作为顶点,而实体之间的关系则会被作为边。比如我们有三个实体,Steve Jobs、Apple和Next,则会有两个“Founded by”的边将Apple和Next连接到Steve Jobs。

图形结构的数据库同其他行列以及刚性结构的SQL数据库不同,它是使用灵活的图形模型,并且能够扩展到多个服务器上。NoSQL数据库没有标准的查询语言(SQL),因此进行数据查询需要定制数据模型。许多NoSQL数据库都有REST的数据接口或者查询API。

典型产品:Neo4J、InfoGrid

 

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 数据库介绍及常见数据库分类 1.1数据库介绍 1.1.1什么是数据库? 简单的说,数据库(因为Database)就...
    SkTj阅读 1,522评论 1 9
  • 〓数据库的分类〓 数据库通常分为层次式数据库、网络式数据库和关系式数据库三种。而不同的数据库是按不同的数据结构来联...
    小柑阅读 24,845评论 5 32
  • 1. 数据库介绍 数据库(Database)就是一个存放计算机数据的仓库,该仓库按照一定的数据结构(数据结构是指数...
    阿丧小威阅读 1,423评论 0 2
  • 做了几年开发,用过几种数据库,但是也就知道数据库的名字,其他的也没学到啥,开发过程中大多数也就是写写SQL文,增删...
    sleepySnail阅读 921评论 0 7
  • 数据库 一般来讲,我们在电脑中存储数据都是通过文件来实现的,但是对于后端开发者来讲,我们不可能每次处理数据都通过文...
    兔叽的后端阅读 4,119评论 0 1