迅闻网
让更多人看到你

关系型数据库有哪些(关系型数据库的瓶颈有哪些)

  关系型数据库有哪些

数据库(Database)是依照数据结构来安排、存储和办理数据的建立在核算机存储设备上的库房。
数据库如何分类?
数据库通常分为层次式数据库、网络式数据库和联系式数据库三种。而不同的数据库是按不同的数据结构来联络和安排的。在当今的互联网中,最常见的数据库模型首要是两种,即联系型数据库和非联系型数据库。
联系型数据库比较
联系型数据库
非联系型数据库比较
联系型数据库?
下面看看一些常用的联系型数据库
1、Neo4j
是一个高性能的NoSQL图形数据库,把数据保存为图中的节点以及节点之间的联系。Neo4j中两个最基本的概念是节点和边
节点表明实体,边则表明实体之间的联系。节点和边都能够有自己的特点,不同实体经过各种不同的联系相关起来,形成杂乱的目标图。
Neo4j提供了在目标图上进行查找和遍历的功能:深度查找、广度查找。
特色:
完整的ACID支撑;高可用性;容易扩展到上亿级其他节点和联系;经过遍历东西高速检索数据;特点是由Key-Value键值对组成。
使用:社交网络,歌曲信息,状态图
联系型数据库
2、Hbase
列式存储以流的方法在列中存储一切的数据。对于任何记录,索引都能够快速地获取列上的数据;列式存储支撑行检索,但这需求从每个列获取匹配的列值,并从头组成行。
HBase(HadoopDatabase)是一个高可靠性、高性能、面向列、可伸缩的分布式存储体系,使用HBase技能可在廉价PCServer上搭建起大规模结构化存储集群。
HBase是GoogleBigTable的开源完成,仿照并提供了根据Google文件体系的BigTable数据库的一切功能。HBase能够直接使用本地文件体系或者Hadoop作为数据存储方法,不过为了进步数据可靠性和体系的健壮性,发挥HBase处理大数据量等功能,需求使用Hadoop作为文件体系。HBase仅能经过主键(rowkey)和主键的range来检索数据,仅支撑单行业务,首要用来存储非结构化和半结构化的松散数据。
Hbase中表的特色:大,稀少,面向列
联系型数据库
3、MongodDB
一个根据分布式文件存储的开源数据库体系,为WEB使用提供可扩展的高性能数据存储解决方案。MongoDB将数据存储为一个文档,数据结构由键值(keyvalue)对组成。
特色:
面向调集存储,易存储目标类型的数据;形式自由;支撑动态查询;支撑完全索引,包括内部目标;支撑查询;支撑仿制和毛病恢复;使用高效的二进制数据存储,包括大型目标(如视频);主动处理碎片,以支撑云核算层次的扩展性;支撑RUBY,PYTHON,JAVA,C++,PHP,C#等多种语言;文件存储格局为BSON(一种JSON的扩展);可经过网络拜访。
适用场景:网站数据;缓存;大尺寸,低价值的数据;高伸缩性的场景;用于目标及JSON数据的存储。
不适用场景:高度业务性的体系;传统的商业智能使用;需求SQL的问题。
联系型数据库
4、Redis
Redis是一个key-value存储体系,key为字符串类型,只能经过key对value进行操作,支撑的数据类型包括string、list、set、zset(有序调集)和hash。Redis支撑主从同步,数据能够从主服务器向恣意数量的从服务器上同步。
Redis业务允许一组指令在单一过程中履行。业务有两个特点:在一个业务中的一切指令作为单个独立的操作顺序履行;Redis业务是原子的,原子意味着要么一切的指令都履行,要么都不履行。
Redis业务由指令MULTI发起的,之后传递需求在业务中和整个业务中,最后由EXEC指令履行一切指令的列表。
举个例子:假定我们用联系型数据设计出以下学生选课的数据库.

 

数据库

关系型数据库的瓶颈有哪些

