通常数据库分为关系型数据库和非关系型数据库,关系型数据库的优势到现在也是无可替代的,比如MySQL、SQLServer、Oracle、DB2、SyBase、Informix、PostgreSQL以及比较小型的Aess等等数据库,这些数据库支持复杂的SQL *** 作和事务机制,适合小量数据读写场景;但是到了大数据时代,人们更多的数据和物联网加入的数据已经超出了关系数据库的承载范围。
大数据时代初期,随着数据请求并发量大不断增大,一般都是采用的集群同步数据的方式处理,就是将数据库分成了很多的小库,每个数据库的数据内容是不变的,都是保存了源数据库的数据副本,通过同步或者异步方式保证数据的一致性,每个库设定特定的读写方式,比如主数据库负责写 *** 作,从数据库是负责读 *** 作,等等根据业务复杂程度以此类推,将业务在物理层面上进行了分离,但是这种方式依旧存在一定的负载压力的问题,企业数据在不断的扩增中,后面就采用分库分表的方式解决,对读写负载进行分离,但是这种实现依旧存在不足,且需要不断进行数据库服务器扩容。
NoSQL数据库大致分为5种类型
1、列族数据库:BigTable、HBase、Cassandra、AmazonSimpleDB、HadoopDB等,下面简单介绍几个
(1)Cassandra:Cassandra是一个列存储数据库,支持跨数据中心的数据复制。它的数据模型提供列索引,log-structured修改,支持反规范化,实体化视图和嵌入超高速缓存。
(2)HBase:ApacheHbase源于Google的Bigtable,是一个开源、分布式、面向列存储的模型。在Hadoop和HDFS之上提供了像Bigtable一样的功能。
(3)AmazonSimpleDB:AmazonSimpleDB是一个非关系型数据存储,它卸下数据库管理的工作。开发者使用Web服务请求存储和查询数据项
(4)ApacheAumulo:ApacheAumulo的有序的、分布式键值数据存储,基于Google的BigTable设计,建立在ApacheHadoop、Zookeeper和Thrift技术之上。
(5)Hypertable:Hypertable是一个开源、可扩展的数据库,模仿Bigtable,支持分片。
(6)AzureTables:WindowsAzureTableStorageService为要求大量非结构化数据存储的应用提供NoSQL性能。表能够自动扩展到TB级别,能通过REST和ManagedAPI访问。
2、键值数据库:Redis、SimpleDB、Scalaris、Memcached等,下面简单介绍几个
(1)Riak:Riak是一个开源,分布式键值数据库,支持数据复制和容错。(2)Redis:Redis是一个开源的键值存储。支持主从式复制、事务,Pub/Sub、Lua脚本,还支持给Key添加时限。
(3)Dynamo:Dynamo是一个键值分布式数据存储。它直接由亚马逊Dynamo数据库实现;在亚马逊S3产品中使用。
(4)OracleNoSQLDatabase:来自Oracle的键值NoSQL数据库。它支持事务ACID(原子性、一致性、持久性和独立性)和JSON。
(5)OracleNoSQLDatabase:具备数据备份和分布式键值存储系统。
(6)Voldemort:具备数据备份和分布式键值存储系统。
(7)Aerospike:Aerospike数据库是一个键值存储,支持混合内存架构,通过强一致性和可调一致性保证数据的完整性。
3、文档数据库:MongoDB、CouchDB、Perservere、Terrastore、RavenDB等,下面简单介绍几个
(1)MongoDB:开源、面向文档,也是当下最人气的NoSQL数据库。
(2)CounchDB:ApacheCounchDB是一个使用JSON的文档数据库,使用Javascript做MapRece查询,以及一个使用>
(3)Couchbase:NoSQL文档数据库基于JSON模型。
(4)RavenDB:RavenDB是一个基于NET语言的面向文档数据库。
(5)MarkLogic:MarkLogicNoSQL数据库用来存储基于XML和以文档为中心的信息,支持灵活的模式。
4、图数据库:Neo4J、InfoGrid、OrientDB、GraphDB,下面简单介绍几个
(1)Neo4j:Neo4j是一个图数据库;支持ACID事务(原子性、独立性、持久性和一致性)。
(2):一个图数据库用来维持和遍历对象间的关系,支持分布式数据存储。
(3):是结合使用了内存和磁盘,提供了高可扩展性,支持SPARQ、RDFS和Prolog推理。
5、内存数据网格:Hazelcast、OracleCoherence、TerracottaBigMemorry、GemFire、Infinispan、GridGain、GigaSpaces,下面简单介绍几个
(1)Hazelcast:HazelcastCE是一个开源数据分布平台,它允许开发者在数据库集群之上共享和分割数据。
(2)OracleCoherence:Oracle的内存数据网格解决方案提供了常用数据的快速访问能力,一致性支持事务处理能力和数据的动态划分。
(3)TerracottaBigMemory:来自Terracotta的分布式内存管理解决方案。这项产品包括一个Ehcache界面、Terracotta管理控制台和BigMemory-Hadoop连接器。
(4)GemFire:VmwarevFabricGemFire是一个分布式数据管理平台,也是一个分布式的数据网格平台,支持内存数据管理、复制、划分、数据识别路由和连续查询。
(5)Infinispan:Infinispan是一个基于Java的开源键值NoSQL数据存储,和分布式数据节点平台,支持事务,peer-to-peer及client/server架构。
(6)GridGain:分布式、面向对象、基于内存、SQLNoSQL键值数据库。支持ACID事务。
(7)GigaSpaces:GigaSpaces内存数据网格能够充当应用的记录系统,并支持各种各样的高速缓存场景。
access是数据库管理系统,和excel是有很大区别的,而且不存在什么替代问题所以很难把他们2者来做比较,就如楼主说的~既然微软出了access和excel,当然他们不可能是重复功能的
简单介绍:
Access 的功能特点
Access 是微软公司推出的基于Windows的桌面关系数据库管理系统(RDBMS),是Office系列应用软件之一。它提供了表、查询、窗体、报表、页、宏、模块7种用来建立数据库系统的对象;提供了多种向导、生成器、模板,把数据存储、数据查询、界面设计、报表生成等 *** 作规范化;为建立功能完善的数据库管理系统提供了方便,也使得普通用户不必编写代码,就可以完成大部分数据管理的任务。
Access是一种关系型数据库管理系统,其主要特点如下:
(1)存储方式单一
Access管理的对象有表、查询、窗体、报表、页、宏和模块,以上对象都存放在后缀为(mdb)的数据库文件种,便于用户的 *** 作和管理。
(2)面向对象
Access是一个面向对象的开发工具,利用面向对象的方式将数据库系统中的各种功能对象化,将数据库管理的各种功能封装在各类对象中。它将一个应用系统当作是由一系列对象组成的,对每个对象它都定义一组方法和属性,以定义该对象的行为和外国,用户还可以按需要给对象扩展方法和属性。通过对象的方法、属性完成数据库的 *** 作和管理,极大地简化了用户的开发工作。同时,这种基于面向对象的开发方式,使得开发应用程序更为简便。
(3)界面友好、易 *** 作
Access是一个可视化工具,是风格与Windows完全一样,用户想要生成对象并应用,只要使用鼠标进行拖放即可,非常直观方便。系统还提供了表生成器、查询生成器、报表设计器以及数据库向导、表向导、查询向导、窗体向导、报表向导等工具,使得 *** 作简便,容易使用和掌握。
(4)集成环境、处理多种数据信息
Access基于Windows *** 作系统下的集成开发环境,该环境集成了各种向导和生成器工具,极大地提高了开发人员的工作效率,使得建立数据库、创建表、设计用户界面、设计数据查询、报表打印等可以方便有序地进行。
(5)Access支持ODBC(开发数据库互连,Open Data Base Connectivity),利用Access强大的DDE(动态数据交换)和OLE(对象的联接和嵌入)特性,可以在一个数据表中嵌入位图、声音、Excel表格、Word文档,还可以建立动态的数据库报表和窗体等。Access还可以将程序应用于网络,并与网络上的动态数据相联接。利用数据库访问页对象生成HTML文件,轻松构建Internet/Intranet的应用。
希望能对你有用~
数据库作为整个系统的一部分,它的表现直接受服务器、 *** 作系统、存储、网络、应用程序中SQL语句的质量、数据库设计的质量、以及其它诸多因素的影响,这些因素加在一起非常复杂,经验起着非常重要的作用。因此一个好的数据库工程师除了知识作为基础,经验的多寡、见识的薄广,往往决定了是否合格与优秀。
优秀的数据库工程师不仅关心自己运维的数据库系统的原理和发展,而且紧跟业界数据库前沿技术,并关注数据库领域的顶级会议。其中包括国际著名的数据库三大会议SIGMOD、VLDB、ICDE,还有知名数据库公司Percona主办的PerconaLive和Oracle主办的OpenWorld,以及国内知名的数据库工程师盛会中国数据库技术大会(DTCC)等。
从另外一个角度说,数据库工程师工作领域对实践经验和独立工作能力要求较高,没有经过大量的动手实践是很难胜任数据库工程师相关工作的。
正是由于上述原因,其职场现状是数据库工程师职位不易进入,而用人单位很难找到合适的从业人员,人员缺口非常大。
也正是由于上述原因,随着工作年限的增长,数据库工程师的经验在增加,就像医生一样,其价值会越来越高,可以逐步成长为资深数据库工程师、系统架构师、信息主管(CIO)等等,而不会出现许多软件开发从业人员在一定年龄后面临的转行问题。
另外,从职业前景看,从事数据库工程师有着更多的职场机遇。一般而言,系统中的软硬件都是IBM、HP、Oracle等业界一流厂商提供的,在与厂商谈判、合作、测试、实施、维护、优化等等过程中,会产生许多极佳的职场机遇,这一点是从事开发工作很难比拟的。
从数据库工程师的工资统计数据看,随着工作经验的积累,数据库工程师工资的增长幅度会远大于其它的计算机方向。
从工作的稳定性上看,系统的复杂性和经验的重要性已经决定了数据库工程师职位的不可替代性。
从知识的积累、更新和替代角度看,数据库的根基始终没变,变的是不断增强的功能和不断扩展的应用范围。因此,在不同时期所学的知识和获得的经验是叠加和累积的关系,而不像IT许多其他职业方向那样“唯一不变的是变化”,其知识是东风压倒西风还是西风压倒东风的关系。
因此,数据库工程师职业是一个高挑战和高回报的职业,有一定能力的和聪明的技术人员应该挑战自我,进入这个被二十多年事实不断证明的越来越有前景的职业。
你说的 trigger 和 instead of 触发器么? 概念是一样的,只不过触发器类型不一样而已!
以下是一些信息,请参考
触发器类型
触发器在数据库里以独立的对象存储,它与存储过程和函数不同的是,存储过程与函数需要用户显示调用才执行,而触发器是由一个事件来启动运行。即触发器是当某个事件发生时自动地隐式运行。并且,触发器不能接收参数。所以运行触发器就叫触发或点火(firing)。ORACLE事件指的是对数据库的表进行的INSERT、UPDATE及DELETE *** 作或对视图进行类似的 *** 作。ORACLE将触发器的功能扩展到了触发ORACLE,如数据库的启动与关闭等。所以触发器常用来完成由数据库的完整性约束难以完成的复杂业务规则的约束,或用来监视对数据库的各种 *** 作,实现审计的功能。
DML触发器
ORACLE可以在DML语句进行触发,可以在DML *** 作前或 *** 作后进行触发,并且可以对每个行或语句 *** 作上进行触发。
替代触发器
由于在ORACLE里,不能直接对由两个以上的表建立的视图进行 *** 作。所以给出了替代触发器。它就是ORACLE 8专门为进行视图 *** 作的一种处理方法。
系统触发器
ORACLE 8i 提供了第三种类型的触发器叫系统触发器。它可以在ORACLE数据库系统的事件中进行触发,如ORACLE系统的启动与关闭等。
文本文件存在数据冗余、数据共享麻烦、数据检索效率低、数据维护管理麻烦等等。。。
数据冗余:各种类型的数据使用文本方式存储必然存在冗余。
数据共享:多线程(每个客户端请求即一根线程)读取问题不大,但是多线程写入数据,必然存在冲突,因为在同一时刻只能有一个线程写入数据,并该线程关闭句柄后其它线程才能写入。
数据检索:缺少对数据检索的一系列优化(如:索引)
除以上缺点外还有数据库四大事务特性,如:原子性、一致性、隔离性、持久性,使用文本文件仅有“持久性”而已(除非你自己实现了数据库)。
XML 文件也是文本文件,存在上述的缺点。另外 XML 本身效率是很低的无法取代数据库(甚至效率比直接处理文本文件还要低,因为 XML 需要经过一系列的解析过程)。很多 XML 提供程序,是将 XML 文件全部加载到内存,所以感觉速度比较快,若是数据量较大,或多用户(多线程),那么效率就不容乐观了。
若使用租赁空间可以考虑使用 Access 数据库,不需要额外交钱的啦。
以上就是关于大数据常用哪些数据库(什么是大数据库)全部的内容,包括:大数据常用哪些数据库(什么是大数据库)、access作用是什么可以用excel代替吗、sql数据库的表现受什么因素的影响(关系数据库的缺点主要表现在什么)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)