数据库 数据库管理系统 数据库系统
数据库是存放数据的地方。
数据库管理系统是管理对数据库中的文件,例如进行查询、添加等操作。
数据库系统是一个实际可运行的存储、维护和应用系统提供数据的软件系统,是存储介质、处理对象和管理系统的集合体。它通常由软件、数据库和数据管理员组成。其软件主要包括操作系统、各种宿主语言、实用程序以及数据库管理系统。数据库由数据库管理系统统一管理,数据的插入、修改和检索均要通过数据库管理系统进行。数据管理员负责创建、监控和维护整个数据库,使数据能被任何有权使用的人有效使用。数据库管理员一般是由业务水平较高、资历较深的人员担任。
内容提要:
一:Hbase
二:NoSql
三:NoSql与关系型数据库比较
四:结构化/非结构/半结构数据
五:DBMS
六:HDFS
一.HBase,是一个开源的高可靠性、高性能、可伸缩、并建立在关系模型基础上的分布式数据库,用以存储大规模结构化数据. Hbase 可以建立在hdfs之上。Hdfs相当于一个存储空间。
Hbase vs RDBMS
1.列存储/行存储
2.分布式/单点存储
3.键值对(K,V)/关系表
4.Mapreduce编程/SQL查询
5.扩张性高/低
6.离线批量处理/在线处理
7.非结构、半结构/结构化数据
Hbase优缺点:
Pros:
1.列可以动态增加,若列为空,就不存储数据,节省存储空间。
2.Hbase自动切换数据
3.Hbase可以提供高并发读写操作的支持
Cons:
1.不支持条件查询,
2.目前不能支持Master sever的故障切换,当master死机后,整个存储系统就会瘫痪
Hbase/关系数据库对比:0.横向扩展代替纵向扩展1.键值对代替关系表(数据类型/操作/存储/维护)2.mapreduce编程代替sql查询3.处理数据(结构化/规模)4.扩展性5.离线批量处理代替在线处理
信息检索与关系型数据库系统的区别:
1、 处理的数据类型不同。信息检索处理的是无结构、半结构数据,关系型数据库系统处理的是结构化数据。
2、 查询方式不同。信息检索查询主要用关键词,没有复杂结构,关系型数据库系统用SQL查询
二.NoSQL 是非关系型数据存储的广义定义。它打破了长久以来关系型数据库与ACID理论大一统的局面。NoSQL 数据存储不需要固定的表结构,通常也不存在连接操作。在大数据存取上具备关系型数据库无法比拟的性能优势。
“关系型数据库给你强加了太多东西。它们要你强行修改对象数据,以满足RDBMS (relational database management system,关系型数据库管理系统)的需要,”在NoSQL拥护者们看来,基于NoSQL的替代方案“只是给你所需要的”。
NoSQL无需事先为要存储的数据建立字段,随时可以存储自定义的数据格式。而在关系数据库里,增删字段是一件非常麻烦的事情。如果是非常大数据量的表,增加字段简直就是一个噩梦。这点在大数据量的web2.0时代尤其明显,
NoSQL数据库种类繁多,但是一个共同的特点都是去掉关系数据库的关系型特性。数据之间无关系,这样就非常容易扩展。也无形之间,在架构的层面上带来了可扩展的能力。
优点:
1)成本:nosql数据库简单易部署,基本都是开源软件,不需要像使用oracle那样花费大量成本购买使用,相比关系型数据库价格便宜
2)查询速度:nosql数据库将数据存储于缓存之中,关系型数据库将数据存储在硬盘中,自然查询速度远不及nosql数据库
3)存储数据的格式:nosql的存储格式是key,value形式、文档形式、图片形式等等,所以可以存储基础类型以及对象或者是集合等各种格式,而数据库则只支持基础类型
4)扩展性:关系型数据库有类似join这样的多表查询机制的限制导致扩展很艰难
缺点:
1)维护的工具和资料有限,因为nosql是属于新的技术,不能和关系型数据库10几年的技术同日而语。
2)不提供对sql的支持,如果不支持sql这样的工业标准,将产生一定用户的学习和使用成本
3)不提供关系型数据库对事物的处理
相对于结构化数据(即行数据,存储在数据库里,可以用二维表结构来逻辑表达实现的数据)而言,不方便用数据库二维逻辑表来表现的数据即称为非结构化数据,包括所有格式的办公文档、文本、图片、XML、HTML、各类报表、图像和音频/视频信息等等。
字段可根据需要扩充,即字段数目不定,可称为半结构化数据,例如Exchange存储的数据。
结构化数据支持:
数字范围以及精确匹配的查询,例如
Salary < 60000 AND Manager = Smith.
非结构化数据支持:
基于关键字以及操作的查询;更复杂的概念查询。
例:查找出所有包含疾病治疗的网页。
五.DataBase Management System (DBMS)
六. Hadoop Distributed File System
简称HDFS[1],是一个分布式文件系统。HDFS有着高容错性(fault-tolerant)的特点,并且设计用来部署在低廉的(low-cost)硬件上。而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求(requirements)这样可以实现流的形式访问(streaming access)文件系统中的数据。
MapReduce优缺点(也是hadoop的优缺点):优点一,能用于处理大规模数据,而且隐藏繁琐细节,比如,自动并行化、负载均衡和灾备管理等,简化开发工作;其二,伸缩性好,每增加一台服务器,其就能将差不多的计算能力接入到集群中,而过去的大多数分布式处理框架,在伸缩性方面都与MapReduce相差甚远。
最大的不足则在于不适应实时应用的需求,缺乏当前DBMS基本都拥有的大多数特性,使用了蛮力而非索引