RDBMS表明联络数据库管理体系(RelationalDatabaseManagementSystem)。RDBMS是SQL以及一切现代数据库体系的基础,例如MSSQLServer、IBMDB2、Oracle、MySQL和MicrosoftAccess等。
简略来说,联络模型指的便是二维表格模型,而一个联络型数据库便是由二维表及其之间的联络所组成的一个数据安排。
联络型数据库的长处:
1.容易理解:二维表结构是十分贴近逻辑国际的一个概念,联络模型相对网状、层次等其他模型来说愈加理解
2.运用便利:通用的SQL语言使得操作联络型数据库十分便利
3.易于保护:丰富的完整性(实体完整性、参照完整性和用户定义的完整性)大大减低了数据冗余和数据不一致的概率
什么是表?
RDBMS中的数据存储在称为表的数据库对象中。表是相关数据实体的调集,由列和行组成。
记住,表是联络数据库中存储数据的最常用和最简略的形式。以下是一个customer表的示例:
什么是字段?
每个表能够分解为字段的更小实体。Customer表的字段包括ID、NAME、AGE、ADDRESS和SALARY。字段是表中用于存储每个记载的具体信息的列。
什么是记载或行?
记载,也称为数据行,是表中的每个单独实体。例如,上面的customer表包括7条记载。一下是customer表中的单行数据或记载:
一条记载是表中的一个水平实体。什么是列?
列是表的笔直实体,它包括了表中具体字段一切相关的信息。
例如,customer表中的一个列为ADDRESS,表明位置信息,包括一下内容:
什么是NULL值?
表中的NULL值是空白的字段值,表明该字段没有值。
重要的一点是NULL值与0值和包括空格的字段不同。值为NULL的字段是在创立记载时留空的字段。
SQL束缚
束缚是表的数据列上的强制规矩。束缚用于约束表数据类型。它能够确保数据的准确性好可靠性,束缚能够是列等级或表等级的。列等级束缚应用到一个列上,而表等级束缚作用到整个表。
以下是SQL中常用的束缚:
NOTNULL束缚:确保列不存在NULL值。
DEFAULT束缚:在没有指定值的时候为列供给一个默认值。
UNIQUE束缚:确保列中的值都不相同。
主键:仅有标识表中的每一行/记载。
外键束缚:仅有标识另一个表中的每一行/记载。
CHECK束缚:确保列中的值满意特定条件。
INDEX:用于快速检索数据。
数据完整性
每个RDBMS中都支撑以下种类的数据完整性:
实体完整性:表中不存在重复的行。
域完整性:经过约束类型、格局或许值的范围强制指定列只包括有用的实体。
参照完整性:被其他记载运用的行不能被删去。
用户定义的完整性:强制无法经过实体完整性、域完整性或参照完整性施行的特殊业务规矩。
数据库规范化
数据库规范化是有用安排数据的过程。运用规范化过程的原因有两个:
削减冗余数据,例如,在多个表中存储的相同数据。
确保数据依赖性存在的意义。
这两者都是具有价值的目标,因为它们削减了数据库的存储空间,并且确保了数据的逻辑存储。规范化包括一系列的指导原则,能够帮助你创立一个杰出的数据库结构。
规范化原则分成多个范式;范式能够看作数据库结构布局的格局或方式。范式的意图便是让数据库的结构满意第一范式的原则,然后是第二范式,最后是第三范式。
你能够选择进一步规范化到第四范式,第五范式等等,可是通常第三范式就现已足够了。
联络型数据库瓶颈
1.高并发读写需求
网站的用户并发性十分高,往往每秒上万次读写需求,关于传统联络型数据库来说,硬盘I/O是一个很大的瓶颈
2.海量数据的高功率读写
网站每天发生的数据量是巨大的,关于联络型数据库来说,在一张包括海量数据的表中查询,功率是十分低的
3.高扩展性和可用性
在基于web的结构傍边,数据库是最难进行横向扩展的,当一个应用体系的用户量和访问量日积月累的时候,数据库却没有方法像webserver和appserver那样简略的经过添加更多的硬件和服务节点来扩展功用和负载才能。关于许多需求供给24小时不间断服务的网站来说,对数据库体系进行升级和扩展是十分苦楚的工作,往往需求停机保护和数据迁移。
对网站来说,联络型数据库的许多特性不再需求了:
1.事务一致性
联络型数据库在对事物一致性的保护中有很大的开销,而现在许多web2.0体系对事物的读写一致性都不高。
2.读写实时性
对联络数据库来说,插入一条数据之后立刻查询,是必定能够读出这条数据的,可是关于许多web应用来说,并不要求这么高的实时性,比如发一条音讯之后,过几秒乃至十几秒之后才看到这条动态是完全能够承受的。
3.杂乱SQL,特别是多表相关查询
任何大数据量的web体系,都十分忌讳多个大表的相关查询,以及杂乱的数据剖析类型的杂乱SQL报表查询,特别是SNS类型的网站,从需求以及产品阶层视点,就避免了这种情况的发生。往往更多的只是单表的主键查询,以及单表的简略条件分页查询,SQL的功用极大的弱化了。
在联络型数据库中,导致功用欠佳的最主要原因是多表的相关查询,以及杂乱的数据剖析类型的杂乱SQL报表查询。为了确保数据库的ACID特性,咱们有必要尽量依照其要求的范式进行规划,联络型数据库中的表都是存储一个格局化的数据结构。每个元组字段的组成都是一样,即便不是每个元组都需求一切的字段,但数据库会为每个元组分配一切的字段,这样的结构能够便于标语表之间进行链接等操作,但从另一个视点来说它也是联络型数据库功用瓶颈的一个因素。

未经允许不得转载:迅闻网 » 关系型数据库有哪些(关系型数据库的瓶颈有哪些)
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

迅闻网-让更多人看到你

登录/注册返回首页