标签:大数据 安装使用 打破 2.0 google acl 关系数据库 线程 设计
数据库是一个存放数据的仓库,它按照一定数据结构(数据结构是指数据的组织形式或数据之间的关系)来阻止、储存的,我们可以通过数据库提供的多种方式来管理数据库里的数据.
数据库的种类模型有三种,分别为层次式数据库、网络式数据库和关系型数据库;常用的数据库模型主要是关系型数据库和非关系型数据库(NoSQL数据库).
关系型数据库:
网状数据库和层次数据库已经很好解决了数据的集中和共享问题,但是在数据的独立性和抽象级别上任有很大欠缺,用户在对这两种数据库进行存取时仍需要明确数据的存储结构指出存取路劲,而关系型数据库就可以较好的解决这些问题;关系型数据库模型就是把复杂的数据结构归结为简单的二元关系(既二维表格形式),在关系数据库中,对数据的操作几乎全部建立在一个或多个关系表格上,通过这些关联的表格分类、合并、连接或选取等运算来实现数据管理,常见的关系型数据库有Oracle、Mysql;简单来说关系型数据库就是类似于Excel表格二维表来表示;关系型数据库使用结构化查询语言SQL语句对数据进行存取。
关系型数据库表格之间的关系举例:
用access或power builder完成下列关系表格
非关系数据库:
非关系型数据库也称为NoSQL数据接(Not Only SQL),可不是没有SQL语句哈,因此,NoSQL的产生并不是要彻底的否定关系型数据库,而是作为传统关系型数据库的一个有效补充,NoSQL数据库在特定的场景下可以输出很暴力的高效率和高性能.
背景:随着互联网Web2.0(以用户为主体上传下载等)以上的兴起,传统的关系型数据库在应付Web2.0网站,特别是对于规模日益扩大的海量数据、超大规模和高并发的微博、微信、SNS类型的Web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,例如:传统的关系型数据IO瓶颈、性能瓶颈难以突破,于是出现了大批针对特定场景、以高性能和使用便利为目的的功能特异优化的数据库产品,NoSQL(非关系型数据库)类的数据库就是在这样的场景中诞生并且得到了非常迅速的发展;
NoSQL是非关系型数据库的广义定义,它打破了很长久以来关系型数据库与ACID理论大一统的局面,NoSQL数据存储不需要固定的表结构,通常也不存在连接操作,在大数据存取上具备关系型数据库无法比拟的性能优势.
当今的应用体系结构需要数据储存在横向伸缩性上能够满足需求,而NoSQL存储就是为了实现这个需求诞生的,Google的BigTable与Amazon的Dynamo是非常成功的商业NoSQL实现,一些开源的NoSQL体系,如Facebook的Cassandra,Apache的Hbase,也得到广泛认同,Redis,Mongodb也逐渐的受到各类企业的欢迎和追捧.
非关系型数据库种类:
1.键值(Key-Value)存储数据库
键值数据库就类似传统语言中使用的哈希表,可以通过Key来添加,查询、删除数据,因为使用Key主键访问,所以会获得很高的性能及扩展性.
键值(Key-Value)数据库主要是使用一个哈希表,这个表中有一个特定的键和一个指针指向特定的数据,Key/Value模型对于IT系统来说的优势在于简单,易部署,高并发.
典型产品:Memcache、Redis、MemcacheDB、BerkeleyDB
2.列存储(Column-Oriented)数据库
列存储数据库将数据库储存在列族(Column family),一个列族存储经常被遗弃查询的相关数据,
3.面向文档(Document-Oriented)数据库
文档数据库的灵感来自于Lotus-Notes办公软件的,而且它同第一种键值存储相类似.
典型产品:MongoDB、CouchDB
4.图形(Graph)数据库
典型产品:Neo4J、infoGrid
关于MySQL数据库:
Mysql是、多用户的SQL数据库服务,凭借其高性能,高可用和易于使用、体积小、速度快、总体拥有成本低、开放源代码的特性,成为服务器领域受欢迎的一个多线程开源数据库系统,目前Mysql项目由Oracle公司负责运营和维护.Mysql数据库应用范围:互联网领域、中大小型网站、游戏、电商平台等等.
Mysql是一种关系型数据库管理系统,关系型数据库的特点是将数据保存在不同的表中,再将这些表放入不同的数据库中,而不是将所有的数据统一放在一个大仓库里,这样的设计增加了Mysql的读取速度,灵活性可管理性,也得到了很大的提高,访问以及管理Mysql数据库的最常用标准化语言为SQL结构化查询语言.
为什么要选择Mysql数据库?因为主流产品,客户只认识Mysql!
① mysql性能卓越,服务稳定,很少出现异常宕机;
② Mysql开放源代码且无版权制约,自主性及使用成本低;
③ Mysql历史悠久,社区及用户非常活跃,遇到问题可以寻求帮助;
④ Mysql软件体积小,安装使用简单,并且易于维护,安装及维护成本低;
⑤ Mysql品牌口碑效应;
⑥ Mysql支持多种操作系统,提供多种API接口,支持多种开发语言,PHP语言有很好的 支持;
关于MariaDB数据库:
MariaDB数据库管理系统是Mysql数据库的一个分支,主要由开源社区维护,采用GPL授权许可,开发MariaDB数据库的原因:甲骨文收购了Mysql后,有将Mysql闭源的潜在风险,因此Mysql开源社区采用分支的方式来避开这个风险;
开发MariaDB数据的目的是完全兼容Mysql数据库,包括API和命令行,使之能轻松成为Mysql的替代品,在存储引擎方面,使用XtraDB来代替Mysql的LnnoDB,MariaDB基于事务的Maria存储引擎,替换了Mysql的MyISAM存储引擎,它使用了Percona的XtraDB(InnoDB的变体);
关于SQL server数据库:
MicrosoftSQL server是微软公司开发的大型关系型数据库系统,功能全面效率高.
关于非关系型数据库Menmcached(Key-vlue):
关于非关系型数据库Redis:
关于非关系型数据库MongoDB:
MySQL数据库分类与版本升级:
MySQL数据库的官方网站为https://www.mysql.com/ ;分为社区版和商业版;版本为:Alpha版、Beta版、RC版、GA版.
Alpha版:一般只会在开发的公司内部运行,不对外公开.
Beta版:完成功能的开发和所有的测试工作后的产品.
RC版:属于生产环境发布之前的一个小版本或候选版本,是根据用户对Beta版本测试后 结果收集到的BUG或缺陷之处等收集到的信息,进行修复和完善之后的一版产品.
GA版:是软件产品正式发布的版本,也称生产版本的产品,一般情况下企业的生产环境都 会选择GA版本的MySQL软件.
Mysql版本选择建议:
标签:大数据 安装使用 打破 2.0 google acl 关系数据库 线程 设计
原文地址:http://www.cnblogs.com/LinuxGeek/p/7976655.html